Documentation
¶
Index ¶
- Constants
- Variables
- func ExternalIP() (string, error)
- func ExternalIPv4() (string, error)
- func ExternalIPv6() (string, error)
- func NewDiscover(host HostNode) (*discover, error)
- func NewSyncronizer(host HostNode, chain chain.Blockchain) (*synchronizer, error)
- func SortAddresses(ipAddrs []net.IP) []net.IP
- type HostNode
- 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") )
View Source
var BadPeersCache, _ = ristretto.NewCache(&ristretto.Config{
NumCounters: maxPeers,
MaxCost: 1 << 22,
BufferItems: 64,
})
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 NewDiscover ¶
NewDiscover creates a new discovery service.
func NewSyncronizer ¶
func NewSyncronizer(host HostNode, chain chain.Blockchain) (*synchronizer, error)
NewSyncronizer constructs a new sync protocol with a given host and chain.
Types ¶
type HostNode ¶
type HostNode interface {
Syncing() bool
GetHost() host.Host
GetNetMagic() uint32
DisconnectPeer(p peer.ID) error
GetPeerInfos() []peer.AddrInfo
GetPeerDirection(id peer.ID) network.Direction
GetPeerInfo(id peer.ID) *peer.AddrInfo
GetPeersStats() []*peerInfo
RegisterHandler(message string, handler MessageHandler) error
RegisterTopicHandler(message string, handler MessageHandler) error
HandleStream(s network.Stream)
SendMessage(id peer.ID, msg p2p.Message) error
Broadcast(msg p2p.Message) error
}
HostNode is an interface for hostNode
func NewHostNode ¶
func NewHostNode(blockchain chain.Blockchain) (HostNode, error)
NewHostNode creates a host node
Click to show internal directories.
Click to hide internal directories.