Properly handle restart edge cases between ExEx and new engine #10489
Open
Labels
A-blockchain-tree
Related to sidechains, reorgs and pending blocks
A-exex
Execution Extensions
M-prevent-stale
Prevents old inactive issues/PRs from being closed due to inactivity
S-needs-design
This issue requires design work to think about how it would best be accomplished
With the previous engine, an exex might loose a chain notification, if the node crashes/stops before it has time to handle it. This means that on boot-up the exex should actually account for that since its tip will be behind the node tip.
With the new engine however, the exex will actually be ahead of the node in case of a crash or simple restart, since part of the chain will be purely in-memory
Example:
1a(db) -> 2a(in-mem) -> 3a(in-mem)
3a
2a
from CL2a
to exex, even though its ready for4a
This becomes more problematic if
2a -> 3a
gets reorged during the crash and the exex depends solely onChainReorged { old_chain }
:TxHash -> T
1a(db) -> 2a(in-mem) -> 3a(in-mem)
3a
1a -> 2b -> 3b
2b
from CL2b
to exex as a normalChainCommitted
notification. How is the exex supposed to clean-up the table on 1)?With the roll-out of the new engine we should do:
old_chain
)Proposal:
Additional context
No response
The text was updated successfully, but these errors were encountered: