Pages:
Author

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

sr. member
Activity: 464
Merit: 260
(…)

I'm not sure this answers your specific question, but the design already allows the job author to set multiple iterations which provide bounties as well as specific criteria for what qualifies as a bounty for each iteration.  once all bounties for an iteration is done the miners all move  to the next iteration

Well, I didn't have a specific question per se, I was just thinking aloud, especially that e part about memory. A computer consists of a processor and data storage. We are focussing on the processing part, which is cool, but there is the memory part as well, which needs attention.

the simplest solution would be to make it the job authors responsibility to somehow provide the needed data, essentially working as a kind of RAM in which miners can check for relevant data.

However, even with a memory system in place, there may be scenarios, in which miners have little to no incentive to use this memory.

Let's take a look at the bruteforcing a password job. I'm not saying that this is something, Elastic should be used for, and you are welcome to provide a different example, but this specific job shows Elastics shortcomings pretty well:

It is pretty much throwing random input into a function and running it until a single solution is found. There aren't multiple solutions, just one. This greatly affects how miners behave:

Miners have no incentive to share information about which inputs they already tested, because they don't want to give other miners an edge. This means, that in a worst-case scenario, many inputs are tested by multiple miners, effectively lessening Elastics power.

I'm sorry that I'm rambling.

i see what you are saying but that is no different than how all mining works now...also it is not a limitation in elastic but the miner.  a pool could easily be setup to ensure the unique work is done by all miners in the pool.

But either way...a lot of this depends on how well the author codes the job.

Edit: please keep in mind that the miner i wrote is just a proof on concept to demo all the functionality.  It is expected that is thers will come along and improve on the design, make hardware specific optimizations, etc
hero member
Activity: 994
Merit: 513
(…)

I'm not sure this answers your specific question, but the design already allows the job author to set multiple iterations which provide bounties as well as specific criteria for what qualifies as a bounty for each iteration.  once all bounties for an iteration is done the miners all move  to the next iteration

Well, I didn't have a specific question per se, I was just thinking aloud, especially the part about memory. A computer consists of a processor and data storage. We are focussing on the processing part, which is cool, but there is the memory part as well, which needs attention.

the simplest solution would be to make it the job authors responsibility to somehow provide the needed data, essentially working as a kind of RAM in which miners can check for relevant data.

However, even with a memory system in place, there may be scenarios, in which miners have little to no incentive to use this memory.

Let's take a look at the bruteforcing a password job. I'm not saying that this is something, Elastic should be used for, and you are welcome to provide a different example, but this specific job shows Elastics shortcomings pretty well:

It is pretty much throwing random input into a function and running it until a single solution is found. There aren't multiple solutions, just one. This greatly affects how miners behave:

Miners have no incentive to share information about which inputs they already tested, because they don't want to give other miners an edge. This means, that in a worst-case scenario, many inputs are tested by multiple miners, effectively lessening Elastics power.

I'm sorry that I'm rambling.
sr. member
Activity: 464
Merit: 260
Elastic and memory

This is mostly me thinking aloud, to figure this out. It's very possible that questions raised here already have answers I'm unaware of.

I've been thinking about this for a little while now, maybe someone who has a little mor insight in this can give some input on that matter. As far as i know, at the moment, elastic is essentially memory-less. This means, there are only two possible job scenarios at the moment:

Job 01 is issued. Bitcoin mining is a good example, the goal is to find a magic hash, to simplify things, lets say 8 figures long, with four zeros up front.

Miners A, B, C, D, E start working on it.

A finds 00001efg
B finds 00002ghi
C finds nothing and cancels
D finds 00003ijk
E finds 00001efg, the same as miner A (in case of finding hashes, this is highly unlikely, but depending on the specific task, this is a possible scenario.

Job 02 is issued. This time, the goal is to find a specific hash. Let's say, we try to bruteforce a password (Don't, though. This is for theories sake only). The password is "abc123".

A finds nothing and cancels
B finds "abc123" first
C finds "abc123" second
D sees that the problem is solved and cancels
E sees that the problem is solved and cancels

Without memory, these are the two types of jobs possible. but both jobs suffer from lack of memory as well, while Job 02 is a prime example for it:

If we assume, that Miners A, B, C, D and E use roughly the same approach to bruteforcing, meaning, following roughly the same iterations of figures (like trying "000001", then "000002" and so on, not that this is a good way to approach this Wink ), this means that all of them try the same iterations, until the fastest one eventually hits the right solution. This is a giant loss of computing power. Now, in the specific scenario, the solution would be to generate random inputs, instead of following a system, but in other cases, this leads to the network as a whole computing functions, which already have a (negative) solution.

Having a memory system in place, miners could in theory write iterations they already tried in there. In practice, this works against their personal goals, because getting the job bounty is essentially a race. Thus, you'd want concurrent miners to work to as many negative iterations as possible.

What looks like a solution to this problem is to pay a bounty for every iteration computed, no matter how successful it is. However, this leads to the problem, that a Miner can intentionally hold back the correct answer to keep the job open.
If the bounty for finding the right solution is not high enough, sending negative results and getting paid for them may be more profitable than sending the solution.
If the bounty for finding the right solution is too high, sending negative results and helping other miners doing so may be not as appealing as hoping to find the right solution.

This is a messy situation. Here is an idea for a solution, though:

Pools.

I miners are organized in profit-sharing pools, they have incentive to exchange negative results with each other, because they are racing against another pool, which might win the race. In this scenario, the overall computation power would still be lowered, due to different pools competing against each other, but it would be higher than in a scenario, in which every miner is on their own.

Additionally, a scenario is possible, in which "spies" are registered in multiple pools, thus seeing the results of each other. Bit where would that lead? would that lead to Miners withholding information again? Would that lead to Miners avoiding pools? Oh, game theory, thou art a heartless bitch…

To summarize my train of thought: while it would be great to have a memory function, it may be hard to incentivise miners to use them.

This is it for now, the sun is stewing my brain. Will get back at it later.

I'm not sure this answers your specific question, but the design already allows the job author to set multiple iterations which provide bounties as well as specific criteria for what qualifies as a bounty for each iteration.  once all bounties for an iteration is done the miners all move  to the next iteration
legendary
Activity: 1708
Merit: 1000
Reality is stranger than fiction
Whoever runs full nodes will forge new coins? Also the more coins a node holds, the more coins it forges?


Can someone please answer, thanks

You'll be able to forge only if you login to that node with account that have some XEL. I don't remember how much exactly but NXT had some limit (1k or 10k coins) from which you could start forging. I don't know if @EK removed/changed this limit.

Second part of your question: Forging works proportional to amount of coins you have. To simplify this let's assume that there is 10k total coins and 3 forgers in network.

First have 1k.
Second have 2k.
Third have 3k.

In sum, 6k (60%) of coins forging blocks. To calculate chance for all of them:

First: 1/5 * 100 = 20% chance to forge a block.
Second: 2/5 * 100 = 40% chance to forge a block.
Third: 3/5 * 100 = 60% chance to forge a block.

Another thing. If compute part of Elastic will be ready you can earn coins by computing. So if you offer your CPU/RAM to network you can earn XEL.

Thank you for the thorough answer  Cool Cool
legendary
Activity: 2165
Merit: 1002

Is there a guide of similar detail for windows? I already have a windows server machine always on and could run a node there.
I don't want to setup a full time linux machine just for that

You can try with this guide: https://talk.elasticexplorer.org/t/how-to-setup-elastic-core-xel-online-wallet-on-windows-platform/70

Oh OK. I already tried that back when byrallier first posted it.

I was assuming things will have changed by the time lightwallet node binaries are released.

I suppose There is enough info between the available guides to figure it out when the time comes
hero member
Activity: 1092
Merit: 507
btcstakes.com
Yet another supercomputer project? Come on.

Elastic Project is the pioneer to all these "other" supercomputer projects and it hasn't even launched. It's at the forefront. Get your facts right sir.  Wink
hero member
Activity: 994
Merit: 513
Elastic and memory

This is mostly me thinking aloud, to figure this out. It's very possible that questions raised here already have answers I'm unaware of.

I've been thinking about this for a little while now, maybe someone who has a little mor insight in this can give some input on that matter. As far as i know, at the moment, elastic is essentially memory-less. This means, there are only two possible job scenarios at the moment:

Job 01 is issued. Bitcoin mining is a good example, the goal is to find a magic hash, to simplify things, lets say 8 figures long, with four zeros up front.

Miners A, B, C, D, E start working on it.

A finds 00001efg
B finds 00002ghi
C finds nothing and cancels
D finds 00003ijk
E finds 00001efg, the same as miner A (in case of finding hashes, this is highly unlikely, but depending on the specific task, this is a possible scenario.

Job 02 is issued. This time, the goal is to find a specific hash. Let's say, we try to bruteforce a password (Don't, though. This is for theories sake only). The password is "abc123".

A finds nothing and cancels
B finds "abc123" first
C finds "abc123" second
D sees that the problem is solved and cancels
E sees that the problem is solved and cancels

Without memory, these are the two types of jobs possible. but both jobs suffer from lack of memory as well, while Job 02 is a prime example for it:

If we assume, that Miners A, B, C, D and E use roughly the same approach to bruteforcing, meaning, following roughly the same iterations of figures (like trying "000001", then "000002" and so on, not that this is a good way to approach this Wink ), this means that all of them try the same iterations, until the fastest one eventually hits the right solution. This is a giant loss of computing power. Now, in the specific scenario, the solution would be to generate random inputs, instead of following a system, but in other cases, this leads to the network as a whole computing functions, which already have a (negative) solution.

Having a memory system in place, miners could in theory write iterations they already tried in there. In practice, this works against their personal goals, because getting the job bounty is essentially a race. Thus, you'd want concurrent miners to work to as many negative iterations as possible.

What looks like a solution to this problem is to pay a bounty for every iteration computed, no matter how successful it is. However, this leads to the problem, that a Miner can intentionally hold back the correct answer to keep the job open.
If the bounty for finding the right solution is not high enough, sending negative results and getting paid for them may be more profitable than sending the solution.
If the bounty for finding the right solution is too high, sending negative results and helping other miners doing so may be not as appealing as hoping to find the right solution.

This is a messy situation. Here is an idea for a solution, though:

Pools.

I miners are organized in profit-sharing pools, they have incentive to exchange negative results with each other, because they are racing against another pool, which might win the race. In this scenario, the overall computation power would still be lowered, due to different pools competing against each other, but it would be higher than in a scenario, in which every miner is on their own.

Additionally, a scenario is possible, in which "spies" are registered in multiple pools, thus seeing the results of each other. Bit where would that lead? would that lead to Miners withholding information again? Would that lead to Miners avoiding pools? Oh, game theory, thou art a heartless bitch…

To summarize my train of thought: while it would be great to have a memory function, it may be hard to incentivise miners to use them.

This is it for now, the sun is stewing my brain. Will get back at it later.
hero member
Activity: 535
Merit: 500
Whoever runs full nodes will forge new coins? Also the more coins a node holds, the more coins it forges?


Can someone please answer, thanks

You'll be able to forge only if you login to that node with account that have some XEL. I don't remember how much exactly but NXT had some limit (1k or 10k coins) from which you could start forging. I don't know if @EK removed/changed this limit.

Second part of your question: Forging works proportional to amount of coins you have. To simplify this let's assume that there is 10k total coins and 3 forgers in network.

First have 1k.
Second have 2k.
Third have 3k.

In sum, 6k (60%) of coins forging blocks. To calculate chance for all of them:

First: 1/5 * 100 = 20% chance to forge a block.
Second: 2/5 * 100 = 40% chance to forge a block.
Third: 3/5 * 100 = 60% chance to forge a block.

Another thing. If compute part of Elastic will be ready you can earn coins by computing. So if you offer your CPU/RAM to network you can earn XEL.
hero member
Activity: 784
Merit: 500
Yet another supercomputer project? Come on.
haha, comedian !
I guess you just read the titles only. Go, study and then put comments here.
dont feed the troll...
legendary
Activity: 1708
Merit: 1000
Reality is stranger than fiction
Whoever runs full nodes will forge new coins? Also the more coins a node holds, the more coins it forges?


Can someone please answer, thanks
hero member
Activity: 535
Merit: 500

Is there a guide of similar detail for windows? I already have a windows server machine always on and could run a node there.
I don't want to setup a full time linux machine just for that

You can try with this guide: https://talk.elasticexplorer.org/t/how-to-setup-elastic-core-xel-online-wallet-on-windows-platform/70
hero member
Activity: 535
Merit: 500
Yet another supercomputer project? Come on.

Quite unfair to call Elastic "yet another". Elastic has timeline roots way before most of (cryptocurrency based) supercomputers you read about. So it's more fair to say that Golem (or anything else) is "yet another supercomputer".
sr. member
Activity: 448
Merit: 250
Ben2016
Yet another supercomputer project? Come on.
haha, comedian !
I guess you just read the titles only. Go, study and then put comments here.
sr. member
Activity: 581
Merit: 253
Yet another supercomputer project? Come on.

HAHAHA

Trying to buy cheap?
sr. member
Activity: 392
Merit: 253
Open and Transparent Science Powered By Blockchain
Yet another supercomputer project? Come on.
legendary
Activity: 2165
Merit: 1002

Is there a guide of similar detail for windows? I already have a windows server machine always on and could run a node there.
I don't want to setup a full time linux machine just for that
sr. member
Activity: 448
Merit: 250
Ben2016
Do we have an infographic on a comparison between elastic and other coins? I would be willing to donate to whoever makes a good one Smiley
Here's the one in our Forum ( I believe EK wrote it)
https://talk.elasticexplorer.org/t/elastic-compared-to-other-competitors/30
sr. member
Activity: 527
Merit: 250
Do we have an infographic on a comparison between elastic and other coins? I would be willing to donate to whoever makes a good one Smiley
sr. member
Activity: 448
Merit: 250
Ben2016
Thank you guys ! The Revolution of supercomputers is about to start . Congratulations EK ( you never lost hope), Coralreefer ( as frustrated as you were at times, you stayed) and Unvoid ( a man that brought everyone together) Grin
sr. member
Activity: 243
Merit: 250
another quick update...

When EK wrote his BTC example, he identified 2 key issues.  1) We needed a more flexible memory model, and 2) Incorporating Functions into the language was needed (it was originally not incorporated due to issues w/ recursion).  I am about done with the upgrades to the ElasticPL engine which addresses these 2 issues as well as incorporates several other fixes to prepare for SN integration.

To see an example of how much more user friendly the language is now, I rewrote EK's BTC example using the language upgrades:

     https://github.com/sprocket-fpga/xel_miner/blob/master/examples/SHA256_BTC.epl

Here's what it looked like before the changes to ElasticPL:

     https://github.com/OrdinaryDude/elastic_bitcoin_miner/blob/master/test

I am still a couple weeks away from wrapping up all the changes to ElasticPL, but they should be ready to test soon.  However, there are still other key issues that still need to be addressed before everything is ready:

     1) Will we have POW, and if so what logic is needed to ensure the miner actually performed the work
     2) How to store data between iterations and distribute to miners
     3) SN Integration

These are complex issues that will take time to solve.  It will require quite a bit of change to both the Core Server and Miner and will require quite a bit of coding from both EK and myself to complete.





There are no words to express my excitement.


EK,coralreefer,unvoid  u all my hero!
Pages:
Jump to: