Author

Topic: [ANN][XEL] Elastic Project - The Decentralized Supercomputer - page 255. (Read 450524 times)

hero member
Activity: 826
Merit: 532


If you want to update XEL to the newest version:

Stop your node (CTRL + C)
Go to main directory of XEL and:
Code:
git pull origin master
./compile.sh
rm -rf nxt_test_db/
screen ./run.sh



Is possible update to new versión 0.3.1?
This not work for me.



Make a fresh clone of this repository : https://github.com/OrdinaryDude/elastic-core.git

This is the new 0.3.1 develop git.

regards

Thanks!

Is new blockchain? I lost my testXEL

If so, someone can send back some testXEL? Thanks
XEL-6R66-2MZY-MA5N-7Y23F
hero member
Activity: 792
Merit: 501


If you want to update XEL to the newest version:

Stop your node (CTRL + C)
Go to main directory of XEL and:
Code:
git pull origin master
./compile.sh
rm -rf nxt_test_db/
screen ./run.sh



Is possible update to new versión 0.3.1?
This not work for me.

Make a fresh clone of this repository : https://github.com/OrdinaryDude/elastic-core.git

This is the new 0.3.1 develop git.

regards
hero member
Activity: 826
Merit: 532


If you want to update XEL to the newest version:

Stop your node (CTRL + C)
Go to main directory of XEL and:
Code:
git pull origin master
./compile.sh
rm -rf nxt_test_db/
screen ./run.sh



Is possible update to new versión 0.3.1?
This not work for me.
hero member
Activity: 792
Merit: 501
Hi,

"Set Account Info" still not working here : "Could not validate unsigned bytes returned by the server."
I get the same Error when I try to cretae a workpakage for the Network.

Regards
hero member
Activity: 792
Merit: 501
Ah it's working now ...

public node is back again https://elastic.cryptnodes.site

I'll set up some Miners to have Power if someone submits a Job - could anyone send me some testnet-xel to start : XEL-XFMU-85XU-V4S3-EZZY2

Regards
hero member
Activity: 792
Merit: 501
Hi,

I'm trying to run on the new Version but my client blacklists the public node because the version is too low ?!:

Code:
2016-09-16 08:53:53 FINE: Peer 52.28.123.208 version null returned error: {"cause":"Old version: 0.2.3","error":"Your peer is blacklisted"}, request was: {"protocol":1,"announcedAddress":"elastic.cryptnodes.site","apiPort":6876,"application":"Elastic","apiServerIdleTimeout":30000,"requestType":"getInfo","blockchainState":1,"services":"20","version":"0.3.1","platform":"linuxDebian8","disabledAPIs":"","shareAddress":true}, disconnecting
2016-09-16 08:53:53 FINE: Peer 52.57.31.137 version null returned error: {"cause":"Old version: 0.2.3","error":"Your peer is blacklisted"}, request was: {"protocol":1,"announcedAddress":"elastic.cryptnodes.site","apiPort":6876,"application":"Elastic","apiServerIdleTimeout":30000,"requestType":"getInfo","blockchainState":1,"services":"20","version":"0.3.1","platform":"linuxDebian8","disabledAPIs":"","shareAddress":true}, disconnecting

Is there a node with updated version Or should I disable blacklisting ?

Regards
hero member
Activity: 1022
Merit: 507
While the page loads, it's "NXT Wallet" shown on the tab's header (after the spinning wheel), and then (after a second or two) it's replaced with "Elastic Wallet" once the login page is fully loaded.
Checked on Chrome only

[master 41a5559] fix website title, thanks forum
 1 file changed, 1 insertion(+), 1 deletion(-)



The links in the Help menu (under question mark icon) are all going to NXT pages, so they also need to be fixed.
Actually they should probably be removed for now,until Elastic will have its own web structure.
legendary
Activity: 1232
Merit: 1001
@EK i am rolling with new 0.3.1 update, sweet  Cool saw that many still didn't update.. so if you guys can upgrade asap would be cool!

now one bug from last time, i still cant register account name or submit work process.. i am getting error:
Code:
Could not validate unsigned bytes returned by the server.

tried to sign it manually and getting another error:
Code:
Not more than one of [transactionBytes, transactionJSON] can be specified

any idea what could be wrong?


@ImI can i have some coins so i can forge, thanks.

Code:
XEL-K3TA-MQNB-4NHD-5GE8U
newbie
Activity: 4
Merit: 0
I think we need some more functionality in ElasticPL anyways. A timestamp() function for example would be nice (must be made deterministic somehow)
Any suggestions are welcome!!!


Evil, is the language turing complete? Are there loops?

Are there functions?
sr. member
Activity: 434
Merit: 250
hi, when about to begin trading exchange?
member
Activity: 122
Merit: 10
I think we should also invest in user cases. For simple visulation an animation video will be great. For the more technical it will be fine if we have some turorials of what kind of work can be done with XEL.

This is all preparation to attract people, organization or even NASA.
sr. member
Activity: 464
Merit: 260
Ok, I've got it now.  I guess I was thinking the retargetting was happening based on the transactions being submitted due to the possibility of the initial target getting set too low and the miners flooding the network with low-target work.  I guess the trick will be figuring out what the initial target should be for the ad-hoc pow algos.  Maybe a conservative way to do this would be to start the target at the Bounty level and cut it by half each block until work is submitted or until it's at the minimum target.
legendary
Activity: 1260
Merit: 1168
Thanks EK, your explanation makes perfect sense.  I guess my question is more around the target.  In traditional mining, a pool would set this target.  So I'm still a little unclear within elastic what is setting the target (or determining that work is being submitted too quickly) as we are decentralized.  I'll dig into the miner code a bit more to understand (little rusty on java).

Also, if you have any suggestions on a small example epl you'd like to see, I'd like to try to put one together to better understand the epl / miner behavior.

A simplified (but not 100% accurate explanation).

1. Imagine we are at block 5, one work was created and no transaction has been done after that.
2. Assume the target value is some value, lets say 1000000 is that current target value i.e. that means that hashes must be lower than this target value.
3. Now lets assume that a miner starts mining and submits 20 POW which get included in block 6, 20 POW which get included in block 7 and 20 POW which get included in block 8.
4. Assuming the trailing window size is 3, and the desired number of POW per block is 10. The retargeting algorithm would see that in the last 3 blocks, on average there were 20 POW submissions per block. The logical consequence would be to double the difficulty, hence halving the target to 500000 in the hope that we, from now on, will get only 10 POW per block which is desired.
5. The "protocol" ensures that the difficulty is enforced not allowing any POW to be included in the next block, that do not meet the calculated "next target value". A block containing a POW transaction with an inappropriate hash is automatically not valid. Just the same way a transaction with a wrong signature is not valid. The basic idea behind this is, that we do not necessarily flood the blockchain with "bloat" too much and aim for 10 POW per block no matter how powerful the network as a whole is.

This explanation is not 100% accurate, because in step 3 the retargeting technically happens after every block. But this way the explanation is better to understand.

I think that the most important point is, that POW submissions are normal transactions that get included in blocks. And depending on how many POW ended up in the last blocks, there is a different "difficulty" requirement for the POWs that are submitted to be included in the next block.
sr. member
Activity: 464
Merit: 260
Thanks EK, your explanation makes perfect sense.  I guess my question is more around the target.  In traditional mining, a pool would set this target.  So I'm still a little unclear within elastic what is setting the target (or determining that work is being submitted too quickly) as we are decentralized.  I'll dig into the miner code a bit more to understand (little rusty on java).

Also, if you have any suggestions on a small example epl you'd like to see, I'd like to try to put one together to better understand the epl / miner behavior.
legendary
Activity: 1260
Merit: 1168
I think we need some more functionality in ElasticPL anyways. A timestamp() function for example would be nice (must be made deterministic somehow)
Any suggestions are welcome!!!
legendary
Activity: 1260
Merit: 1168
Can you give some Example for a work job?

I hope Lannister will host a creativity contest where people can win prizes for the best Elastic PL program.
But for now, we only have this very simple example:


https://github.com/OrdinaryDude/old-development-tree/blob/master/elasticpl_examples/good.epl

It actually mines Bitcoin block 0, wich means it fills the header into memory and searches for a nonce that meets the target.
You will find, that the correct nonce is found.

This example is very simple and not a real miner yet ... for example the block header has to change every time the entire 32bit search space for the nonce has been brute forced without success. This can be done by modifying the time stamp regularily (to recall, the timestamp can be only a little bit off from the real clock, there is not much degree of freedom here). Also you could think of altering your coin base transaction frequently so you have an even bigger search space  ... this would require to alter the merkleHash in the block header.

To solve this, you would randomly jitter the timestamp and additionally store a large number of precomputed merkleHashes inside the elastic PL program. Then you let the miners search your nonce for a randomly selected merkleHash. Once someone finds a nonce that solves your "bitcoin block", you can reconstruct which merkleHash and timestamp they were using (its deterministic from the input integers), build your transaction (with the correct coinbase transaction) locally on your computer and broadcast it to the bitcoin network yourself. Voila!


We will have such miners eventually ;-)
legendary
Activity: 1260
Merit: 1168
Hi EK, question about ElasticPL.  I understand that the verify command identifies what work meets the bounty critieria, but what qualifies that the other pow work actually took place.  For example, in your good.epl, obviously only hashes beginning with 32 bits of zero meet the bounty, but what shows that the pow submissions were actual hashes for that block header and that one miner has higher hashrate than another?  Or in the elastic world are all miners equal regardless of how much work they do?

I'd like to look into epl and the miner a bit more, so I'm trying to better understand how this works.

The best way to explain would be to first take a look at the relevant code:

Code:
public static byte[] byteHash(int randomInput[], int output[]) throws NoSuchAlgorithmException {
MessageDigest m = getMessageDigest("SHA-256");
m.reset();
ByteBuffer byteBuffer = ByteBuffer.allocate(output.length * 4);
IntBuffer intBuffer = byteBuffer.asIntBuffer();
intBuffer.put(output);
ByteBuffer byteBufferIn = ByteBuffer.allocate(randomInput.length * 4);
IntBuffer intInBuffer = byteBufferIn.asIntBuffer();
intInBuffer.put(randomInput);

byte[] array = byteBuffer.array();
byte[] array2 = byteBufferIn.array();
m.update(array);
m.update(array2);
byte[] digest = m.digest();
return digest;
}

Code:
public boolean verifyPOW(BigInteger target) {
int in[] = getRandomIntArray();
int out[] = getOutState();
try {
byte[] bsh = byteHash(in, out);
BigInteger val = byteHashToLong(bsh);

if (val.compareTo(target)==-1)
return true;
} catch (NoSuchAlgorithmException e) {
}
return false;
}

Think of the verifyPOW function to be inside the "code execution engine" that runs the Elastic PL code.
It takes one argument, the target value that will later be relevant and that changes with every block depending on the recent POW submission rate.

Then it takes the input array (the one that was given by the miner, often 3-12 random integers) and the out state. The out state is the entire content of the virtual machine memory ... in this case the entire array m[0] until m[256] *after the execution of the program* (lets for now assume we allow only 256 integers in memory, this value is bigger now actually and to recall, the m[.] slots are the only place in the VM where users can store something).

Then a hash is calculated based on the input integers and the final memory state integers. It's basically a SHA256 fed with the binary representation of a) the output state integers and then b) the input integers (the order is relevant to avoid precomputation by using the first part of the hash (the input integers) as a sort of midstate).

Then the resulting hash is checked if it meets the desired target value. That means, if the value of the hash interpreted as a BigInteger is smaller than the target value. If it is, then a POW is found.

If too many POW are found, the target value becomes smaller and it gets harder to find hashes that match the requirements.


If you have any suggestions, critics or opinions regarding to this scheme, that would be greatly appreciated!!!!

copper member
Activity: 2324
Merit: 1348
The new version of the testnet is not released yet! I am still testing several things like blockchain reorganization and stuff like that! I will write a release post once I think that we can start testing in public. Also, some very little UI things are still missing.

... however ...


For those who want a small sneak peek: Account with passphrase "test" has 265,000.00 Testnet-XEL in it.
Grab it if you like on the public node: http://ec2-52-57-31-137.eu-central-1.compute.amazonaws.com:6876/ Tongue



While the page loads, it's "NXT Wallet" shown on the tab's header (after the spinning wheel), and then (after a second or two) it's replaced with "Elastic Wallet" once the login page is fully loaded.
Checked on Chrome only

Can you give some Example for a work job?
sr. member
Activity: 464
Merit: 260
Hi EK, question about ElasticPL.  I understand that the verify command identifies what work meets the bounty critieria, but what qualifies that the other pow work actually took place.  For example, in your good.epl, obviously only hashes beginning with 32 bits of zero meet the bounty, but what shows that the pow submissions were actual hashes for that block header and that one miner has higher hashrate than another?  Or in the elastic world are all miners equal regardless of how much work they do?

I'd like to look into epl and the miner a bit more, so I'm trying to better understand how this works.
legendary
Activity: 1092
Merit: 1001
Have you been in touch with him EK lately?

Without wanting to dig too much into what Lannister does, I have contacted him yesterday on behalf of a member here (we all are having big issues with bitmessage somehow) who then received 5 BTC in exchange for his awesome work so far and his bug hunting in the first testnet. I would also appreciate if he was involved a bit more in this thread, but even if he does not write, he is there  Wink  

Glad to hear that, I am gonna leave him a positive feedback, for what it is worth. Smiley
Jump to: