1a8b7469e3
* move quarantine outside of chaindag The quarantine has been part of the ChainDAG for the longest time, but this design has a few issues: * the function in which blocks are verified and added to the dag becomes reentrant and therefore difficult to reason about - we're currently using a stateful flag to work around it * quarantined blocks bypass the processing queue leading to a processing stampede * the quarantine flow is unsuitable for orphaned attestations - these should also should be quarantined eventually Instead of processing the quarantine inside ChainDAG, this PR moves re-queueing to `block_processor` which already is responsible for dealing with follow-up work when a block is added to the dag This sets the stage for keeping attestations in the quarantine as well. Also: * make `BlockError` `{.pure.}` * avoid use of `ValidationResult` in block clearance (that's for gossip) |
||
---|---|---|
.. | ||
.gitignore | ||
block_sim.nim | ||
block_sim.nim.cfg | ||
simutils.nim | ||
stack_sizes.nim | ||
stack_sizes.nim.cfg | ||
state_sim.nim | ||
state_sim.nim.cfg |