mirror of https://github.com/waku-org/nwaku.git
5a77d6e2a6
* adds ProofMetadata * adds EPOCH_INTERVAL * adds messageLog field * adds updateLog, toEpoch, fromEpoch, getEpoch, compareTo * adds unit test for toEpoch and fromEpoch * adds unit test for Epoch comparison * adds result codes for updateLog * adds unit test for update log * renames epoch related consts * modifies updateLog with new return type and new logic of spam detection * adds unit text for the modified updateLog * changes max epoch gap type size * splits updateLog into two procs isSpam and updateLog * updates unittests * fixes a bug, returns false when the message is not spam * renames messageLog to nullifierLog * renames isSpam to hasDuplicate * updates the rln validator, adds comments * adds appendRLNProof proc plus some code beatification * unit test for validate message * adds unhappy test to validateMessage unit test * renames EPOCH_UNIT_SECONDS * renames MAX_CLOCK_GAP_SECONDS * WIP: integration test * fixes compile errors * sets a real epoch value * updates on old unittests * adds comments to the rln relay tests * adds more comments * makes rln import conditional * adds todos * adds more todos * adds rln-relay mount process into chat2 * further todos * logs contentTopic * introduces rln relay configs * changes default pubsub topic * adds contentTopic config * imports rln relay dependencies * consolidates imports * removes module identifier from ContentTopic * adds contentTopic field * adds contentTopic argument to mountRlnRelay calls * appends rln proof to chat2 messages * changes the default chat2 contentTopic * adds missing content topic fields * fixes a bug * adds a new logic about empty content topics * appends proof only when rln flag is active * removes unnecessary todos * fixes an indentation issue * adds log messages * verifies the proof against the concatenation of msg payload and content topic * a bug fix * removes duplicate epoch time calculation * updates log level to trace * updates default rln-relay content topic * adds support for empty content topics * updates changelog * changelog updates * removes a commented code block * updates addRLNRelayValidator string doc |
||
---|---|---|
.github/workflows | ||
ci | ||
docs | ||
examples | ||
metrics | ||
tests | ||
vendor | ||
waku | ||
wrappers | ||
.dockerignore | ||
.gitignore | ||
.gitmodules | ||
CHANGELOG.md | ||
Dockerfile | ||
LICENSE-APACHEv2 | ||
LICENSE-MIT | ||
Makefile | ||
README.md | ||
config.nims | ||
env.sh | ||
waku.nimble |
README.md
nim-waku
Introduction
The nim-waku repository implements Waku v1 and v2, and provides tools related to it.
- A Nim implementation of the Waku v1 protocol.
- A Nim implementation of the Waku v2 protocol.
- CLI applications
wakunode
andwakunode2
that allows you to run a Waku v1 or v2 node. - Examples of Waku v1 and v2 usage.
- Various tests of above.
For more details on Waku v1 and v2, see their respective home folders:
How to Build & Run
These instructions are generic and apply to both Waku v1 and v2. For more detailed instructions, see Waku v1 and v2 home above.
Prerequisites
- GNU Make, Bash and the usual POSIX utilities. Git 2.9.4 or newer.
- Rust
More information on the installation of these can be found here.
Wakunode
# The first `make` invocation will update all Git submodules.
# You'll run `make update` after each `git pull`, in the future, to keep those submodules up to date.
make wakunode1 wakunode2
# See available command line options
./build/wakunode --help
./build/wakunode2 --help
# Connect the client directly with the Status test fleet
./build/wakunode --log-level:debug --discovery:off --fleet:test --log-metrics
# TODO Equivalent for v2
Waku Protocol Test Suite
# Run all the Waku v1 and v2 tests
make test
Examples
Examples can be found in the examples folder. For Waku v2, there is a fully featured chat example.