Tanya S d3cf24f7a2 feat: Update implementation for new contract abi (#3390)
* update RLN contract abi functions and procs

* Clean up debugging lines

* Use more descriptive object field names for MembershipInfo

* Fix formatting

* fix group_manager after rebase to use new contract method sig

* Fix linting for group_manager.nim

* Test idcommitment to BE and debug logs

* Improve IdCommitment logging

* Update all keystore credentials to use BE format

* Add workaround for groupmanager web3 eth_call

* Add await to sendEthCallWithChainID

* Add error handling for failed eth_call

* Improve error handling for eth_call workaround

* Revert keystore credentials back to using LE

* Update toRateCommitment proc to use LE instead of BE

* Add IdCommitment to calldata as BE

* feat: Update rln contract deployment and tests (#3408)

* update RLN contract abi functions and procs

* update waku-rlnv2-contract submodule commit to latest

* Add RlnV2 contract deployment using forge scripts

* Clean up output of forge script command, debug logs to trace, warn to error

* Move TestToken deployment to own proc

* first implementation of token minting and approval

* Update rln tests with usermessagelimit new minimum

* Clean up code and error handling

* Rework RLN tests WIP

* Fix RLN test for new contract

* RLN Tests updated

* Fix formatting

* Improve error logs

* Fix error message formatting

* Fix linting

* Add pnpm dependency installation for rln tests

* Update test dependencies in makefile

* Minor updates, error messages etc

* Code cleanup and change some debug logging to trace

* Improve handling of Result return value

* Use absolute path for waku-rlnv2-contract

* Simplify token approval and balance check

* Remove unused Anvil options

* Add additional checks for stopAnvil process

* Fix anvil process call to null

* Add lock to tests for rln_group_manager_onchain

* Debug for forge command

* Verify paths

* Install pnpm as global

* Cleanup anvil running procs

* Add check before installing anvil

* CLean up onchain group_manager

* Add proc to setup environment for contract deployer

* Refactoring and improved error handling

* Fix anvil install directory string

* Fix linting in test_range_split

* Add const for the contract address length

* Add separate checks for why Approval transaction fails

* Update RLN contract address and chainID for TWN
2025-06-20 11:46:08 +02:00
..
2024-07-12 11:05:13 +03:00
2024-07-12 11:05:13 +03:00
2024-07-12 11:05:13 +03:00

Sonda

Sonda is a tool to monitor store nodes and measure their performance.

It works by running a nwaku node, publishing a message from it every fixed interval and performing a store query to all the store nodes we want to monitor to check they respond with the last message we published.

Instructions

  1. Create an .env file which will contain the configuration parameters. You can start by copying .env.example and adapting it for your use case

    cp .env.example .env
    ${EDITOR} .env
    

    The variables that have to be filled for Sonda are

    CLUSTER_ID=
    SHARD=
    # Comma separated list of store nodes to poll
    STORE_NODES=
    # Wait time in seconds between two consecutive queries
    QUERY_DELAY=
    # Consecutive successful store requests to consider a store node healthy
    HEALTH_THRESHOLD=
    
  2. If you want to query nodes in cluster-id 1, then you have to follow the steps of registering an RLN membership. Otherwise, you can skip this step.

    For it, you need:

    • Ethereum Sepolia WebSocket endpoint. Get one free from Infura.
    • Ethereum Sepolia account with some balance <0.01 Eth. Get some here.
    • A password to protect your rln membership.

    Fill the RLN_RELAY_ETH_CLIENT_ADDRESS, ETH_TESTNET_KEY and RLN_RELAY_CRED_PASSWORD env variables and run

    ./register_rln.sh
    
  3. Start Sonda by running

    docker-compose up -d
    
  4. Browse to http://localhost:3000/dashboards and monitor the performance

    There's two Grafana dashboards: nwaku-monitoring to track the stats of your node that is publishing messages and performing queries, and sonda-monitoring to monitor the responses of the store nodes.