FarmerRpc

Struct FarmerRpc 

Source
pub struct FarmerRpc<CI, CSS>
where CI: ChainInfo<OwnedBeaconChainBlock>, CSS: ChainSyncStatus,
{ /* private fields */ }
Expand description

Implements the FarmerRpcApiServer trait for farmer to connect to

Implementations§

Source§

impl<CI, CSS> FarmerRpc<CI, CSS>
where CI: ChainInfo<OwnedBeaconChainBlock>, CSS: ChainSyncStatus,

FarmerRpc is used for notifying subscribers about the arrival of new slots and for submission of solutions (or lack thereof).

Internally every time slot notifier emits information about a new slot, a notification is sent to every subscriber, after which the RPC server waits for the same number of submitSolutionResponse requests with SolutionResponse in them or until timeout is exceeded. The first valid solution for a particular slot wins, others are ignored.

Source

pub fn new(config: FarmerRpcConfig<CI, CSS>) -> (Self, FarmerRpcWorker)

Creates a new instance of the FarmerRpc handler.

Trait Implementations§

Source§

impl<CI, CSS> Debug for FarmerRpc<CI, CSS>
where CI: ChainInfo<OwnedBeaconChainBlock> + Debug, CSS: ChainSyncStatus + Debug,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<CI, CSS> FarmerRpcApiServer for FarmerRpc<CI, CSS>
where CI: ChainInfo<OwnedBeaconChainBlock>, CSS: ChainSyncStatus,

Source§

fn get_farmer_app_info(&self) -> Result<FarmerAppInfo, Error>

Get metadata necessary for farmer operation
Source§

fn submit_solution_response( &self, solution_response: SolutionResponse, ) -> Result<(), Error>

Source§

fn subscribe_slot_info<'life0, 'async_trait>( &'life0 self, pending: PendingSubscriptionSink, ) -> Pin<Box<dyn Future<Output = SubscriptionResult> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Slot info subscription
Source§

fn subscribe_block_seal<'life0, 'async_trait>( &'life0 self, pending: PendingSubscriptionSink, ) -> Pin<Box<dyn Future<Output = SubscriptionResult> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Sign block subscription
Source§

fn submit_block_seal(&self, block_seal: BlockSealResponse) -> Result<(), Error>

Source§

fn subscribe_archived_segment_header<'life0, 'async_trait>( &'life0 self, pending: PendingSubscriptionSink, ) -> Pin<Box<dyn Future<Output = SubscriptionResult> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Archived segment header subscription
Source§

fn acknowledge_archived_segment_header<'life0, 'async_trait>( &'life0 self, segment_index: SegmentIndex, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn piece( &self, requested_piece_index: PieceIndex, ) -> Result<Option<Piece>, Error>

Source§

fn segment_headers<'life0, 'async_trait>( &'life0 self, segment_indices: Vec<SegmentIndex>, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<SegmentHeader>>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn last_segment_headers<'life0, 'async_trait>( &'life0 self, limit: u32, ) -> Pin<Box<dyn Future<Output = Result<Vec<Option<SegmentHeader>>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn into_rpc(self) -> RpcModule<Self>

Collects all the methods and subscriptions defined in the trait and adds them into a single RpcModule.

Auto Trait Implementations§

§

impl<CI, CSS> Freeze for FarmerRpc<CI, CSS>
where CI: Freeze, CSS: Freeze,

§

impl<CI, CSS> !RefUnwindSafe for FarmerRpc<CI, CSS>

§

impl<CI, CSS> Send for FarmerRpc<CI, CSS>

§

impl<CI, CSS> Sync for FarmerRpc<CI, CSS>

§

impl<CI, CSS> Unpin for FarmerRpc<CI, CSS>
where CI: Unpin, CSS: Unpin,

§

impl<CI, CSS> !UnwindSafe for FarmerRpc<CI, CSS>

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.

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
§

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
§

impl<T> JsonSchemaMaybe for T

§

impl<T> MaybeSend for T
where T: Send,