pub struct SyncStatus {
pub current_l1: BlockInfo,
pub current_l1_finalized: BlockInfo,
pub head_l1: BlockInfo,
pub safe_l1: BlockInfo,
pub finalized_l1: BlockInfo,
pub unsafe_l2: L2BlockInfo,
pub safe_l2: L2BlockInfo,
pub finalized_l2: L2BlockInfo,
pub pending_safe_l2: L2BlockInfo,
pub cross_unsafe_l2: L2BlockInfo,
pub local_safe_l2: L2BlockInfo,
}
Expand description
The SyncStatus
of an Optimism Rollup Node.
The sync status is a snapshot of the current state of the node’s sync process. Values may not be derived yet and are zeroed out if they are not yet derived.
Fields§
§current_l1: BlockInfo
The current L1 block.
This is the L1 block that the derivation process is last idled at.
This may not be fully derived into L2 data yet.
The safe L2 blocks were produced/included fully from the L1 chain up to but excluding
this L1 block. If the node is synced, this matches the head_l1
, minus the verifier
confirmation distance.
current_l1_finalized: BlockInfo
The current L1 finalized block.
This is a legacy sync-status attribute. This is deprecated.
A previous version of the L1 finalization-signal was updated only after the block was
retrieved by number. This attribute just matches finalized_l1
now.
head_l1: BlockInfo
The L1 head block ref.
The head is not guaranteed to build on the other L1 sync status fields, as the node may be in progress of resetting to adapt to a L1 reorg.
safe_l1: BlockInfo
The L1 safe head block ref.
finalized_l1: BlockInfo
The finalized L1 block ref.
unsafe_l2: L2BlockInfo
The unsafe L2 block ref.
This is the absolute tip of the L2 chain, pointing to block data that has not been
submitted to L1 yet. The sequencer is building this, and verifiers may also be ahead of
the safe L2 block if they sync blocks via p2p or other offchain sources.
This is considered to only be local-unsafe post-interop, see cross_unsafe_l2
for cross-L2
guarantees.
safe_l2: L2BlockInfo
The safe L2 block ref.
This points to the L2 block that was derived from the L1 chain.
This point may still reorg if the L1 chain reorgs.
This is considered to be cross-safe post-interop, see local_safe_l2
to ignore cross-L2
guarantees.
finalized_l2: L2BlockInfo
The finalized L2 block ref.
This points to the L2 block that was derived fully from finalized L1 information, thus irreversible.
pending_safe_l2: L2BlockInfo
The pending safe L2 block ref.
This points to the L2 block processed from the batch, but not consolidated to the safe block yet.
cross_unsafe_l2: L2BlockInfo
Cross unsafe L2 block ref.
This is an unsafe L2 block, that has been verified to match cross-L2 dependencies. Pre-interop every unsafe L2 block is also cross-unsafe.
local_safe_l2: L2BlockInfo
Local safe L2 block ref.
This is an L2 block derived from L1, not yet verified to have valid cross-L2 dependencies.
Trait Implementations§
Source§impl Clone for SyncStatus
impl Clone for SyncStatus
Source§fn clone(&self) -> SyncStatus
fn clone(&self) -> SyncStatus
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SyncStatus
impl Debug for SyncStatus
Source§impl PartialEq for SyncStatus
impl PartialEq for SyncStatus
impl Eq for SyncStatus
impl StructuralPartialEq for SyncStatus
Auto Trait Implementations§
impl Freeze for SyncStatus
impl RefUnwindSafe for SyncStatus
impl Send for SyncStatus
impl Sync for SyncStatus
impl Unpin for SyncStatus
impl UnwindSafe for SyncStatus
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more