mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-08 00:43: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
|
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":
|
||||||
|
|||||||
@ -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)]
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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")
|
||||||
|
|||||||
@ -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":
|
||||||
|
|||||||
@ -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":
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
@ -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":
|
||||||
|
|||||||
@ -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.} =
|
||||||
|
|||||||
@ -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]()
|
||||||
|
|
||||||
|
|||||||
@ -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.} =
|
||||||
|
|||||||
@ -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":
|
||||||
|
|
||||||
|
|||||||
@ -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()])
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
@ -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()])
|
||||||
|
|||||||
@ -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())
|
||||||
|
|
||||||
|
|||||||
@ -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())
|
||||||
|
|
||||||
|
|||||||
@ -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,
|
||||||
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/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 =
|
||||||
|
|||||||
@ -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:
|
||||||
|
|||||||
@ -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 =
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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 =
|
||||||
|
|||||||
@ -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 =
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 =
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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")
|
||||||
|
|||||||
@ -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())
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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())
|
||||||
|
|
||||||
|
|||||||
@ -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()
|
||||||
|
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
@ -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())
|
||||||
|
|
||||||
|
|||||||
@ -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())
|
||||||
|
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
@ -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":
|
||||||
|
|||||||
@ -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]()
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user