zksync_consensus_storage

Struct BatchStore

source
pub struct BatchStore { /* private fields */ }
Expand description

A wrapper around a PersistentBatchStore.

Implementations§

source§

impl BatchStore

source

pub async fn new( _ctx: &Ctx, persistent: Box<dyn PersistentBatchStore>, ) -> Result<(Arc<Self>, BatchStoreRunner)>

Constructs a BatchStore. BatchStore takes ownership of the passed PersistentBatchStore, i.e. caller should modify the underlying persistent storage ONLY through the constructed BatchStore.

source

pub fn queued(&self) -> BatchStoreState

Available batches (in memory & persisted).

source

pub async fn batch( &self, ctx: &Ctx, number: BatchNumber, ) -> Result<Option<SyncBatch>>

Fetches a batch (from queue or persistent storage).

source

pub async fn queue_batch( &self, ctx: &Ctx, batch: SyncBatch, _genesis: Genesis, ) -> Result<()>

Append batch to a queue to be persisted eventually. Since persisting a batch may take a significant amount of time, BatchStore contains a queue of batches waiting to be persisted. queue_batch() adds a batch to the queue as soon as all intermediate Batches are queued_state as well. Queue is unbounded, so it is caller’s responsibility to manage the queue size.

source

pub async fn wait_until_queued( &self, ctx: &Ctx, number: BatchNumber, ) -> OrCanceled<BatchStoreState>

Waits until the given batch is queued (in memory, or persisted). Note that it doesn’t mean that the batch is actually available, as old batches might get pruned.

source

pub async fn wait_until_persisted( &self, ctx: &Ctx, number: BatchNumber, ) -> OrCanceled<BatchStoreState>

Waits until the given batch is stored persistently. Note that it doesn’t mean that the batch is actually available, as old batches might get pruned.

Trait Implementations§

source§

impl Debug for BatchStore

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more