pub struct Sync<N: Network> { /* private fields */ }Implementations§
Source§impl<N: Network> Sync<N>
impl<N: Network> Sync<N>
Sourcepub fn new(
gateway: Gateway<N>,
storage: Storage<N>,
ledger: Arc<dyn LedgerService<N>>,
) -> Self
pub fn new( gateway: Gateway<N>, storage: Storage<N>, ledger: Arc<dyn LedgerService<N>>, ) -> Self
Initializes a new sync instance.
Sourcepub async fn initialize(&self, bft_sender: Option<BFTSender<N>>) -> Result<()>
pub async fn initialize(&self, bft_sender: Option<BFTSender<N>>) -> Result<()>
Initializes the sync module and sync the storage with the ledger at bootup.
Sourcepub async fn run(&self, sync_receiver: SyncReceiver<N>) -> Result<()>
pub async fn run(&self, sync_receiver: SyncReceiver<N>) -> Result<()>
Starts the sync module.
Source§impl<N: Network> Sync<N>
impl<N: Network> Sync<N>
Sourcepub async fn sync_storage_with_ledger_at_bootup(&self) -> Result<()>
pub async fn sync_storage_with_ledger_at_bootup(&self) -> Result<()>
Syncs the storage with the ledger at bootup.
Sourcepub async fn sync_storage_with_blocks(&self) -> Result<()>
pub async fn sync_storage_with_blocks(&self) -> Result<()>
Syncs the storage with blocks already received from peers.
Sourcepub async fn sync_storage_with_block(&self, block: Block<N>) -> Result<()>
pub async fn sync_storage_with_block(&self, block: Block<N>) -> Result<()>
Syncs the storage with the given block.
Source§impl<N: Network> Sync<N>
impl<N: Network> Sync<N>
Sourcepub fn num_blocks_behind(&self) -> u32
pub fn num_blocks_behind(&self) -> u32
Returns the number of blocks the node is behind the greatest peer height.
Sourcepub const fn is_gateway_mode(&self) -> bool
pub const fn is_gateway_mode(&self) -> bool
Returns true if the node is in gateway mode.
Sourcepub fn get_block_locators(&self) -> Result<BlockLocators<N>>
pub fn get_block_locators(&self) -> Result<BlockLocators<N>>
Returns the current block locators of the node.
Source§impl<N: Network> Sync<N>
impl<N: Network> Sync<N>
Sourcepub async fn send_certificate_request(
&self,
peer_ip: SocketAddr,
certificate_id: Field<N>,
) -> Result<BatchCertificate<N>>
pub async fn send_certificate_request( &self, peer_ip: SocketAddr, certificate_id: Field<N>, ) -> Result<BatchCertificate<N>>
Sends a certificate request to the specified peer.
Trait Implementations§
Auto Trait Implementations§
impl<N> Freeze for Sync<N>where
<N as Environment>::Field: Freeze,
<N as Environment>::Scalar: Freeze,
<N as Environment>::Projective: Freeze,
impl<N> !RefUnwindSafe for Sync<N>
impl<N> Send for Sync<N>
impl<N> Sync for Sync<N>
impl<N> Unpin for Sync<N>where
<N as Environment>::Field: Unpin,
<N as Environment>::Scalar: Unpin,
<N as Environment>::Projective: Unpin,
impl<N> !UnwindSafe for Sync<N>
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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