* feat(cbindings): first commit - waku relay (#1632)
* test_app.nim: fix compilation issue. App.init(..) -> App.new(..)
* Simplifying library name (libwaku) and standardizing function names (waku_*)
* Proper wrapper of the waku_node API and creation of the libwaku.a
* Rolling back changes that are not needed
* Rolling back changes that are out of the scope of this task
* wakunode.nim: Removing unnecessary import
* Aplying PR suggestions
* Renaming 'waku.h' -> 'libwaku.h'
* Use of 'isNil' instead of '== nil'
* libwaku.nim: explicitly setting waku_poll() as gcsafe
* Adding Dockerfile_with_heaptrack
* build: merge heaptrack dockerfile with production dockerfile (#1682)
* Avoid blindly copy /usr/lib/ and install only the needed libraries
* Adding heaptracker options in the Makefile
* Dockerfile simplification. (apk add libunwind)
* Dockerfile, Makefile: ++heaptrack params to nim build & 'heaptrack_support' in Nim compiler
* Dockerfile, Makefile: more convenient name for 'NIM_COMMIT' Docker arg
* Making 'NIM_COMMIT' more explicit
---------
Co-authored-by: Lorenzo Delgado <lorenzo@status.im>
Instead of ugly:
```
statusteam/nim-waku:wakunode2v0.16.0-1-gb495dd
```
Create better looking:
```
statusteam/nim-waku:wakunode2-v0.16.0-1-gb495dd
```
Annoys me every time I use it.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
* feat(ci): run experimental features in diff ci
* chore(ci): add EXPERIMENTAL flag
* chore(makefile): make compilation cleaner
* fix(rln-relay): remove onchain_rln flag
* fix(makefile): remove experimental_rln flag
Co-authored-by: Lorenzo Delgado <lorenzo@status.im>
* chore: build rln dependecies only when building v2
* chore(rln): deprecate ganache-cli; move installation from makefile to test + uninstall; gracefully terminate ganache
* chore: add package.json to gitignore
* fix(rln): move ganache package to build folder and remove package once uninstalled
* refactor(rln): (un)install/run/stop ganache with separate procs
Co-authored-by: Lorenzo Delgado <lorenzo@status.im>
Co-authored-by: Aaryamann Challani <43716372+rymnc@users.noreply.github.com>
* chore(ci): add zerokit test
* fix(ci): typo
* fix(Makefile): RLN points to zerokit, RLNKILIC points to kilic impl
* fix(ci): remove zerokit test workflow now that zerokit is default
* fix(Makefile): zerokit in ci
* fix(Makefile): do not compile kilic by default
* test(nix): add llvm to nix shell
* test(nix): clang
* fix(nix): mkShell
* fix(nix): mkShell
* fix(nix): err
* fix(nix): add binutils to macos nix shell
* fix(nix): test with musl-tools
* fix(nix): remove musl-tools
* fix(nix): add Security module
* fix(nix): gcc for linux, clang for macos
* test(Makefile): set CC to env
* Revert "test(Makefile): set CC to env"
This reverts commit fdab95f2cd0bdef916744d793ebf7005dd1d4396.
* test(nimbus-build-system): bad gcc
* fix(nix): remove optional for linux
* Revert "test(nimbus-build-system): bad gcc"
This reverts commit c6b81f8132.
* fix(nix): semicolon
Co-authored-by: G <28568419+s1fr0@users.noreply.github.com>
This is necessary for Nix builds because the sandbox there
does not contain `.git` directory or `git` command.
Also the quotes are pointless.
Signed-off-by: Jakub Sokołowski <jakub@status.im>
NIM_PARAMS is and internal variable.
NIMFLAGS should be used outside of nimbus build system.
includes:
* fix(docker): copy RLN parameters.key into the container
* chore(makefile): NIMFLAGS in docker img rule
* chore(rln): add cleanrln to make rule
- add `cargo clean` to `make clean`
- add new `cleanrln` make rule that `cargo clean`s the rln vendor repo
* docs(rln): add trouble shooting section
- list `make cleanrln` as a solution to force rebuilding the rln crate
* update vendor/nim-eth submodule
point to the selectable `protocol-id` feature branch
* use d5waku as protocol-id
Use compiletime flag to change the discv5 protocol-id to "d5waku" allowing
nim-waku to span a separate discv5 network
* waku discv5 first beta stage
- start discv5 during node start
- added config options for discv5
* fix: pass to tcp port also when specifying ext ip
* bump nim-eth
Co-authored-by: ksr <kaiserd@users.noreply.github.com>
* compiles RLN if CI is defined
* minor ineffective change
* minor
* removes excess space
* resolves namespace conflicts
* moves pubsub import under compiler flag
* disables rln on-chain tests
* brings back the on-chain tests and fixes a name mismatch
* adds a debug log message
* minor formating
* kills ganache-cli procces on windows
* wip: adds a line to kill ganache-cli on windows
* disables rln-relay tests that depend on ganache-cli
* disables ganache-cli installation
* introduces onchain rln flag
* fixes a flaky test
* enables onchain test in non-windows CIs
* moves variables around
it seems detected_os is undefined, hence the compiler flag onchain_rln, which is conditioned to the os, does not get added
* limits onchain rln to macOS
* makes rlnlib target optional
* makes the rln-related targets conditioned to the RLN command line flag
* adds the rln compiler flag condition
* adds the rln compiler flag condition to the rln module
* wakunode2 rln conditional compilation
* updates wakunode2 test
* updates waku rln relay tests
* removing the rln test from the default imports of the v2 tests
* imports rln module conditionally
* removes the rln flag condition from the rln module
* separates rln data types from its procs
* adds the import statement
* brings back the contract def to the rln utils
* adds rln module import to the rln unit tests
* clean up and reorganization
* adds a todo
* minor edits on a comment
* cleans up imported modules
* adds uploadContract proc and consolidates rln-relay test files
* deletes test_rln_relay_wrappers
* deletes wrappers tests
* adds waku_rln_relay_utils
* adds the unit test for the membership key generation
* adds the key generation procedure
* adds unit test of key gen proc
* adds RLNRelayPeer data type
* adds the register proc
* adds the register proc unit test
* minor
* edits registration test
* adds comments to the registration unit test and relocates some constants
* defines constants variables for membership contract inputs and adds todos
* fixes a typo
* enables signed transaction
* adds registration into waku rln relay
* adds a TODO
* adds debug notes
* WIP add registration test
* integrates rln relay inputs into the mountRelay proc
* minor
* adds mountRelay
* renames RlnRelayPeer to WakuRlnRelay
* adds debugging notes
* changes the test title
* adds rln to gitignore
* cleans up tests, fixes a bug
* exposes mountRlnrelay, adds some comments
* fixes a bug
* deletes async pragma from mountRelay
* exposes the wakuRlnRelay field
* adds bash command to delete any existing rln directory before cloning the rln repo
* removes -v verbose flag from rln removal
* replaces await with WaitFor
* embed mountRlnRelay inside mountRelay
* adds rlnlib dependency
* clones the full-node branch of rln repository
* moves rlnlib dependency to the deps target
* changes rlnlib path
* adds test_rln_relay_wrappers to the v2 tests
* loads rlnlib with different extensions based on the OS
* deletes unnecessary imports
* changes rlnlib extension to .exe for windows
* minor
* list files in rln/target/debug
* edits rln lib name for windows
* removes unnecessary commands
* edits some comments
* fetches specific commit of rln library
* adds the script to detect os
* comments out the os detection code
* detects os
* adds ganache installation and termination
* updates the contract test
* adds rln-relay test to the waku v2 tests
* updates test_web3 comment
* Add start of wakubridge with only waku v1 node for now
* Add waku v2 node to wakubridge
* Add bridge target to makefile
* Keep waku v1 PoW configurable
* Fix for latest WakuNode API
* Fix Makefile target all
* Rename to config_bridge and at brief docs on bridge
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
RPC node info
fix Makefile error
fix rpc query error
add rpc_node_info to scripts target
hm
node info -> info
consistent query node ref
Add info to node api
update node api docs
update node api doc for consistency and accuracy
minor
* End to end chat example for Dingpu
Partially based on directchat example and previous example code.
Also adds existing cluster node to Nangang README.
* Update waku.nimble
* Update Makefile
Co-authored-by: Dean Eigenmann <7621705+decanus@users.noreply.github.com>
* Update Makefile
Co-authored-by: Dean Eigenmann <7621705+decanus@users.noreply.github.com>
* 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>
* Make basic Waku v2 examples run again
Regression introduced in https://github.com/status-im/nim-waku/pull/117
Happened due to example not being run on CI.
- Add wakuexample to all target
- Fix example2 to run
- Basic formatting
* Update examples/v2/basic2.nim
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
* Update examples/v2/basic2.nim
* Update examples/v2/basic2.nim
* Update examples/v2/basic2.nim
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
* Make Waku node async and gcsafe, hacky
...but the nimbus people are doing it!
* Add skeleton example usage
* Rename example to basic2 and add to Makefile
* Sketch out basic example and qualify imports etc
Loading config to start with.
Quite messy with imports/ambiguous identifiers/qualified names. Probably a
better way with exports (hide implementation details) and fully qualified names
by default?
* Example usage run, public run function
* Sketch out API usage
* Example basic RPC client usage
* waitFor run to compile
* Remove run and gsync markers; adjust example
Also I remove old Dockerfile at waku/node/v1/docker.
Images are uploaded to our Docker Hub account:
https://hub.docker.com/r/statusteam/nim-waku
Signed-off-by: Jakub Sokołowski <jakub@status.im>
- Move Waku RPC code from Nimbus + necessary code around it
- Add Waku RPC test which is a copy of the Whisper RPC test
- Some renaming
- Remove nimbus submodule