Skip to content

Commit

Permalink
feat_: use bootnodes as one of the preferred nodes for waku filter su…
Browse files Browse the repository at this point in the history
…bscriptions
  • Loading branch information
chaitanyaprem committed Oct 23, 2024
1 parent fa1a552 commit a855120
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 7 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ require (
github.com/schollz/peerdiscovery v1.7.0
github.com/siphiuel/lc-proxy-wrapper v0.0.0-20230516150924-246507cee8c7
github.com/urfave/cli/v2 v2.27.2
github.com/waku-org/go-waku v0.8.1-0.20241018104939-8842d00df1b9
github.com/waku-org/go-waku v0.8.1-0.20241023111626-103d26c4cb18
github.com/wk8/go-ordered-map/v2 v2.1.7
github.com/yeqown/go-qrcode/v2 v2.2.1
github.com/yeqown/go-qrcode/writer/standard v1.2.1
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -2136,8 +2136,8 @@ github.com/waku-org/go-libp2p-pubsub v0.12.0-gowaku.0.20240823143342-b0f2429ca27
github.com/waku-org/go-libp2p-pubsub v0.12.0-gowaku.0.20240823143342-b0f2429ca27f/go.mod h1:Oi0zw9aw8/Y5GC99zt+Ef2gYAl+0nZlwdJonDyOz/sE=
github.com/waku-org/go-libp2p-rendezvous v0.0.0-20240110193335-a67d1cc760a0 h1:R4YYx2QamhBRl/moIxkDCNW+OP7AHbyWLBygDc/xIMo=
github.com/waku-org/go-libp2p-rendezvous v0.0.0-20240110193335-a67d1cc760a0/go.mod h1:EhZP9fee0DYjKH/IOQvoNSy1tSHp2iZadsHGphcAJgY=
github.com/waku-org/go-waku v0.8.1-0.20241018104939-8842d00df1b9 h1:0idZXdPAB4Xgbj6R9rJoeNWwVRarGioPIPIwapfJbQA=
github.com/waku-org/go-waku v0.8.1-0.20241018104939-8842d00df1b9/go.mod h1:1BRnyg2mQ2aBNLTBaPq6vEvobzywGykPOhGQFbHGf74=
github.com/waku-org/go-waku v0.8.1-0.20241023111626-103d26c4cb18 h1:O8wbjzxaFzgv3F+sTpcRcN0Jw2O8Vlvj3rOa03LmPMo=
github.com/waku-org/go-waku v0.8.1-0.20241023111626-103d26c4cb18/go.mod h1:1BRnyg2mQ2aBNLTBaPq6vEvobzywGykPOhGQFbHGf74=
github.com/waku-org/go-zerokit-rln v0.1.14-0.20240102145250-fa738c0bdf59 h1:jisj+OCI6QydLtFq3Pyhu49wl9ytPN7oAHjMfepHDrA=
github.com/waku-org/go-zerokit-rln v0.1.14-0.20240102145250-fa738c0bdf59/go.mod h1:1PdBdPzyTaKt3VnpAHk3zj+r9dXPFOr3IHZP9nFle6E=
github.com/waku-org/go-zerokit-rln-apple v0.0.0-20230916172309-ee0ee61dde2b h1:KgZVhsLkxsj5gb/FfndSCQu6VYwALrCOgYI3poR95yE=
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion vendor/modules.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1015,7 +1015,7 @@ github.com/waku-org/go-discover/discover/v5wire
github.com/waku-org/go-libp2p-rendezvous
github.com/waku-org/go-libp2p-rendezvous/db
github.com/waku-org/go-libp2p-rendezvous/pb
# github.com/waku-org/go-waku v0.8.1-0.20241018104939-8842d00df1b9
# github.com/waku-org/go-waku v0.8.1-0.20241023111626-103d26c4cb18
## explicit; go 1.21
github.com/waku-org/go-waku/logging
github.com/waku-org/go-waku/tests
Expand Down
28 changes: 26 additions & 2 deletions wakuv2/waku.go
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,6 @@ func (w *Waku) discoverAndConnectPeers() {
w.logger.Warn("invalid peer multiaddress", zap.String("ma", addrString), zap.Error(err))
continue
}

peerInfo, err := peer.AddrInfoFromP2pAddr(addr)
if err != nil {
w.logger.Warn("invalid peer multiaddress", zap.Stringer("addr", addr), zap.Error(err))
Expand Down Expand Up @@ -1202,7 +1201,8 @@ func (w *Waku) Start() error {
w.cfg.MinPeersForFilter,
w,
w.node.FilterLightnode(),
filterapi.WithBatchInterval(300*time.Millisecond))
filterapi.WithBatchInterval(300*time.Millisecond),
filterapi.WithPreferredServiceNodes(w.GetBootNodes()))
}

err = w.setupRelaySubscriptions()
Expand Down Expand Up @@ -1702,6 +1702,30 @@ func (w *Waku) StopDiscV5() error {
return nil
}

func (w *Waku) GetBootNodes() peer.IDSlice {
var bootnodes peer.IDSlice
for _, addrString := range w.cfg.WakuNodes {
addrString := addrString
if strings.HasPrefix(addrString, "enrtree://") {
continue
} else {
// It is a normal multiaddress
addr, err := multiaddr.NewMultiaddr(addrString)
if err != nil {
w.logger.Warn("invalid peer multiaddress", zap.String("ma", addrString), zap.Error(err))
continue
}
_, id := peer.SplitAddr(addr)
if id == "" {
w.logger.Warn("peer multiaddress doesn't contain peerID", zap.Stringer("addr", addr))
continue
}
bootnodes = append(bootnodes, id)
}
}
return bootnodes
}

func (w *Waku) handleNetworkChangeFromApp(state connection.State) {
//If connection state is reported by something other than peerCount becoming 0 e.g from mobile app, disconnect all peers
if (state.Offline && len(w.node.Host().Network().Peers()) > 0) ||
Expand Down

0 comments on commit a855120

Please sign in to comment.