pub struct PeerId { /* private fields */ }Expand description
Identifier of a peer of the network.
The data is a CIDv0 compatible multihash of the protobuf encoded public key of the peer as specified in specs/peer-ids.
Implementations§
Source§impl PeerId
impl PeerId
Sourcepub fn from_public_key(key: &PublicKey) -> PeerId
pub fn from_public_key(key: &PublicKey) -> PeerId
Builds a PeerId from a public key.
Sourcepub fn from_public_key_protobuf(key_enc: &[u8]) -> PeerId
pub fn from_public_key_protobuf(key_enc: &[u8]) -> PeerId
Builds a PeerId from a public key in protobuf encoding.
Sourcepub fn from_bytes(data: &[u8]) -> Result<PeerId, ParseError>
pub fn from_bytes(data: &[u8]) -> Result<PeerId, ParseError>
Parses a PeerId from bytes.
Sourcepub fn from_multihash(
multihash: impl Into<Multihash<64>>,
) -> Result<PeerId, Multihash<64>>
pub fn from_multihash( multihash: impl Into<Multihash<64>>, ) -> Result<PeerId, Multihash<64>>
Tries to turn a Multihash into a PeerId.
If the multihash does not use a valid hashing algorithm for peer IDs,
or the hash value does not satisfy the constraints for a hashed
peer ID, it is returned as an Err.
Accepts anything that converts into multihash::Multihash<64>,
including multiaddr::PeerId which implements that conversion.
Sourcepub fn try_from_multiaddr(address: &Multiaddr) -> Option<PeerId>
pub fn try_from_multiaddr(address: &Multiaddr) -> Option<PeerId>
Sourcepub fn random() -> PeerId
pub fn random() -> PeerId
Generates a random peer ID from a cryptographically secure PRNG.
This is useful for randomly walking on a DHT, or for testing purposes.
Sourcepub fn is_public_key(&self, public_key: &PublicKey) -> Option<bool>
pub fn is_public_key(&self, public_key: &PublicKey) -> Option<bool>
Checks whether the public key passed as parameter matches the public key of this PeerId.
Returns None if this PeerIds hash algorithm is not supported when encoding the
given public key, otherwise Some boolean as the result of an equality check.
Sourcepub fn to_multiaddr_peer_id(&self) -> Result<PeerId, Multihash<64>>
pub fn to_multiaddr_peer_id(&self) -> Result<PeerId, Multihash<64>>
Converts this peer ID into a multiaddr peer ID.
This is a fallible conversion for callers that want to avoid relying on the internal invariant that litep2p and multiaddr peer IDs accept the same multihash forms.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for PeerId
impl<'de> Deserialize<'de> for PeerId
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl Ord for PeerId
impl Ord for PeerId
Source§impl PartialOrd for PeerId
impl PartialOrd for PeerId
impl Copy for PeerId
impl Eq for PeerId
impl StructuralPartialEq for PeerId
Auto Trait Implementations§
impl Freeze for PeerId
impl RefUnwindSafe for PeerId
impl Send for PeerId
impl Sync for PeerId
impl Unpin for PeerId
impl UnwindSafe for PeerId
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.