Skip to main content

CollationManager

Struct CollationManager 

Source
pub struct CollationManager<CF, V>
where CF: CollatorFactory,
{ /* private fields */ }

Implementations§

Source§

impl<CF, V> CollationManager<CF, V>
where CF: CollatorFactory, V: Validator,

Source

pub fn start<STF, MPF>( keypair: Arc<KeyPair>, config: CollatorConfig, mq_adapter: Arc<dyn MessageQueueAdapter<EnqueuedMessage>>, state_node_adapter_factory: STF, mpool_adapter_factory: MPF, validator: V, collator_factory: CF, mempool_config_override: Option<MempoolGlobalConfig>, ) -> RunningCollationManager<CF, V>

Source

pub async fn process_new_anchor_from_mempool( &self, _anchor: Arc<MempoolAnchor>, ) -> Result<()>

(TODO) Check sync status between mempool and blockchain state and pause collation when we are far behind other nodesб jusct sync blcoks from blockchain

Source

pub async fn handle_collated_block_candidate( self: &Arc<Self>, collation_result: BlockCollationResult, ) -> Result<()>

Process collated block candidate

  1. Save block to cache
  2. Spawn block validation
  3. Check if the master block interval elapsed (according to chain time) and schedule collation
  4. If master block then update last master block chain time
  5. Notify mempool about new master block (it may perform gc or nodes rotation)
  6. Execute master block processing routines
Source

pub async fn enqueue_handle_block_from_bc( &self, ctx: HandledBlockFromBcCtx, ) -> Result<()>

Finish active sync if it is not finished yet and enqueue received block

Source

pub fn finish_collation_session( &self, collation_session: Arc<CollationSessionInfo>, ) -> Result<()>

Execute collation session finalization routines

Source

pub fn handle_collator_stopped( &self, collation_session_id: (ShardIdent, u32, u32), ) -> Result<()>

Remove stopped collator from cache

Source

pub async fn handle_validated_master_block( &self, block_id: BlockId, status: ValidationStatus, ) -> Result<()>

Process validated block

  1. Process invalid block (currently, just panic)
  2. Update block in cache with validation info
  3. Execute processing for master or shard block

Auto Trait Implementations§

§

impl<CF, V> !Freeze for CollationManager<CF, V>

§

impl<CF, V> !RefUnwindSafe for CollationManager<CF, V>

§

impl<CF, V> Send for CollationManager<CF, V>
where V: Sync + Send,

§

impl<CF, V> Sync for CollationManager<CF, V>
where V: Sync + Send,

§

impl<CF, V> Unpin for CollationManager<CF, V>
where CF: Unpin,

§

impl<CF, V> UnsafeUnpin for CollationManager<CF, V>
where CF: UnsafeUnpin,

§

impl<CF, V> !UnwindSafe for CollationManager<CF, V>

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

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

Initializes a with the given initializer. Read more
Source§

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

Dereferences the given pointer. Read more
Source§

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

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> SafeDelete for T
where T: 'static,

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
Source§

impl<T> EquivalentRepr<T> for T