logos-messaging-nim/waku.nimble
Oskar Thorén 1b12c67f0c Add basic rpc scripts to publish and subscribe (#140)
* Add basic rpc scripts to publish and subscribe

* Fix publish topic and payload script

Also change parameter name in waku relay due to weird shadowing of log
topic:

DBG 2020-09-09 12:07:54+08:00 waku_publish                               tid=8795 file=wakurpc.nim:30 topic=waku payload=@[]
DBG 2020-09-09 12:07:54+08:00 publish                                    tid=8795 file=waku_relay.nim:65 topic=WakuRelay

Above should show topic=waku but it gets topic=WakuRelay from log scope
for some reason.

* Scripts take arguments

* Add basic nangang tutorial

* Update docs/tutorial/nangang.md

Co-authored-by: Kim De Mey <kim.demey@gmail.com>

* Update docs/tutorial/nangang.md

Co-authored-by: Kim De Mey <kim.demey@gmail.com>

* meh

* ENsure subscribe call succeeds

Co-authored-by: Kim De Mey <kim.demey@gmail.com>
2020-09-10 12:18:35 +08:00

74 lines
2.4 KiB
Nim

mode = ScriptMode.Verbose
### Package
version = "0.1.0"
author = "Status Research & Development GmbH"
description = "Waku, Private P2P Messaging for Resource-Restricted Devices"
license = "MIT or Apache License 2.0"
srcDir = "src"
#bin = @["build/waku"]
### Dependencies
requires "nim >= 1.2.0",
"chronicles",
"confutils",
"chronos",
"eth",
"json_rpc",
"libbacktrace",
"nimcrypto",
"stew",
"stint",
"metrics",
"libp2p" # For wakunode v2
### Helper functions
proc buildBinary(name: string, srcDir = "./", params = "", lang = "c") =
if not dirExists "build":
mkDir "build"
# allow something like "nim nimbus --verbosity:0 --hints:off nimbus.nims"
var extra_params = params
for i in 2..<paramCount():
extra_params &= " " & paramStr(i)
exec "nim " & lang & " --out:build/" & name & " " & extra_params & " " & srcDir & name & ".nim"
proc test(name: string, lang = "c") =
buildBinary name, "tests/", "-d:chronicles_log_level=ERROR"
exec "build/" & name
### Tasks
task test, "Run waku v1 tests":
test "all_tests"
task test2, "Run waku v2 tests":
test "all_tests_v2"
task wakunode, "Build Waku v1 cli node":
buildBinary "wakunode", "waku/node/v1/", "-d:chronicles_log_level=TRACE"
task wakusim, "Build Waku v1 simulation tools":
buildBinary "quicksim", "waku/node/v1/", "-d:chronicles_log_level=INFO"
buildBinary "start_network", "waku/node/v1/", "-d:chronicles_log_level=DEBUG"
task wakuexample, "Build Waku v1 example":
buildBinary "example", "examples/v1/", "-d:chronicles_log_level=DEBUG"
# TODO Also build Waku store and filter protocols here
task protocol2, "Build the experimental Waku protocol":
buildBinary "waku_relay", "waku/protocol/v2/", "-d:chronicles_log_level=TRACE"
task wakunode2, "Build Experimental Waku cli":
buildBinary "wakunode2", "waku/node/v2/", "-d:chronicles_log_level=TRACE"
task wakusim2, "Build Experimental Waku simulation tools":
buildBinary "quicksim2", "waku/node/v2/", "-d:chronicles_log_level=DEBUG"
buildBinary "start_network2", "waku/node/v2/", "-d:chronicles_log_level=TRACE"
task scripts2, "Build Waku v2 scripts":
buildBinary "rpc_publish", "waku/node/v2/rpc/", "-d:chronicles_log_level=DEBUG"
buildBinary "rpc_subscribe", "waku/node/v2/rpc/", "-d:chronicles_log_level=DEBUG"
task wakuexample2, "Build example Waku usage":
let name = "basic2"
buildBinary name, "examples/v2/", "-d:chronicles_log_level=DEBUG"