* Simplifying libwaku.nim by extracting config parser to config.nim
* Adding json_base_event.nim
* Starting to control-version the libwaku.h
We are creating this libwaku.h inspired by the one that is automatically
generated by the nim compiler when `make libwaku` is invoked. Therefore,
the self-generated header is then placed in:
nimcache/release/libwaku/libwaku.h
* Better waku_example.c organization
* libwaku.nim: better memory management
We need to create a 'cstring' internally from the 'const char*' passed
from outside the library.
We invoke 'allocShared' in order to create the internal 'cstring',
and invoke 'deallocShared' in order to manually free the memory.
* 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