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: 1111
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: 1111
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: 1111
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.)
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
 |
February 05, 2014, 06:46:56 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. What if we limited it to 100 Turing scripts per block?
|
|
|
|
xyzzyx
Sr. Member
  
Offline
Activity: 490
Merit: 250
I don't really come from outer space.
|
 |
February 05, 2014, 06:47:28 AM |
|
Why would 1 millisecond execution time impact 1000 TPS transaction times? Maybe reduce it to half millisecond time budget to give some room
Don't think in terms of real time. The VM is virtual. So is the time.
|
"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
|
|
|
CIYAM
Legendary
Offline
Activity: 1890
Merit: 1111
Ian Knowles - CIYAM Lead Developer
|
 |
February 05, 2014, 06:48:08 AM |
|
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?
I do think that "subleq" would end up becoming a CPU bottleneck but I am now going on the assumption we have an *efficient* instruction set (so am now ignoring the CPU issue) but I think that even assuming no CPU issue the bandwidth usage would become an even bigger problem.
|
|
|
|
jl777
Legendary
Offline
Activity: 1176
Merit: 1134
|
 |
February 05, 2014, 06:48:59 AM |
|
Why would 1 millisecond execution time impact 1000 TPS transaction times? Maybe reduce it to half millisecond time budget to give some room
Don't think in terms of real time. The VM is virtual. So is the time. Yes, but it is running on similar class servers, so we can estimate time to correspond to number of opcodes interpreted. Wont be exact, but as long as we charge by opcodes executed, all the scripts will behave in expected manner
|
|
|
|
|