Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: start moving discovery modules to waku/discovery #2587

Merged
merged 6 commits into from
Apr 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions apps/chat2/chat2.nim
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import
../../waku/waku_lightpush/rpc,
../../waku/waku_enr,
../../waku/waku_store,
../../waku/waku_dnsdisc,
../../waku/discovery/waku_dnsdisc,
../../waku/waku_node,
../../waku/node/waku_metrics,
../../waku/node/peer_manager,
Expand Down Expand Up @@ -523,7 +523,9 @@ proc processInput(rfd: AsyncFD, rng: ref HmacDrbgContext) {.async.} =
if msg.contentTopic == chat.contentTopic:
chat.printReceivedMessage(msg)

node.subscribe((kind: PubsubSub, topic: DefaultPubsubTopic), some(WakuRelayHandler(handler)))
node.subscribe(
(kind: PubsubSub, topic: DefaultPubsubTopic), some(WakuRelayHandler(handler))
)

if conf.rlnRelay:
info "WakuRLNRelay is enabled"
Expand Down
10 changes: 5 additions & 5 deletions apps/networkmonitor/networkmonitor.nim
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ import
../../waku/node/peer_manager,
../../waku/waku_node,
../../waku/waku_enr,
../../waku/waku_discv5,
../../waku/waku_dnsdisc,
../../waku/discovery/waku_discv5,
../../waku/discovery/waku_dnsdisc,
../../waku/waku_relay,
../../waku/waku_rln_relay,
../../waku/factory/builder,
Expand Down Expand Up @@ -131,12 +131,12 @@ proc setConnectedPeersMetrics(
var analyzeFuts: seq[Future[Result[string, string]]]

var (inConns, outConns) = node.peer_manager.connectedPeers(WakuRelayCodec)
info "connected peers", inConns=inConns.len, outConns=outConns.len
info "connected peers", inConns = inConns.len, outConns = outConns.len

shuffle(outConns)

if outConns.len >= toInt(MaxConnectedPeers/2):
for p in outConns[0 ..< toInt(outConns.len/2)]:
if outConns.len >= toInt(MaxConnectedPeers / 2):
for p in outConns[0 ..< toInt(outConns.len / 2)]:
trace "Pruning Peer", Peer = $p
asyncSpawn(node.switch.disconnect(p))

Expand Down
8 changes: 3 additions & 5 deletions apps/wakunode2/app.nim
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ import
../../waku/waku_api/rest/health/handlers as rest_health_api,
../../waku/waku_api/rest/admin/handlers as rest_admin_api,
../../waku/waku_archive,
../../waku/waku_dnsdisc,
../../waku/discovery/waku_dnsdisc,
../../waku/discovery/waku_discv5,
../../waku/waku_enr/sharding,
../../waku/waku_discv5,
../../waku/waku_peer_exchange,
../../waku/waku_rln_relay,
../../waku/waku_store,
Expand Down Expand Up @@ -366,9 +366,7 @@ proc startRestServer(
"/relay endpoints are not available. Please check your configuration: --relay"

## Filter REST API
if conf.filternode != "" and
app.node.wakuFilterClient != nil:

if conf.filternode != "" and app.node.wakuFilterClient != nil:
let filterCache = MessageCache.init()

let filterDiscoHandler =
Expand Down
2 changes: 1 addition & 1 deletion examples/publisher.nim
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import
../../../waku/waku_core,
../../../waku/waku_node,
../../../waku/waku_enr,
../../../waku/waku_discv5,
../../../waku/discovery/waku_discv5,
../../../waku/factory/builder

proc now*(): Timestamp =
Expand Down
2 changes: 1 addition & 1 deletion examples/subscriber.nim
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import
../../../waku/waku_core,
../../../waku/waku_node,
../../../waku/waku_enr,
../../../waku/waku_discv5,
../../../waku/discovery/waku_discv5,
../../../waku/factory/builder,
../../../waku/waku_relay

Expand Down
2 changes: 1 addition & 1 deletion tests/node/test_wakunode_peer_exchange.nim
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import
import
../../../waku/[
waku_node,
waku_discv5,
discovery/waku_discv5,
waku_peer_exchange,
node/peer_manager,
waku_relay/protocol,
Expand Down
2 changes: 1 addition & 1 deletion tests/test_waku_dnsdisc.nim
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import
import
../../waku/node/peer_manager,
../../waku/waku_node,
../../waku/waku_dnsdisc,
../../waku/discovery/waku_dnsdisc,
./testlib/common,
./testlib/wakucore,
./testlib/wakunode
Expand Down
2 changes: 1 addition & 1 deletion tests/test_waku_metadata.nim
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import
../../waku/waku_node,
../../waku/waku_core/topics,
../../waku/node/peer_manager,
../../waku/waku_discv5,
../../waku/discovery/waku_discv5,
../../waku/waku_metadata,
./testlib/wakucore,
./testlib/wakunode
Expand Down
2 changes: 1 addition & 1 deletion tests/testlib/wakunode.nim
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import
../../../waku/waku_node,
../../../waku/node/peer_manager,
../../../waku/waku_enr,
../../../waku/waku_discv5,
../../../waku/discovery/waku_discv5,
../../../waku/factory/external_config,
../../../waku/factory/internal_config,
../../../waku/factory/builder,
Expand Down
2 changes: 1 addition & 1 deletion tests/waku_discv5/test_waku_discv5.nim
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import
eth/keys as eth_keys

import
../../../waku/[waku_core/topics, waku_enr, waku_discv5, common/enr],
../../../waku/[waku_core/topics, waku_enr, discovery/waku_discv5, common/enr],
../testlib/[wakucore, testasync, assertions, futures],
../waku_enr/utils,
./utils
Expand Down
3 changes: 2 additions & 1 deletion tests/waku_discv5/utils.nim
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ import
eth/keys as eth_keys

import
../../../waku/[waku_core/topics, waku_enr, waku_discv5], ../testlib/[common, wakucore]
../../../waku/[waku_core/topics, waku_enr, discovery/waku_discv5],
../testlib/[common, wakucore]

proc newTestDiscv5*(
privKey: libp2p_keys.PrivateKey,
Expand Down
2 changes: 1 addition & 1 deletion tests/waku_enr/test_sharding.nim
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import
eth/keys as eth_keys

import
../../../waku/[waku_enr, waku_discv5, waku_core],
../../../waku/[waku_enr, discovery/waku_discv5, waku_core],
../testlib/wakucore,
../waku_discv5/utils,
./utils
Expand Down
2 changes: 1 addition & 1 deletion tests/waku_enr/utils.nim
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import
eth/keys as eth_keys

import
../../../waku/[waku_core/topics, waku_enr, waku_discv5, waku_enr/sharding],
../../../waku/[waku_core/topics, waku_enr, discovery/waku_discv5, waku_enr/sharding],
../testlib/[common, wakucore]

proc newTestEnrRecord*(
Expand Down
2 changes: 1 addition & 1 deletion tests/waku_peer_exchange/test_protocol.nim
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import
../../../waku/[
waku_node,
node/peer_manager,
waku_discv5,
discovery/waku_discv5,
waku_peer_exchange,
waku_peer_exchange/rpc,
waku_peer_exchange/rpc_codec,
Expand Down
13 changes: 6 additions & 7 deletions tests/waku_peer_exchange/test_rpc_codec.nim
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,12 @@ import
eth/p2p/discoveryv5/enr

import
../../../waku/
[
node/peer_manager,
waku_discv5,
waku_peer_exchange/rpc,
waku_peer_exchange/rpc_codec,
],
../../../waku/[
node/peer_manager,
discovery/waku_discv5,
waku_peer_exchange/rpc,
waku_peer_exchange/rpc_codec,
],
../testlib/[wakucore]

suite "Peer Exchange RPC":
Expand Down
2 changes: 1 addition & 1 deletion tests/waku_peer_exchange/utils.nim
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import
import
../../../waku/[
waku_node,
waku_discv5,
discovery/waku_discv5,
waku_peer_exchange,
waku_peer_exchange/rpc,
waku_peer_exchange/protocol,
Expand Down
33 changes: 33 additions & 0 deletions waku/discovery/discovery_manager.nim
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
when (NimMajor, NimMinor) < (1, 4):
{.push raises: [Defect].}
else:
{.push raises: [].}

import waku_discv5, ../../waku_core

## This module contains the logic needed to discover other peers and
## also to make the "self" node discoverable by other peers.

type DiscoveryManager* = object
wakuDiscv5*: Option[WakuDiscoveryV5]
dynamicBootstrapNodes*: seq[RemotePeerInfo]

#[
TODO: in future PRs we will have:

App* = object
version: string
conf: WakuNodeConf
rng: ref HmacDrbgContext
key: crypto.PrivateKey

## in future PRs, the following two items will be encapsulated by 'DiscoveryManager'
wakuDiscv5: Option[WakuDiscoveryV5] <-- this will get removed
dynamicBootstrapNodes: seq[RemotePeerInfo] <-- this will get removed

node: WakuNode <-- this will contain a discManager instance

restServer: Option[WakuRestServerRef]
metricsServer: Option[MetricsHttpServerRef]

]#
2 changes: 1 addition & 1 deletion waku/waku_discv5.nim → waku/discovery/waku_discv5.nim
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import
eth/keys as eth_keys,
eth/p2p/discoveryv5/node,
eth/p2p/discoveryv5/protocol
import ./node/peer_manager/peer_manager, ./waku_core, ./waku_enr
import ../node/peer_manager/peer_manager, ../waku_core, ../waku_enr

export protocol, waku_enr

Expand Down
2 changes: 1 addition & 1 deletion waku/waku_dnsdisc.nim → waku/discovery/waku_dnsdisc.nim
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import
libp2p/multiaddress,
libp2p/peerid,
dnsdisc/client
import ./waku_core
import ../waku_core

export client

Expand Down
2 changes: 1 addition & 1 deletion waku/factory/builder.nim
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import
libp2p/builders,
libp2p/nameresolving/nameresolver,
libp2p/transports/wstransport
import ../waku_enr, ../waku_discv5, ../waku_node, ../node/peer_manager
import ../waku_enr, ../discovery/waku_discv5, ../waku_node, ../node/peer_manager

type
WakuNodeBuilder* = object # General
Expand Down
2 changes: 1 addition & 1 deletion waku/factory/node_factory.nim
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import
../waku_node,
../waku_core,
../waku_rln_relay,
../waku_dnsdisc,
../discovery/waku_dnsdisc,
../waku_archive,
../waku_store,
../waku_filter_v2,
Expand Down
7 changes: 3 additions & 4 deletions waku/node/waku_node.nim
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@ import
../waku_lightpush/common,
../waku_lightpush/protocol,
../waku_enr,
../waku_dnsdisc,
../waku_peer_exchange,
../waku_rln_relay,
./config,
./peer_manager,
../discovery/waku_dnsdisc,
../common/ratelimit

declarePublicCounter waku_node_messages, "number of messages received", ["type"]
Expand Down Expand Up @@ -446,8 +446,7 @@ proc filterHandleMessage*(
node: WakuNode, pubsubTopic: PubsubTopic, message: WakuMessage
) {.async.} =
if node.wakuFilter.isNil():
error "cannot handle filter message",
error = "waku filter is required"
error "cannot handle filter message", error = "waku filter is required"
return

await node.wakuFilter.handleMessage(pubsubTopic, message)
Expand Down Expand Up @@ -546,7 +545,7 @@ proc filterSubscribe*(
proc filterUnsubscribe*(
node: WakuNode,
pubsubTopic: Option[PubsubTopic],
contentTopics: ContentTopic|seq[ContentTopic],
contentTopics: ContentTopic | seq[ContentTopic],
peer: RemotePeerInfo | string,
): Future[FilterSubscribeResult] {.async, gcsafe, raises: [Defect, ValueError].} =
## Unsubscribe from a content filter V2".
Expand Down
2 changes: 1 addition & 1 deletion waku/waku_api/handlers.nim
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ else:
{.push raises: [].}

import chronos, chronicles, std/[options, sequtils], stew/results
import ../waku_discv5, ../waku_relay, ../waku_core, ./message_cache
import ../discovery/waku_discv5, ../waku_relay, ../waku_core, ./message_cache

### Discovery

Expand Down
2 changes: 1 addition & 1 deletion waku/waku_peer_exchange/protocol.nim
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import
../common/nimchronos,
../node/peer_manager,
../waku_core,
../waku_discv5,
../discovery/waku_discv5,
./rpc,
./rpc_codec

Expand Down
Loading