Documentation
¶
Index ¶
- func SavePrivateKeyToFile(priv crypto.PrivKey, path string) error
- type MessageFilter
- type MessageHandler
- type Network
- func (n *Network) BroadcastMessage(topic string, data []byte) error
- func (n *Network) ClosedStream(libp2pnetwork.Network, libp2pnetwork.Stream)
- func (n *Network) ConnectToPeer(addr string) error
- func (n *Network) Connected(net libp2pnetwork.Network, conn libp2pnetwork.Conn)
- func (n *Network) Disconnected(net libp2pnetwork.Network, conn libp2pnetwork.Conn)
- func (n *Network) GetLocalAddresses() []string
- func (n *Network) GetLocalPeerID() string
- func (n *Network) GetPeers() []string
- func (n *Network) HandlePeerFound(pi peer.AddrInfo)
- func (n *Network) IsPeerConnected(peerID peer.ID) bool
- func (n *Network) Listen(libp2pnetwork.Network, multiaddr.Multiaddr)
- func (n *Network) ListenClose(libp2pnetwork.Network, multiaddr.Multiaddr)
- func (n *Network) OpenedStream(libp2pnetwork.Network, libp2pnetwork.Stream)
- func (n *Network) RegisterMessageFilter(topic string, filter MessageFilter)
- func (n *Network) RegisterMessageHandler(topic string, handler MessageHandler)
- func (n *Network) RegisterRequestHandler(requestType string, handler RequestHandler)
- func (n *Network) Run(ctx context.Context) error
- func (n *Network) SendRequest(peerID string, requestType string, data []byte) ([]byte, error)
- type NetworkConfig
- type NetworkInterface
- type RequestHandler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type MessageFilter ¶
MessageFilter Used to filter broadcast messages
type MessageHandler ¶
MessageHandler Used to handle messages received in broadcast mode
type Network ¶
type Network struct {
// contains filtered or unexported fields
}
Network network layer - modern P2P network based on libp2p
func (*Network) BroadcastMessage ¶
BroadcastMessage broadcast message
func (*Network) ClosedStream ¶
func (n *Network) ClosedStream(libp2pnetwork.Network, libp2pnetwork.Stream)
func (*Network) ConnectToPeer ¶
ConnectToPeer connect to specified node (external API)
func (*Network) Connected ¶
func (n *Network) Connected(net libp2pnetwork.Network, conn libp2pnetwork.Conn)
func (*Network) Disconnected ¶
func (n *Network) Disconnected(net libp2pnetwork.Network, conn libp2pnetwork.Conn)
func (*Network) GetLocalAddresses ¶
GetLocalAddresses get local node address list
func (*Network) GetLocalPeerID ¶
GetLocalPeerID Get local peer ID
func (*Network) HandlePeerFound ¶
HandlePeerFound Implement mdns.Notifee interface to handle discovered peers
func (*Network) IsPeerConnected ¶
IsPeerConnected Check if peer is connected
func (*Network) Listen ¶
func (n *Network) Listen(libp2pnetwork.Network, multiaddr.Multiaddr)
Implement network.Notifiee interface
func (*Network) ListenClose ¶
func (n *Network) ListenClose(libp2pnetwork.Network, multiaddr.Multiaddr)
func (*Network) OpenedStream ¶
func (n *Network) OpenedStream(libp2pnetwork.Network, libp2pnetwork.Stream)
func (*Network) RegisterMessageFilter ¶
func (n *Network) RegisterMessageFilter(topic string, filter MessageFilter)
RegisterMessageFilter register message filter
func (*Network) RegisterMessageHandler ¶
func (n *Network) RegisterMessageHandler(topic string, handler MessageHandler)
RegisterMessageHandler register message handler Automatically subscribe to the corresponding topic to receive messages
func (*Network) RegisterRequestHandler ¶
func (n *Network) RegisterRequestHandler(requestType string, handler RequestHandler)
RegisterRequestHandler register point-to-point request handler
type NetworkConfig ¶
type NetworkConfig struct {
Host string // Listening address
Port int // Listening port
MaxPeers int // Maximum number of connections
PrivateKeyPath string // Private key file path
BootstrapPeers []string // Bootstrap node address list
// Newly added configuration fields
EnablePeerScoring bool // Whether to enable Peer scoring
MaxIPColocation int // Maximum number of nodes per IP address
IPColocationWeight float64 // IP colocation weight
BehaviourWeight float64 // Behavior weight
BehaviourDecay float64 // Behavior decay factor
AppSpecificScore float64 // Application specific score
}
NetworkConfig network configuration
func NewNetworkConfig ¶
func NewNetworkConfig() *NetworkConfig
NewNetworkConfig creates a new network configuration instance with default values
type NetworkInterface ¶
type NetworkInterface interface {
// Run Start the network module and run
Run(ctx context.Context) error
// BroadcastMessage Broadcast message to specified topic
BroadcastMessage(topic string, data []byte) error
// RegisterMessageHandler Register broadcast message handler
RegisterMessageHandler(topic string, handler MessageHandler)
// RegisterRequestHandler Register point-to-point request handler
RegisterRequestHandler(requestType string, handler RequestHandler)
// SendRequest Send point-to-point request
SendRequest(peerID string, requestType string, data []byte) ([]byte, error)
// ConnectToPeer Connect to specified peer
ConnectToPeer(addr string) error
// GetPeers Get list of connected peers
GetPeers() []string
// GetLocalAddresses Get local peer address list
GetLocalAddresses() []string
// GetLocalPeerID Get local peer ID
GetLocalPeerID() string
// RegisterMessageFilter Register broadcast message filter
RegisterMessageFilter(topic string, filter MessageFilter)
}
NetworkInterface Network interface, defines all externally provided functions
func New ¶
func New(cfg *NetworkConfig, ops ...libp2p.Option) (NetworkInterface, error)
New create a new network instance
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
base
command
|
|
|
chat
command
|
|
|
peer_scoring
command
|
|
|
two_node
command
|