* 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
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
-
Create an
.envfile which will contain the configuration parameters. You can start by copying.env.exampleand adapting it for your use casecp .env.example .env ${EDITOR} .envThe 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= -
If you want to query nodes in
cluster-id1, 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_KEYandRLN_RELAY_CRED_PASSWORDenv variables and run./register_rln.sh -
Start Sonda by running
docker-compose up -d -
Browse to http://localhost:3000/dashboards and monitor the performance
There's two Grafana dashboards:
nwaku-monitoringto track the stats of your node that is publishing messages and performing queries, andsonda-monitoringto monitor the responses of the store nodes.