Skip to main content

Network

Struct Network 

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

The entrypoint to the Mosaic network SDK.

Notes:

  • This type represents a Mosaik network connection and provides methods to access different facilities such as peer discovery and stream management.

  • In most cases one network instance will represent one running process/node.

  • Each network instance has a globally unique identity that is the public key of the secret key used to construct it. If no secret key is provided a new random key will be generated. This is an important property because node identities are globally unique across all Mosaik networks and nodes can be addressed by their public keys alone. The discovery mechanism is responsible for resolving the corresponding network addresses for a given public key. Knowing the physical transport addresses of a peer is not sufficient to identify a node and connect to it.

  • By default a random local port will be chosen for the network instance. This can be overridden by providing a specific port in the builder.

  • Mosaik networks are identified by a NetworkId which is a unique identifier (a blake3 hash of the network string name). Nodes can only connect to other nodes that are part of the same network (i.e. have the same NetworkId).

Implementations§

Source§

impl Network

Public construction API

Source

pub fn builder(network_id: impl Into<NetworkId>) -> NetworkBuilder

Creates a new network builder with a given network id.

Source

pub async fn new(network_id: impl Into<NetworkId>) -> Result<Self, NetworkError>

Creates and returns a new Network instance with the given network ID and default settings.

Source§

impl Network

Public API

Source

pub fn network_id(&self) -> &NetworkId

Returns the network identifier of the network that this instance is connected to.

Source

pub const fn local(&self) -> &LocalNode

Returns a reference to the local node instance.

Source

pub async fn online(&self)

Returns a future that resolves when the local node is considered to be online and ready to interact with other peers.

Source

pub const fn discovery(&self) -> &Discovery

Returns a reference to the discovery system.

Source

pub const fn streams(&self) -> &Streams

Returns a reference to the streams system.

Source

pub const fn groups(&self) -> &Groups

Returns a reference to the groups system.

Trait Implementations§

Source§

impl Drop for Network

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl NetworkTdxExt for Network

Available on crate features tee and tdx only.
Source§

fn tdx(&self) -> NetworkTdxOps<'_>

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

Source§

fn compat(self) -> Compat<T>

Applies the Compat adapter by value. Read more
Source§

fn compat_ref(&self) -> Compat<&T>

Applies the Compat adapter by shared reference. Read more
Source§

fn compat_mut(&mut self) -> Compat<&mut T>

Applies the Compat adapter by mutable reference. 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> RedactedFmtExt for T
where Redacted<T>: Display,

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