Documentation
¶
Index ¶
- Constants
- Variables
- func ExternalIP() (string, error)
- func ExternalIPv4() (string, error)
- func ExternalIPv6() (string, error)
- func NewDiscovery(ctx context.Context, h Host, lh libhost.Host) (*discovery, error)
- func NewNotify(h Host, s *stats) *notify
- func NewStatsService(h Host) (*stats, error)
- func NewSynchronizer(host Host, chain chain.Blockchain) (*synchronizer, error)
- func SortAddresses(ipAddrs []net.IP) []net.IP
- type Host
- type MessageHandler
Constants ¶
View Source
const MinPeersForSyncStart = 3
Variables ¶
View Source
var ( // ErrorBlockAlreadyKnown returns when received a block already known ErrorBlockAlreadyKnown = errors.New("block already known") // ErrorBlockParentUnknown returns when received a block with an unknown parent ErrorBlockParentUnknown = errors.New("unknown block parent") )
Functions ¶
func ExternalIP ¶
ExternalIP returns the first IPv4/IPv6 available.
func ExternalIPv4 ¶
ExternalIPv4 returns the first IPv4 available.
func ExternalIPv6 ¶
ExternalIPv6 retrieves any allocated IPv6 addresses from the accessible network interfaces.
func NewDiscovery ¶
func NewStatsService ¶
func NewSynchronizer ¶
func NewSynchronizer(host Host, chain chain.Blockchain) (*synchronizer, error)
NewSynchronizer constructs a new sync protocol with a given host and chain.
Types ¶
type Host ¶
type Host interface {
ID() peer.ID
Version() *p2p.MsgVersion
Synced() bool
ConnectedPeers() int
GetPeersInfo() []*peerStats
GetPeerDirection(p peer.ID) network.Direction
SendMessage(id peer.ID, msg p2p.Message) error
Notify(n *notify)
Unnotify(n *notify)
Disconnect(p peer.ID) error
Connect(p peer.AddrInfo) error
HandleConnection(net network.Network, conn network.Conn)
RegisterTopicHandler(messageName string, handler MessageHandler)
Broadcast(msg p2p.Message) error
Stop()
SetStreamHandler(pid protocol.ID, s network.StreamHandler)
TrackedPeers() int
FindBestPeer() (peer.ID, bool)
GetPeerStats(p peer.ID) (*peerStats, bool)
RemovePeerStats(id peer.ID)
AddPeerStats(id peer.ID, msg *p2p.MsgVersion, dir network.Direction)
IncreasePeerReceivedBytes(p peer.ID, amount uint64)
}
func NewHostNode ¶
func NewHostNode(ch chain.Blockchain) (Host, error)
Click to show internal directories.
Click to hide internal directories.