lumina_node

Struct Node

source
pub struct Node<B, S>
where B: Blockstore + 'static, S: Store + 'static,
{ /* private fields */ }
Expand description

Celestia node.

Implementations§

source§

impl<B, S> Node<B, S>
where B: Blockstore, S: Store,

source

pub async fn new(config: NodeConfig<B, S>) -> Result<Self>

Creates and starts a new celestia node with a given config.

source

pub async fn new_subscribed( config: NodeConfig<B, S>, ) -> Result<(Self, EventSubscriber)>

Creates and starts a new celestia node with a given config.

Returns Node alogn with EventSubscriber. Use this to avoid missing any events that will be generated on the construction of the node.

source

pub async fn stop(self)

Stop the node.

source

pub fn event_subscriber(&self) -> EventSubscriber

Returns a new EventSubscriber.

source

pub fn local_peer_id(&self) -> &PeerId

Get node’s local peer ID.

source

pub fn peer_tracker_info(&self) -> PeerTrackerInfo

Get current PeerTrackerInfo.

source

pub fn peer_tracker_info_watcher(&self) -> Receiver<PeerTrackerInfo>

Get PeerTrackerInfo watcher.

source

pub async fn wait_connected(&self) -> Result<()>

Wait until the node is connected to at least 1 peer.

source

pub async fn wait_connected_trusted(&self) -> Result<()>

Wait until the node is connected to at least 1 trusted peer.

source

pub async fn network_info(&self) -> Result<NetworkInfo>

Get current network info.

source

pub async fn listeners(&self) -> Result<Vec<Multiaddr>>

Get all the multiaddresses on which the node listens.

source

pub async fn connected_peers(&self) -> Result<Vec<PeerId>>

Get all the peers that node is connected to.

source

pub async fn set_peer_trust( &self, peer_id: PeerId, is_trusted: bool, ) -> Result<()>

Trust or untrust the peer with a given ID.

source

pub async fn request_head_header(&self) -> Result<ExtendedHeader>

Request the head header from the network.

source

pub async fn request_header_by_hash( &self, hash: &Hash, ) -> Result<ExtendedHeader>

Request a header for the block with a given hash from the network.

source

pub async fn request_header_by_height( &self, hash: u64, ) -> Result<ExtendedHeader>

Request a header for the block with a given height from the network.

source

pub async fn request_verified_headers( &self, from: &ExtendedHeader, amount: u64, ) -> Result<Vec<ExtendedHeader>>

Request headers in range (from, from + amount] from the network.

The headers will be verified with the from header.

source

pub async fn request_row( &self, row_index: u16, block_height: u64, ) -> Result<Row>

Request a verified Row from the network.

§Errors

On failure to receive a verified Row within a certain time, the NodeError::P2p(P2pError::BitswapQueryTimeout) error will be returned.

source

pub async fn request_sample( &self, row_index: u16, column_index: u16, block_height: u64, ) -> Result<Sample>

Request a verified Sample from the network.

§Errors

On failure to receive a verified Sample within a certain time, the NodeError::P2p(P2pError::BitswapQueryTimeout) error will be returned.

source

pub async fn request_row_namespace_data( &self, namespace: Namespace, row_index: u16, block_height: u64, ) -> Result<RowNamespaceData>

Request a verified RowNamespaceData from the network.

§Errors

On failure to receive a verified RowNamespaceData within a certain time, the NodeError::P2p(P2pError::BitswapQueryTimeout) error will be returned.

source

pub async fn syncer_info(&self) -> Result<SyncingInfo>

Get current header syncing info.

source

pub async fn get_network_head_header(&self) -> Result<Option<ExtendedHeader>>

Get the latest header announced in the network.

source

pub async fn get_local_head_header(&self) -> Result<ExtendedHeader>

Get the latest locally synced header.

source

pub async fn get_header_by_hash(&self, hash: &Hash) -> Result<ExtendedHeader>

Get a synced header for the block with a given hash.

source

pub async fn get_header_by_height(&self, height: u64) -> Result<ExtendedHeader>

Get a synced header for the block with a given height.

source

pub async fn get_headers<R>(&self, range: R) -> Result<Vec<ExtendedHeader>>
where R: RangeBounds<u64> + Send,

Get synced headers from the given heights range.

If start of the range is unbounded, the first returned header will be of height 1. If end of the range is unbounded, the last returned header will be the last header in the store.

§Errors

If range contains a height of a header that is not found in the store or RangeBounds cannot be converted to a valid range.

source

pub async fn get_sampling_metadata( &self, height: u64, ) -> Result<Option<SamplingMetadata>>

Get data sampling metadata of an already sampled height.

Returns Ok(None) if metadata for the given height does not exists.

Trait Implementations§

source§

impl<B, S> Drop for Node<B, S>
where B: Blockstore, S: Store,

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<B, S> Freeze for Node<B, S>

§

impl<B, S> RefUnwindSafe for Node<B, S>

§

impl<B, S> Send for Node<B, S>

§

impl<B, S> Sync for Node<B, S>

§

impl<B, S> Unpin for Node<B, S>

§

impl<B, S> UnwindSafe for Node<B, S>

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> 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<S> CondSend for S
where S: Send,

source§

impl<S> CondSync for S
where S: Send + Sync,