pub struct EngineSyncState { /* private fields */ }Expand description
The synchronization state of the execution layer across different safety levels.
Tracks block progression through various stages of verification and finalization, from initial unsafe blocks received via P2P to fully finalized blocks derived from finalized L1 data. Each level represents increasing confidence in the block’s validity.
§Safety Levels
The state tracks blocks at different safety levels, listed from least to most safe:
- Unsafe - Most recent blocks from P2P network (unverified)
- Cross-unsafe - Unsafe blocks with cross-layer verification
- Local-safe - Derived from L1 data, completed span-batch
- Safe - Cross-verified with safe L1 dependencies
- Finalized - Derived from finalized L1 data only
See the OP Stack specifications for detailed safety definitions.
Implementations§
Source§impl EngineSyncState
impl EngineSyncState
Sourcepub const fn unsafe_head(&self) -> L2BlockInfo
pub const fn unsafe_head(&self) -> L2BlockInfo
Returns the current unsafe head.
Sourcepub const fn cross_unsafe_head(&self) -> L2BlockInfo
pub const fn cross_unsafe_head(&self) -> L2BlockInfo
Returns the current cross-verified unsafe head.
Sourcepub const fn local_safe_head(&self) -> L2BlockInfo
pub const fn local_safe_head(&self) -> L2BlockInfo
Returns the current local safe head.
Sourcepub const fn safe_head(&self) -> L2BlockInfo
pub const fn safe_head(&self) -> L2BlockInfo
Returns the current safe head.
Sourcepub const fn finalized_head(&self) -> L2BlockInfo
pub const fn finalized_head(&self) -> L2BlockInfo
Returns the current finalized head.
Sourcepub const fn create_forkchoice_state(&self) -> ForkchoiceState
pub const fn create_forkchoice_state(&self) -> ForkchoiceState
Creates a ForkchoiceState
head_block=unsafe_headsafe_block=safe_headfinalized_block=finalized_head
If the block info is not yet available, the default values are used.
Sourcepub fn apply_update(self, sync_state_update: EngineSyncStateUpdate) -> Self
pub fn apply_update(self, sync_state_update: EngineSyncStateUpdate) -> Self
Applies the update to the provided sync state, using the current state values if the update is not specified. Returns the new sync state.
Trait Implementations§
Source§impl Clone for EngineSyncState
impl Clone for EngineSyncState
Source§fn clone(&self) -> EngineSyncState
fn clone(&self) -> EngineSyncState
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EngineSyncState
impl Debug for EngineSyncState
Source§impl Default for EngineSyncState
impl Default for EngineSyncState
Source§fn default() -> EngineSyncState
fn default() -> EngineSyncState
Source§impl PartialEq for EngineSyncState
impl PartialEq for EngineSyncState
impl Copy for EngineSyncState
impl Eq for EngineSyncState
impl StructuralPartialEq for EngineSyncState
Auto Trait Implementations§
impl Freeze for EngineSyncState
impl RefUnwindSafe for EngineSyncState
impl Send for EngineSyncState
impl Sync for EngineSyncState
impl Unpin for EngineSyncState
impl UnwindSafe for EngineSyncState
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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