diff --git a/config/config.go b/config/config.go index 16a500c..bfeb5db 100644 --- a/config/config.go +++ b/config/config.go @@ -21,7 +21,8 @@ type P2PConfig struct { } type PeersConfig struct { - Initial []string `mapstructure:"initial"` + Initial []string `mapstructure:"initial"` + Blocklist []string `mapstructure:"blocklist"` } type HTTPAPIConfig struct { diff --git a/service/default/p2p.go b/service/default/p2p.go index 23bb993..c884c14 100644 --- a/service/default/p2p.go +++ b/service/default/p2p.go @@ -134,6 +134,16 @@ func (p *P2PServiceDefault) Init(ctx context.Context) error { p.bucket = bucket p.inited = true + for _, peer := range p.Config().P2P.Peers.Blocklist { + _, err := encoding.DecodeNodeId(peer) + if err != nil { + return err + } + + p.incomingPeerBlockList.Put(peer, true) + p.outgoingPeerBlocklist.Put(peer, true) + } + return nil } func (p *P2PServiceDefault) ConnectToNode(connectionUris []*url.URL, retry uint, fromPeer net.Peer) error {