refactor(node): remove deprecated constructor and extend testlib with builder

This commit is contained in:
Lorenzo Delgado 2023-04-05 16:01:51 +02:00 committed by GitHub
parent 1088c5f063
commit 7834ca839c
44 changed files with 274 additions and 229 deletions

View File

@ -7,7 +7,7 @@ import
testutils/unittests testutils/unittests
import import
../../waku/common/enr, ../../waku/common/enr,
../v2/testlib/waku2 ../v2/testlib/wakucore
suite "nim-eth ENR - builder and typed record": suite "nim-eth ENR - builder and typed record":

View File

@ -8,7 +8,7 @@ import
../../waku/v2/protocol/waku_message, ../../waku/v2/protocol/waku_message,
../../waku/v2/node/message_cache, ../../waku/v2/node/message_cache,
./testlib/common, ./testlib/common,
./testlib/waku2 ./testlib/wakucore
type TestMessageCache = MessageCache[(PubsubTopic, ContentTopic)] type TestMessageCache = MessageCache[(PubsubTopic, ContentTopic)]

View File

@ -12,7 +12,8 @@ import
import import
../../waku/v2/waku_node, ../../waku/v2/waku_node,
../../waku/v2/utils/peers, ../../waku/v2/utils/peers,
./testlib/waku2 ./testlib/wakucore,
./testlib/wakunode
procSuite "Peer Exchange": procSuite "Peer Exchange":
asyncTest "GossipSub (relay) peer exchange": asyncTest "GossipSub (relay) peer exchange":
@ -22,11 +23,11 @@ procSuite "Peer Exchange":
let let
bindIp = ValidIpAddress.init("0.0.0.0") bindIp = ValidIpAddress.init("0.0.0.0")
nodeKey1 = generateSecp256k1Key() nodeKey1 = generateSecp256k1Key()
node1 = WakuNode.new(nodeKey1, bindIp, Port(0)) node1 = newTestWakuNode(nodeKey1, bindIp, Port(0))
nodeKey2 = generateSecp256k1Key() nodeKey2 = generateSecp256k1Key()
node2 = WakuNode.new(nodeKey2, bindIp, Port(0), sendSignedPeerRecord = true) node2 = newTestWakuNode(nodeKey2, bindIp, Port(0), sendSignedPeerRecord = true)
nodeKey3 = generateSecp256k1Key() nodeKey3 = generateSecp256k1Key()
node3 = WakuNode.new(nodeKey3, bindIp, Port(0), sendSignedPeerRecord = true) node3 = newTestWakuNode(nodeKey3, bindIp, Port(0), sendSignedPeerRecord = true)
var var
peerExchangeHandler, emptyHandler: RoutingRecordsHandler peerExchangeHandler, emptyHandler: RoutingRecordsHandler

View File

@ -29,12 +29,13 @@ import
../../waku/v2/protocol/waku_peer_exchange, ../../waku/v2/protocol/waku_peer_exchange,
./testlib/common, ./testlib/common,
./testlib/testutils, ./testlib/testutils,
./testlib/waku2 ./testlib/wakucore,
./testlib/wakunode
procSuite "Peer Manager": procSuite "Peer Manager":
asyncTest "connectRelay() works": asyncTest "connectRelay() works":
# Create 2 nodes # 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.start()))
let connOk = await nodes[0].peerManager.connectRelay(nodes[1].peerInfo.toRemotePeerInfo()) let connOk = await nodes[0].peerManager.connectRelay(nodes[1].peerInfo.toRemotePeerInfo())
@ -45,7 +46,7 @@ procSuite "Peer Manager":
asyncTest "dialPeer() works": asyncTest "dialPeer() works":
# Create 2 nodes # 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.start()))
await allFutures(nodes.mapIt(it.mountRelay())) await allFutures(nodes.mapIt(it.mountRelay()))
@ -71,7 +72,7 @@ procSuite "Peer Manager":
asyncTest "dialPeer() fails gracefully": asyncTest "dialPeer() fails gracefully":
# Create 2 nodes and start them # 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.start()))
await allFutures(nodes.mapIt(it.mountRelay())) await allFutures(nodes.mapIt(it.mountRelay()))
@ -91,7 +92,7 @@ procSuite "Peer Manager":
asyncTest "Adding, selecting and filtering peers work": asyncTest "Adding, selecting and filtering peers work":
let 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 # Create filter peer
filterLoc = MultiAddress.init("/ip4/127.0.0.1/tcp/0").tryGet() 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": asyncTest "Peer manager keeps track of connections":
# Create 2 nodes # 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.start()))
await allFutures(nodes.mapIt(it.mountRelay())) await allFutures(nodes.mapIt(it.mountRelay()))
@ -159,7 +160,7 @@ procSuite "Peer Manager":
asyncTest "Peer manager updates failed peers correctly": asyncTest "Peer manager updates failed peers correctly":
# Create 2 nodes # 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.start()))
await allFutures(nodes.mapIt(it.mountRelay())) await allFutures(nodes.mapIt(it.mountRelay()))
@ -212,8 +213,8 @@ procSuite "Peer Manager":
let let
database = SqliteDatabase.new(":memory:")[] database = SqliteDatabase.new(":memory:")[]
storage = WakuPeerStorage.new(database)[] storage = WakuPeerStorage.new(database)[]
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0), peerStorage = storage) node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0), peerStorage = storage)
node2 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)) node2 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
peerInfo2 = node2.switch.peerInfo peerInfo2 = node2.switch.peerInfo
await node1.start() await node1.start()
@ -232,7 +233,7 @@ procSuite "Peer Manager":
# Simulate restart by initialising a new node using the same storage # Simulate restart by initialising a new node using the same storage
let 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() await node3.start()
check: check:
@ -257,8 +258,8 @@ procSuite "Peer Manager":
let let
database = SqliteDatabase.new(":memory:")[] database = SqliteDatabase.new(":memory:")[]
storage = WakuPeerStorage.new(database)[] storage = WakuPeerStorage.new(database)[]
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0), peerStorage = storage) node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0), peerStorage = storage)
node2 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)) node2 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
peerInfo2 = node2.switch.peerInfo peerInfo2 = node2.switch.peerInfo
betaCodec = "/vac/waku/relay/2.0.0-beta2" betaCodec = "/vac/waku/relay/2.0.0-beta2"
stableCodec = "/vac/waku/relay/2.0.0" 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 # Simulate restart by initialising a new node using the same storage
let 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() await node3.mountRelay()
node3.wakuRelay.codec = stableCodec node3.wakuRelay.codec = stableCodec
@ -310,7 +311,7 @@ procSuite "Peer Manager":
asyncTest "Peer manager connects to all peers supporting a given protocol": asyncTest "Peer manager connects to all peers supporting a given protocol":
# Create 4 nodes # 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 # Start them
await allFutures(nodes.mapIt(it.start())) await allFutures(nodes.mapIt(it.start()))
@ -350,7 +351,7 @@ procSuite "Peer Manager":
asyncTest "Peer store keeps track of incoming connections": asyncTest "Peer store keeps track of incoming connections":
# Create 4 nodes # 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 # Start them
await allFutures(nodes.mapIt(it.start())) await allFutures(nodes.mapIt(it.start()))
@ -411,7 +412,7 @@ procSuite "Peer Manager":
let basePeerId = "16Uiu2HAm7QGEZKujdSbbo1aaQyfDPQ6Bw3ybQnj6fruH5Dxwd7D" let basePeerId = "16Uiu2HAm7QGEZKujdSbbo1aaQyfDPQ6Bw3ybQnj6fruH5Dxwd7D"
let 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") peer1 = parseRemotePeerInfo("/ip4/0.0.0.0/tcp/30300/p2p/" & basePeerId & "1")
peer2 = parseRemotePeerInfo("/ip4/0.0.0.0/tcp/30301/p2p/" & basePeerId & "2") peer2 = parseRemotePeerInfo("/ip4/0.0.0.0/tcp/30301/p2p/" & basePeerId & "2")
peer3 = parseRemotePeerInfo("/ip4/0.0.0.0/tcp/30302/p2p/" & basePeerId & "3") peer3 = parseRemotePeerInfo("/ip4/0.0.0.0/tcp/30302/p2p/" & basePeerId & "3")

View File

@ -7,7 +7,7 @@ import
../../waku/common/sqlite, ../../waku/common/sqlite,
../../waku/v2/node/peer_manager/peer_manager, ../../waku/v2/node/peer_manager/peer_manager,
../../waku/v2/node/peer_manager/peer_store/waku_peer_storage, ../../waku/v2/node/peer_manager/peer_store/waku_peer_storage,
./testlib/waku2 ./testlib/wakucore
suite "Peer Storage": suite "Peer Storage":

View File

@ -12,7 +12,7 @@ import
../../waku/v2/node/peer_manager/peer_manager, ../../waku/v2/node/peer_manager/peer_manager,
../../waku/v2/node/peer_manager/waku_peer_store, ../../waku/v2/node/peer_manager/waku_peer_store,
../../waku/v2/waku_node, ../../waku/v2/waku_node,
./testlib/waku2 ./testlib/wakucore
suite "Extended nim-libp2p Peer Store": suite "Extended nim-libp2p Peer Store":

View File

@ -14,7 +14,8 @@ import
../../waku/v2/protocol/waku_message, ../../waku/v2/protocol/waku_message,
../../waku/v2/protocol/waku_discv5, ../../waku/v2/protocol/waku_discv5,
./testlib/common, ./testlib/common,
./testlib/waku2 ./testlib/wakucore,
./testlib/wakunode
procSuite "Waku Discovery v5": procSuite "Waku Discovery v5":
asyncTest "Waku Discovery v5 end-to-end": asyncTest "Waku Discovery v5 end-to-end":
@ -26,17 +27,17 @@ procSuite "Waku Discovery v5":
nodeKey1 = generateSecp256k1Key() nodeKey1 = generateSecp256k1Key()
nodeTcpPort1 = Port(61500) nodeTcpPort1 = Port(61500)
nodeUdpPort1 = Port(9000) nodeUdpPort1 = Port(9000)
node1 = WakuNode.new(nodeKey1, bindIp, nodeTcpPort1) node1 = newTestWakuNode(nodeKey1, bindIp, nodeTcpPort1)
nodeKey2 = generateSecp256k1Key() nodeKey2 = generateSecp256k1Key()
nodeTcpPort2 = Port(61502) nodeTcpPort2 = Port(61502)
nodeUdpPort2 = Port(9002) nodeUdpPort2 = Port(9002)
node2 = WakuNode.new(nodeKey2, bindIp, nodeTcpPort2) node2 = newTestWakuNode(nodeKey2, bindIp, nodeTcpPort2)
nodeKey3 = generateSecp256k1Key() nodeKey3 = generateSecp256k1Key()
nodeTcpPort3 = Port(61504) nodeTcpPort3 = Port(61504)
nodeUdpPort3 = Port(9004) nodeUdpPort3 = Port(9004)
node3 = WakuNode.new(nodeKey3, bindIp, nodeTcpPort3) node3 = newTestWakuNode(nodeKey3, bindIp, nodeTcpPort3)
flags = CapabilitiesBitfield.init( flags = CapabilitiesBitfield.init(
lightpush = false, lightpush = false,

View File

@ -15,7 +15,8 @@ import
../../waku/v2/waku_node, ../../waku/v2/waku_node,
../../waku/v2/protocol/waku_dnsdisc, ../../waku/v2/protocol/waku_dnsdisc,
./testlib/common, ./testlib/common,
./testlib/waku2 ./testlib/wakucore,
./testlib/wakunode
suite "Waku DNS Discovery": suite "Waku DNS Discovery":
asyncTest "Waku DNS Discovery end-to-end": asyncTest "Waku DNS Discovery end-to-end":
@ -26,13 +27,13 @@ suite "Waku DNS Discovery":
let let
bindIp = ValidIpAddress.init("0.0.0.0") bindIp = ValidIpAddress.init("0.0.0.0")
nodeKey1 = generateSecp256k1Key() nodeKey1 = generateSecp256k1Key()
node1 = WakuNode.new(nodeKey1, bindIp, Port(63500)) node1 = newTestWakuNode(nodeKey1, bindIp, Port(63500))
enr1 = node1.enr enr1 = node1.enr
nodeKey2 = generateSecp256k1Key() nodeKey2 = generateSecp256k1Key()
node2 = WakuNode.new(nodeKey2, bindIp, Port(63502)) node2 = newTestWakuNode(nodeKey2, bindIp, Port(63502))
enr2 = node2.enr enr2 = node2.enr
nodeKey3 = generateSecp256k1Key() nodeKey3 = generateSecp256k1Key()
node3 = WakuNode.new(nodeKey3, bindIp, Port(63503)) node3 = newTestWakuNode(nodeKey3, bindIp, Port(63503))
enr3 = node3.enr enr3 = node3.enr
await node1.mountRelay() await node1.mountRelay()
@ -67,7 +68,7 @@ suite "Waku DNS Discovery":
let let
nodeKey4 = generateSecp256k1Key() nodeKey4 = generateSecp256k1Key()
node4 = WakuNode.new(nodeKey4, bindIp, Port(63504)) node4 = newTestWakuNode(nodeKey4, bindIp, Port(63504))
await node4.mountRelay() await node4.mountRelay()
await node4.start() await node4.start()

View File

@ -6,7 +6,7 @@ import
testutils/unittests testutils/unittests
import import
../../waku/v2/protocol/waku_enr, ../../waku/v2/protocol/waku_enr,
./testlib/waku2 ./testlib/wakucore
suite "Waku ENR - Capabilities bitfield": suite "Waku ENR - Capabilities bitfield":

View File

@ -12,7 +12,7 @@ import
../../waku/v2/protocol/waku_filter, ../../waku/v2/protocol/waku_filter,
../../waku/v2/protocol/waku_filter/client, ../../waku/v2/protocol/waku_filter/client,
./testlib/common, ./testlib/common,
./testlib/waku2 ./testlib/wakucore
proc newTestWakuFilterNode(switch: Switch, timeout: Duration = 2.hours): Future[WakuFilter] {.async.} = proc newTestWakuFilterNode(switch: Switch, timeout: Duration = 2.hours): Future[WakuFilter] {.async.} =

View File

@ -14,7 +14,8 @@ import
import import
../../waku/v2/waku_node, ../../waku/v2/waku_node,
../../waku/v2/utils/peers, ../../waku/v2/utils/peers,
./testlib/waku2 ./testlib/wakucore,
./testlib/wakunode
suite "Waku Keepalive": suite "Waku Keepalive":
@ -22,9 +23,9 @@ suite "Waku Keepalive":
asyncTest "handle ping keepalives": asyncTest "handle ping keepalives":
let let
nodeKey1 = generateSecp256k1Key() 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() 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]() var completionFut = newFuture[bool]()

View File

@ -11,7 +11,7 @@ import
../../waku/v2/protocol/waku_lightpush, ../../waku/v2/protocol/waku_lightpush,
../../waku/v2/protocol/waku_lightpush/client, ../../waku/v2/protocol/waku_lightpush/client,
./testlib/common, ./testlib/common,
./testlib/waku2 ./testlib/wakucore
proc newTestWakuLightpushNode(switch: Switch, handler: PushMessageHandler): Future[WakuLightPush] {.async.} = proc newTestWakuLightpushNode(switch: Switch, handler: PushMessageHandler): Future[WakuLightPush] {.async.} =

View File

@ -8,7 +8,7 @@ import
../../waku/v2/protocol/waku_message, ../../waku/v2/protocol/waku_message,
../../waku/v2/protocol/waku_message/codec, ../../waku/v2/protocol/waku_message/codec,
../../waku/v2/protocol/waku_message/digest, ../../waku/v2/protocol/waku_message/digest,
./testlib/waku2 ./testlib/wakucore
suite "Waku Message - Deterministic hashing": suite "Waku Message - Deterministic hashing":

View File

@ -18,7 +18,8 @@ import
../../waku/v2/protocol/waku_peer_exchange, ../../waku/v2/protocol/waku_peer_exchange,
../../waku/v2/protocol/waku_peer_exchange/rpc, ../../waku/v2/protocol/waku_peer_exchange/rpc,
../../waku/v2/protocol/waku_peer_exchange/rpc_codec, ../../waku/v2/protocol/waku_peer_exchange/rpc_codec,
./testlib/waku2 ./testlib/wakucore,
./testlib/wakunode
# TODO: Extend test coverage # TODO: Extend test coverage
@ -76,17 +77,17 @@ procSuite "Waku Peer Exchange":
nodeKey1 = generateSecp256k1Key() nodeKey1 = generateSecp256k1Key()
nodeTcpPort1 = Port(64010) nodeTcpPort1 = Port(64010)
nodeUdpPort1 = Port(9000) nodeUdpPort1 = Port(9000)
node1 = WakuNode.new(nodeKey1, bindIp, nodeTcpPort1) node1 = newTestWakuNode(nodeKey1, bindIp, nodeTcpPort1)
nodeKey2 = generateSecp256k1Key() nodeKey2 = generateSecp256k1Key()
nodeTcpPort2 = Port(64012) nodeTcpPort2 = Port(64012)
nodeUdpPort2 = Port(9002) nodeUdpPort2 = Port(9002)
node2 = WakuNode.new(nodeKey2, bindIp, nodeTcpPort2) node2 = newTestWakuNode(nodeKey2, bindIp, nodeTcpPort2)
nodeKey3 = generateSecp256k1Key() nodeKey3 = generateSecp256k1Key()
nodeTcpPort3 = Port(64014) nodeTcpPort3 = Port(64014)
nodeUdpPort3 = Port(9004) nodeUdpPort3 = Port(9004)
node3 = WakuNode.new(nodeKey3, bindIp, nodeTcpPort3) node3 = newTestWakuNode(nodeKey3, bindIp, nodeTcpPort3)
# todo: px flag # todo: px flag
flags = CapabilitiesBitfield.init( flags = CapabilitiesBitfield.init(
@ -154,8 +155,8 @@ procSuite "Waku Peer Exchange":
asyncTest "peer exchange request functions returns some discovered peers": asyncTest "peer exchange request functions returns some discovered peers":
let let
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)) node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
node2 = WakuNode.new(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 # Start and mount peer exchange
await allFutures([node1.start(), node2.start()]) await allFutures([node1.start(), node2.start()])
@ -198,8 +199,8 @@ procSuite "Waku Peer Exchange":
asyncTest "peer exchange handler works as expected": asyncTest "peer exchange handler works as expected":
let let
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)) node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
node2 = WakuNode.new(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 # Start and mount peer exchange
await allFutures([node1.start(), node2.start()]) await allFutures([node1.start(), node2.start()])
@ -234,8 +235,8 @@ procSuite "Waku Peer Exchange":
asyncTest "peer exchange request fails gracefully": asyncTest "peer exchange request fails gracefully":
let let
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)) node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
node2 = WakuNode.new(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 # Start and mount peer exchange
await allFutures([node1.start(), node2.start()]) await allFutures([node1.start(), node2.start()])

View File

@ -11,7 +11,7 @@ import
import import
../../waku/v2/node/waku_switch, ../../waku/v2/node/waku_switch,
./testlib/common, ./testlib/common,
./testlib/waku2 ./testlib/wakucore
proc newCircuitRelayClientSwitch(relayClient: RelayClient): Switch = proc newCircuitRelayClientSwitch(relayClient: RelayClient): Switch =
SwitchBuilder.new() SwitchBuilder.new()

View File

@ -23,7 +23,8 @@ import
../../waku/v2/protocol/waku_relay, ../../waku/v2/protocol/waku_relay,
../../waku/v2/protocol/waku_peer_exchange, ../../waku/v2/protocol/waku_peer_exchange,
../../waku/v2/utils/peers, ../../waku/v2/utils/peers,
./testlib/waku2 ./testlib/wakucore,
./testlib/wakunode
suite "WakuNode": suite "WakuNode":
@ -31,9 +32,9 @@ suite "WakuNode":
asyncTest "Protocol matcher works as expected": asyncTest "Protocol matcher works as expected":
let let
nodeKey1 = generateSecp256k1Key() 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() 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" pubSubTopic = "/waku/2/default-waku/proto"
contentTopic = ContentTopic("/waku/2/default-content/proto") contentTopic = ContentTopic("/waku/2/default-content/proto")
payload = "hello world".toBytes() payload = "hello world".toBytes()
@ -88,9 +89,9 @@ suite "WakuNode":
let let
nodeKey1 = generateSecp256k1Key() 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() 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 # Construct DNS multiaddr for node2
let let
@ -113,13 +114,13 @@ suite "WakuNode":
let let
maxConnections = 2 maxConnections = 2
nodeKey1 = generateSecp256k1Key() 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) Port(60010), maxConnections = maxConnections)
nodeKey2 = generateSecp256k1Key() nodeKey2 = generateSecp256k1Key()
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"),
Port(60012)) Port(60012))
nodeKey3 = generateSecp256k1Key() nodeKey3 = generateSecp256k1Key()
node3 = WakuNode.new(nodeKey3, ValidIpAddress.init("0.0.0.0"), node3 = newTestWakuNode(nodeKey3, ValidIpAddress.init("0.0.0.0"),
Port(60013)) Port(60013))
check: check:
@ -150,12 +151,11 @@ suite "WakuNode":
await allFutures([node1.stop(), node2.stop(), node3.stop()]) await allFutures([node1.stop(), node2.stop(), node3.stop()])
asyncTest "Messages fails with wrong key path": asyncTest "Messages fails with wrong key path":
let let nodeKey1 = generateSecp256k1Key()
nodeKey1 = generateSecp256k1Key()
expect IOError: expect ResultDefect:
# gibberish # gibberish
discard WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), discard newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"),
bindPort = Port(61004), bindPort = Port(61004),
wsBindPort = Port(8000), wsBindPort = Port(8000),
wssEnabled = true, wssEnabled = true,
@ -168,7 +168,7 @@ suite "WakuNode":
bindPort = Port(61006) bindPort = Port(61006)
extIp = some(ValidIpAddress.init("127.0.0.1")) extIp = some(ValidIpAddress.init("127.0.0.1"))
extPort = some(Port(61008)) extPort = some(Port(61008))
node = WakuNode.new( node = newTestWakuNode(
nodeKey, nodeKey,
bindIp, bindPort, bindIp, bindPort,
extIp, extPort) extIp, extPort)
@ -209,7 +209,7 @@ suite "WakuNode":
extPort = some(Port(61012)) extPort = some(Port(61012))
domainName = "example.com" domainName = "example.com"
expectedDns4Addr = MultiAddress.init("/dns4/" & domainName & "/tcp/" & $(extPort.get())).get() expectedDns4Addr = MultiAddress.init("/dns4/" & domainName & "/tcp/" & $(extPort.get())).get()
node = WakuNode.new( node = newTestWakuNode(
nodeKey, nodeKey,
bindIp, bindPort, bindIp, bindPort,
extIp, extPort, extIp, extPort,
@ -230,12 +230,12 @@ suite "WakuNode":
let let
# node with custom agent string # node with custom agent string
nodeKey1 = generateSecp256k1Key() 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)) agentString = some(expectedAgentString1))
# node with default agent string from libp2p # node with default agent string from libp2p
nodeKey2 = generateSecp256k1Key() 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.start()
await node1.mountRelay() await node1.mountRelay()
@ -265,12 +265,12 @@ suite "WakuNode":
let let
# node with custom multiaddress # node with custom multiaddress
nodeKey1 = generateSecp256k1Key() 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]) extMultiAddrs = @[expectedMultiaddress1])
# node with default multiaddress # node with default multiaddress
nodeKey2 = generateSecp256k1Key() 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.start()
await node1.mountRelay() await node1.mountRelay()
@ -290,8 +290,8 @@ suite "WakuNode":
asyncTest "Function fetchPeerExchangePeers succesfully exchanges px peers": asyncTest "Function fetchPeerExchangePeers succesfully exchanges px peers":
let let
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)) node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
node2 = WakuNode.new(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 # Start and mount peer exchange
await allFutures([node1.start(), node2.start()]) await allFutures([node1.start(), node2.start()])

View File

@ -12,7 +12,8 @@ import
../../waku/v2/protocol/waku_message, ../../waku/v2/protocol/waku_message,
../../waku/v2/utils/peers, ../../waku/v2/utils/peers,
./testlib/common, ./testlib/common,
./testlib/waku2 ./testlib/wakucore,
./testlib/wakunode
suite "WakuNode - Filter": suite "WakuNode - Filter":
@ -21,9 +22,9 @@ suite "WakuNode - Filter":
## Setup ## Setup
let let
serverKey = generateSecp256k1Key() 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() 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 allFutures(server.start(), client.start())

View File

@ -14,7 +14,8 @@ import
../../waku/v2/utils/peers, ../../waku/v2/utils/peers,
../../waku/v2/waku_node, ../../waku/v2/waku_node,
./testlib/common, ./testlib/common,
./testlib/waku2 ./testlib/wakucore,
./testlib/wakunode
suite "WakuNode - Lightpush": suite "WakuNode - Lightpush":
@ -22,11 +23,11 @@ suite "WakuNode - Lightpush":
## Setup ## Setup
let let
lightNodeKey = generateSecp256k1Key() 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() 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() 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()) await allFutures(destNode.start(), bridgeNode.start(), lightNode.start())

View File

@ -1,6 +1,8 @@
import import
std/options, std/options,
stew/byteutils, stew/[results, byteutils],
stew/shims/net,
chronos,
libp2p/switch, libp2p/switch,
libp2p/builders, libp2p/builders,
libp2p/crypto/crypto as libp2p_keys, libp2p/crypto/crypto as libp2p_keys,

View 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()

View File

@ -11,7 +11,7 @@ import
../../../waku/v2/protocol/waku_message, ../../../waku/v2/protocol/waku_message,
../../../waku/v2/utils/time, ../../../waku/v2/utils/time,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore
proc getTestQueueDriver(numMessages: int): QueueDriver = proc getTestQueueDriver(numMessages: int): QueueDriver =

View File

@ -10,7 +10,7 @@ import
../../../waku/v2/protocol/waku_archive/driver/queue_driver, ../../../waku/v2/protocol/waku_archive/driver/queue_driver,
../../../waku/v2/protocol/waku_message, ../../../waku/v2/protocol/waku_message,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore
logScope: logScope:

View File

@ -10,7 +10,7 @@ import
../../../waku/v2/protocol/waku_archive/driver/sqlite_driver, ../../../waku/v2/protocol/waku_archive/driver/sqlite_driver,
../../../waku/v2/protocol/waku_message, ../../../waku/v2/protocol/waku_message,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore
proc newTestDatabase(): SqliteDatabase = proc newTestDatabase(): SqliteDatabase =

View File

@ -11,7 +11,7 @@ import
../../../waku/v2/protocol/waku_archive/driver/sqlite_driver, ../../../waku/v2/protocol/waku_archive/driver/sqlite_driver,
../../../waku/v2/protocol/waku_message, ../../../waku/v2/protocol/waku_message,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore
logScope: logScope:
topics = "test archive _driver" topics = "test archive _driver"

View File

@ -14,7 +14,7 @@ import
../../../waku/v2/protocol/waku_message, ../../../waku/v2/protocol/waku_message,
../../../waku/v2/utils/time, ../../../waku/v2/utils/time,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore
proc newTestDatabase(): SqliteDatabase = proc newTestDatabase(): SqliteDatabase =

View File

@ -12,7 +12,7 @@ import
../../../waku/v2/protocol/waku_archive, ../../../waku/v2/protocol/waku_archive,
../../../waku/v2/utils/time, ../../../waku/v2/utils/time,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore
proc newTestDatabase(): SqliteDatabase = proc newTestDatabase(): SqliteDatabase =

View File

@ -13,7 +13,7 @@ import
../../../waku/v2/protocol/waku_filter_v2/rpc, ../../../waku/v2/protocol/waku_filter_v2/rpc,
../../../waku/v2/protocol/waku_message, ../../../waku/v2/protocol/waku_message,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore
proc newTestWakuFilter(switch: Switch): Future[WakuFilter] {.async.} = proc newTestWakuFilter(switch: Switch): Future[WakuFilter] {.async.} =
let let

View File

@ -12,7 +12,7 @@ import
../../../waku/v2/protocol/waku_filter_v2/rpc, ../../../waku/v2/protocol/waku_filter_v2/rpc,
../../../waku/v2/protocol/waku_message, ../../../waku/v2/protocol/waku_message,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore
proc newTestWakuFilter(switch: Switch): WakuFilter = proc newTestWakuFilter(switch: Switch): WakuFilter =
let let

View File

@ -13,7 +13,7 @@ import
../../../waku/v2/protocol/waku_message, ../../../waku/v2/protocol/waku_message,
../../../waku/v2/protocol/waku_relay, ../../../waku/v2/protocol/waku_relay,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore
proc noopRawHandler(): PubsubRawHandler = proc noopRawHandler(): PubsubRawHandler =

View File

@ -26,7 +26,8 @@ import
../../waku/v2/protocol/waku_relay/validators, ../../waku/v2/protocol/waku_relay/validators,
../testlib/testutils, ../testlib/testutils,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore,
../testlib/wakunode
template sourceDir: string = currentSourcePath.parentDir() template sourceDir: string = currentSourcePath.parentDir()
const KEY_PATH = sourceDir / "resources/test_key.pem" const KEY_PATH = sourceDir / "resources/test_key.pem"
@ -37,7 +38,7 @@ suite "WakuNode - Relay":
asyncTest "Relay protocol is started correctly": asyncTest "Relay protocol is started correctly":
let let
nodeKey1 = generateSecp256k1Key() 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 # Relay protocol starts if mounted after node start
@ -51,7 +52,7 @@ suite "WakuNode - Relay":
let let
nodeKey2 = generateSecp256k1Key() 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() await node2.mountRelay()
@ -70,11 +71,11 @@ suite "WakuNode - Relay":
asyncTest "Messages are correctly relayed": asyncTest "Messages are correctly relayed":
let let
nodeKey1 = generateSecp256k1Key() 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() 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() 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" pubSubTopic = "test"
contentTopic = ContentTopic("/waku/2/default-content/proto") contentTopic = ContentTopic("/waku/2/default-content/proto")
payload = "hello world".toBytes() payload = "hello world".toBytes()
@ -128,13 +129,13 @@ suite "WakuNode - Relay":
let let
# publisher node # publisher node
nodeKey1 = generateSecp256k1Key() 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 # Relay node
nodeKey2 = generateSecp256k1Key() 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 # Subscriber
nodeKey3 = generateSecp256k1Key() 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" pubSubTopic = "test"
contentTopic1 = ContentTopic("/waku/2/default-content/proto") contentTopic1 = ContentTopic("/waku/2/default-content/proto")
@ -218,7 +219,7 @@ suite "WakuNode - Relay":
# TODO: Add a function to validate the WakuMessage integrity # TODO: Add a function to validate the WakuMessage integrity
xasyncTest "Stats of peer sending wrong WakuMessages are updated": xasyncTest "Stats of peer sending wrong WakuMessages are updated":
# Create 2 nodes # 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 # Start all the nodes and mount relay with
await allFutures(nodes.mapIt(it.start())) await allFutures(nodes.mapIt(it.start()))
@ -252,7 +253,7 @@ suite "WakuNode - Relay":
asyncTest "Spam protected topic accepts signed messages": asyncTest "Spam protected topic accepts signed messages":
# Create 5 nodes # 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 # Protected topic and key to sign
let spamProtectedTopic = PubSubTopic("some-spam-protected-topic") 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": asyncTest "Spam protected topic rejects non-signed and wrongly-signed messages":
# Create 5 nodes # 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 # Protected topic and key to sign
let spamProtectedTopic = PubSubTopic("some-spam-protected-topic") let spamProtectedTopic = PubSubTopic("some-spam-protected-topic")
@ -399,7 +400,7 @@ suite "WakuNode - Relay":
asyncTest "Spam protected topic rejects a spammer node": asyncTest "Spam protected topic rejects a spammer node":
# Create 5 nodes # 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 # Protected topic and key to sign
let spamProtectedTopic = PubSubTopic("some-spam-protected-topic") let spamProtectedTopic = PubSubTopic("some-spam-protected-topic")
@ -487,10 +488,10 @@ suite "WakuNode - Relay":
asyncTest "Messages are relayed between two websocket nodes": asyncTest "Messages are relayed between two websocket nodes":
let let
nodeKey1 = generateSecp256k1Key() 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) bindPort = Port(60510), wsBindPort = Port(8001), wsEnabled = true)
nodeKey2 = generateSecp256k1Key() 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) bindPort = Port(60512), wsBindPort = Port(8101), wsEnabled = true)
pubSubTopic = "test" pubSubTopic = "test"
contentTopic = ContentTopic("/waku/2/default-content/proto") 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)": asyncTest "Messages are relayed between nodes with multiple transports (TCP and Websockets)":
let let
nodeKey1 = generateSecp256k1Key() 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) bindPort = Port(60520), wsBindPort = Port(8002), wsEnabled = true)
nodeKey2 = generateSecp256k1Key() nodeKey2 = generateSecp256k1Key()
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"),
bindPort = Port(60522)) bindPort = Port(60522))
pubSubTopic = "test" pubSubTopic = "test"
contentTopic = ContentTopic("/waku/2/default-content/proto") 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)": asyncTest "Messages relaying fails with non-overlapping transports (TCP or Websockets)":
let let
nodeKey1 = generateSecp256k1Key() nodeKey1 = generateSecp256k1Key()
node1 = WakuNode.new(nodeKey1, ValidIpAddress.init("0.0.0.0"), node1 = newTestWakuNode(nodeKey1, ValidIpAddress.init("0.0.0.0"),
bindPort = Port(60530)) bindPort = Port(60530))
nodeKey2 = generateSecp256k1Key() 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) bindPort = Port(60532), wsBindPort = Port(8103), wsEnabled = true)
pubSubTopic = "test" pubSubTopic = "test"
contentTopic = ContentTopic("/waku/2/default-content/proto") 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)": asyncTest "Messages are relayed between nodes with multiple transports (TCP and secure Websockets)":
let let
nodeKey1 = generateSecp256k1Key() 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) bindPort = Port(60540), wsBindPort = Port(8004), wssEnabled = true, secureKey = KEY_PATH, secureCert = CERT_PATH)
nodeKey2 = generateSecp256k1Key() nodeKey2 = generateSecp256k1Key()
node2 = WakuNode.new(nodeKey2, ValidIpAddress.init("0.0.0.0"), node2 = newTestWakuNode(nodeKey2, ValidIpAddress.init("0.0.0.0"),
bindPort = Port(60542)) bindPort = Port(60542))
pubSubTopic = "test" pubSubTopic = "test"
contentTopic = ContentTopic("/waku/2/default-content/proto") 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)": asyncTest "Messages are relayed between nodes with multiple transports (websocket and secure Websockets)":
let let
nodeKey1 = generateSecp256k1Key() 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() 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 let
pubSubTopic = "test" pubSubTopic = "test"

View File

@ -19,7 +19,8 @@ import
../../../waku/v2/protocol/waku_rln_relay, ../../../waku/v2/protocol/waku_rln_relay,
../../../waku/v2/protocol/waku_keystore, ../../../waku/v2/protocol/waku_keystore,
../../../waku/v2/utils/peers, ../../../waku/v2/utils/peers,
../testlib/waku2 ../testlib/wakucore,
../testlib/wakunode
from std/times import epochTime from std/times import epochTime
@ -32,13 +33,13 @@ procSuite "WakuNode - RLN relay":
let let
# publisher node # publisher node
nodeKey1 = generateSecp256k1Key() 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 # Relay node
nodeKey2 = generateSecp256k1Key() 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 # Subscriber
nodeKey3 = generateSecp256k1Key() 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 rlnRelayPubSubTopic = RlnRelayPubsubTopic
contentTopic = ContentTopic("/waku/2/default-content/proto") contentTopic = ContentTopic("/waku/2/default-content/proto")
@ -120,13 +121,13 @@ procSuite "WakuNode - RLN relay":
let let
# publisher node # publisher node
nodeKey1 = generateSecp256k1Key() 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 # Relay node
nodeKey2 = generateSecp256k1Key() 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 # Subscriber
nodeKey3 = generateSecp256k1Key() 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 rlnRelayPubSubTopic = RlnRelayPubsubTopic
contentTopic = ContentTopic("/waku/2/default-content/proto") contentTopic = ContentTopic("/waku/2/default-content/proto")
@ -225,13 +226,13 @@ procSuite "WakuNode - RLN relay":
let let
# publisher node # publisher node
nodeKey1 = generateSecp256k1Key() 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 # Relay node
nodeKey2 = generateSecp256k1Key() 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 # Subscriber
nodeKey3 = generateSecp256k1Key() 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 rlnRelayPubSubTopic = RlnRelayPubsubTopic
contentTopic = ContentTopic("/waku/2/default-content/proto") contentTopic = ContentTopic("/waku/2/default-content/proto")

View File

@ -214,9 +214,9 @@ suite "WakuNode - waku store":
## Setup ## Setup
let let
serverKey = generateSecp256k1Key() 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() 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()) await allFutures(client.start(), server.start())
@ -248,9 +248,9 @@ suite "WakuNode - waku store":
## Setup ## Setup
let let
serverKey = generateSecp256k1Key() 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() 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 allFutures(server.start(), client.start())
await server.mountStore(store=StoreQueueRef.new()) await server.mountStore(store=StoreQueueRef.new())

View File

@ -10,7 +10,7 @@ import
../../../waku/v2/protocol/waku_store/rpc_codec, ../../../waku/v2/protocol/waku_store/rpc_codec,
../../../waku/v2/utils/time, ../../../waku/v2/utils/time,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore

View File

@ -12,7 +12,7 @@ import
../../../waku/v2/protocol/waku_store, ../../../waku/v2/protocol/waku_store,
../../../waku/v2/protocol/waku_store/client, ../../../waku/v2/protocol/waku_store/client,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore

View File

@ -23,7 +23,8 @@ import
../../../waku/v2/utils/peers, ../../../waku/v2/utils/peers,
../../../waku/v2/waku_node, ../../../waku/v2/waku_node,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore,
../testlib/wakunode
proc newTestArchiveDriver(): ArchiveDriver = proc newTestArchiveDriver(): ArchiveDriver =
@ -67,9 +68,9 @@ procSuite "WakuNode - Store":
## Setup ## Setup
let let
serverKey = generateSecp256k1Key() 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() 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()) await allFutures(client.start(), server.start())
@ -99,9 +100,9 @@ procSuite "WakuNode - Store":
## Setup ## Setup
let let
serverKey = generateSecp256k1Key() 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() 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()) await allFutures(client.start(), server.start())
@ -148,9 +149,9 @@ procSuite "WakuNode - Store":
## Setup ## Setup
let let
serverKey = generateSecp256k1Key() 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() 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()) await allFutures(client.start(), server.start())
@ -198,11 +199,11 @@ procSuite "WakuNode - Store":
## Setup ## Setup
let let
filterSourceKey = generateSecp256k1Key() 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() 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() 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()) await allFutures(client.start(), server.start(), filterSource.start())

View File

@ -20,7 +20,8 @@ import
../../../waku/v2/protocol/waku_store, ../../../waku/v2/protocol/waku_store,
../../../waku/v2/protocol/waku_filter, ../../../waku/v2/protocol/waku_filter,
../../../waku/v2/utils/peers, ../../../waku/v2/utils/peers,
../testlib/waku2 ../testlib/wakucore,
../testlib/wakunode
procSuite "Waku v2 JSON-RPC API - Admin": procSuite "Waku v2 JSON-RPC API - Admin":
@ -30,10 +31,10 @@ procSuite "Waku v2 JSON-RPC API - Admin":
asyncTest "connect to ad-hoc peers": asyncTest "connect to ad-hoc peers":
# Create a couple of nodes # Create a couple of nodes
let let
node1 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60600)) node1 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60600))
node2 = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60602)) node2 = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(60602))
peerInfo2 = node2.switch.peerInfo 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 peerInfo3 = node3.switch.peerInfo
await allFutures([node1.start(), node2.start(), node3.start()]) await allFutures([node1.start(), node2.start(), node3.start()])
@ -89,7 +90,7 @@ procSuite "Waku v2 JSON-RPC API - Admin":
asyncTest "get managed peer information": asyncTest "get managed peer information":
# Create 3 nodes and start them with relay # 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.start()))
await allFutures(nodes.mapIt(it.mountRelay())) await allFutures(nodes.mapIt(it.mountRelay()))
@ -136,7 +137,7 @@ procSuite "Waku v2 JSON-RPC API - Admin":
await allFutures(nodes.mapIt(it.stop())) await allFutures(nodes.mapIt(it.stop()))
asyncTest "get unmanaged peer information": 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() await node.start()

View File

@ -13,7 +13,9 @@ import
../../../waku/v2/waku_node, ../../../waku/v2/waku_node,
../../../waku/v2/node/jsonrpc/debug/handlers as debug_api, ../../../waku/v2/node/jsonrpc/debug/handlers as debug_api,
../../../waku/v2/node/jsonrpc/debug/client as debug_api_client, ../../../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": 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") bindIp = ValidIpAddress.init("0.0.0.0")
extIp = ValidIpAddress.init("127.0.0.1") extIp = ValidIpAddress.init("127.0.0.1")
port = Port(0) 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": asyncTest "get node info":
await node.start() await node.start()

View File

@ -18,7 +18,8 @@ import
../../../waku/v2/protocol/waku_filter/rpc, ../../../waku/v2/protocol/waku_filter/rpc,
../../../waku/v2/protocol/waku_filter/client, ../../../waku/v2/protocol/waku_filter/client,
../../../waku/v2/utils/peers, ../../../waku/v2/utils/peers,
../testlib/waku2 ../testlib/wakucore,
../testlib/wakunode
proc newTestMessageCache(): filter_api.MessageCache = proc newTestMessageCache(): filter_api.MessageCache =
@ -32,9 +33,9 @@ procSuite "Waku v2 JSON-RPC API - Filter":
asyncTest "subscribe and unsubscribe": asyncTest "subscribe and unsubscribe":
let let
nodeKey1 = generateSecp256k1Key() nodeKey1 = generateSecp256k1Key()
node1 = WakuNode.new(nodeKey1, bindIp, Port(0)) node1 = newTestWakuNode(nodeKey1, bindIp, Port(0))
nodeKey2 = generateSecp256k1Key() nodeKey2 = generateSecp256k1Key()
node2 = WakuNode.new(nodeKey2, bindIp, Port(0)) node2 = newTestWakuNode(nodeKey2, bindIp, Port(0))
await allFutures(node1.start(), node2.start()) await allFutures(node1.start(), node2.start())

View File

@ -19,7 +19,8 @@ import
../../../waku/v2/utils/compat, ../../../waku/v2/utils/compat,
../../../waku/v2/utils/peers, ../../../waku/v2/utils/peers,
../testlib/common, ../testlib/common,
../testlib/waku2 ../testlib/wakucore,
../testlib/wakunode
proc newTestMessageCache(): relay_api.MessageCache = proc newTestMessageCache(): relay_api.MessageCache =
@ -30,7 +31,7 @@ suite "Waku v2 JSON-RPC API - Relay":
asyncTest "subscribe and unsubscribe from topics": asyncTest "subscribe and unsubscribe from topics":
## Setup ## 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.start()
await node.mountRelay(topics = @[DefaultPubsubTopic]) await node.mountRelay(topics = @[DefaultPubsubTopic])
@ -92,8 +93,8 @@ suite "Waku v2 JSON-RPC API - Relay":
# Relay nodes setup # Relay nodes setup
let let
srcNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)) srcNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
dstNode = WakuNode.new(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()) await allFutures(srcNode.start(), dstNode.start())
@ -158,8 +159,8 @@ suite "Waku v2 JSON-RPC API - Relay":
# Relay nodes setup # Relay nodes setup
let let
srcNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0)) srcNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("0.0.0.0"), Port(0))
dstNode = WakuNode.new(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()) await allFutures(srcNode.start(), dstNode.start())
@ -220,9 +221,9 @@ suite "Waku v2 JSON-RPC API - Relay (Private)":
contentTopic = "test-relay-content-topic" contentTopic = "test-relay-content-topic"
let let
srcNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0)) srcNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
relNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0)) relNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
dstNode = WakuNode.new(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()) 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" contentTopic = "test-relay-content-topic"
let let
srcNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0)) srcNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
relNode = WakuNode.new(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0)) relNode = newTestWakuNode(generateSecp256k1Key(), ValidIpAddress.init("127.0.0.1"), Port(0))
dstNode = WakuNode.new(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()) await allFutures(srcNode.start(), relNode.start(), dstNode.start())

View File

@ -21,7 +21,8 @@ import
../../../waku/v2/utils/peers, ../../../waku/v2/utils/peers,
../../../waku/v2/utils/time, ../../../waku/v2/utils/time,
../../v2/testlib/common, ../../v2/testlib/common,
../../v2/testlib/waku2 ../../v2/testlib/wakucore,
../../v2/testlib/wakunode
proc put(store: ArchiveDriver, pubsubTopic: PubsubTopic, message: WakuMessage): Result[void, string] = 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") bindIp = ValidIpAddress.init("0.0.0.0")
extIp = ValidIpAddress.init("127.0.0.1") extIp = ValidIpAddress.init("127.0.0.1")
port = Port(0) 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": asyncTest "query a node and retrieve historical messages":
await node.start() await node.start()

View File

@ -10,22 +10,25 @@ import
libp2p/crypto/crypto libp2p/crypto/crypto
import import
../../waku/v2/waku_node, ../../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/server,
../../waku/v2/node/rest/client, ../../waku/v2/node/rest/client,
../../waku/v2/node/rest/responses, ../../waku/v2/node/rest/responses,
../../waku/v2/node/rest/debug/handlers as debug_api, ../../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 = proc testWakuNode(): WakuNode =
let let
rng = crypto.newRng()
privkey = crypto.PrivateKey.random(Secp256k1, rng[]).tryGet() privkey = crypto.PrivateKey.random(Secp256k1, rng[]).tryGet()
bindIp = ValidIpAddress.init("0.0.0.0") bindIp = ValidIpAddress.init("0.0.0.0")
extIp = ValidIpAddress.init("127.0.0.1") extIp = ValidIpAddress.init("127.0.0.1")
port = Port(58000) 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": suite "Waku v2 REST API - Debug":
@ -77,7 +80,7 @@ suite "Waku v2 REST API - Debug":
check: check:
response.status == 200 response.status == 200
$response.contentType == $MIMETYPE_TEXT $response.contentType == $MIMETYPE_TEXT
response.data == waku_node.git_version response.data == waku_node2.git_version
await restServer.stop() await restServer.stop()
await restServer.closeWait() await restServer.closeWait()

View File

@ -20,7 +20,8 @@ import
../../waku/v2/protocol/waku_message, ../../waku/v2/protocol/waku_message,
../../waku/v2/protocol/waku_relay, ../../waku/v2/protocol/waku_relay,
../../waku/v2/utils/time, ../../waku/v2/utils/time,
../testlib/waku2 ../testlib/wakucore,
../testlib/wakunode
proc testWakuNode(): WakuNode = proc testWakuNode(): WakuNode =
@ -30,7 +31,7 @@ proc testWakuNode(): WakuNode =
extIp = ValidIpAddress.init("127.0.0.1") extIp = ValidIpAddress.init("127.0.0.1")
port = Port(0) 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": suite "Waku v2 Rest API - Relay":

View File

@ -2,7 +2,7 @@
import import
std/[sequtils, strutils, tables], std/[sequtils, strutils, tables],
stew/byteutils, stew/[results, byteutils],
stew/shims/net as stewNet, stew/shims/net as stewNet,
testutils/unittests, testutils/unittests,
chronos, chronos,
@ -55,7 +55,11 @@ procSuite "WakuBridge":
# Waku v2 node # Waku v2 node
v2NodeKey = crypto.PrivateKey.random(Secp256k1, cryptoRng[])[] 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") contentTopic = ContentTopic("/waku/1/0x1a2b3c4d/rfc26")
topic = [byte 0x1a, byte 0x2b, byte 0x3c, byte 0x4d] topic = [byte 0x1a, byte 0x2b, byte 0x3c, byte 0x4d]
@ -64,6 +68,7 @@ procSuite "WakuBridge":
encodedPayloadV2 = Payload(payload: payloadV2, dst: some(nodev1Key.pubKey)) encodedPayloadV2 = Payload(payload: payloadV2, dst: some(nodev1Key.pubKey))
message = WakuMessage(payload: encodedPayloadV2.encode(1, rng[]).get(), contentTopic: contentTopic, version: 1) message = WakuMessage(payload: encodedPayloadV2.encode(1, rng[]).get(), contentTopic: contentTopic, version: 1)
######################## ########################
# Tests setup/teardown # # Tests setup/teardown #
######################## ########################
@ -87,7 +92,7 @@ procSuite "WakuBridge":
await v2Node.mountRelay(@[DefaultBridgeTopic], triggerSelf = false) await v2Node.mountRelay(@[DefaultBridgeTopic], triggerSelf = false)
discard waitFor v1Node.rlpxConnect(newNode(bridge.nodev1.toENode())) 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]() var completionFut = newFuture[bool]()

View File

@ -150,62 +150,6 @@ proc getAutonatService*(rng: ref HmacDrbgContext): AutonatService =
return 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, proc new*(T: type WakuNode,
nodeKey: crypto.PrivateKey, nodeKey: crypto.PrivateKey,
netConfig: NetConfig, netConfig: NetConfig,
@ -223,7 +167,7 @@ proc new*(T: type WakuNode,
): T {.raises: [Defect, LPError, IOError, TLSStreamProtocolError].} = ): T {.raises: [Defect, LPError, IOError, TLSStreamProtocolError].} =
## Creates a Waku Node instance. ## Creates a Waku Node instance.
info "Initializing networking", addrs=netConfig.announcedAddresses info "Initializing networking", addrs= $netConfig.announcedAddresses
let switch = newWakuSwitch( let switch = newWakuSwitch(
some(nodekey), some(nodekey),
@ -279,7 +223,7 @@ proc info*(node: WakuNode): WakuInfo =
proc connectToNodes*(node: WakuNode, nodes: seq[RemotePeerInfo] | seq[string], source = "api") {.async.} = proc connectToNodes*(node: WakuNode, nodes: seq[RemotePeerInfo] | seq[string], source = "api") {.async.} =
## `source` indicates source of node addrs (static config, api call, discovery, etc) ## `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 # 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 ## Waku relay