Documentation
¶
Index ¶
- func DecodeENR(enrStr string) (enr.Record, error)
- func EncodeENR(record enr.Record) (string, error)
- func KeyPath(datadir string) string
- func LoadPrivKey(dataDir string) (*ecdsa.PrivateKey, error)
- func NewLocalEnode(config Config, key *ecdsa.PrivateKey) (*enode.LocalNode, *enode.DB, error)
- func NewPingService(h host.Host, peers []peer.ID, callback func(peer.ID)) func(context.Context)
- func NewSavedPrivKey(datadir string) (*ecdsa.PrivateKey, error)
- func NewTCPNode(cfg Config, key *ecdsa.PrivateKey, connGater ConnGater, ...) (host.Host, error)
- func NewUDPNode(ctx context.Context, config Config, ln *enode.LocalNode, key *ecdsa.PrivateKey, ...) (*discover.UDPv5, error)
- func ShortID(p peer.ID) string
- type Config
- type ConnGater
- func (ConnGater) InterceptAccept(_ network.ConnMultiaddrs) (allow bool)
- func (ConnGater) InterceptAddrDial(_ peer.ID, _ multiaddr.Multiaddr) (allow bool)
- func (ConnGater) InterceptPeerDial(_ peer.ID) (allow bool)
- func (c ConnGater) InterceptSecured(_ network.Direction, id peer.ID, _ network.ConnMultiaddrs) bool
- func (ConnGater) InterceptUpgraded(_ network.Conn) (bool, control.DisconnectReason)
- type Peer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeENR ¶ added in v0.2.0
DecodeENR returns a enr record decoded from the string. See reference github.com/ethereum/go-ethereum@v1.10.10/p2p/dnsdisc/tree.go:378.
func LoadPrivKey ¶ added in v0.3.0
func LoadPrivKey(dataDir string) (*ecdsa.PrivateKey, error)
LoadPrivKey returns the ecdsa k1 key saved in the directory.
func NewLocalEnode ¶ added in v0.1.1
NewLocalEnode returns a local enode and a peer DB or an error.
func NewPingService ¶ added in v0.2.0
NewPingService returns a start function of a p2p ping service that pings all peers every second and collects metrics. TODO(corver): Cluster wide req/resp doesn't scale since it is O(n^2).
func NewSavedPrivKey ¶ added in v0.3.0
func NewSavedPrivKey(datadir string) (*ecdsa.PrivateKey, error)
NewSavedPrivKey generates a new ecdsa k1 key and saves it to the directory.
func NewTCPNode ¶ added in v0.1.1
func NewTCPNode(cfg Config, key *ecdsa.PrivateKey, connGater ConnGater, udpNode *discover.UDPv5, peers []Peer) (host.Host, error, )
NewTCPNode returns a started tcp-based libp2p node.
func NewUDPNode ¶ added in v0.1.1
Types ¶
type Config ¶
type Config struct {
// DBPath defines the discv5 peer database file path.
DBPath string
// UDPBootnodes defines the discv5 boot node URLs.
UDPBootnodes []string
// UDPBootManifest enables using manifest ENRS as discv5 boot nodes.
UDPBootManifest bool
// UDPAddr defines the discv5 udp listen address.
UDPAddr string
// ExternalIP is the IP advertised by libp2p.
ExternalIP string
// ExternalHost is the DNS hostname advertised by libp2p.
ExteranlHost string
// TCPAddrs defines the lib-p2p tcp listen addresses.
TCPAddrs []string
// Allowlist defines csv CIDR blocks for lib-p2p allowed connections.
Allowlist string
// Allowlist defines csv CIDR blocks for lib-p2p denied connections.
Denylist string
}
func (Config) Multiaddrs ¶
Multiaddrs returns the configured addresses as libp2p multiaddrs.
type ConnGater ¶
type ConnGater struct {
// contains filtered or unexported fields
}
ConnGater filters incoming connections by the cluster peers.
func NewConnGater ¶ added in v0.1.1
NewConnGater return a new connection gater that limits access to the cluster peers.
func (ConnGater) InterceptAccept ¶
func (ConnGater) InterceptAccept(_ network.ConnMultiaddrs) (allow bool)
func (ConnGater) InterceptAddrDial ¶
func (ConnGater) InterceptPeerDial ¶
InterceptPeerDial does nothing.
func (ConnGater) InterceptSecured ¶
InterceptSecured rejects nodes with a peer ID that isn't part of any known DV.
func (ConnGater) InterceptUpgraded ¶
InterceptUpgraded does nothing.