Skip to content

Commit

Permalink
Merge branch 'master' into fix/enr-encode
Browse files Browse the repository at this point in the history
  • Loading branch information
richard-ramos authored Oct 3, 2024
2 parents 330ae19 + ae42393 commit ad64104
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 44 deletions.
2 changes: 2 additions & 0 deletions library/c/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,8 @@ interface JsonConfig {
storeRetentionTimeSeconds?: number;
websocket?: Websocket;
dns4DomainName?: string;
clusterID: int;
shards: Array<uint16>;
}
```
Expand Down
2 changes: 2 additions & 0 deletions library/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ type WakuConfig struct {
RetentionTimeSeconds *int `json:"storeRetentionTimeSeconds,omitempty"`
DNS4DomainName string `json:"dns4DomainName,omitempty"`
Websockets *WebsocketConfig `json:"websockets,omitempty"`
ClusterID int `json:"clusterID"`
Shards []uint16 `json:"shards"`
}

// WebsocketConfig contains all the settings required to setup websocket support in waku
Expand Down
2 changes: 2 additions & 0 deletions library/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,8 @@ func NewNode(instance *WakuInstance, configJSON string) error {
node.WithPrivateKey(prvKey),
node.WithHostAddress(hostAddr),
node.WithKeepAlive(10*time.Second, time.Duration(*config.KeepAliveInterval)*time.Second),
node.WithClusterID(uint16(config.ClusterID)),
node.WithShards(config.Shards),
}

if *config.EnableRelay {
Expand Down
17 changes: 0 additions & 17 deletions waku/v2/node/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package node
import (
"fmt"

"github.com/libp2p/go-libp2p/core/metrics"
"github.com/libp2p/go-libp2p/p2p/metricshelper"
"github.com/prometheus/client_golang/prometheus"
)
Expand Down Expand Up @@ -34,20 +33,11 @@ var peerStoreSize = prometheus.NewGauge(
Help: "Size of Peer Store",
})

var bandwidthTotal = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "libp2p_network_bytes_total",
Help: "Bandwidth usage total",
},
[]string{"direction"},
)

var collectors = []prometheus.Collector{
gitVersion,
peerDials,
connectedPeers,
peerStoreSize,
bandwidthTotal,
}

// Metrics exposes the functions required to update prometheus metrics for the waku node
Expand All @@ -57,7 +47,6 @@ type Metrics interface {
RecordPeerConnected()
RecordPeerDisconnected()
SetPeerStoreSize(int)
RecordBandwidth(metrics.Stats)
}

type metricsImpl struct {
Expand Down Expand Up @@ -95,9 +84,3 @@ func (m *metricsImpl) RecordPeerDisconnected() {
func (m *metricsImpl) SetPeerStoreSize(size int) {
peerStoreSize.Set(float64(size))
}

func (m *metricsImpl) RecordBandwidth(stats metrics.Stats) {
bandwidthTotal.WithLabelValues("in").Add(float64(stats.TotalIn))
bandwidthTotal.WithLabelValues("out").Add(float64(stats.TotalOut))

}
32 changes: 5 additions & 27 deletions waku/v2/node/wakunode2.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import (

"github.com/libp2p/go-libp2p/core/event"
"github.com/libp2p/go-libp2p/core/host"
"github.com/libp2p/go-libp2p/core/metrics"
"github.com/libp2p/go-libp2p/core/network"
"github.com/libp2p/go-libp2p/core/peer"
"github.com/libp2p/go-libp2p/core/peerstore"
Expand Down Expand Up @@ -85,12 +84,11 @@ type RLNRelay interface {
}

type WakuNode struct {
host host.Host
opts *WakuNodeParameters
log *zap.Logger
timesource timesource.Timesource
metrics Metrics
bandwidthCounter *metrics.BandwidthCounter
host host.Host
opts *WakuNodeParameters
log *zap.Logger
timesource timesource.Timesource
metrics Metrics

peerstore peerstore.Peerstore
peerConnector *peermanager.PeerConnectionStrategy
Expand Down Expand Up @@ -197,9 +195,6 @@ func New(opts ...WakuNodeOption) (*WakuNode, error) {
w.metrics = newMetrics(params.prometheusReg)
w.metrics.RecordVersion(Version, GitCommit)

w.bandwidthCounter = metrics.NewBandwidthCounter()
params.libP2POpts = append(params.libP2POpts, libp2p.BandwidthReporter(w.bandwidthCounter))

// Setup peerstore wrapper
if params.peerstore != nil {
w.peerstore = wps.NewWakuPeerstore(params.peerstore)
Expand Down Expand Up @@ -364,23 +359,6 @@ func (w *WakuNode) Start(ctx context.Context) error {

w.host = host

// Bandwidth reporter created for comparing IDONTWANT performance
go func() {
ticker := time.NewTicker(time.Second)
defer ticker.Stop()

for {
select {
case <-ctx.Done():
return
case <-ticker.C:
totals := w.bandwidthCounter.GetBandwidthTotals()
w.bandwidthCounter.Reset()
w.metrics.RecordBandwidth(totals)
}
}
}()

if w.addressChangesSub, err = host.EventBus().Subscribe(new(event.EvtLocalAddressesUpdated)); err != nil {
return err
}
Expand Down
17 changes: 17 additions & 0 deletions waku/v2/node/wakuoptions.go
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,11 @@ func WithPrivateKey(privKey *ecdsa.PrivateKey) WakuNodeOption {
func WithClusterID(clusterID uint16) WakuNodeOption {
return func(params *WakuNodeParameters) error {
params.clusterID = clusterID
if params.shards == nil {
var pshards protocol.RelayShards
pshards.ClusterID = params.clusterID
params.shards = &pshards
}
return nil
}
}
Expand All @@ -340,6 +345,18 @@ func WithPubSubTopics(topics []string) WakuNodeOption {
}
}

func WithShards(shards []uint16) WakuNodeOption {
return func(params *WakuNodeParameters) error {
if params.shards == nil {
var pshards protocol.RelayShards
pshards.ClusterID = params.clusterID
params.shards = &pshards
}
params.shards.ShardIDs = shards
return nil
}
}

// WithMaxConnectionsPerIP sets the max number of allowed peers from the same IP
func WithMaxConnectionsPerIP(limit int) WakuNodeOption {
return func(params *WakuNodeParameters) error {
Expand Down

0 comments on commit ad64104

Please sign in to comment.