Network transactions #606
Replies: 4 comments 7 replies
-
DoS minimizationHow do we prevent users from submitting invalid transactions which cause the operator to waste time executing and proving only to have this fail? One argument provided so far is that execution is cheap, and an executed transaction should be provable which minimizes this risk. How do we prevent transactions that never complete? Do we restrict the instruction set of network transactions? Similarly how do we minimize receiving transactions with too little gas? Gas estimation is often done by simulating/executing beforehand offchain but that won't work since the state may/will change. Once again we could restrict the instruction set to make gas estimation trivially calculable without simulation. |
Beta Was this translation helpful? Give feedback.
-
Possible trigger conditionsWhat conditions should users be able to select. I'm just guessing here; I don't really know what would be desired.
Should conditions be combinable, if yes to what limit? |
Beta Was this translation helpful? Give feedback.
-
Fee structuringMaybe a bit premature/out-of-scope, but how do we structure things so node operators are encouraged to run these transactions? This will likely form part of the overall fee design for the protocol so not strictly necessary to discuss it here. |
Beta Was this translation helpful? Give feedback.
-
Design attempt #1
This elides error handling etc, but I think is fairly simple. What can occur is that the network transaction conflicts with another transaction submitted before the network transaction completes. This could be prevented around by marking the appropriate state inputs in some way, but that seems more complex for no good reason aka no reason to prefer the network transaction over the other. This does raise the question of transaction selection/acceptance strategies, but in this case probably the operator could design a more general system where the mempool can evict transactions if an incoming conflicting transaction is deemed more valauable. Transaction execution and proving can of course be delegated etc, and that design is orthogonal to this. |
Beta Was this translation helpful? Give feedback.
-
Network transactions are a major unsupported feature where users may submit a public transaction which the network should execute when some user-defined conditions are met. The transactions must be public since they'll be executed and proven by the node operator.
There are some open questions regarding this feature, which we should discuss and then iterate on a design.
I'll enumerate my initial questions here, but will initialize discussion threads for them below.
Beta Was this translation helpful? Give feedback.
All reactions