mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-02 14:03:06 +00:00
refactor(node): remove deprecated constructor and extend testlib with builder
This commit is contained in:
parent
1088c5f063
commit
7834ca839c
@ -7,7 +7,7 @@ import
|
||||
testutils/unittests
|
||||
import
|
||||
../../waku/common/enr,
|
||||
../v2/testlib/waku2
|
||||
../v2/testlib/wakucore
|
||||
|
||||
|
||||
suite "nim-eth ENR - builder and typed record":
|
||||
|
||||
@ -8,7 +8,7 @@ import
|
||||
../../waku/v2/protocol/waku_message,
|
||||
../../waku/v2/node/message_cache,
|
||||
./testlib/common,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore
|
||||
|
||||
|
||||
type TestMessageCache = MessageCache[(PubsubTopic, ContentTopic)]
|
||||
|
||||
@ -12,7 +12,8 @@ import
|
||||
import
|
||||
../../waku/v2/waku_node,
|
||||
../../waku/v2/utils/peers,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore,
|
||||
./testlib/wakunode
|
||||
|
||||
procSuite "Peer Exchange":
|
||||
asyncTest "GossipSub (relay) peer exchange":
|
||||
@ -22,11 +23,11 @@ procSuite "Peer Exchange":
|
||||
let
|
||||
bindIp = ValidIpAddress.init("0.0.0.0")
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, bindIp, Port(0))
|
||||
node1 = newTestWakuNode(nodeKey1, bindIp, Port(0))
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, bindIp, Port(0), sendSignedPeerRecord = true)
|
||||
node2 = newTestWakuNode(nodeKey2, bindIp, Port(0), sendSignedPeerRecord = true)
|
||||
nodeKey3 = generateSecp256k1Key()
|
||||
node3 = WakuNode.new(nodeKey3, bindIp, Port(0), sendSignedPeerRecord = true)
|
||||
node3 = newTestWakuNode(nodeKey3, bindIp, Port(0), sendSignedPeerRecord = true)
|
||||
|
||||
var
|
||||
peerExchangeHandler, emptyHandler: RoutingRecordsHandler
|
||||
|
||||
@ -29,12 +29,13 @@ import
|
||||
../../waku/v2/protocol/waku_peer_exchange,
|
||||
./testlib/common,
|
||||
./testlib/testutils,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore,
|
||||
./testlib/wakunode
|
||||
|
||||
procSuite "Peer Manager":
|
||||
asyncTest "connectRelay() works":
|
||||
# Create 2 nodes
|
||||
let nodes = toSeq(0..<2).mapIt(WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
let nodes = toSeq(0..<2).mapIt(newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
await allFutures(nodes.mapIt(it.start()))
|
||||
|
||||
let connOk = await nodes[0].peerManager.connectRelay(nodes[1].peerInfo.toRemotePeerInfo())
|
||||
@ -45,7 +46,7 @@ procSuite "Peer Manager":
|
||||
|
||||
asyncTest "dialPeer() works":
|
||||
# Create 2 nodes
|
||||
let nodes = toSeq(0..<2).mapIt(WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
let nodes = toSeq(0..<2).mapIt(newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
|
||||
await allFutures(nodes.mapIt(it.start()))
|
||||
await allFutures(nodes.mapIt(it.mountRelay()))
|
||||
@ -71,7 +72,7 @@ procSuite "Peer Manager":
|
||||
|
||||
asyncTest "dialPeer() fails gracefully":
|
||||
# Create 2 nodes and start them
|
||||
let nodes = toSeq(0..<2).mapIt(WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
let nodes = toSeq(0..<2).mapIt(newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
await allFutures(nodes.mapIt(it.start()))
|
||||
await allFutures(nodes.mapIt(it.mountRelay()))
|
||||
|
||||
@ -91,7 +92,7 @@ procSuite "Peer Manager":
|
||||
|
||||
asyncTest "Adding, selecting and filtering peers work":
|
||||
let
|
||||
node = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
# Create filter peer
|
||||
filterLoc = MultiAddress.init("/ip4/127.0.0.1/tcp/0").tryGet()
|
||||
@ -123,7 +124,7 @@ procSuite "Peer Manager":
|
||||
|
||||
asyncTest "Peer manager keeps track of connections":
|
||||
# Create 2 nodes
|
||||
let nodes = toSeq(0..<2).mapIt(WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
let nodes = toSeq(0..<2).mapIt(newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
|
||||
await allFutures(nodes.mapIt(it.start()))
|
||||
await allFutures(nodes.mapIt(it.mountRelay()))
|
||||
@ -159,7 +160,7 @@ procSuite "Peer Manager":
|
||||
|
||||
asyncTest "Peer manager updates failed peers correctly":
|
||||
# Create 2 nodes
|
||||
let nodes = toSeq(0..<2).mapIt(WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
let nodes = toSeq(0..<2).mapIt(newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
|
||||
await allFutures(nodes.mapIt(it.start()))
|
||||
await allFutures(nodes.mapIt(it.mountRelay()))
|
||||
@ -212,8 +213,8 @@ procSuite "Peer Manager":
|
||||
let
|
||||
database = SqliteDatabase.new(":memory:")[]
|
||||
storage = WakuPeerStorage.new(database)[]
|
||||
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0), peerStorage = storage)
|
||||
node2 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0), peerStorage = storage)
|
||||
node2 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
peerInfo2 = node2.switch.peerInfo
|
||||
|
||||
await node1.start()
|
||||
@ -232,7 +233,7 @@ procSuite "Peer Manager":
|
||||
|
||||
# Simulate restart by initialising a new node using the same storage
|
||||
let
|
||||
node3 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0), peerStorage = storage)
|
||||
node3 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0), peerStorage = storage)
|
||||
|
||||
await node3.start()
|
||||
check:
|
||||
@ -257,8 +258,8 @@ procSuite "Peer Manager":
|
||||
let
|
||||
database = SqliteDatabase.new(":memory:")[]
|
||||
storage = WakuPeerStorage.new(database)[]
|
||||
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0), peerStorage = storage)
|
||||
node2 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0), peerStorage = storage)
|
||||
node2 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
peerInfo2 = node2.switch.peerInfo
|
||||
betaCodec = "/vac/waku/relay/2.0.0-beta2"
|
||||
stableCodec = "/vac/waku/relay/2.0.0"
|
||||
@ -282,7 +283,7 @@ procSuite "Peer Manager":
|
||||
|
||||
# Simulate restart by initialising a new node using the same storage
|
||||
let
|
||||
node3 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0), peerStorage = storage)
|
||||
node3 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0), peerStorage = storage)
|
||||
|
||||
await node3.mountRelay()
|
||||
node3.wakuRelay.codec = stableCodec
|
||||
@ -310,7 +311,7 @@ procSuite "Peer Manager":
|
||||
|
||||
asyncTest "Peer manager connects to all peers supporting a given protocol":
|
||||
# Create 4 nodes
|
||||
let nodes = toSeq(0..<4).mapIt(WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
let nodes = toSeq(0..<4).mapIt(newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
|
||||
# Start them
|
||||
await allFutures(nodes.mapIt(it.start()))
|
||||
@ -350,7 +351,7 @@ procSuite "Peer Manager":
|
||||
|
||||
asyncTest "Peer store keeps track of incoming connections":
|
||||
# Create 4 nodes
|
||||
let nodes = toSeq(0..<4).mapIt(WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
let nodes = toSeq(0..<4).mapIt(newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
|
||||
# Start them
|
||||
await allFutures(nodes.mapIt(it.start()))
|
||||
@ -411,7 +412,7 @@ procSuite "Peer Manager":
|
||||
let basePeerId = "16Uiu2HAm7QGEZKujdSbbo1aaQyfDPQ6Bw3ybQnj6fruH5Dxwd7D"
|
||||
|
||||
let
|
||||
node = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
peer1 = parseRemotePeerInfo("/ip4/0.0.0.0/tcp/30300/p2p/" & basePeerId & "1")
|
||||
peer2 = parseRemotePeerInfo("/ip4/0.0.0.0/tcp/30301/p2p/" & basePeerId & "2")
|
||||
peer3 = parseRemotePeerInfo("/ip4/0.0.0.0/tcp/30302/p2p/" & basePeerId & "3")
|
||||
|
||||
@ -7,7 +7,7 @@ import
|
||||
../../waku/common/sqlite,
|
||||
../../waku/v2/node/peer_manager/peer_manager,
|
||||
../../waku/v2/node/peer_manager/peer_store/waku_peer_storage,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore
|
||||
|
||||
|
||||
suite "Peer Storage":
|
||||
|
||||
@ -12,7 +12,7 @@ import
|
||||
../../waku/v2/node/peer_manager/peer_manager,
|
||||
../../waku/v2/node/peer_manager/waku_peer_store,
|
||||
../../waku/v2/waku_node,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore
|
||||
|
||||
|
||||
suite "Extended nim-libp2p Peer Store":
|
||||
|
||||
@ -14,7 +14,8 @@ import
|
||||
../../waku/v2/protocol/waku_message,
|
||||
../../waku/v2/protocol/waku_discv5,
|
||||
./testlib/common,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore,
|
||||
./testlib/wakunode
|
||||
|
||||
procSuite "Waku Discovery v5":
|
||||
asyncTest "Waku Discovery v5 end-to-end":
|
||||
@ -26,17 +27,17 @@ procSuite "Waku Discovery v5":
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
nodeTcpPort1 = Port(61500)
|
||||
nodeUdpPort1 = Port(9000)
|
||||
node1 = WakuNode.new(nodeKey1, bindIp, nodeTcpPort1)
|
||||
node1 = newTestWakuNode(nodeKey1, bindIp, nodeTcpPort1)
|
||||
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
nodeTcpPort2 = Port(61502)
|
||||
nodeUdpPort2 = Port(9002)
|
||||
node2 = WakuNode.new(nodeKey2, bindIp, nodeTcpPort2)
|
||||
node2 = newTestWakuNode(nodeKey2, bindIp, nodeTcpPort2)
|
||||
|
||||
nodeKey3 = generateSecp256k1Key()
|
||||
nodeTcpPort3 = Port(61504)
|
||||
nodeUdpPort3 = Port(9004)
|
||||
node3 = WakuNode.new(nodeKey3, bindIp, nodeTcpPort3)
|
||||
node3 = newTestWakuNode(nodeKey3, bindIp, nodeTcpPort3)
|
||||
|
||||
flags = CapabilitiesBitfield.init(
|
||||
lightpush = false,
|
||||
|
||||
@ -15,7 +15,8 @@ import
|
||||
../../waku/v2/waku_node,
|
||||
../../waku/v2/protocol/waku_dnsdisc,
|
||||
./testlib/common,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore,
|
||||
./testlib/wakunode
|
||||
|
||||
suite "Waku DNS Discovery":
|
||||
asyncTest "Waku DNS Discovery end-to-end":
|
||||
@ -26,13 +27,13 @@ suite "Waku DNS Discovery":
|
||||
let
|
||||
bindIp = ValidIpAddress.init("0.0.0.0")
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, bindIp, Port(63500))
|
||||
node1 = newTestWakuNode(nodeKey1, bindIp, Port(63500))
|
||||
enr1 = node1.enr
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, bindIp, Port(63502))
|
||||
node2 = newTestWakuNode(nodeKey2, bindIp, Port(63502))
|
||||
enr2 = node2.enr
|
||||
nodeKey3 = generateSecp256k1Key()
|
||||
node3 = WakuNode.new(nodeKey3, bindIp, Port(63503))
|
||||
node3 = newTestWakuNode(nodeKey3, bindIp, Port(63503))
|
||||
enr3 = node3.enr
|
||||
|
||||
await node1.mountRelay()
|
||||
@ -67,7 +68,7 @@ suite "Waku DNS Discovery":
|
||||
|
||||
let
|
||||
nodeKey4 = generateSecp256k1Key()
|
||||
node4 = WakuNode.new(nodeKey4, bindIp, Port(63504))
|
||||
node4 = newTestWakuNode(nodeKey4, bindIp, Port(63504))
|
||||
|
||||
await node4.mountRelay()
|
||||
await node4.start()
|
||||
|
||||
@ -6,7 +6,7 @@ import
|
||||
testutils/unittests
|
||||
import
|
||||
../../waku/v2/protocol/waku_enr,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore
|
||||
|
||||
|
||||
suite "Waku ENR - Capabilities bitfield":
|
||||
|
||||
@ -12,7 +12,7 @@ import
|
||||
../../waku/v2/protocol/waku_filter,
|
||||
../../waku/v2/protocol/waku_filter/client,
|
||||
./testlib/common,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore
|
||||
|
||||
|
||||
proc newTestWakuFilterNode(switch: Switch, timeout: Duration = 2.hours): Future[WakuFilter] {.async.} =
|
||||
|
||||
@ -14,7 +14,8 @@ import
|
||||
import
|
||||
../../waku/v2/waku_node,
|
||||
../../waku/v2/utils/peers,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore,
|
||||
./testlib/wakunode
|
||||
|
||||
|
||||
suite "Waku Keepalive":
|
||||
@ -22,9 +23,9 @@ suite "Waku Keepalive":
|
||||
asyncTest "handle ping keepalives":
|
||||
let
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
var completionFut = newFuture[bool]()
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ import
|
||||
../../waku/v2/protocol/waku_lightpush,
|
||||
../../waku/v2/protocol/waku_lightpush/client,
|
||||
./testlib/common,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore
|
||||
|
||||
|
||||
proc newTestWakuLightpushNode(switch: Switch, handler: PushMessageHandler): Future[WakuLightPush] {.async.} =
|
||||
|
||||
@ -8,7 +8,7 @@ import
|
||||
../../waku/v2/protocol/waku_message,
|
||||
../../waku/v2/protocol/waku_message/codec,
|
||||
../../waku/v2/protocol/waku_message/digest,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore
|
||||
|
||||
suite "Waku Message - Deterministic hashing":
|
||||
|
||||
|
||||
@ -18,7 +18,8 @@ import
|
||||
../../waku/v2/protocol/waku_peer_exchange,
|
||||
../../waku/v2/protocol/waku_peer_exchange/rpc,
|
||||
../../waku/v2/protocol/waku_peer_exchange/rpc_codec,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore,
|
||||
./testlib/wakunode
|
||||
|
||||
|
||||
# TODO: Extend test coverage
|
||||
@ -76,17 +77,17 @@ procSuite "Waku Peer Exchange":
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
nodeTcpPort1 = Port(64010)
|
||||
nodeUdpPort1 = Port(9000)
|
||||
node1 = WakuNode.new(nodeKey1, bindIp, nodeTcpPort1)
|
||||
node1 = newTestWakuNode(nodeKey1, bindIp, nodeTcpPort1)
|
||||
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
nodeTcpPort2 = Port(64012)
|
||||
nodeUdpPort2 = Port(9002)
|
||||
node2 = WakuNode.new(nodeKey2, bindIp, nodeTcpPort2)
|
||||
node2 = newTestWakuNode(nodeKey2, bindIp, nodeTcpPort2)
|
||||
|
||||
nodeKey3 = generateSecp256k1Key()
|
||||
nodeTcpPort3 = Port(64014)
|
||||
nodeUdpPort3 = Port(9004)
|
||||
node3 = WakuNode.new(nodeKey3, bindIp, nodeTcpPort3)
|
||||
node3 = newTestWakuNode(nodeKey3, bindIp, nodeTcpPort3)
|
||||
|
||||
# todo: px flag
|
||||
flags = CapabilitiesBitfield.init(
|
||||
@ -154,8 +155,8 @@ procSuite "Waku Peer Exchange":
|
||||
|
||||
asyncTest "peer exchange request functions returns some discovered peers":
|
||||
let
|
||||
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
# Start and mount peer exchange
|
||||
await allFutures([node1.start(), node2.start()])
|
||||
@ -198,8 +199,8 @@ procSuite "Waku Peer Exchange":
|
||||
|
||||
asyncTest "peer exchange handler works as expected":
|
||||
let
|
||||
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
# Start and mount peer exchange
|
||||
await allFutures([node1.start(), node2.start()])
|
||||
@ -234,8 +235,8 @@ procSuite "Waku Peer Exchange":
|
||||
|
||||
asyncTest "peer exchange request fails gracefully":
|
||||
let
|
||||
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
# Start and mount peer exchange
|
||||
await allFutures([node1.start(), node2.start()])
|
||||
|
||||
@ -11,7 +11,7 @@ import
|
||||
import
|
||||
../../waku/v2/node/waku_switch,
|
||||
./testlib/common,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore
|
||||
|
||||
proc newCircuitRelayClientSwitch(relayClient: RelayClient): Switch =
|
||||
SwitchBuilder.new()
|
||||
|
||||
@ -23,7 +23,8 @@ import
|
||||
../../waku/v2/protocol/waku_relay,
|
||||
../../waku/v2/protocol/waku_peer_exchange,
|
||||
../../waku/v2/utils/peers,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore,
|
||||
./testlib/wakunode
|
||||
|
||||
|
||||
suite "WakuNode":
|
||||
@ -31,9 +32,9 @@ suite "WakuNode":
|
||||
asyncTest "Protocol matcher works as expected":
|
||||
let
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(61000))
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(61000))
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(61002))
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(61002))
|
||||
pubSubTopic = "/waku/2/default-waku/proto"
|
||||
contentTopic = ContentTopic("/waku/2/default-content/proto")
|
||||
payload = "hello world".toBytes()
|
||||
@ -88,9 +89,9 @@ suite "WakuNode":
|
||||
|
||||
let
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(61020), nameResolver = resolver)
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(61020), nameResolver = resolver)
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(61022))
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(61022))
|
||||
|
||||
# Construct DNS multiaddr for node2
|
||||
let
|
||||
@ -113,13 +114,13 @@ suite "WakuNode":
|
||||
let
|
||||
maxConnections = 2
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
Port(60010), maxConnections = maxConnections)
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"),
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"),
|
||||
Port(60012))
|
||||
nodeKey3 = generateSecp256k1Key()
|
||||
node3 = WakuNode.new(nodeKey3, ValidIpAddress.init("0.0.0.0"),
|
||||
node3 = newTestWakuNode(nodeKey3, ValidIpAddress.init("0.0.0.0"),
|
||||
Port(60013))
|
||||
|
||||
check:
|
||||
@ -150,12 +151,11 @@ suite "WakuNode":
|
||||
await allFutures([node1.stop(), node2.stop(), node3.stop()])
|
||||
|
||||
asyncTest "Messages fails with wrong key path":
|
||||
let
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
let nodeKey1 = generateSecp256k1Key()
|
||||
|
||||
expect IOError:
|
||||
expect ResultDefect:
|
||||
# gibberish
|
||||
discard WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
discard newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
bindPort = Port(61004),
|
||||
wsBindPort = Port(8000),
|
||||
wssEnabled = true,
|
||||
@ -168,7 +168,7 @@ suite "WakuNode":
|
||||
bindPort = Port(61006)
|
||||
extIp = some(ValidIpAddress.init("127.0.0.1"))
|
||||
extPort = some(Port(61008))
|
||||
node = WakuNode.new(
|
||||
node = newTestWakuNode(
|
||||
nodeKey,
|
||||
bindIp, bindPort,
|
||||
extIp, extPort)
|
||||
@ -209,7 +209,7 @@ suite "WakuNode":
|
||||
extPort = some(Port(61012))
|
||||
domainName = "example.com"
|
||||
expectedDns4Addr = MultiAddress.init("/dns4/" & domainName & "/tcp/" & $(extPort.get())).get()
|
||||
node = WakuNode.new(
|
||||
node = newTestWakuNode(
|
||||
nodeKey,
|
||||
bindIp, bindPort,
|
||||
extIp, extPort,
|
||||
@ -230,12 +230,12 @@ suite "WakuNode":
|
||||
let
|
||||
# node with custom agent string
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(61014),
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(61014),
|
||||
agentString = some(expectedAgentString1))
|
||||
|
||||
# node with default agent string from libp2p
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(61016))
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(61016))
|
||||
|
||||
await node1.start()
|
||||
await node1.mountRelay()
|
||||
@ -265,12 +265,12 @@ suite "WakuNode":
|
||||
let
|
||||
# node with custom multiaddress
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(61018),
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(61018),
|
||||
extMultiAddrs = @[expectedMultiaddress1])
|
||||
|
||||
# node with default multiaddress
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(61020))
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(61020))
|
||||
|
||||
await node1.start()
|
||||
await node1.mountRelay()
|
||||
@ -290,8 +290,8 @@ suite "WakuNode":
|
||||
|
||||
asyncTest "Function fetchPeerExchangePeers succesfully exchanges px peers":
|
||||
let
|
||||
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
# Start and mount peer exchange
|
||||
await allFutures([node1.start(), node2.start()])
|
||||
|
||||
@ -12,7 +12,8 @@ import
|
||||
../../waku/v2/protocol/waku_message,
|
||||
../../waku/v2/utils/peers,
|
||||
./testlib/common,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore,
|
||||
./testlib/wakunode
|
||||
|
||||
|
||||
suite "WakuNode - Filter":
|
||||
@ -21,9 +22,9 @@ suite "WakuNode - Filter":
|
||||
## Setup
|
||||
let
|
||||
serverKey = generateSecp256k1Key()
|
||||
server = WakuNode.new(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
server = newTestWakuNode(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
clientKey = generateSecp256k1Key()
|
||||
client = WakuNode.new(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
client = newTestWakuNode(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
await allFutures(server.start(), client.start())
|
||||
|
||||
|
||||
@ -14,7 +14,8 @@ import
|
||||
../../waku/v2/utils/peers,
|
||||
../../waku/v2/waku_node,
|
||||
./testlib/common,
|
||||
./testlib/waku2
|
||||
./testlib/wakucore,
|
||||
./testlib/wakunode
|
||||
|
||||
|
||||
suite "WakuNode - Lightpush":
|
||||
@ -22,11 +23,11 @@ suite "WakuNode - Lightpush":
|
||||
## Setup
|
||||
let
|
||||
lightNodeKey = generateSecp256k1Key()
|
||||
lightNode = WakuNode.new(lightNodeKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
lightNode = newTestWakuNode(lightNodeKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
bridgeNodeKey = generateSecp256k1Key()
|
||||
bridgeNode = WakuNode.new(bridgeNodeKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
bridgeNode = newTestWakuNode(bridgeNodeKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
destNodeKey = generateSecp256k1Key()
|
||||
destNode = WakuNode.new(destNodeKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
destNode = newTestWakuNode(destNodeKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
await allFutures(destNode.start(), bridgeNode.start(), lightNode.start())
|
||||
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
import
|
||||
std/options,
|
||||
stew/byteutils,
|
||||
stew/[results, byteutils],
|
||||
stew/shims/net,
|
||||
chronos,
|
||||
libp2p/switch,
|
||||
libp2p/builders,
|
||||
libp2p/crypto/crypto as libp2p_keys,
|
||||
73
tests/v2/testlib/wakunode.nim
Normal file
73
tests/v2/testlib/wakunode.nim
Normal file
@ -0,0 +1,73 @@
|
||||
import
|
||||
std/options,
|
||||
stew/results,
|
||||
stew/shims/net,
|
||||
chronos,
|
||||
libp2p/switch,
|
||||
libp2p/builders,
|
||||
libp2p/nameresolving/nameresolver,
|
||||
libp2p/crypto/crypto as libp2p_keys,
|
||||
eth/keys as eth_keys
|
||||
import
|
||||
../../../waku/v2/waku_node,
|
||||
../../../waku/v2/node/peer_manager,
|
||||
../../../waku/v2/protocol/waku_enr,
|
||||
../../../waku/v2/protocol/waku_discv5,
|
||||
./common
|
||||
|
||||
|
||||
# Waku node
|
||||
|
||||
proc newTestWakuNode*(nodeKey: crypto.PrivateKey,
|
||||
bindIp: ValidIpAddress,
|
||||
bindPort: Port,
|
||||
extIp = none(ValidIpAddress),
|
||||
extPort = none(Port),
|
||||
extMultiAddrs = newSeq[MultiAddress](),
|
||||
peerStorage: PeerStorage = nil,
|
||||
maxConnections = builders.MaxConnections,
|
||||
wsBindPort: Port = (Port)8000,
|
||||
wsEnabled: bool = false,
|
||||
wssEnabled: bool = false,
|
||||
secureKey: string = "",
|
||||
secureCert: string = "",
|
||||
wakuFlags = none(CapabilitiesBitfield),
|
||||
nameResolver: NameResolver = nil,
|
||||
sendSignedPeerRecord = false,
|
||||
dns4DomainName = none(string),
|
||||
discv5UdpPort = none(Port),
|
||||
wakuDiscv5 = none(WakuDiscoveryV5),
|
||||
agentString = none(string),
|
||||
peerStoreCapacity = none(int)): WakuNode =
|
||||
let netConfigRes = NetConfig.init(
|
||||
bindIp = bindIp,
|
||||
bindPort = bindPort,
|
||||
extIp = extIp,
|
||||
extPort = extPort,
|
||||
extMultiAddrs = extMultiAddrs,
|
||||
wsBindPort = wsBindPort,
|
||||
wsEnabled = wsEnabled,
|
||||
wssEnabled = wssEnabled,
|
||||
wakuFlags = wakuFlags,
|
||||
dns4DomainName = dns4DomainName,
|
||||
discv5UdpPort = discv5UdpPort,
|
||||
)
|
||||
if netConfigRes.isErr():
|
||||
raise newException(Defect, "Invalid network configuration: " & $netConfigRes.error)
|
||||
|
||||
var builder = WakuNodeBuilder.init()
|
||||
builder.withRng(rng())
|
||||
builder.withNodeKey(nodeKey)
|
||||
builder.withNetworkConfiguration(netConfigRes.get())
|
||||
builder.withPeerStorage(peerStorage, capacity = peerStoreCapacity)
|
||||
builder.withSwitchConfiguration(
|
||||
maxConnections = some(maxConnections),
|
||||
nameResolver = nameResolver,
|
||||
sendSignedPeerRecord = sendSignedPeerRecord,
|
||||
secureKey = if secureKey != "": some(secureKey) else: none(string),
|
||||
secureCert = if secureCert != "": some(secureCert) else: none(string),
|
||||
agentString = agentString,
|
||||
)
|
||||
builder.withWakuDiscv5(wakuDiscv5.get(nil))
|
||||
|
||||
return builder.build().get()
|
||||
@ -11,7 +11,7 @@ import
|
||||
../../../waku/v2/protocol/waku_message,
|
||||
../../../waku/v2/utils/time,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore
|
||||
|
||||
|
||||
proc getTestQueueDriver(numMessages: int): QueueDriver =
|
||||
|
||||
@ -10,7 +10,7 @@ import
|
||||
../../../waku/v2/protocol/waku_archive/driver/queue_driver,
|
||||
../../../waku/v2/protocol/waku_message,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore
|
||||
|
||||
|
||||
logScope:
|
||||
|
||||
@ -10,7 +10,7 @@ import
|
||||
../../../waku/v2/protocol/waku_archive/driver/sqlite_driver,
|
||||
../../../waku/v2/protocol/waku_message,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore
|
||||
|
||||
|
||||
proc newTestDatabase(): SqliteDatabase =
|
||||
|
||||
@ -11,7 +11,7 @@ import
|
||||
../../../waku/v2/protocol/waku_archive/driver/sqlite_driver,
|
||||
../../../waku/v2/protocol/waku_message,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore
|
||||
|
||||
logScope:
|
||||
topics = "test archive _driver"
|
||||
|
||||
@ -14,7 +14,7 @@ import
|
||||
../../../waku/v2/protocol/waku_message,
|
||||
../../../waku/v2/utils/time,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore
|
||||
|
||||
|
||||
proc newTestDatabase(): SqliteDatabase =
|
||||
|
||||
@ -12,7 +12,7 @@ import
|
||||
../../../waku/v2/protocol/waku_archive,
|
||||
../../../waku/v2/utils/time,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore
|
||||
|
||||
|
||||
proc newTestDatabase(): SqliteDatabase =
|
||||
|
||||
@ -13,7 +13,7 @@ import
|
||||
../../../waku/v2/protocol/waku_filter_v2/rpc,
|
||||
../../../waku/v2/protocol/waku_message,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore
|
||||
|
||||
proc newTestWakuFilter(switch: Switch): Future[WakuFilter] {.async.} =
|
||||
let
|
||||
|
||||
@ -12,7 +12,7 @@ import
|
||||
../../../waku/v2/protocol/waku_filter_v2/rpc,
|
||||
../../../waku/v2/protocol/waku_message,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore
|
||||
|
||||
proc newTestWakuFilter(switch: Switch): WakuFilter =
|
||||
let
|
||||
|
||||
@ -13,7 +13,7 @@ import
|
||||
../../../waku/v2/protocol/waku_message,
|
||||
../../../waku/v2/protocol/waku_relay,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore
|
||||
|
||||
|
||||
proc noopRawHandler(): PubsubRawHandler =
|
||||
|
||||
@ -26,7 +26,8 @@ import
|
||||
../../waku/v2/protocol/waku_relay/validators,
|
||||
../testlib/testutils,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore,
|
||||
../testlib/wakunode
|
||||
|
||||
template sourceDir: string = currentSourcePath.parentDir()
|
||||
const KEY_PATH = sourceDir / "resources/test_key.pem"
|
||||
@ -37,7 +38,7 @@ suite "WakuNode - Relay":
|
||||
asyncTest "Relay protocol is started correctly":
|
||||
let
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
# Relay protocol starts if mounted after node start
|
||||
|
||||
@ -51,7 +52,7 @@ suite "WakuNode - Relay":
|
||||
|
||||
let
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
await node2.mountRelay()
|
||||
|
||||
@ -70,11 +71,11 @@ suite "WakuNode - Relay":
|
||||
asyncTest "Messages are correctly relayed":
|
||||
let
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
nodeKey3 = generateSecp256k1Key()
|
||||
node3 = WakuNode.new(nodeKey3, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node3 = newTestWakuNode(nodeKey3, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
pubSubTopic = "test"
|
||||
contentTopic = ContentTopic("/waku/2/default-content/proto")
|
||||
payload = "hello world".toBytes()
|
||||
@ -128,13 +129,13 @@ suite "WakuNode - Relay":
|
||||
let
|
||||
# publisher node
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
# Relay node
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
# Subscriber
|
||||
nodeKey3 = generateSecp256k1Key()
|
||||
node3 = WakuNode.new(nodeKey3, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node3 = newTestWakuNode(nodeKey3, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
pubSubTopic = "test"
|
||||
contentTopic1 = ContentTopic("/waku/2/default-content/proto")
|
||||
@ -218,7 +219,7 @@ suite "WakuNode - Relay":
|
||||
# TODO: Add a function to validate the WakuMessage integrity
|
||||
xasyncTest "Stats of peer sending wrong WakuMessages are updated":
|
||||
# Create 2 nodes
|
||||
let nodes = toSeq(0..1).mapIt(WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
let nodes = toSeq(0..1).mapIt(newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
|
||||
# Start all the nodes and mount relay with
|
||||
await allFutures(nodes.mapIt(it.start()))
|
||||
@ -252,7 +253,7 @@ suite "WakuNode - Relay":
|
||||
|
||||
asyncTest "Spam protected topic accepts signed messages":
|
||||
# Create 5 nodes
|
||||
let nodes = toSeq(0..<5).mapIt(WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
let nodes = toSeq(0..<5).mapIt(newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
|
||||
# Protected topic and key to sign
|
||||
let spamProtectedTopic = PubSubTopic("some-spam-protected-topic")
|
||||
@ -318,7 +319,7 @@ suite "WakuNode - Relay":
|
||||
|
||||
asyncTest "Spam protected topic rejects non-signed and wrongly-signed messages":
|
||||
# Create 5 nodes
|
||||
let nodes = toSeq(0..<5).mapIt(WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
let nodes = toSeq(0..<5).mapIt(newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
|
||||
# Protected topic and key to sign
|
||||
let spamProtectedTopic = PubSubTopic("some-spam-protected-topic")
|
||||
@ -399,7 +400,7 @@ suite "WakuNode - Relay":
|
||||
|
||||
asyncTest "Spam protected topic rejects a spammer node":
|
||||
# Create 5 nodes
|
||||
let nodes = toSeq(0..<5).mapIt(WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
let nodes = toSeq(0..<5).mapIt(newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)))
|
||||
|
||||
# Protected topic and key to sign
|
||||
let spamProtectedTopic = PubSubTopic("some-spam-protected-topic")
|
||||
@ -487,10 +488,10 @@ suite "WakuNode - Relay":
|
||||
asyncTest "Messages are relayed between two websocket nodes":
|
||||
let
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
bindPort = Port(60510), wsBindPort = Port(8001), wsEnabled = true)
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"),
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"),
|
||||
bindPort = Port(60512), wsBindPort = Port(8101), wsEnabled = true)
|
||||
pubSubTopic = "test"
|
||||
contentTopic = ContentTopic("/waku/2/default-content/proto")
|
||||
@ -531,10 +532,10 @@ suite "WakuNode - Relay":
|
||||
asyncTest "Messages are relayed between nodes with multiple transports (TCP and Websockets)":
|
||||
let
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
bindPort = Port(60520), wsBindPort = Port(8002), wsEnabled = true)
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"),
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"),
|
||||
bindPort = Port(60522))
|
||||
pubSubTopic = "test"
|
||||
contentTopic = ContentTopic("/waku/2/default-content/proto")
|
||||
@ -575,10 +576,10 @@ suite "WakuNode - Relay":
|
||||
asyncTest "Messages relaying fails with non-overlapping transports (TCP or Websockets)":
|
||||
let
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
bindPort = Port(60530))
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"),
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"),
|
||||
bindPort = Port(60532), wsBindPort = Port(8103), wsEnabled = true)
|
||||
pubSubTopic = "test"
|
||||
contentTopic = ContentTopic("/waku/2/default-content/proto")
|
||||
@ -622,10 +623,10 @@ suite "WakuNode - Relay":
|
||||
asyncTest "Messages are relayed between nodes with multiple transports (TCP and secure Websockets)":
|
||||
let
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"),
|
||||
bindPort = Port(60540), wsBindPort = Port(8004), wssEnabled = true, secureKey = KEY_PATH, secureCert = CERT_PATH)
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"),
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"),
|
||||
bindPort = Port(60542))
|
||||
pubSubTopic = "test"
|
||||
contentTopic = ContentTopic("/waku/2/default-content/proto")
|
||||
@ -665,9 +666,9 @@ suite "WakuNode - Relay":
|
||||
asyncTest "Messages are relayed between nodes with multiple transports (websocket and secure Websockets)":
|
||||
let
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), bindPort = Port(60550), wsBindPort = Port(8005), wssEnabled = true, secureKey = KEY_PATH, secureCert = CERT_PATH)
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"), bindPort = Port(60550), wsBindPort = Port(8005), wssEnabled = true, secureKey = KEY_PATH, secureCert = CERT_PATH)
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), bindPort = Port(60552),wsBindPort = Port(8105), wsEnabled = true )
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"), bindPort = Port(60552),wsBindPort = Port(8105), wsEnabled = true )
|
||||
|
||||
let
|
||||
pubSubTopic = "test"
|
||||
|
||||
@ -19,7 +19,8 @@ import
|
||||
../../../waku/v2/protocol/waku_rln_relay,
|
||||
../../../waku/v2/protocol/waku_keystore,
|
||||
../../../waku/v2/utils/peers,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore,
|
||||
../testlib/wakunode
|
||||
|
||||
from std/times import epochTime
|
||||
|
||||
@ -32,13 +33,13 @@ procSuite "WakuNode - RLN relay":
|
||||
let
|
||||
# publisher node
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
# Relay node
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
# Subscriber
|
||||
nodeKey3 = generateSecp256k1Key()
|
||||
node3 = WakuNode.new(nodeKey3, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node3 = newTestWakuNode(nodeKey3, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
rlnRelayPubSubTopic = RlnRelayPubsubTopic
|
||||
contentTopic = ContentTopic("/waku/2/default-content/proto")
|
||||
@ -120,13 +121,13 @@ procSuite "WakuNode - RLN relay":
|
||||
let
|
||||
# publisher node
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
# Relay node
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
# Subscriber
|
||||
nodeKey3 = generateSecp256k1Key()
|
||||
node3 = WakuNode.new(nodeKey3, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node3 = newTestWakuNode(nodeKey3, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
rlnRelayPubSubTopic = RlnRelayPubsubTopic
|
||||
contentTopic = ContentTopic("/waku/2/default-content/proto")
|
||||
@ -225,13 +226,13 @@ procSuite "WakuNode - RLN relay":
|
||||
let
|
||||
# publisher node
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
# Relay node
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
# Subscriber
|
||||
nodeKey3 = generateSecp256k1Key()
|
||||
node3 = WakuNode.new(nodeKey3, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
node3 = newTestWakuNode(nodeKey3, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
rlnRelayPubSubTopic = RlnRelayPubsubTopic
|
||||
contentTopic = ContentTopic("/waku/2/default-content/proto")
|
||||
|
||||
@ -214,9 +214,9 @@ suite "WakuNode - waku store":
|
||||
## Setup
|
||||
let
|
||||
serverKey = generateSecp256k1Key()
|
||||
server = WakuNode.new(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
server = newTestWakuNode(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
clientKey = generateSecp256k1Key()
|
||||
client = WakuNode.new(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
client = newTestWakuNode(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
await allFutures(client.start(), server.start())
|
||||
|
||||
@ -248,9 +248,9 @@ suite "WakuNode - waku store":
|
||||
## Setup
|
||||
let
|
||||
serverKey = generateSecp256k1Key()
|
||||
server = WakuNode.new(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
server = newTestWakuNode(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
clientKey = generateSecp256k1Key()
|
||||
client = WakuNode.new(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
client = newTestWakuNode(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
await allFutures(server.start(), client.start())
|
||||
await server.mountStore(store=StoreQueueRef.new())
|
||||
|
||||
@ -10,7 +10,7 @@ import
|
||||
../../../waku/v2/protocol/waku_store/rpc_codec,
|
||||
../../../waku/v2/utils/time,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore
|
||||
|
||||
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ import
|
||||
../../../waku/v2/protocol/waku_store,
|
||||
../../../waku/v2/protocol/waku_store/client,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore
|
||||
|
||||
|
||||
|
||||
|
||||
@ -23,7 +23,8 @@ import
|
||||
../../../waku/v2/utils/peers,
|
||||
../../../waku/v2/waku_node,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore,
|
||||
../testlib/wakunode
|
||||
|
||||
|
||||
proc newTestArchiveDriver(): ArchiveDriver =
|
||||
@ -67,9 +68,9 @@ procSuite "WakuNode - Store":
|
||||
## Setup
|
||||
let
|
||||
serverKey = generateSecp256k1Key()
|
||||
server = WakuNode.new(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
server = newTestWakuNode(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
clientKey = generateSecp256k1Key()
|
||||
client = WakuNode.new(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
client = newTestWakuNode(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
await allFutures(client.start(), server.start())
|
||||
|
||||
@ -99,9 +100,9 @@ procSuite "WakuNode - Store":
|
||||
## Setup
|
||||
let
|
||||
serverKey = generateSecp256k1Key()
|
||||
server = WakuNode.new(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
server = newTestWakuNode(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
clientKey = generateSecp256k1Key()
|
||||
client = WakuNode.new(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
client = newTestWakuNode(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
await allFutures(client.start(), server.start())
|
||||
|
||||
@ -148,9 +149,9 @@ procSuite "WakuNode - Store":
|
||||
## Setup
|
||||
let
|
||||
serverKey = generateSecp256k1Key()
|
||||
server = WakuNode.new(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
server = newTestWakuNode(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
clientKey = generateSecp256k1Key()
|
||||
client = WakuNode.new(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
client = newTestWakuNode(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
await allFutures(client.start(), server.start())
|
||||
|
||||
@ -198,11 +199,11 @@ procSuite "WakuNode - Store":
|
||||
## Setup
|
||||
let
|
||||
filterSourceKey = generateSecp256k1Key()
|
||||
filterSource = WakuNode.new(filterSourceKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
filterSource = newTestWakuNode(filterSourceKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
serverKey = generateSecp256k1Key()
|
||||
server = WakuNode.new(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
server = newTestWakuNode(serverKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
clientKey = generateSecp256k1Key()
|
||||
client = WakuNode.new(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
client = newTestWakuNode(clientKey, ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
await allFutures(client.start(), server.start(), filterSource.start())
|
||||
|
||||
|
||||
@ -20,7 +20,8 @@ import
|
||||
../../../waku/v2/protocol/waku_store,
|
||||
../../../waku/v2/protocol/waku_filter,
|
||||
../../../waku/v2/utils/peers,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore,
|
||||
../testlib/wakunode
|
||||
|
||||
|
||||
procSuite "Waku v2 JSON-RPC API - Admin":
|
||||
@ -30,10 +31,10 @@ procSuite "Waku v2 JSON-RPC API - Admin":
|
||||
asyncTest "connect to ad-hoc peers":
|
||||
# Create a couple of nodes
|
||||
let
|
||||
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60600))
|
||||
node2 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60602))
|
||||
node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60600))
|
||||
node2 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60602))
|
||||
peerInfo2 = node2.switch.peerInfo
|
||||
node3 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60604))
|
||||
node3 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60604))
|
||||
peerInfo3 = node3.switch.peerInfo
|
||||
|
||||
await allFutures([node1.start(), node2.start(), node3.start()])
|
||||
@ -89,7 +90,7 @@ procSuite "Waku v2 JSON-RPC API - Admin":
|
||||
|
||||
asyncTest "get managed peer information":
|
||||
# Create 3 nodes and start them with relay
|
||||
let nodes = toSeq(0..<3).mapIt(WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60220+it*2)))
|
||||
let nodes = toSeq(0..<3).mapIt(newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60220+it*2)))
|
||||
await allFutures(nodes.mapIt(it.start()))
|
||||
await allFutures(nodes.mapIt(it.mountRelay()))
|
||||
|
||||
@ -136,7 +137,7 @@ procSuite "Waku v2 JSON-RPC API - Admin":
|
||||
await allFutures(nodes.mapIt(it.stop()))
|
||||
|
||||
asyncTest "get unmanaged peer information":
|
||||
let node = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60523))
|
||||
let node = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60523))
|
||||
|
||||
await node.start()
|
||||
|
||||
|
||||
@ -13,7 +13,9 @@ import
|
||||
../../../waku/v2/waku_node,
|
||||
../../../waku/v2/node/jsonrpc/debug/handlers as debug_api,
|
||||
../../../waku/v2/node/jsonrpc/debug/client as debug_api_client,
|
||||
../testlib/waku2
|
||||
../testlib/common,
|
||||
../testlib/wakucore,
|
||||
../testlib/wakunode
|
||||
|
||||
|
||||
procSuite "Waku v2 JSON-RPC API - Debug":
|
||||
@ -22,7 +24,7 @@ procSuite "Waku v2 JSON-RPC API - Debug":
|
||||
bindIp = ValidIpAddress.init("0.0.0.0")
|
||||
extIp = ValidIpAddress.init("127.0.0.1")
|
||||
port = Port(0)
|
||||
node = WakuNode.new(privkey, bindIp, port, some(extIp), some(port))
|
||||
node = newTestWakuNode(privkey, bindIp, port, some(extIp), some(port))
|
||||
|
||||
asyncTest "get node info":
|
||||
await node.start()
|
||||
|
||||
@ -18,7 +18,8 @@ import
|
||||
../../../waku/v2/protocol/waku_filter/rpc,
|
||||
../../../waku/v2/protocol/waku_filter/client,
|
||||
../../../waku/v2/utils/peers,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore,
|
||||
../testlib/wakunode
|
||||
|
||||
|
||||
proc newTestMessageCache(): filter_api.MessageCache =
|
||||
@ -32,9 +33,9 @@ procSuite "Waku v2 JSON-RPC API - Filter":
|
||||
asyncTest "subscribe and unsubscribe":
|
||||
let
|
||||
nodeKey1 = generateSecp256k1Key()
|
||||
node1 = WakuNode.new(nodeKey1, bindIp, Port(0))
|
||||
node1 = newTestWakuNode(nodeKey1, bindIp, Port(0))
|
||||
nodeKey2 = generateSecp256k1Key()
|
||||
node2 = WakuNode.new(nodeKey2, bindIp, Port(0))
|
||||
node2 = newTestWakuNode(nodeKey2, bindIp, Port(0))
|
||||
|
||||
await allFutures(node1.start(), node2.start())
|
||||
|
||||
|
||||
@ -19,7 +19,8 @@ import
|
||||
../../../waku/v2/utils/compat,
|
||||
../../../waku/v2/utils/peers,
|
||||
../testlib/common,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore,
|
||||
../testlib/wakunode
|
||||
|
||||
|
||||
proc newTestMessageCache(): relay_api.MessageCache =
|
||||
@ -30,7 +31,7 @@ suite "Waku v2 JSON-RPC API - Relay":
|
||||
|
||||
asyncTest "subscribe and unsubscribe from topics":
|
||||
## Setup
|
||||
let node = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
let node = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
await node.start()
|
||||
await node.mountRelay(topics = @[DefaultPubsubTopic])
|
||||
@ -92,8 +93,8 @@ suite "Waku v2 JSON-RPC API - Relay":
|
||||
|
||||
# Relay nodes setup
|
||||
let
|
||||
srcNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
dstNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
srcNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
dstNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
await allFutures(srcNode.start(), dstNode.start())
|
||||
|
||||
@ -158,8 +159,8 @@ suite "Waku v2 JSON-RPC API - Relay":
|
||||
|
||||
# Relay nodes setup
|
||||
let
|
||||
srcNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
dstNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
srcNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
dstNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
|
||||
|
||||
await allFutures(srcNode.start(), dstNode.start())
|
||||
|
||||
@ -220,9 +221,9 @@ suite "Waku v2 JSON-RPC API - Relay (Private)":
|
||||
contentTopic = "test-relay-content-topic"
|
||||
|
||||
let
|
||||
srcNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
|
||||
relNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
|
||||
dstNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
|
||||
srcNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
|
||||
relNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
|
||||
dstNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
|
||||
|
||||
await allFutures(srcNode.start(), relNode.start(), dstNode.start())
|
||||
|
||||
@ -309,9 +310,9 @@ suite "Waku v2 JSON-RPC API - Relay (Private)":
|
||||
contentTopic = "test-relay-content-topic"
|
||||
|
||||
let
|
||||
srcNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
|
||||
relNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
|
||||
dstNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
|
||||
srcNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
|
||||
relNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
|
||||
dstNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
|
||||
|
||||
await allFutures(srcNode.start(), relNode.start(), dstNode.start())
|
||||
|
||||
|
||||
@ -21,7 +21,8 @@ import
|
||||
../../../waku/v2/utils/peers,
|
||||
../../../waku/v2/utils/time,
|
||||
../../v2/testlib/common,
|
||||
../../v2/testlib/waku2
|
||||
../../v2/testlib/wakucore,
|
||||
../../v2/testlib/wakunode
|
||||
|
||||
|
||||
proc put(store: ArchiveDriver, pubsubTopic: PubsubTopic, message: WakuMessage): Result[void, string] =
|
||||
@ -38,7 +39,7 @@ procSuite "Waku v2 JSON-RPC API - Store":
|
||||
bindIp = ValidIpAddress.init("0.0.0.0")
|
||||
extIp = ValidIpAddress.init("127.0.0.1")
|
||||
port = Port(0)
|
||||
node = WakuNode.new(privkey, bindIp, port, some(extIp), some(port))
|
||||
node = newTestWakuNode(privkey, bindIp, port, some(extIp), some(port))
|
||||
|
||||
asyncTest "query a node and retrieve historical messages":
|
||||
await node.start()
|
||||
|
||||
@ -10,22 +10,25 @@ import
|
||||
libp2p/crypto/crypto
|
||||
import
|
||||
../../waku/v2/waku_node,
|
||||
../../waku/v2/node/waku_node as waku_node2, # TODO: Remove after moving `git_version` to the app code.
|
||||
../../waku/v2/node/rest/server,
|
||||
../../waku/v2/node/rest/client,
|
||||
../../waku/v2/node/rest/responses,
|
||||
../../waku/v2/node/rest/debug/handlers as debug_api,
|
||||
../../waku/v2/node/rest/debug/client as debug_api_client
|
||||
../../waku/v2/node/rest/debug/client as debug_api_client,
|
||||
../testlib/common,
|
||||
../testlib/wakucore,
|
||||
../testlib/wakunode
|
||||
|
||||
|
||||
proc testWakuNode(): WakuNode =
|
||||
let
|
||||
rng = crypto.newRng()
|
||||
privkey = crypto.PrivateKey.random(Secp256k1, rng[]).tryGet()
|
||||
bindIp = ValidIpAddress.init("0.0.0.0")
|
||||
extIp = ValidIpAddress.init("127.0.0.1")
|
||||
port = Port(58000)
|
||||
|
||||
WakuNode.new(privkey, bindIp, port, some(extIp), some(port))
|
||||
newTestWakuNode(privkey, bindIp, port, some(extIp), some(port))
|
||||
|
||||
|
||||
suite "Waku v2 REST API - Debug":
|
||||
@ -77,7 +80,7 @@ suite "Waku v2 REST API - Debug":
|
||||
check:
|
||||
response.status == 200
|
||||
$response.contentType == $MIMETYPE_TEXT
|
||||
response.data == waku_node.git_version
|
||||
response.data == waku_node2.git_version
|
||||
|
||||
await restServer.stop()
|
||||
await restServer.closeWait()
|
||||
|
||||
@ -20,7 +20,8 @@ import
|
||||
../../waku/v2/protocol/waku_message,
|
||||
../../waku/v2/protocol/waku_relay,
|
||||
../../waku/v2/utils/time,
|
||||
../testlib/waku2
|
||||
../testlib/wakucore,
|
||||
../testlib/wakunode
|
||||
|
||||
|
||||
proc testWakuNode(): WakuNode =
|
||||
@ -30,7 +31,7 @@ proc testWakuNode(): WakuNode =
|
||||
extIp = ValidIpAddress.init("127.0.0.1")
|
||||
port = Port(0)
|
||||
|
||||
WakuNode.new(privkey, bindIp, port, some(extIp), some(port))
|
||||
newTestWakuNode(privkey, bindIp, port, some(extIp), some(port))
|
||||
|
||||
|
||||
suite "Waku v2 Rest API - Relay":
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
import
|
||||
std/[sequtils, strutils, tables],
|
||||
stew/byteutils,
|
||||
stew/[results, byteutils],
|
||||
stew/shims/net as stewNet,
|
||||
testutils/unittests,
|
||||
chronos,
|
||||
@ -55,7 +55,11 @@ procSuite "WakuBridge":
|
||||
|
||||
# Waku v2 node
|
||||
v2NodeKey = crypto.PrivateKey.random(Secp256k1, cryptoRng[])[]
|
||||
v2Node = WakuNode.new(v2NodeKey, ValidIpAddress.init("0.0.0.0"), Port(62203))
|
||||
v2Node = block:
|
||||
var builder = WakuNodeBuilder.init()
|
||||
builder.withNodeKey(v2NodeKey)
|
||||
builder.withNetworkConfigurationDetails(ValidIpAddress.init("0.0.0.0"), Port(62203)).tryGet()
|
||||
builder.build().tryGet()
|
||||
|
||||
contentTopic = ContentTopic("/waku/1/0x1a2b3c4d/rfc26")
|
||||
topic = [byte 0x1a, byte 0x2b, byte 0x3c, byte 0x4d]
|
||||
@ -64,6 +68,7 @@ procSuite "WakuBridge":
|
||||
encodedPayloadV2 = Payload(payload: payloadV2, dst: some(nodev1Key.pubKey))
|
||||
message = WakuMessage(payload: encodedPayloadV2.encode(1, rng[]).get(), contentTopic: contentTopic, version: 1)
|
||||
|
||||
|
||||
########################
|
||||
# Tests setup/teardown #
|
||||
########################
|
||||
@ -87,7 +92,7 @@ procSuite "WakuBridge":
|
||||
await v2Node.mountRelay(@[DefaultBridgeTopic], triggerSelf = false)
|
||||
|
||||
discard waitFor v1Node.rlpxConnect(newNode(bridge.nodev1.toENode()))
|
||||
waitFor v2Node.connectToNodes(@[bridge.nodev2.switch.peerInfo.toRemotePeerInfo()])
|
||||
waitFor waku_node.connectToNodes(v2Node, @[bridge.nodev2.switch.peerInfo.toRemotePeerInfo()])
|
||||
|
||||
var completionFut = newFuture[bool]()
|
||||
|
||||
|
||||
@ -150,62 +150,6 @@ proc getAutonatService*(rng: ref HmacDrbgContext): AutonatService =
|
||||
|
||||
return autonatService
|
||||
|
||||
## retain old signature, but deprecate it
|
||||
proc new*(T: type WakuNode,
|
||||
nodeKey: crypto.PrivateKey,
|
||||
bindIp: ValidIpAddress,
|
||||
bindPort: Port,
|
||||
extIp = none(ValidIpAddress),
|
||||
extPort = none(Port),
|
||||
extMultiAddrs = newSeq[MultiAddress](),
|
||||
peerStorage: PeerStorage = nil,
|
||||
maxConnections = builders.MaxConnections,
|
||||
wsBindPort: Port = (Port)8000,
|
||||
wsEnabled: bool = false,
|
||||
wssEnabled: bool = false,
|
||||
secureKey: string = "",
|
||||
secureCert: string = "",
|
||||
wakuFlags = none(CapabilitiesBitfield),
|
||||
nameResolver: NameResolver = nil,
|
||||
sendSignedPeerRecord = false,
|
||||
dns4DomainName = none(string),
|
||||
discv5UdpPort = none(Port),
|
||||
wakuDiscv5 = none(WakuDiscoveryV5),
|
||||
agentString = none(string), # defaults to nim-libp2p version
|
||||
peerStoreCapacity = none(int), # defaults to 1.25 maxConnections
|
||||
# TODO: make this argument required after tests are updated
|
||||
rng: ref HmacDrbgContext = crypto.newRng()
|
||||
): T {.raises: [Defect, LPError, IOError, TLSStreamProtocolError], deprecated: "Use NetConfig variant".} =
|
||||
let netConfigRes = NetConfig.init(
|
||||
bindIp = bindIp,
|
||||
bindPort = bindPort,
|
||||
extIp = extIp,
|
||||
extPort = extPort,
|
||||
extMultiAddrs = extMultiAddrs,
|
||||
wsBindPort = wsBindPort,
|
||||
wsEnabled = wsEnabled,
|
||||
wssEnabled = wssEnabled,
|
||||
wakuFlags = wakuFlags,
|
||||
dns4DomainName = dns4DomainName,
|
||||
discv5UdpPort = discv5UdpPort,
|
||||
)
|
||||
if netConfigRes.isErr():
|
||||
raise newException(Defect, "invalid node configuration: " & $netConfigRes.error)
|
||||
|
||||
return WakuNode.new(
|
||||
nodeKey = nodeKey,
|
||||
netConfig = netConfigRes.get(),
|
||||
peerStorage = peerStorage,
|
||||
maxConnections = maxConnections,
|
||||
secureKey = secureKey,
|
||||
secureCert = secureCert,
|
||||
nameResolver = nameResolver,
|
||||
sendSignedPeerRecord = sendSignedPeerRecord,
|
||||
wakuDiscv5 = wakuDiscv5,
|
||||
agentString = agentString,
|
||||
peerStoreCapacity = peerStoreCapacity,
|
||||
)
|
||||
|
||||
proc new*(T: type WakuNode,
|
||||
nodeKey: crypto.PrivateKey,
|
||||
netConfig: NetConfig,
|
||||
@ -223,7 +167,7 @@ proc new*(T: type WakuNode,
|
||||
): T {.raises: [Defect, LPError, IOError, TLSStreamProtocolError].} =
|
||||
## Creates a Waku Node instance.
|
||||
|
||||
info "Initializing networking", addrs=netConfig.announcedAddresses
|
||||
info "Initializing networking", addrs= $netConfig.announcedAddresses
|
||||
|
||||
let switch = newWakuSwitch(
|
||||
some(nodekey),
|
||||
@ -279,7 +223,7 @@ proc info*(node: WakuNode): WakuInfo =
|
||||
proc connectToNodes*(node: WakuNode, nodes: seq[RemotePeerInfo] | seq[string], source = "api") {.async.} =
|
||||
## `source` indicates source of node addrs (static config, api call, discovery, etc)
|
||||
# NOTE Connects to the node without a give protocol, which automatically creates streams for relay
|
||||
await connectToNodes(node.peerManager, nodes, source=source)
|
||||
await peer_manager.connectToNodes(node.peerManager, nodes, source=source)
|
||||
|
||||
|
||||
## Waku relay
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user