From 209579b0a763bec6640fc85c84ec8ecec6493ede Mon Sep 17 00:00:00 2001 From: Lorenzo Delgado Date: Thu, 27 Apr 2023 16:25:31 +0200 Subject: [PATCH] chore: move networkmonitor and wakucanary to apps directory --- Makefile | 12 +- {tools => apps}/networkmonitor/README.md | 0 .../networkmonitor/networkmonitor.nim | 0 .../networkmonitor/networkmonitor_config.nim | 0 .../networkmonitor/networkmonitor_metrics.nim | 0 .../networkmonitor/networkmonitor_utils.nim | 0 {tools => apps}/networkmonitor/nim.cfg | 0 {tools => apps}/wakucanary/README.md | 0 {tools => apps}/wakucanary/nim.cfg | 0 {tools => apps}/wakucanary/wakucanary.nim | 0 tools/README.md | 8 - tools/scripts/rpc_info.nim | 26 -- tools/scripts/rpc_publish.nim | 40 --- tools/scripts/rpc_query.nim | 43 --- tools/scripts/rpc_subscribe.nim | 36 --- tools/scripts/rpc_subscribe_filter.nim | 39 --- tools/simulation/quicksim2.nim | 147 --------- tools/simulation/start_network2.nim | 278 ------------------ waku.nimble | 73 ++--- 19 files changed, 32 insertions(+), 670 deletions(-) rename {tools => apps}/networkmonitor/README.md (100%) rename {tools => apps}/networkmonitor/networkmonitor.nim (100%) rename {tools => apps}/networkmonitor/networkmonitor_config.nim (100%) rename {tools => apps}/networkmonitor/networkmonitor_metrics.nim (100%) rename {tools => apps}/networkmonitor/networkmonitor_utils.nim (100%) rename {tools => apps}/networkmonitor/nim.cfg (100%) rename {tools => apps}/wakucanary/README.md (100%) rename {tools => apps}/wakucanary/nim.cfg (100%) rename {tools => apps}/wakucanary/wakucanary.nim (100%) delete mode 100644 tools/README.md delete mode 100644 tools/scripts/rpc_info.nim delete mode 100644 tools/scripts/rpc_publish.nim delete mode 100644 tools/scripts/rpc_query.nim delete mode 100644 tools/scripts/rpc_subscribe.nim delete mode 100644 tools/scripts/rpc_subscribe_filter.nim delete mode 100644 tools/simulation/quicksim2.nim delete mode 100644 tools/simulation/start_network2.nim diff --git a/Makefile b/Makefile index ef82e1ed85..122be8e737 100644 --- a/Makefile +++ b/Makefile @@ -166,7 +166,7 @@ testcommon: | build deps ############# ## Waku v2 ## ############# -.PHONY: testwaku2 wakunode2 testwakunode2 example2 sim2 scripts2 wakubridge testbridge chat2 chat2bridge +.PHONY: testwaku2 wakunode2 testwakunode2 example2 wakubridge testbridge chat2 chat2bridge testwaku2: | build deps librln echo -e $(BUILD_MSG) "build/$@" && \ @@ -184,16 +184,6 @@ example2: | build deps echo -e $(BUILD_MSG) "build/$@" && \ $(ENV_SCRIPT) nim example2 $(NIM_PARAMS) waku.nims -# TODO: Remove unused target -sim2: | build deps wakunode2 - echo -e $(BUILD_MSG) "build/$@" && \ - $(ENV_SCRIPT) nim sim2 $(NIM_PARAMS) waku.nims - -# TODO: Remove unused target -scripts2: | build deps wakunode2 - echo -e $(BUILD_MSG) "build/$@" && \ - $(ENV_SCRIPT) nim scripts2 $(NIM_PARAMS) waku.nims - wakubridge: | build deps echo -e $(BUILD_MSG) "build/$@" && \ $(ENV_SCRIPT) nim bridge $(NIM_PARAMS) waku.nims diff --git a/tools/networkmonitor/README.md b/apps/networkmonitor/README.md similarity index 100% rename from tools/networkmonitor/README.md rename to apps/networkmonitor/README.md diff --git a/tools/networkmonitor/networkmonitor.nim b/apps/networkmonitor/networkmonitor.nim similarity index 100% rename from tools/networkmonitor/networkmonitor.nim rename to apps/networkmonitor/networkmonitor.nim diff --git a/tools/networkmonitor/networkmonitor_config.nim b/apps/networkmonitor/networkmonitor_config.nim similarity index 100% rename from tools/networkmonitor/networkmonitor_config.nim rename to apps/networkmonitor/networkmonitor_config.nim diff --git a/tools/networkmonitor/networkmonitor_metrics.nim b/apps/networkmonitor/networkmonitor_metrics.nim similarity index 100% rename from tools/networkmonitor/networkmonitor_metrics.nim rename to apps/networkmonitor/networkmonitor_metrics.nim diff --git a/tools/networkmonitor/networkmonitor_utils.nim b/apps/networkmonitor/networkmonitor_utils.nim similarity index 100% rename from tools/networkmonitor/networkmonitor_utils.nim rename to apps/networkmonitor/networkmonitor_utils.nim diff --git a/tools/networkmonitor/nim.cfg b/apps/networkmonitor/nim.cfg similarity index 100% rename from tools/networkmonitor/nim.cfg rename to apps/networkmonitor/nim.cfg diff --git a/tools/wakucanary/README.md b/apps/wakucanary/README.md similarity index 100% rename from tools/wakucanary/README.md rename to apps/wakucanary/README.md diff --git a/tools/wakucanary/nim.cfg b/apps/wakucanary/nim.cfg similarity index 100% rename from tools/wakucanary/nim.cfg rename to apps/wakucanary/nim.cfg diff --git a/tools/wakucanary/wakucanary.nim b/apps/wakucanary/wakucanary.nim similarity index 100% rename from tools/wakucanary/wakucanary.nim rename to apps/wakucanary/wakucanary.nim diff --git a/tools/README.md b/tools/README.md deleted file mode 100644 index 0412af5e52..0000000000 --- a/tools/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Description - -Collection of scripts and utilities for checking, monitoring, and simulating waku networks. - -# Tools - -* [networkmonitor](./networkmonitor) - Metrics generation tool for Waku networks. -* [wakucanary](./wakucanary) - Tool for checking availability of waku peers. diff --git a/tools/scripts/rpc_info.nim b/tools/scripts/rpc_info.nim deleted file mode 100644 index 386a9c4df1..0000000000 --- a/tools/scripts/rpc_info.nim +++ /dev/null @@ -1,26 +0,0 @@ -import - os, strutils, chronicles, json_rpc/[rpcclient, rpcserver], nimcrypto/sysrand, - libp2p/protobuf/minprotobuf, - libp2p/[peerinfo, multiaddress], - eth/common as eth_common, eth/keys, - system, - options -import - ../../waku/v2/waku_node, - ../../waku/v2/node/waku_payload, - ../../waku/v2/node/jsonrpc/jsonrpc_types, - ../../waku/v2/waku_filter, - ../../waku/v2/waku_store, - ../../waku/v1/node/rpc/hexstrings - -from strutils import rsplit -template sourceDir: string = currentSourcePath.rsplit(DirSep, 1)[0] - -const sigWakuPath = sourceDir / "../jsonrpc/jsonrpc_callsigs.nim" -createRpcSigs(RpcHttpClient, sigWakuPath) - -var node = newRpcHttpClient() -waitfor node.connect("localhost", Port(8545)) - -var res = waitfor node.get_waku_v2_debug_v1_info() -echo "Waku info res: ", res diff --git a/tools/scripts/rpc_publish.nim b/tools/scripts/rpc_publish.nim deleted file mode 100644 index 46ac13c28e..0000000000 --- a/tools/scripts/rpc_publish.nim +++ /dev/null @@ -1,40 +0,0 @@ -import - os, strutils, strformat, chronicles, json_rpc/[rpcclient, rpcserver], nimcrypto/sysrand, - stew/byteutils, - libp2p/protobuf/minprotobuf, - eth/common as eth_common, eth/keys, - system, - options -import - ../../waku/v2/waku_node, - ../../waku/v2/node/waku_payload, - ../../waku/v2/node/jsonrpc/jsonrpc_types, - ../../waku/v2/waku_filter, - ../../waku/v2/waku_store, - ../../waku/v1/node/rpc/hexstrings - -from strutils import rsplit -template sourceDir: string = currentSourcePath.rsplit(DirSep, 1)[0] - -const sigWakuPath = sourceDir / "../jsonrpc/jsonrpc_callsigs.nim" -createRpcSigs(RpcHttpClient, sigWakuPath) - -if paramCount() < 1: - echo "Please provide rpcPort as argument." - quit(1) - -let rpcPort = Port(parseInt(paramStr(1))) - -echo "Please enter your message:" -let raw_input = readLine(stdin) -let input = fmt"{raw_input}" -echo "Input is:", input - -var node = newRpcHttpClient() -waitfor node.connect("localhost", rpcPort) - -let pubSubTopic = "/waku/2/default-waku/proto" -let contentTopic = ContentTopic("/waku/2/default-content/proto") -let relayMessage = WakuRelayMessage(payload: input.toBytes(), contentTopic: some(contentTopic)) -var res = waitfor node.post_waku_v2_relay_v1_message(pubSubTopic, relayMessage) -echo "Waku publish response: ", res diff --git a/tools/scripts/rpc_query.nim b/tools/scripts/rpc_query.nim deleted file mode 100644 index 3647788266..0000000000 --- a/tools/scripts/rpc_query.nim +++ /dev/null @@ -1,43 +0,0 @@ -import - os, strutils, strformat, chronicles, json_rpc/[rpcclient, rpcserver], nimcrypto/sysrand, - libp2p/protobuf/minprotobuf, - libp2p/[peerinfo, multiaddress], - eth/common as eth_common, eth/keys, - system, - options -import - ../../waku/v2/waku_node, - ../../waku/v2/node/waku_payload, - ../../waku/v2/node/jsonrpc/jsonrpc_types, - ../../waku/v2/waku_filter, - ../../waku/v2/waku_store/rpc, - ../../waku/v1/node/rpc/hexstrings - - -from strutils import rsplit -template sourceDir: string = currentSourcePath.rsplit(DirSep, 1)[0] - -const sigWakuPath = sourceDir / "../jsonrpc/jsonrpc_callsigs.nim" -createRpcSigs(RpcHttpClient, sigWakuPath) - -if paramCount() < 1: - echo "Please provide rpcPort as argument." - quit(1) - -let rpcPort = Port(parseInt(paramStr(1))) - -echo "Please enter your pubsub topic:" -let raw_pubsub = readLine(stdin) -let pubsubTopic = fmt"{raw_pubsub}" -echo "PubSubTopic is:", pubsubTopic - -echo "Please enter your content topic:" -let raw_input = readLine(stdin) -let input = fmt"{raw_input}" -echo "Content topic is:", input - -var node = newRpcHttpClient() -waitfor node.connect("localhost", rpcPort) - -var res = waitfor node.get_waku_v2_store_v1_messages(some(pubsubTopic), some(@[HistoryContentFilterRPC(contentTopic: ContentTopic(input))]), none(StorePagingOptions)) -echo "Waku query response: ", res diff --git a/tools/scripts/rpc_subscribe.nim b/tools/scripts/rpc_subscribe.nim deleted file mode 100644 index f4795782c8..0000000000 --- a/tools/scripts/rpc_subscribe.nim +++ /dev/null @@ -1,36 +0,0 @@ -import - os, strutils, chronicles, json_rpc/[rpcclient, rpcserver], nimcrypto/sysrand, - libp2p/protobuf/minprotobuf, - eth/common as eth_common, eth/keys, - system, - options -import - ../../waku/v2/waku_node, - ../../waku/v2/node/waku_payload, - ../../waku/v2/node/jsonrpc/jsonrpc_types, - ../../waku/v2/waku_filter, - ../../waku/v2/waku_store, - ../../waku/v1/node/rpc/hexstrings - - - -from strutils import rsplit -template sourceDir: string = currentSourcePath.rsplit(DirSep, 1)[0] - -const sigWakuPath = sourceDir / "../jsonrpc/jsonrpc_callsigs.nim" -createRpcSigs(RpcHttpClient, sigWakuPath) - -if paramCount() < 1: - echo "Please provide rpcPort as argument." - quit(1) - -let rpcPort = Port(parseInt(paramStr(1))) - -var client = newRpcHttpClient() -waitfor client.connect("localhost", rpcPort) - -echo "Subscribing" - -# Subscribe to waku topic -var res = waitFor client.post_waku_v2_relay_v1_subscriptions(@["/waku/2/default-waku/proto"]) -echo res diff --git a/tools/scripts/rpc_subscribe_filter.nim b/tools/scripts/rpc_subscribe_filter.nim deleted file mode 100644 index 5996c81b39..0000000000 --- a/tools/scripts/rpc_subscribe_filter.nim +++ /dev/null @@ -1,39 +0,0 @@ -import - os, strutils, strformat, chronicles, json_rpc/[rpcclient, rpcserver], nimcrypto/sysrand, - libp2p/protobuf/minprotobuf, - libp2p/[peerinfo, multiaddress], - eth/common as eth_common, eth/keys, - system, - options -import - ../../waku/v2/waku_node, - ../../waku/v2/node/waku_payload, - ../../waku/v2/node/jsonrpc/jsonrpc_types, - ../../waku/v2/waku_filter, - ../../waku/v2/waku_store, - ../../waku/v1/node/rpc/hexstrings - -from strutils import rsplit -template sourceDir: string = currentSourcePath.rsplit(DirSep, 1)[0] - -const sigWakuPath = sourceDir / "../jsonrpc/jsonrpc_callsigs.nim" -createRpcSigs(RpcHttpClient, sigWakuPath) - -if paramCount() < 1: - echo "Please provide rpcPort as argument." - quit(1) - -let rpcPort = Port(parseInt(paramStr(1))) - -echo "Please enter your topic:" -let raw_input = readLine(stdin) -let input = fmt"{raw_input}" -echo "Input is:", input - -var node = newRpcHttpClient() -waitfor node.connect("localhost", rpcPort) - -let pubSubTopic = "/waku/2/default-waku/proto" -let contentTopic = ContentTopic("/waku/2/default-content/proto") -var res = waitfor node.post_waku_v2_filter_v1_subscription(@[ContentFilter(topics: @[contentTopic])], some(pubSubTopic)) -echo "Waku query response: ", res diff --git a/tools/simulation/quicksim2.nim b/tools/simulation/quicksim2.nim deleted file mode 100644 index 26fd2f24dd..0000000000 --- a/tools/simulation/quicksim2.nim +++ /dev/null @@ -1,147 +0,0 @@ -import - std/[os, strutils, times, options], #options as what # TODO: Huh? Redefinition? - chronicles, - eth/common as eth_common, - eth/keys, - json_rpc/[rpcclient, rpcserver], - libp2p/protobuf/minprotobuf -import - ../../waku/v2/waku_filter/rpc, - ../../waku/v2/waku_store/rpc, - ../../waku/v2/waku_core, - ../../waku/v2/waku_node, - ../../waku/v2/node/waku_payload, - ../../waku/v2/node/jsonrpc/[jsonrpc_types,jsonrpc_utils] - - -from strutils import rsplit -template sourceDir: string = currentSourcePath.rsplit(DirSep, 1)[0] - -const sigWakuPath = sourceDir / ".." / ".." / "waku" / "v2" / "node" / "jsonrpc" / "jsonrpc_callsigs.nim" -createRpcSigs(RpcHttpClient, sigWakuPath) - -const topicAmount = 10 #100 - -proc message(i: int): ProtoBuffer = - let value = "hello " & $(i) - - var result = initProtoBuffer() - result.write(1, value) - result.finish() - -proc handler(topic: string, data: seq[byte]) {.async, gcsafe.} = - debug "Hit handler", topic=topic, data=data - -# Scenario xx1 - 16 full nodes -######################################### -let amount = 16 -var nodes: seq[RPCHttpClient] -for i in 0.. 0: - for staticNode in staticNodes: - result.cmd &= "--staticnode:" & staticNode & " " - - # Scenarios using discv5 - result.cmd &= "--nat:extip:" & discv5ExtIpAddr & " " - if discv5BootStrapEnrs.len > 0: - for enr in discv5BootStrapEnrs: - result.cmd &= "--discv5-bootstrap-node:" & enr & " " - - result.shift = shift - result.label = label - result.master = master - result.address = listenStr - - # Scenarios using discv5 - # We have to manually build the ENR which the node ran with the currently build node command will generate, - # because we need to know it before the node starts in order to be able to provide it as bootstrap information. - # Note: the ENR built here is not exactly the same as we don't integrate the waku2 key in this test scenario. - let enr = enr.Record.init(1, - keys.PrivateKey.fromHex(hkey).expect("could not convert priv key from hex"), - some(stewNet.ValidIpAddress.init(discv5ExtIpAddr)), - some(Port(discv5Port)), # tcp-port - some(Port(discv5Port))) # udp-port - .expect("Record within size limits") - result.enrUri = "enr:" & enr.toBase64 - - info "Node command created.", cmd=result.cmd, address = result.address - - -# # Scenarios without discv5 -# proc starNetwork(amount: int): seq[NodeInfo] = -# let masterNode = initNodeCmd(portOffset, master = true, label = "master node") -# result.add(masterNode) -# for i in 1..