In Gnosh, we use multiple execution chain state syncing implementations:
They contain similar logic, so we should unify them. chainsync is the most general purpose and has the additional feature of detecting reorgs, so we should try to integrate the other two into their framework. To do that, we probably want to make chainsync more abstract and allow "registering" syncers from the outside. Then we only have to make the validatorsyncer and sequencersyncer to implement the required interface.
In Gnosh, we use multiple execution chain state syncing implementations:
They contain similar logic, so we should unify them.
chainsyncis the most general purpose and has the additional feature of detecting reorgs, so we should try to integrate the other two into their framework. To do that, we probably want to makechainsyncmore abstract and allow "registering" syncers from the outside. Then we only have to make thevalidatorsyncerandsequencersyncerto implement the required interface.