-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Store tx final application state on block #712
Comments
Agree! |
We are doing a draft of this implementation, but only during export and import. |
Any advance @vncoelho ? can I help you with this ? We have two alternatives, change public Transaction[] Transactions; to TransactionState -> With transaction and state, or create a new property VMState[] TransactionStates with the state of every TX, i think that is better the first one, because we could want to store the result, or something more in the future. |
I had thought about just during export and import. |
@igormcoelho, following our recent discussion, is this still being considered? |
For me this is very important |
This is a thing we need to decide... solid states and less bug fixing possibilities, or else? 🤔 |
Could we store the |
@Tommo-L we are going in a slightly different direction... it's better than We have discussed in other posts, alternatives to definitive solid states on blocks, that may cause network forks when bugs are fixed. From a "code-is-law" perspective, codes and bugs are "absorbed" into protocol, but we (at least myself) are defending a "protocol-is-law" perspective, where code bugs are treated as bugs, not protocol decisions, so they need fixing without causing network forks. If we put a
So, this path we are proposing is very novel on blockchain world, in my opinion, and may require three things in my opinion:
I think we need to better discuss this, to find a "perfect" solution, because depending on next block to be sure on a FAULT state is like looking to the future, to decide the present 😂 and the future may not be available... What do you think @Tommo-L , is it going in a reasonable direction? |
I think that this was done |
We think this is done. I'm closing it but if you think this is a mistake, please reopen this issue. |
* pr neo-project#712 sync * 2.7.4 sendmany fix
I think it's important to persist on blocks the final state of the application transactions, for example, FAULT or HALT.
It's a single extra byte per tx, but the gains with this are huge. The capability of evolving the chain will also be larger, as past faulted/halted events will be guaranteed to stay in the same state.
As discussed on other threads, this complements audit capabilities, including MPT for storages, MPT for past transactions (including return value) and MPT for past blocks. Notifications can perhaps be kept on another MPT.
The text was updated successfully, but these errors were encountered: