PeerManager class

High-level peer manager implementing PeerManagerI

Implemented types
Available extensions

Constructors

PeerManager({required BitcoinNetwork network, PeerHandlerI? handler, PeerManagerConfig? config, Logger? logger, ChainTipTracker? chainTipTracker})

Properties

chainTipTracker ChainTipTracker
Chain tip tracker for SPV clients
no setter
config PeerManagerConfig
final
handler PeerHandlerI?
final
hashCode int
The hash code for this object.
no setterinherited
healthyPeerCount int
Number of healthy peers
no setter
isShutdown bool
Whether manager is shutdown
no setter
logger → Logger
final
messageStream Stream<WireMessage>
no setter
network BitcoinNetwork
Current network
no setter
peerAdded Stream<Peer>
Event streams
no setter
peerCount int
Number of connected peers
no setter
peerRemoved Stream<Peer>
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

addPeer(PeerI peerInterface) Future<void>
Add a peer to the manager Throws PeerNetworkMismatchException if peer network doesn't match
override
addPeerByAddress(String address, int port, {PeerConfig? peerConfig, PeerHandlerI? handler}) Future<Peer>
Add peer by address and port
addPeersByAddresses(List<String> addresses, int port, {PeerConfig? peerConfig, PeerHandlerI? handler}) Future<List<Peer>>

Available on PeerManager, provided by the PeerManagerExtensions extension

Add multiple peers by address list
announceBlock(Hash blockHash, List<PeerI> targetPeers) Future<List<PeerI>>
Announce a block hash to specified peers Returns list of peers that successfully received the announcement
override
announceTransaction(Hash txHash, List<PeerI> targetPeers) Future<List<PeerI>>
Announce a transaction hash to specified peers Returns list of peers that successfully received the announcement
override
broadcastMessage(WireMessage message) Future<List<Peer>>
Broadcast a message to all healthy peers
getHealthyPeers() List<Peer>
Get healthy peers only
getPeers() List<PeerI>
Get all currently managed peers
override
getReadyPeers() List<Peer>
Get ready peers (handshake complete)
getStatistics() Map<String, dynamic>
Get peer manager statistics
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
removeAllPeers() Future<void>

Available on PeerManager, provided by the PeerManagerExtensions extension

Remove all peers
removePeer(String peerId) Future<void>
Remove a peer
requestBlock(Hash blockHash) Future<PeerI?>
Request a block from the best available peer Returns the peer handling the request, or null if no peers available
override
requestTransaction(Hash txHash) Future<PeerI?>
Request a transaction from the best available peer Returns the peer handling the request, or null if no peers available
override
shutdown() Future<void>
Shutdown the peer manager and all associated peers
override
toString() String
A string representation of this object.
override

Operators

operator ==(Object other) bool
The equality operator.
inherited