Author

Topic: NXT :: descendant of Bitcoin - Updated Information - page 1087. (Read 2761629 times)

sr. member
Activity: 490
Merit: 250
I don't really come from outer space.
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?

It would make the problem even worse

I am a poor communicator.  Sad

legendary
Activity: 2142
Merit: 1010
Newbie
So the script will be able to access any AM in the blockchain. The app needs to seed the script with the required block#, etc.
Will the scripts have an easy way to access alias data also? If so, that could be another way to pass data to the script

Scripts will have easy way to access any data on the blockchain.
legendary
Activity: 1722
Merit: 1217
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?

It would make the problem even worse
legendary
Activity: 1176
Merit: 1134
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
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
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.
sr. member
Activity: 490
Merit: 250
I don't really come from outer space.
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.
legendary
Activity: 1176
Merit: 1134
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?
member
Activity: 98
Merit: 10
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.)
legendary
Activity: 1176
Merit: 1134
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
legendary
Activity: 1176
Merit: 1134
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
sr. member
Activity: 490
Merit: 250
I don't really come from outer space.
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?
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
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.
legendary
Activity: 1722
Merit: 1217
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.
legendary
Activity: 1176
Merit: 1134
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?
legendary
Activity: 1176
Merit: 1134
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
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
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)?
legendary
Activity: 1176
Merit: 1134
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? Smiley
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
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).
legendary
Activity: 1176
Merit: 1134
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.
sr. member
Activity: 490
Merit: 250
I don't really come from outer space.
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.
Jump to: