Bitcoin Forum
June 16, 2019, 05:49:02 AM *
News: Latest Bitcoin Core release: 0.18.0 [Torrent] (New!)
 
   Home   Help Search Login Register More  
Pages: « 1 ... 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 [91] 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 ... 346 »
  Print  
Author Topic: [ANN][XEL] Elastic Project - The Decentralized Supercomputer  (Read 449639 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic.
coralreefer
Sr. Member
****
Offline Offline

Activity: 465
Merit: 260


View Profile
September 15, 2016, 05:35:23 PM
 #1801

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.
1560664142
Hero Member
*
Offline Offline

Posts: 1560664142

View Profile Personal Message (Offline)

Ignore
1560664142
Reply with quote  #2

1560664142
Report to moderator
1560664142
Hero Member
*
Offline Offline

Posts: 1560664142

View Profile Personal Message (Offline)

Ignore
1560664142
Reply with quote  #2

1560664142
Report to moderator
PLAY NOW
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1560664142
Hero Member
*
Offline Offline

Posts: 1560664142

View Profile Personal Message (Offline)

Ignore
1560664142
Reply with quote  #2

1560664142
Report to moderator
Limx Dev
Copper Member
Legendary
*
Offline Offline

Activity: 1680
Merit: 1298



View Profile
September 15, 2016, 06:28:30 PM
 #1802

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?
Evil-Knievel
Legendary
*
Offline Offline

Activity: 1274
Merit: 1160



View Profile
September 15, 2016, 06:30:05 PM
 #1803

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!!!!

Evil-Knievel
Legendary
*
Offline Offline

Activity: 1274
Merit: 1160



View Profile
September 15, 2016, 06:39:51 PM
 #1804

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 ;-)
Evil-Knievel
Legendary
*
Offline Offline

Activity: 1274
Merit: 1160



View Profile
September 15, 2016, 06:50:58 PM
 #1805

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!!!
coralreefer
Sr. Member
****
Offline Offline

Activity: 465
Merit: 260


View Profile
September 15, 2016, 07:58:44 PM
 #1806

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.
Evil-Knievel
Legendary
*
Offline Offline

Activity: 1274
Merit: 1160



View Profile
September 15, 2016, 08:06:57 PM
 #1807

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.
coralreefer
Sr. Member
****
Offline Offline

Activity: 465
Merit: 260


View Profile
September 15, 2016, 10:08:09 PM
 #1808

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.
Redawn
Member
**
Offline Offline

Activity: 121
Merit: 10


View Profile
September 15, 2016, 10:19:29 PM
 #1809

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.

Join the Elastic revolution!  Elastic - The Decentralized Supercomputer
ELASTIC WEBSITE | ANNOUNCEMENT THREAD | ELASTIC SLACK | ELASTIC FORUM
juras54
Sr. Member
****
Offline Offline

Activity: 434
Merit: 250



View Profile
September 16, 2016, 12:15:38 AM
 #1810

hi, when about to begin trading exchange?
CryptoDude01
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
September 16, 2016, 01:05:14 AM
 #1811

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?
trader19
Legendary
*
Offline Offline

Activity: 1232
Merit: 1001



View Profile WWW
September 16, 2016, 06:26:32 AM
 #1812

@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

Join the Elastic revolution!  Elastic - The Decentralized Supercomputer
ELASTIC WEBSITE | NEW ANNOUNCEMENT THREAD | ELASTIC SLACK | ELASTIC FORUM
tomkat
Hero Member
*****
Offline Offline

Activity: 1022
Merit: 507


View Profile
September 16, 2016, 06:40:39 AM
 #1813

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.
hagie
Hero Member
*****
Offline Offline

Activity: 786
Merit: 500



View Profile
September 16, 2016, 06:57:35 AM
 #1814

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

hagie
Hero Member
*****
Offline Offline

Activity: 786
Merit: 500



View Profile
September 16, 2016, 07:12:51 AM
 #1815

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

hagie
Hero Member
*****
Offline Offline

Activity: 786
Merit: 500



View Profile
September 16, 2016, 07:41:41 AM
 #1816

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

josegines
Hero Member
*****
Offline Offline

Activity: 686
Merit: 521



View Profile
September 16, 2016, 08:11:23 AM
 #1817



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.


Join the Elastic revolution! 
Elastic - Decentralized Grid-computing
[/center]
hagie
Hero Member
*****
Offline Offline

Activity: 786
Merit: 500



View Profile
September 16, 2016, 08:26:07 AM
 #1818



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

josegines
Hero Member
*****
Offline Offline

Activity: 686
Merit: 521



View Profile
September 16, 2016, 08:41:48 AM
 #1819



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


Join the Elastic revolution! 
Elastic - Decentralized Grid-computing
[/center]
hagie
Hero Member
*****
Offline Offline

Activity: 786
Merit: 500



View Profile
September 16, 2016, 08:47:32 AM
 #1820



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

Yes Blockcahin was reseted - I only got some xel from the public node from EK , I'll share some .

Transaction on the way ..

Pages: « 1 ... 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 [91] 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 ... 346 »
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!