Skip to main content

NewProtocolStorage

Trait NewProtocolStorage 

Source
pub trait NewProtocolStorage<T: NodeType>: StorageTrait<T> {
    // Required methods
    fn append_cert2<'life0, 'async_trait>(
        &'life0 self,
        view: ViewNumber,
        cert: Certificate2<T>,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn append_high_qc2<'life0, 'async_trait>(
        &'life0 self,
        high_qc: Certificate1<T>,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn load_high_qc2<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<Option<Certificate1<T>>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

New protocol storage extension for data that is not part of the legacy HotShot storage trait.

Required Methods§

Source

fn append_cert2<'life0, 'async_trait>( &'life0 self, view: ViewNumber, cert: Certificate2<T>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn append_high_qc2<'life0, 'async_trait>( &'life0 self, high_qc: Certificate1<T>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Persist the locked QC, written before each phase-2 vote so the lock survives a restart instead of regressing to the decided-anchor QC.

Source

fn load_high_qc2<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Option<Certificate1<T>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Load the persisted locked QC, if any.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<T: NodeType> NewProtocolStorage<T> for TestStorage<T>

Source§

fn append_cert2<'life0, 'async_trait>( &'life0 self, _view: ViewNumber, _cert: Certificate2<T>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn append_high_qc2<'life0, 'async_trait>( &'life0 self, high_qc: Certificate1<T>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn load_high_qc2<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Option<Certificate1<T>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Implementors§