Struct ckb_sync::Synchronizer
source · [−]pub struct Synchronizer {
pub shared: Arc<SyncShared>,
/* private fields */
}Expand description
Sync protocol handle
Fields
Sync shared state
Implementations
sourceimpl Synchronizer
impl Synchronizer
sourcepub fn new(chain: ChainController, shared: Arc<SyncShared>) -> Synchronizer
pub fn new(chain: ChainController, shared: Arc<SyncShared>) -> Synchronizer
Init sync protocol handle
This is a runtime sync protocol shared state, and any relay messages will be processed and forwarded by it
Get shared state
sourcepub fn process_new_block(&self, block: BlockView) -> Result<bool, CKBError>
pub fn process_new_block(&self, block: BlockView) -> Result<bool, CKBError>
Process a new block sync from other peer
sourcepub fn get_blocks_to_fetch(
&self,
peer: PeerIndex,
ibd: IBDState
) -> Option<Vec<Vec<Byte32>>>
pub fn get_blocks_to_fetch(
&self,
peer: PeerIndex,
ibd: IBDState
) -> Option<Vec<Vec<Byte32>>>
Get blocks to fetch
sourcepub fn eviction(&self, nc: &dyn CKBProtocolContext)
pub fn eviction(&self, nc: &dyn CKBProtocolContext)
Regularly check and eject some nodes that do not respond in time
Trait Implementations
sourceimpl CKBProtocolHandler for Synchronizer
impl CKBProtocolHandler for Synchronizer
sourcefn init<'life0, 'async_trait>(
&'life0 mut self,
nc: Arc<dyn CKBProtocolContext + Sync>
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn init<'life0, 'async_trait>(
&'life0 mut self,
nc: Arc<dyn CKBProtocolContext + Sync>
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Init action on service run
sourcefn received<'life0, 'async_trait>(
&'life0 mut self,
nc: Arc<dyn CKBProtocolContext + Sync>,
peer_index: PeerIndex,
data: Bytes
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn received<'life0, 'async_trait>(
&'life0 mut self,
nc: Arc<dyn CKBProtocolContext + Sync>,
peer_index: PeerIndex,
data: Bytes
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Called when the corresponding protocol message is received
sourcefn connected<'life0, 'life1, 'async_trait>(
&'life0 mut self,
nc: Arc<dyn CKBProtocolContext + Sync>,
peer_index: PeerIndex,
_version: &'life1 str
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn connected<'life0, 'life1, 'async_trait>(
&'life0 mut self,
nc: Arc<dyn CKBProtocolContext + Sync>,
peer_index: PeerIndex,
_version: &'life1 str
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Called when opening protocol
sourcefn disconnected<'life0, 'async_trait>(
&'life0 mut self,
_nc: Arc<dyn CKBProtocolContext + Sync>,
peer_index: PeerIndex
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn disconnected<'life0, 'async_trait>(
&'life0 mut self,
_nc: Arc<dyn CKBProtocolContext + Sync>,
peer_index: PeerIndex
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Called when closing protocol
sourceimpl Clone for Synchronizer
impl Clone for Synchronizer
sourcefn clone(&self) -> Synchronizer
fn clone(&self) -> Synchronizer
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
Auto Trait Implementations
impl !RefUnwindSafe for Synchronizer
impl Send for Synchronizer
impl Sync for Synchronizer
impl Unpin for Synchronizer
impl !UnwindSafe for Synchronizer
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more