[][src]Struct grin_p2p::Server

pub struct Server {
    pub config: P2PConfig,
    pub peers: Arc<Peers>,
    // some fields omitted

P2P server implementation, handling bootstrapping to find and connect to peers, receiving connections from other peers and keep track of all of them.


config: P2PConfigpeers: Arc<Peers>


impl Server[src]

pub fn new(
    db_root: &str,
    capab: Capabilities,
    config: P2PConfig,
    adapter: Arc<dyn ChainAdapter>,
    genesis: Hash,
    stop_state: Arc<StopState>
) -> Result<Server, Error>

Creates a new idle p2p server with no peers

pub fn listen(&self) -> Result<(), Error>[src]

Starts a new TCP server and listen to incoming connections. This is a blocking call until the TCP server stops.

pub fn connect(&self, addr: PeerAddr) -> Result<Arc<Peer>, Error>[src]

Asks the server to connect to a new peer. Directly returns the peer if we're already connected to the provided address.

pub fn stop(&self)[src]

pub fn pause(&self)[src]

Pause means: stop all the current peers connection, only for tests. Note:

  1. must pause the 'seed' thread also, to avoid the new egress peer connection
  2. must pause the 'p2p-server' thread also, to avoid the new ingress peer connection.

Auto Trait Implementations

impl Send for Server

impl Unpin for Server

impl Sync for Server

impl !UnwindSafe for Server

impl !RefUnwindSafe for Server

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> Any for T where
    T: 'static + ?Sized

impl<T> UnsafeAny for T where
    T: Any

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> Erased for T

impl<T> SafeBorrow<T> for T where
    T: ?Sized

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,