From 438e76dfb8486ae4b7a839896825b461a433d5eb Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Sat, 9 Mar 2024 13:12:22 -0500 Subject: [PATCH] feat: add config level blocklist support --- config/config.go | 3 ++- service/default/p2p.go | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) 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 {