Struct NodeInterface

Source
pub struct NodeInterface {
    node_sender: UnboundedSender<NodeNotification>,
}
Expand description

A struct representing the interface to the node.

This struct will be used by consumers to interact with the node. You may have as many of it as you need, and you can use it to send requests to the node and get responses back.

Fields§

§node_sender: UnboundedSender<NodeNotification>

Implementations§

Source§

impl NodeInterface

Source

pub fn new(node_sender: UnboundedSender<NodeNotification>) -> Self

Source

async fn send_request( &self, request: UserRequest, ) -> Result<NodeResponse, RecvError>

Sends a request to the node.

This is an internal utility function that will be used to send requests to the node. It will send the request to the node and return a oneshot receiver that will be used to get the response back.

Source

pub async fn get_config(&self) -> Result<UtreexoNodeConfig, RecvError>

Get the current UtreexoNodeConfig from the running node.

Source

pub async fn broadcast_transaction( &self, transaction: Transaction, ) -> Result<Result<Txid, AcceptToMempoolError>, RecvError>

Source

pub async fn add_peer( &self, addr: IpAddr, port: u16, v2transport: bool, ) -> Result<bool, RecvError>

Connects to a specified address and port. This function will return a boolean indicating whether the connection was successful. It may be called multiple times, and may use hostnames or IP addresses.

Source

pub async fn remove_peer( &self, addr: IpAddr, port: u16, ) -> Result<bool, RecvError>

Removes a peer from the node’s peer list. This function will return a boolean indicating whether the peer was successfully removed. It may be called multiple times, and may use hostnames or IP addresses.

Source

pub async fn disconnect_peer( &self, addr: IpAddr, port: u16, ) -> Result<bool, RecvError>

Immediately disconnect from a peer.

Returns a bool indicating whether the disconnection was successful.

Source

pub async fn onetry_peer( &self, addr: IpAddr, port: u16, v2transport: bool, ) -> Result<bool, RecvError>

Attempts to connect to a peer once.

This function will try to connect to the peer once, but will not add it to the node’s peer list. It will return a boolean indicating whether the connection was successful. It may be called multiple times, and may use hostnames or IP addresses.

Source

pub async fn get_block( &self, block: BlockHash, ) -> Result<Option<Block>, RecvError>

Gets a block by its hash.

This function will try to get a block from the network and return it. Note that we don’t keep a local copy of the blockchain, so this function will always make a network request.

Source

pub async fn get_mempool_transaction( &self, txid: Txid, ) -> Result<Option<Transaction>, RecvError>

Gets a transaction from the mempool by its ID.

This function will return a transaction from the mempool if it exists. If the transaction is not in the mempool (because it doesn’t exist or because it’s already been mined), this function will return None.

Source

pub async fn get_peer_info(&self) -> Result<Vec<PeerInfo>, RecvError>

Gets information about all connected peers.

This function will return a list of PeerInfo structs, each of which contains information about a single peer.

Source

pub async fn get_connection_count(&self) -> Result<usize, RecvError>

Returns the number of peers currently connected to the node

Source

pub async fn ping(&self) -> Result<bool, RecvError>

Pings all connected peers to check if they are alive.

Trait Implementations§

Source§

impl Clone for NodeInterface

Source§

fn clone(&self) -> NodeInterface

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NodeInterface

Source§

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

Formats the value using the given formatter. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

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

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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