logos-delivery/examples/wakustealthcommitments
Tanya S 22040b739f
feat: decouple merkle path and on-demand strategy (#3940)
* make validateRoots async

* add on-demand refreshRoots functionality

* Move max rootsrefresh time to constants

* make generateProof async and add ensureFreshMerkleProofPath

* Update to match code format and linting

* Use Wakumessage.new()

* Add trigger for client side only merkleproofcache updates

* full decoupling of updateRoots and merkleproofcache update

* Fix isNil check format

* Move moment check to top of roots and merkle path update procs

* Update PathCheckMinInterval

* Add tests for on demand merkle path updates

* Replace appendRLNProof and use message.toRLNSignal

* Fix linting

* Remove commented code

* Remove more old commented code

* Fix formatting and simplifications
2026-06-12 12:22:34 +02:00
..

wakustealthcommitments

This application/tool/protocol is used to securely communicate requests and responses for the Stealth Address Scheme

Uses TWN config as default, and content topic: /wakustealthcommitments/1/app/proto

Usage

  1. Clone the erc-5564-bn254 repo and build the static lib
gh repo clone rymnc/erc-5564-bn254
cd erc-5564-bn254
cargo build --release --all-features
cp ./target/release/liberc_5564_bn254.a <path-to-nwaku>

![NOTE] This static library also includes the rln ffi library, so you don't need to build it separately. This is because using both of them separately brings in a lot of duplicate symbols.

  1. Build the wakustealthcommitments app
cd <path-to-nwaku>
source env.sh
nim c --out:build/wakustealthcommitments  --verbosity:0 --hints:off -d:chronicles_log_level=INFO -d:git_version="v0.24.0-rc.0-62-g7da25c" -d:release --passL:-lm --passL:liberc_5564_bn254.a --debugger:native examples/wakustealthcommitments/wakustealthcommitments.nim
./build/wakustealthcommitments \
    --rln-relay-eth-client-address:<insert http rpc url> \
    --rln-relay-cred-path:<path-to-credentials-file> \
    --rln-relay-cred-password:<password-of-credentials-file>

This service listens for requests for stealth commitment/address generation, partakes in the generation of said stealth commitment and then distributes the response to the mesh.