xyzzyx
Sr. Member
Offline
Activity: 490
Merit: 250
I don't really come from outer space.
|
|
February 05, 2014, 06:19:16 AM |
|
Not necessarily. Just don't expect the result to be available by the next block.
CfB *himself* said 1000+ TPS would only be *possible* if protocol was changed to binary and kept "dead simple". So - how is it now suddenly become *possible* to also execute (even just a few) instructions of VM "per transaction" (as you can't assume they won't *all* want to do that) and still have 1000+ TPS? Does anyone else see the problem here? Don't tie them together. The VM runs in a separate thread from the Nxt protocol. Use the referenced transaction option of the Nxt protocol to link the result to whatever you want to do with it. It doesn't matter if the result comes in the next block, or 100 blocks later.
|
"An awful lot of code is being written ... in languages that aren't very good by people who don't know what they're doing." -- Barbara Liskov
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 06:19:22 AM |
|
kill -9 after time limit is up. time limit = # NXT paid * milliseconds
The time it would take to run a program would depend on the underlying computer. This may lead to a given program with the same input succeeding when run on a fast/powerful computer, but not succeeding when run on a less fast/powerful computer. And it would mean the idea of "forging" on cell phones would be dead, aside from giving up fast transactions, 1000 tps, as some have been claiming. Services provided by "Service Providers" on beefy servers cell phones are expected to go to slim clients, forging via Account Control and pooled forging
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 06:20:13 AM |
|
Not necessarily. Just don't expect the result to be available by the next block.
CfB *himself* said 1000+ TPS would only be *possible* if protocol was changed to binary and kept "dead simple". So - how is it now suddenly become *possible* to also execute (even just a few) instructions of VM "per transaction" (as you can't assume they won't *all* want to do that) and still have 1000+ TPS? Does anyone else see the problem here? see above
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 06:21:13 AM |
|
We need some kind of a competition. The goal is to find a language with min number of opcodes.
OH NO! NOT BRAINFUCK !!!!!!!!!!!!!!!!! Apparently we managed to get even worse than that - I think maybe CfB might have changed his mind about this now. well this sort of thing would be a long way off anyways even if we did do it. the more i think about it the more i think about how important specialization is. these sorts of blockchains should probably best be built on a per application basis. one unique blockchain per dac. part of the beauty of nxt forging is that multiple blockchains can coexist with out competing for security resources. (atleast not in the way of a POW coin) Yes! I knew big brained guys will figure out the parts I cant. I just see the high level picture, need help with the details James
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 06:24:13 AM |
|
Not necessarily. Just don't expect the result to be available by the next block.
CfB *himself* said 1000+ TPS would only be *possible* if protocol was changed to binary and kept "dead simple". So - how is it now suddenly become *possible* to also execute (even just a few) instructions of VM "per transaction" (as you can't assume they won't *all* want to do that) and still have 1000+ TPS? Does anyone else see the problem here? Don't tie them together. The VM runs in a separate thread from the Nxt protocol. Use the referenced transaction option of the Nxt protocol to link the result to whatever you want to do with it. It doesn't matter if the result comes in the next block, or 100 blocks later. I assumed the Turing complete stuff is application specific and does not need to be done by all the nodes. Why would all the nodes care if the email was sent out as per the Turing saved AM instructed? I think only the forging node has to run the Turing scripts. Turing scripts are not part of the NXT blockchain, they just utilize AM and alias to function. The key is to be able to reliably run an "algorithm", but more usually business process, like deposit/withdrawal. No heavy lifting as far as computation goes. James
|
|
|
|
Anon136
Legendary
Offline
Activity: 1722
Merit: 1217
|
|
February 05, 2014, 06:26:26 AM |
|
Not necessarily. Just don't expect the result to be available by the next block.
CfB *himself* said 1000+ TPS would only be *possible* if protocol was changed to binary and kept "dead simple". So - how is it now suddenly become *possible* to also execute (even just a few) instructions of VM "per transaction" (as you can't assume they won't *all* want to do that) and still have 1000+ TPS? Does anyone else see the problem here? Don't tie them together. The VM runs in a separate thread from the Nxt protocol. Use the referenced transaction option of the Nxt protocol to link the result to whatever you want to do with it. It doesn't matter if the result comes in the next block, or 100 blocks later. I assumed the Turing complete stuff is application specific and does not need to be done by all the nodes. Why would all the nodes care if the email was sent out as per the Turing saved AM instructed? I think only the forging node has to run the Turing scripts. Turing scripts are not part of the NXT blockchain, they just utilize AM and alias to function. The key is to be able to reliably run an "algorithm", but more usually business process, like deposit/withdrawal. No heavy lifting as far as computation goes. James If the network didnt check the forgers work than forgers could just publish false answers every time and claim the transaction fees anway. meaning they would have no incentive to actually execute the code.
|
Rep Thread: https://bitcointalk.org/index.php?topic=381041If one can not confer upon another a right which he does not himself first possess, by what means does the state derive the right to engage in behaviors from which the public is prohibited?
|
|
|
TwinWinNerD
Legendary
Offline
Activity: 1680
Merit: 1001
CEO Bitpanda.com
|
|
February 05, 2014, 06:27:53 AM |
|
|
|
|
|
xyzzyx
Sr. Member
Offline
Activity: 490
Merit: 250
I don't really come from outer space.
|
|
February 05, 2014, 06:29:02 AM |
|
Why would all the nodes care if the email was sent out as per the Turing saved AM instructed?
You'd want multiple nodes to run it in order to check each other's work so it can be trustless. Otherwise, I could just write a malicious node to take your money and lie about the results.
|
"An awful lot of code is being written ... in languages that aren't very good by people who don't know what they're doing." -- Barbara Liskov
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 06:32:11 AM |
|
Not necessarily. Just don't expect the result to be available by the next block.
CfB *himself* said 1000+ TPS would only be *possible* if protocol was changed to binary and kept "dead simple". So - how is it now suddenly become *possible* to also execute (even just a few) instructions of VM "per transaction" (as you can't assume they won't *all* want to do that) and still have 1000+ TPS? Does anyone else see the problem here? Don't tie them together. The VM runs in a separate thread from the Nxt protocol. Use the referenced transaction option of the Nxt protocol to link the result to whatever you want to do with it. It doesn't matter if the result comes in the next block, or 100 blocks later. I assumed the Turing complete stuff is application specific and does not need to be done by all the nodes. Why would all the nodes care if the email was sent out as per the Turing saved AM instructed? I think only the forging node has to run the Turing scripts. Turing scripts are not part of the NXT blockchain, they just utilize AM and alias to function. The key is to be able to reliably run an "algorithm", but more usually business process, like deposit/withdrawal. No heavy lifting as far as computation goes. James If the network didnt check the forgers work than forgers could just publish false answers every time and claim the transaction fees anway. meaning they would have no incentive to actually execute the code. Ah, Evil Bob! My brain hurts when I think about all the Evil Bob scenarios, so I leave that to you If all the nodes have to compute it, then all the nodes have to compute it.
|
|
|
|
CIYAM
Legendary
Offline
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
|
|
February 05, 2014, 06:32:44 AM |
|
Why would all the nodes care if the email was sent out as per the Turing saved AM instructed?
You'd want multiple nodes to run it in order to check each other's work so it can be trustless. Otherwise, I could just write a malicious node to take your money and lie about the results. *Exactly* (had already made that point but I think it was missed).
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 06:33:02 AM |
|
Why would all the nodes care if the email was sent out as per the Turing saved AM instructed?
You'd want multiple nodes to run it in order to check each other's work so it can be trustless. Otherwise, I could just write a malicious node to take your money and lie about the results. Is your name Bob?
|
|
|
|
CIYAM
Legendary
Offline
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
|
|
February 05, 2014, 06:34:43 AM |
|
If all the nodes have to compute it, then all the nodes have to compute it.
So once again - do you want 1000+ TPS or do you want these "arbitrary script" type txs (as I don't believe that you are going to be able to have both)?
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 06:36:42 AM |
|
Why would all the nodes care if the email was sent out as per the Turing saved AM instructed?
You'd want multiple nodes to run it in order to check each other's work so it can be trustless. Otherwise, I could just write a malicious node to take your money and lie about the results. *Exactly* (had already made that point but I think it was missed). Guilty as charged. So most (all) of the network needs to run all the Turing scripts. We need beefy hub servers, if we have 1000 Turing scripts running per second, that would mean NXT is worth a LOT more! That is a lot of transaction fees. Which means there wont be that many scripts running all the time. I dont think runtime is as big of an issue as people are worried about. Interpreted VM can go pretty fast and I dont see the Turing scripts being thousands of lines of C code. The example code on etherium site was less than 20 lines of code. Even interpreted, very fast to run. James
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 06:37:58 AM |
|
If all the nodes have to compute it, then all the nodes have to compute it.
So once again - do you want 1000+ TPS or do you want these "arbitrary script" type txs (as I don't believe that you are going to be able to have both)? 1000 * 1 millisecond = 1 second Call a 1 millisecond script a transaction and it is part of the 1000 TPS generates the same fee so what does it matter the type it is?
|
|
|
|
Anon136
Legendary
Offline
Activity: 1722
Merit: 1217
|
|
February 05, 2014, 06:39:28 AM |
|
If all the nodes have to compute it, then all the nodes have to compute it.
So once again - do you want 1000+ TPS or do you want these "arbitrary script" type txs (as I don't believe that you are going to be able to have both)? you have convinced me for one CIYAM. another blockchain another day. i definitely think that nxt's proof of stake lays a foundation for a much better DAC than pow. someone should definitely develop a turing complete nxt, just not on this chain.
|
Rep Thread: https://bitcointalk.org/index.php?topic=381041If one can not confer upon another a right which he does not himself first possess, by what means does the state derive the right to engage in behaviors from which the public is prohibited?
|
|
|
CIYAM
Legendary
Offline
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
|
|
February 05, 2014, 06:41:57 AM |
|
1000 * 1 millisecond = 1 second Call a 1 millisecond script a transaction and it is part of the 1000 TPS generates the same fee so what does it matter the type it is?
Although the actual amount of CPU pain might not be overwhelming the real problem is going to be the "size" of the tx (I can't imagine that these scripts are going to be anywhere near as small as a standard NXT tx currently is). The whole 1000+ TPS is about "size" (and "bandwidth") more than it is about actual CPU time.
|
|
|
|
xyzzyx
Sr. Member
Offline
Activity: 490
Merit: 250
I don't really come from outer space.
|
|
February 05, 2014, 06:44:02 AM |
|
If all the nodes have to compute it, then all the nodes have to compute it.
So once again - do you want 1000+ TPS or do you want these "arbitrary script" type txs (as I don't believe that you are going to be able to have both)? you have convinced me for one CIYAM. another blockchain another day. i definitely think that nxt's proof of stake lays a foundation for a much better DAC than pow. someone should definitely develop a turing complete nxt, just not on this chain. Thought experiment time. Let's say each node gets to run an arbitrary program in a VM, but only 1 instruction per block. Will that impact 1000 TPS transaction times? How about 2 instructions per block? I think you see where this is going. N instructions per block (where N is variable based on the speed of the underlying hardware)? Will that impact 1000 TPS transaction times?
|
"An awful lot of code is being written ... in languages that aren't very good by people who don't know what they're doing." -- Barbara Liskov
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 06:44:21 AM |
|
1000 * 1 millisecond = 1 second Call a 1 millisecond script a transaction and it is part of the 1000 TPS generates the same fee so what does it matter the type it is?
Although the actual amount of CPU pain might not be overwhelming the problem is going to be the "size" of the tx. The whole 1000+ TPS is about "size" (and "bandwidth") more than it is about actual CPU time. If it is about bandwidth why was everyone so worked up about inefficiencies of subleq? So interpreted subleq VM is not a CPU bottleneck? You are worried about bandwidth and amount of AM? James
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
February 05, 2014, 06:45:46 AM |
|
If all the nodes have to compute it, then all the nodes have to compute it.
So once again - do you want 1000+ TPS or do you want these "arbitrary script" type txs (as I don't believe that you are going to be able to have both)? you have convinced me for one CIYAM. another blockchain another day. i definitely think that nxt's proof of stake lays a foundation for a much better DAC than pow. someone should definitely develop a turing complete nxt, just not on this chain. Thought experiment time. Let's say each node gets to run an arbitrary program in a VM, but only 1 instruction per block. Will that impact 1000 TPS transaction times? How about 2 instructions per block? I think you see where this is going. N instructions per block (where N is variable based on the speed of the underlying hardware)? Will that impact 1000 TPS transaction times? Why would 1 millisecond execution time impact 1000 TPS transaction times? Maybe reduce it to half millisecond time budget to give some room
|
|
|
|
Zahlen
Member
Offline
Activity: 98
Merit: 10
|
|
February 05, 2014, 06:46:34 AM |
|
If the network didnt check the forgers work than forgers could just publish false answers every time and claim the transaction fees anway. meaning they would have no incentive to actually execute the code.
Algos could be designed to be easy to check. Like factoring numbers: difficult to factor, but easy to check that the product of factors is the original. Proof of computation! So one (or a few) beefy nodes have a large computation burden while many smaller nodes have a lower burden. (Can't be done for all algos. This will incentivize and select for those which can be done more intelligently.)
|
|
|
|
|