Struct BlockchainSyncState

Source
pub struct BlockchainSyncState { /* private fields */ }
Expand description

Maintains the state for fetching blocks from other peers into this peer. Tries to fetch the blocks in the most resource efficient way possible.

Implementations§

Source§

impl BlockchainSyncState

Source

pub fn new(batch_size: usize) -> BlockchainSyncState

Source

pub fn get_fetching_block_count(&self) -> BlockId

Source

pub fn get_blocks_to_fetch_per_peer( &mut self, ) -> HashMap<PeerIndex, Vec<(SaitoHash, BlockId)>>

Generates the list of blocks which needs to be fetched next. A list is generated per each peer since we can fetch from multiple peers concurrently.

Source

pub fn mark_as_fetched(&mut self, hash: SaitoHash)

Mark the block state as “fetched”

§Arguments
  • peer_index:
  • hash:

returns: ()

§Examples
Source

pub async fn add_entry( &mut self, block_hash: SaitoHash, block_id: BlockId, peer_index: PeerIndex, peer_lock: Arc<RwLock<PeerCollection>>, )

Adds an entry to this data structure which will be fetched later after prioritizing.

§Arguments
  • block_hash:
  • block_id:
  • peer_index:

returns: ()

§Examples
Source

pub fn remove_entry(&mut self, block_hash: SaitoHash)

Removes entry when the hash is added to the blockchain. If so we can move the block ceiling up.

§Arguments
  • block_hash:
  • peer_index:

returns: ()

§Examples
Source

pub fn get_stats(&self) -> Vec<String>

Source

pub fn mark_as_failed( &mut self, id: BlockId, hash: BlockHash, peer_index: PeerIndex, )

Mark the blocks which we couldn’t fetch from the peer. After a sevaral retries we will stop fetching the block until we fetch it from another peer.

§Arguments
  • id:
  • hash:
  • peer_index:

returns: ()

§Examples

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.

§

impl<T> Instrument for T

§

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

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

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.

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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