pub struct Peer { /* private fields */ }
Available on crate feature compact_filters only.
Expand description

A Bitcoin peer

Implementations§

source§

impl Peer

source

pub fn connect<A: ToSocketAddrs>( address: A, mempool: Arc<Mempool>, network: Network ) -> Result<Self, CompactFiltersError>

Connect to a peer over a plaintext TCP connection

This function internally spawns a new thread that will monitor incoming messages from the peer, and optionally reply to some of them transparently, like pings

source

pub fn connect_proxy<T: ToTargetAddr, P: ToSocketAddrs>( target: T, proxy: P, credentials: Option<(&str, &str)>, mempool: Arc<Mempool>, network: Network ) -> Result<Self, CompactFiltersError>

Connect to a peer through a SOCKS5 proxy, optionally by using some credentials, specified as a tuple of (username, password)

This function internally spawns a new thread that will monitor incoming messages from the peer, and optionally reply to some of them transparently, like pings

source

pub fn get_version(&self) -> &VersionMessage

Return the VersionMessage sent by the peer

source

pub fn get_network(&self) -> Network

Return the Bitcoin Network in use

source

pub fn get_mempool(&self) -> Arc<Mempool>

Return the mempool used by this peer

source

pub fn is_connected(&self) -> bool

Return whether or not the peer is still connected

source

pub fn send(&self, payload: NetworkMessage) -> Result<(), CompactFiltersError>

Send a raw Bitcoin message to the peer

source

pub fn recv( &self, wait_for: &'static str, timeout: Option<Duration> ) -> Result<Option<NetworkMessage>, CompactFiltersError>

Waits for a specific incoming Bitcoin message, optionally with a timeout

Trait Implementations§

source§

impl Debug for Peer

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Peer

§

impl Send for Peer

§

impl Sync for Peer

§

impl Unpin for Peer

§

impl !UnwindSafe for Peer

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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, U> Into<U> for Twhere 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

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, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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 Twhere V: MultiLane<T>,

§

fn vzip(self) -> V