You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
EIP 658 which was introduced in Byzantium changes the transaction receipt. It swaps the intermediate transaction root (the state root after the transaction has executed) with the transaction execution status.
This poses problems for our current implementation of the VM, which is mentioned in the code.
The problem is that in runBlock we checkpoint the StateManager and then either commit or revert it, depending on if the VM had any internal errors (at least this seems to be the reason to me).
A naive fix (but also an ugly one) would do above only if we are at a fork >= Byzantium and thus checkpoint/commit every TX in order to get the state root. The problem with this is, that if the VM itself crashes, we are left with an unprocessed blocks and have no means to recover the previous state.
It seems to me that for < Byzantium VMs we need to add a similar checkpointing mechanism which is invoked every time we run a block. But I'm a bit in the dark here. Any ideas?
The text was updated successfully, but these errors were encountered:
EIP 658 which was introduced in Byzantium changes the transaction receipt. It swaps the intermediate transaction root (the state root after the transaction has executed) with the transaction execution status.
This poses problems for our current implementation of the VM, which is mentioned in the code.
The problem is that in
runBlock
wecheckpoint
theStateManager
and then eithercommit
orrevert
it, depending on if the VM had any internal errors (at least this seems to be the reason to me).A naive fix (but also an ugly one) would do above only if we are at a fork >= Byzantium and thus checkpoint/commit every TX in order to get the state root. The problem with this is, that if the VM itself crashes, we are left with an unprocessed blocks and have no means to recover the previous state.
It seems to me that for < Byzantium VMs we need to add a similar checkpointing mechanism which is invoked every time we run a block. But I'm a bit in the dark here. Any ideas?
The text was updated successfully, but these errors were encountered: