@cryptotaxi247 / kubo / commits / 2b2efc662

Add allowlist config option

Marco Munizaga committed Jul 5, 2022 at 08:29 UTC 2b2efc662ba6c4a8c59dac2efa6ad736551a6a84
2 files changed +19
config/swarm.go
+4
@@ -141,6 +141,10 @@ type ResourceMgr struct {
141 // Enables the Network Resource Manager feature, default to on.
142 Enabled Flag `json:",omitempty"`
143 Limits *rcmgr.LimitConfig `json:",omitempty"`
144 + // A list of multiaddrs that can bypass normal system limits (but are still
145 + // limited by the allowlist scope). Convenience config around
146 + // https://pkg.go.dev/github.com/libp2p/go-libp2p-resource-manager#Allowlist.Add
147 + Allowlist []string `json:",omitempty"`
148 }
149
150 const (
core/node/libp2p/rcmgr.go
+15
@@ -20,6 +20,7 @@ import (
20 "github.com/libp2p/go-libp2p-core/protocol"
21 rcmgr "github.com/libp2p/go-libp2p-resource-manager"
22 rcmgrObs "github.com/libp2p/go-libp2p-resource-manager/obs"
23 + "github.com/multiformats/go-multiaddr"
24 "github.com/prometheus/client_golang/prometheus"
25 "go.opencensus.io/stats/view"
26
@@ -73,6 +74,20 @@ func ResourceManager(cfg config.SwarmConfig) interface{} {
74
75 ropts := []rcmgr.Option{rcmgr.WithMetrics(createRcmgrMetrics()), rcmgr.WithTraceReporter(str)}
76
77 + if len(cfg.ResourceMgr.Allowlist) > 0 {
78 + var mas []multiaddr.Multiaddr
79 + for _, maStr := range cfg.ResourceMgr.Allowlist {
80 + ma, err := multiaddr.NewMultiaddr(maStr)
81 + if err != nil {
82 + log.Errorf("failed to parse multiaddr=%v for allowlist, skipping. err=%v", maStr, err)
83 + continue
84 + }
85 + mas = append(mas, ma)
86 + }
87 + ropts = append(ropts, rcmgr.WithAllowlistedMultiaddrs(mas))
88 + log.Infof("Setting allowlist to: %v", mas)
89 + }
90 +
91 // Hook up the trace reporter metrics
92 view.Register(rcmgrObs.DefaultViews...)
93 ocprom.NewExporter(ocprom.Options{