mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-07 16:33:08 +00:00
fix(node): remove subscription to waku default network topic (#1545)
This commit is contained in:
parent
f88dc816ee
commit
1ea771fb2f
@ -18,7 +18,7 @@ import
|
|||||||
procSuite "Peer Exchange":
|
procSuite "Peer Exchange":
|
||||||
asyncTest "GossipSub (relay) peer exchange":
|
asyncTest "GossipSub (relay) peer exchange":
|
||||||
## Tests peer exchange
|
## Tests peer exchange
|
||||||
|
|
||||||
# Create nodes and ENR. These will be added to the discoverable list
|
# Create nodes and ENR. These will be added to the discoverable list
|
||||||
let
|
let
|
||||||
bindIp = ValidIpAddress.init("0.0.0.0")
|
bindIp = ValidIpAddress.init("0.0.0.0")
|
||||||
@ -28,41 +28,41 @@ procSuite "Peer Exchange":
|
|||||||
node2 = WakuNode.new(nodeKey2, bindIp, Port(61102), sendSignedPeerRecord = true)
|
node2 = WakuNode.new(nodeKey2, bindIp, Port(61102), sendSignedPeerRecord = true)
|
||||||
nodeKey3 = crypto.PrivateKey.random(Secp256k1, rng[])[]
|
nodeKey3 = crypto.PrivateKey.random(Secp256k1, rng[])[]
|
||||||
node3 = WakuNode.new(nodeKey3, bindIp, Port(61103), sendSignedPeerRecord = true)
|
node3 = WakuNode.new(nodeKey3, bindIp, Port(61103), sendSignedPeerRecord = true)
|
||||||
|
|
||||||
var
|
var
|
||||||
peerExchangeHandler, emptyHandler: RoutingRecordsHandler
|
peerExchangeHandler, emptyHandler: RoutingRecordsHandler
|
||||||
completionFut = newFuture[bool]()
|
completionFut = newFuture[bool]()
|
||||||
|
|
||||||
proc ignorePeerExchange(peer: PeerId, topic: string,
|
proc ignorePeerExchange(peer: PeerId, topic: string,
|
||||||
peers: seq[RoutingRecordsPair]) {.gcsafe, raises: [Defect].} =
|
peers: seq[RoutingRecordsPair]) {.gcsafe.} =
|
||||||
discard
|
discard
|
||||||
|
|
||||||
proc handlePeerExchange(peer: PeerId, topic: string,
|
proc handlePeerExchange(peer: PeerId, topic: string,
|
||||||
peers: seq[RoutingRecordsPair]) {.gcsafe, raises: [Defect].} =
|
peers: seq[RoutingRecordsPair]) {.gcsafe.} =
|
||||||
## Handle peers received via gossipsub peer exchange
|
## Handle peers received via gossipsub peer exchange
|
||||||
let peerRecords = peers.mapIt(it.record.get())
|
let peerRecords = peers.mapIt(it.record.get())
|
||||||
|
|
||||||
check:
|
check:
|
||||||
# Node 3 is informed of node 2 via peer exchange
|
# Node 3 is informed of node 2 via peer exchange
|
||||||
peer == node1.switch.peerInfo.peerId
|
peer == node1.switch.peerInfo.peerId
|
||||||
topic == DefaultPubsubTopic
|
topic == DefaultPubsubTopic
|
||||||
peerRecords.countIt(it.peerId == node2.switch.peerInfo.peerId) == 1
|
peerRecords.countIt(it.peerId == node2.switch.peerInfo.peerId) == 1
|
||||||
|
|
||||||
if (not completionFut.completed()):
|
if (not completionFut.completed()):
|
||||||
completionFut.complete(true)
|
completionFut.complete(true)
|
||||||
|
|
||||||
peerExchangeHandler = handlePeerExchange
|
peerExchangeHandler = handlePeerExchange
|
||||||
emptyHandler = ignorePeerExchange
|
emptyHandler = ignorePeerExchange
|
||||||
|
|
||||||
await node1.mountRelay(peerExchangeHandler = some(emptyHandler))
|
await node1.mountRelay(topics = @[DefaultPubsubTopic], peerExchangeHandler = some(emptyHandler))
|
||||||
await node2.mountRelay(peerExchangeHandler = some(emptyHandler))
|
await node2.mountRelay(topics = @[DefaultPubsubTopic], peerExchangeHandler = some(emptyHandler))
|
||||||
await node3.mountRelay(peerExchangeHandler = some(peerExchangeHandler))
|
await node3.mountRelay(topics = @[DefaultPubsubTopic], peerExchangeHandler = some(peerExchangeHandler))
|
||||||
|
|
||||||
# Ensure that node1 prunes all peers after the first connection
|
# Ensure that node1 prunes all peers after the first connection
|
||||||
node1.wakuRelay.parameters.dHigh = 1
|
node1.wakuRelay.parameters.dHigh = 1
|
||||||
|
|
||||||
await allFutures([node1.start(), node2.start(), node3.start()])
|
await allFutures([node1.start(), node2.start(), node3.start()])
|
||||||
|
|
||||||
await node1.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
await node1.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
||||||
|
|
||||||
await node3.connectToNodes(@[node1.switch.peerInfo.toRemotePeerInfo()])
|
await node3.connectToNodes(@[node1.switch.peerInfo.toRemotePeerInfo()])
|
||||||
|
|||||||
@ -68,7 +68,7 @@ suite "REST API - Relay":
|
|||||||
|
|
||||||
check:
|
check:
|
||||||
# Node should be subscribed to default + new topics
|
# Node should be subscribed to default + new topics
|
||||||
toSeq(node.wakuRelay.subscribedTopics).len == 1 + pubSubTopics.len
|
toSeq(node.wakuRelay.subscribedTopics).len == pubSubTopics.len
|
||||||
|
|
||||||
await restServer.stop()
|
await restServer.stop()
|
||||||
await restServer.closeWait()
|
await restServer.closeWait()
|
||||||
@ -191,7 +191,7 @@ suite "REST API - Relay":
|
|||||||
|
|
||||||
let client = newRestHttpClient(initTAddress(restAddress, restPort))
|
let client = newRestHttpClient(initTAddress(restAddress, restPort))
|
||||||
|
|
||||||
# At this stage the node is only subscribed to the default topic
|
node.subscribe(DefaultPubsubTopic)
|
||||||
require:
|
require:
|
||||||
toSeq(node.wakuRelay.subscribedTopics).len == 1
|
toSeq(node.wakuRelay.subscribedTopics).len == 1
|
||||||
|
|
||||||
|
|||||||
@ -23,7 +23,7 @@ import
|
|||||||
from std/times import epochTime
|
from std/times import epochTime
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const RlnRelayPubsubTopic = "waku/2/rlnrelay/proto"
|
const RlnRelayPubsubTopic = "waku/2/rlnrelay/proto"
|
||||||
|
|
||||||
procSuite "WakuNode - RLN relay":
|
procSuite "WakuNode - RLN relay":
|
||||||
@ -47,7 +47,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
|
|
||||||
# set up three nodes
|
# set up three nodes
|
||||||
# node1
|
# node1
|
||||||
await node1.mountRelay(@[rlnRelayPubSubTopic])
|
await node1.mountRelay(@[DefaultPubsubTopic, rlnRelayPubSubTopic])
|
||||||
|
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
await node1.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
await node1.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
||||||
@ -59,7 +59,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
await node1.start()
|
await node1.start()
|
||||||
|
|
||||||
# node 2
|
# node 2
|
||||||
await node2.mountRelay(@[rlnRelayPubSubTopic])
|
await node2.mountRelay(@[DefaultPubsubTopic, rlnRelayPubSubTopic])
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
await node2.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
await node2.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
||||||
rlnRelayPubsubTopic: rlnRelayPubSubTopic,
|
rlnRelayPubsubTopic: rlnRelayPubSubTopic,
|
||||||
@ -70,7 +70,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
await node2.start()
|
await node2.start()
|
||||||
|
|
||||||
# node 3
|
# node 3
|
||||||
await node3.mountRelay(@[rlnRelayPubSubTopic])
|
await node3.mountRelay(@[DefaultPubsubTopic, rlnRelayPubSubTopic])
|
||||||
|
|
||||||
await node3.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
await node3.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
||||||
rlnRelayPubsubTopic: rlnRelayPubSubTopic,
|
rlnRelayPubsubTopic: rlnRelayPubSubTopic,
|
||||||
@ -136,7 +136,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
# node1
|
# node1
|
||||||
# set up three nodes
|
# set up three nodes
|
||||||
# node1
|
# node1
|
||||||
await node1.mountRelay(@[rlnRelayPubSubTopic])
|
await node1.mountRelay(@[DefaultPubsubTopic, rlnRelayPubSubTopic])
|
||||||
|
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
await node1.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
await node1.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
||||||
@ -148,7 +148,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
await node1.start()
|
await node1.start()
|
||||||
|
|
||||||
# node 2
|
# node 2
|
||||||
await node2.mountRelay(@[rlnRelayPubSubTopic])
|
await node2.mountRelay(@[DefaultPubsubTopic, rlnRelayPubSubTopic])
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
await node2.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
await node2.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
||||||
rlnRelayPubsubTopic: rlnRelayPubSubTopic,
|
rlnRelayPubsubTopic: rlnRelayPubSubTopic,
|
||||||
@ -159,7 +159,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
await node2.start()
|
await node2.start()
|
||||||
|
|
||||||
# node 3
|
# node 3
|
||||||
await node3.mountRelay(@[rlnRelayPubSubTopic])
|
await node3.mountRelay(@[DefaultPubsubTopic, rlnRelayPubSubTopic])
|
||||||
|
|
||||||
await node3.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
await node3.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
||||||
rlnRelayPubsubTopic: rlnRelayPubSubTopic,
|
rlnRelayPubsubTopic: rlnRelayPubSubTopic,
|
||||||
@ -196,7 +196,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
let
|
let
|
||||||
contentTopicBytes = contentTopic.toBytes
|
contentTopicBytes = contentTopic.toBytes
|
||||||
input = concat(payload, contentTopicBytes)
|
input = concat(payload, contentTopicBytes)
|
||||||
extraBytes: seq[byte] = @[byte(1),2,3]
|
extraBytes: seq[byte] = @[byte(1),2,3]
|
||||||
rateLimitProofRes = node1.wakuRlnRelay.rlnInstance.proofGen(data = concat(input, extraBytes), # we add extra bytes to invalidate proof verification against original payload
|
rateLimitProofRes = node1.wakuRlnRelay.rlnInstance.proofGen(data = concat(input, extraBytes), # we add extra bytes to invalidate proof verification against original payload
|
||||||
memKeys = node1.wakuRlnRelay.identityCredential,
|
memKeys = node1.wakuRlnRelay.identityCredential,
|
||||||
memIndex = MembershipIndex(1),
|
memIndex = MembershipIndex(1),
|
||||||
@ -243,7 +243,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
|
|
||||||
# set up three nodes
|
# set up three nodes
|
||||||
# node1
|
# node1
|
||||||
await node1.mountRelay(@[rlnRelayPubSubTopic])
|
await node1.mountRelay(@[DefaultPubsubTopic, rlnRelayPubSubTopic])
|
||||||
|
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
await node1.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
await node1.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
||||||
@ -255,7 +255,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
await node1.start()
|
await node1.start()
|
||||||
|
|
||||||
# node 2
|
# node 2
|
||||||
await node2.mountRelay(@[rlnRelayPubSubTopic])
|
await node2.mountRelay(@[DefaultPubsubTopic, rlnRelayPubSubTopic])
|
||||||
|
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
await node2.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
await node2.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
||||||
@ -267,7 +267,7 @@ procSuite "WakuNode - RLN relay":
|
|||||||
await node2.start()
|
await node2.start()
|
||||||
|
|
||||||
# node 3
|
# node 3
|
||||||
await node3.mountRelay(@[rlnRelayPubSubTopic])
|
await node3.mountRelay(@[DefaultPubsubTopic, rlnRelayPubSubTopic])
|
||||||
|
|
||||||
# mount rlnrelay in off-chain mode
|
# mount rlnrelay in off-chain mode
|
||||||
await node3.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
await node3.mountRlnRelay(WakuRlnConfig(rlnRelayDynamic: false,
|
||||||
@ -350,4 +350,4 @@ procSuite "WakuNode - RLN relay":
|
|||||||
|
|
||||||
await node1.stop()
|
await node1.stop()
|
||||||
await node2.stop()
|
await node2.stop()
|
||||||
await node3.stop()
|
await node3.stop()
|
||||||
|
|||||||
@ -38,7 +38,7 @@ procSuite "Waku v2 JSON-RPC API - Relay":
|
|||||||
asyncTest "subscribe, unsubscribe and publish":
|
asyncTest "subscribe, unsubscribe and publish":
|
||||||
await node.start()
|
await node.start()
|
||||||
|
|
||||||
await node.mountRelay()
|
await node.mountRelay(topics = @[DefaultPubsubTopic])
|
||||||
|
|
||||||
# RPC server setup
|
# RPC server setup
|
||||||
let
|
let
|
||||||
@ -101,13 +101,13 @@ procSuite "Waku v2 JSON-RPC API - Relay":
|
|||||||
message2 = WakuMessage(payload: payload2, contentTopic: contentTopic)
|
message2 = WakuMessage(payload: payload2, contentTopic: contentTopic)
|
||||||
|
|
||||||
await node1.start()
|
await node1.start()
|
||||||
await node1.mountRelay(@[pubSubTopic])
|
await node1.mountRelay(@[DefaultPubsubTopic, pubSubTopic])
|
||||||
|
|
||||||
await node2.start()
|
await node2.start()
|
||||||
await node2.mountRelay(@[pubSubTopic])
|
await node2.mountRelay(@[DefaultPubsubTopic, pubSubTopic])
|
||||||
|
|
||||||
await node3.start()
|
await node3.start()
|
||||||
await node3.mountRelay(@[pubSubTopic])
|
await node3.mountRelay(@[DefaultPubsubTopic, pubSubTopic])
|
||||||
|
|
||||||
await node1.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
await node1.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
||||||
await node3.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
await node3.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
||||||
@ -191,13 +191,13 @@ procSuite "Waku v2 JSON-RPC API - Relay":
|
|||||||
topicCache = newTestMessageCache()
|
topicCache = newTestMessageCache()
|
||||||
|
|
||||||
await node1.start()
|
await node1.start()
|
||||||
await node1.mountRelay(@[pubSubTopic])
|
await node1.mountRelay(@[DefaultPubsubTopic, pubSubTopic])
|
||||||
|
|
||||||
await node2.start()
|
await node2.start()
|
||||||
await node2.mountRelay(@[pubSubTopic])
|
await node2.mountRelay(@[DefaultPubsubTopic, pubSubTopic])
|
||||||
|
|
||||||
await node3.start()
|
await node3.start()
|
||||||
await node3.mountRelay(@[pubSubTopic])
|
await node3.mountRelay(@[DefaultPubsubTopic, pubSubTopic])
|
||||||
|
|
||||||
await node1.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
await node1.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
||||||
await node3.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
await node3.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
||||||
@ -282,13 +282,13 @@ procSuite "Waku v2 JSON-RPC API - Relay":
|
|||||||
topicCache = newTestMessageCache()
|
topicCache = newTestMessageCache()
|
||||||
|
|
||||||
await node1.start()
|
await node1.start()
|
||||||
await node1.mountRelay(@[pubSubTopic])
|
await node1.mountRelay(@[DefaultPubsubTopic, pubSubTopic])
|
||||||
|
|
||||||
await node2.start()
|
await node2.start()
|
||||||
await node2.mountRelay(@[pubSubTopic])
|
await node2.mountRelay(@[DefaultPubsubTopic, pubSubTopic])
|
||||||
|
|
||||||
await node3.start()
|
await node3.start()
|
||||||
await node3.mountRelay(@[pubSubTopic])
|
await node3.mountRelay(@[DefaultPubsubTopic, pubSubTopic])
|
||||||
|
|
||||||
await node1.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
await node1.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
||||||
await node3.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
await node3.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()])
|
||||||
|
|||||||
@ -548,9 +548,6 @@ proc mountRelay*(node: WakuNode,
|
|||||||
|
|
||||||
info "relay mounted successfully"
|
info "relay mounted successfully"
|
||||||
|
|
||||||
# TODO: As part of #1545, remove this and update the tests cases
|
|
||||||
node.subscribe(DefaultPubsubTopic)
|
|
||||||
|
|
||||||
# Subscribe to topics
|
# Subscribe to topics
|
||||||
for topic in topics:
|
for topic in topics:
|
||||||
node.subscribe(topic)
|
node.subscribe(topic)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user