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
We're using a head tracker in all 3 components (sidecar, RPC, registry). We should make an effort to consolidate all of them into a single fault-tolerant, consistent, reorg aware head tracker, that can be customized based on the needs of the user. This can be extracted to a separate crate: bolt-common.
Example customization: some users only need consensus URL for tracking slots, others need more info like EL block number1, others even more like EL block header data, or even the whole block with all the populated transactions. Can use a combination of builder and type state pattern here (type state because ideally you want any components to define at compile time what your head tracker needs to support).
First step would be identifying all requirements across the components that currently use it.
Context
We're using a head tracker in all 3 components (sidecar, RPC, registry). We should make an effort to consolidate all of them into a single fault-tolerant, consistent, reorg aware head tracker, that can be customized based on the needs of the user. This can be extracted to a separate crate:
bolt-common
.Example customization: some users only need consensus URL for tracking slots, others need more info like EL block number1, others even more like EL block header data, or even the whole block with all the populated transactions. Can use a combination of builder and type state pattern here (type state because ideally you want any components to define at compile time what your head tracker needs to support).
First step would be identifying all requirements across the components that currently use it.
Requirements
Footnotes
In the registry, we use the
payload_attributes
event stream on the beacon-API, which contains EL block number as well. ↩The text was updated successfully, but these errors were encountered: