* refactor(rln): convert 32 bytes arrays to hex as uints
* fix(rln): fix Kilic's proofVerify proc to take stub validRoots
* refactor(rln): use input's length when convert to/from hex
* chore(rln): print more commitments inHex in debug logs
* chore(rln-relay): make account address optional
* fix(rln-relay): onchain test
* chore(chat2): update docs, and handle error case in chat2
* fix(rln-relay): handle registration better
* update zerokit submodule
* fix(rln): allow Buffer creation on empty arrays
* feat(rln): use verify_with_root
* fix(rln): update test to work with verify_with_root
* chore(rln-relay): disable merkle root validation
* brings back validation of the root but without invalidating the message
* adds the tracking issue
Co-authored-by: sanaz <staheri14@ku.edu.tr>
* adds rln identifier to the RateLimitProof
* enables rln-relay compilation for wakunode2
* unifies the two RateLimitProof types
* a minor update
Co-authored-by: G <28568419+s1fr0@users.noreply.github.com>
* feat(rln-relay): metrics
* fix(rln-relay): invalid token
* fix(rln-relay): return outside time
* style(rln-relay): multiline proc def
* fix(rln-relay): oserror
* fix(rln-relay): Exception should not be raised
* Revert "fix(rln-relay): oserror"
This reverts commit edcf39c0088ca526ca50256d856eee20d87a3c37.
* Revert "fix(rln-relay): Exception should not be raised"
This reverts commit c8d09b055314a83bb4a94900a47e899773cb47df.
* fix(rln-relay): revert exception removal
* feat(rln-relay): granular tracking
* fix(rln-relay): observe only on histogram, convert mount to hist
* chore(rln-relay): add additional metrics
* fix(rln-relay): missing import
* fix(rln-relay): template should expand only when times is defined
* fix(rln-relay): follow prometheus naming style
* fix(rln-relay): explicitly assert that the root window size should be less than 10
* fix(rln-relay): outstanding issues with infinite labels, minor refactor
* fix(rln-relay): typo
* fix(rln-relay): screaming case to pascal case
* fix(rln-relay): typos
* fix(rln-relay): imports
* fix(rln-relay): remove dependence on times, make durations as gauges
* fix(rln-relay): import order
* feat(store): init allow messages to be marked as ephemeral
* feat(store): replace ephemeral with ttl model
* Revert "feat(store): replace ephemeral with ttl model"
This reverts commit 4398c61c919dda8f014b4fcc0679c573c74854e4.
* fix(store): flags and test
* chore(store): remove storeTTL
* chore(store): remove unused utils
* fix: conflict
* fix(store): make test more brief
* chore: update submodules
* fix: SIGTERM ambiguity
* fix: ambiguous RNGs
* fix: ContentType is no longer a string
* fix: more fixes related to ambiguous RNGs
* fix: start all protocols
* chore: also update nim-eth
* chore: important new fixes in nim-libp2p
* fix: more changes related to RNG. Some reversion to reflect nim-eth update
* fix: breaking changes in nim-eth submodule
* fix: start protocols in tests
* fix: chat2bridge protocols async mounting
* fix: v1 test compilation
* fix: rln test compilation
* fix: remove confusing keys qualifier for the same HmacDrbgContext
* chore(noise): readable default checks for keypairs
* chore(noise): fix naming of arg in exists proc
* chore(noise): fix naming to make it clearer
* chore(noise): inline and remove result usage
* chore(noise): move the isDefault function up, replace defaultyVar with value
* chore(noise): inline style
* chore(noise): static the default check, remove inline pragma
If any error occurs during the on-chain registration, it will be handled; the chat2 users will get informed about the cause and the installation of rln-relay gets discarded and the chat program continues with no crashing.
* Persisting Credentials implemented by writing json of keypair and rlnindex to files
* Removing testing files and ignores
* Update waku/v2/protocol/waku_rln_relay/waku_rln_relay_utils.nim
Co-authored-by: Daniel Kaiser <git@kais3r.de>
* Update waku/v2/protocol/waku_rln_relay/waku_rln_relay_utils.nim
Co-authored-by: Daniel Kaiser <git@kais3r.de>
* Comments
* Comments
* Security warning in comments
* Redundant echos. Omitting unused variables.
* Update waku/v2/protocol/waku_rln_relay/waku_rln_relay_utils.nim
Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>
* Limit line lengths using line breaks and indents
* Membership file paths declared as const
* Const fix
* Rln Credentials Merged.
Reading credentials from file abstracted away.
* Spaces
* Spaces
* Dangling constants removed. Comments position.
* Import sequence.
* Path as argument to readPersistentKeys.
Spaces in comments
* readPersistentKeys test
* Debug and info
* Index check in test
* Update tests/v2/test_waku_rln_relay.nim
Co-authored-by: G. <28568419+s1fr0@users.noreply.github.com>
* Abstracted writeRlnCredentials.
Fix var name in test.
* Usage of writeRlnCredentials in test
* Dnsclient?
* Test reverted to direct call to writeFile.
Abstrated writePersistentRlnCredentials usage causing error,
with readPersistentRlnCredentials
* Indentation
* Revert "Dnsclient?"
This reverts commit 3f4dba1a0b.
* Reverting abstraction of writing..
..persiting credential
Co-authored-by: Daniel Kaiser <git@kais3r.de>
Co-authored-by: Keshav Gupta <keshav.pg@hotmail.com>
Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>
Co-authored-by: G. <28568419+s1fr0@users.noreply.github.com>
* adds wakunode2_types
* removes unused imports
* adds dynamic rln relay config options
* deletes unused imports
* replaces static rln-relay with both modes
* introduces spamHandler parameter to mountRlnRelay
* some debugging info
* introduces the config option
* adds the eth priv key to the register proc
* refactors the code by adding eth private key to the relevant procs
* revises config descriptions
* minor wording fix
* make a minor edit
* further edits
* adds Eth private key to the config options
* calls spam handler when to rln credential is given
* defaults to none for the spam handler
* updates the membership fee to match the contract
* fixes an issue for event subscription
* adds eth private key to the transactions made in the tests
* adds eth private key for the test of register process
* adds comments
* deletes lingering echo
* displays registration info
* removes an echo
* removes Goerli testnet from the config descriptions
* removes an excess space
* annotates rln nim bindings for more clarity
* adds pointer to the rln construct
* revises further
* addresses comments
* revises proc description of verify
* removes AuthObj
* adds the contract handler file
* adds integration test for the group listening
* adds groupManagement proc
* deletes rln relay contract handler file
* brings back all the tests
* replaces toUINT256 with getIdCommitment proc
* replaces individual futures with an array of futures
* adds code documentation
* asyncSpawn instead of await
* adds untitest for toIDCommitment and toUInt256
* reorganizes the test and add rlnInstance
* mounts handleGroupUpdates on the rln peer
* asyncSpawn to await
* implements toIDCommitment
* updates the unittest
* improves the code documentation
* removes unused tests
* WIP
* uncomments the tests
* defines a new mountRlnRelayStatic proc
* splits mountRlnRelay into two procs for dynamic and static group management
* adds a config for off-chain and on-chain rln-relay
* runs dynamic or static mode of rln-relay based on the input config
* adds Eth private key and account configs
* reads Eth private key and account the configs
* comments put the second register proc
* add proper call to the rlnrelay dynamic mode
* adds todo
* adds new rln relay configs
* splits register into two procs
* makes eth account private key non-optional
* removes getIdCommitment and edits the register proc
* removes getIdCommitment calls
* uncomments the commented tests
* fixes a bug
* removes contract deployment for the offchain test
* fixes a bug, edits comments
* removes custom types without proper parsing and serialization routines from the configs
* fixes a bug
* switches to stew byte utils
* removes log decoding
* WIP
* updates register proc
* edits test titles
* removes eth private key config
* changes the output of register proc to return the registered index
* integrates the registration process into mountRlnRelayDynamic
* integration test for the register proc
* brings back the onchain tests
* updates comments
* cleans up
* disambiguates the Address type namespace
* fixes type ambiguities
* adds default values for rln key and index
* updates config descriptions
* adds type conversion from hex to MembershipKeyPair
* adds more code documentation
* passed the group value instead of option to the mount proc
* fix a bug
* a minor input type fix for rln chat2
* groups let declarations
* adds default values for addresses
* logs registered keys
* feat(sqlite): parameterized prep statement exec
- from nim-eth
* feat(store): sql-only-store
- add getPage(...) to sql-message-store
- acts as separate store impl that can be activated with
`--sqlite-store=true`
* test(store): new test-suite for sql message store
* test(store): waku_store test SQL-store compatible
* perf(store): avoid builing an additional B-tree in sql query
- use `receiverTime` as the last ORDER BY column to fully utilize the
primary key sorting
feat(store): retention time
- retention time in seconds can be specified via `--sqlite-retention-time=`
* adds the contract handler file
* adds integration test for the group listening
* adds groupManagement proc
* deletes rln relay contract handler file
* brings back all the tests
* replaces toUINT256 with getIdCommitment proc
* replaces individual futures with an array of futures
* adds code documentation
* asyncSpawn instead of await
* adds untitest for toIDCommitment and toUInt256
* reorganizes the test and add rlnInstance
* mounts handleGroupUpdates on the rln peer
* asyncSpawn to await
* implements toIDCommitment
* updates the unittest
* improves the code documentation
* removes unused tests
* removes registration of the dynamic group management handler
* adds a comment
* adds a comment
* adds a TODO
* removes getIdCommitment
* first edition
* adds the full test scenario
* fixes typos
* fixes a bug in the supplied command
* further edits the description
* displays the chat prompt after spam detection
* updates changelog
* minor wording fix
* adds a new test file for onchain rln relay
* adds the Event proc
* adds one working example of event subscription
* defines a new unitt test for event subscription
* adds the new test file
* cleans up the code
* adds a working event subscription for faucet contract
* wip
* makes faucet test conditional
* updates contract byte codes
* adds a working test for event subscription and cleans up the tests
* fixes case
* adss toUInt256 unit function
* enables the tests
* fixes a bug
* undo commented tests
* cleans up the test
* logs the pk
* removes excess entry in the changelog
* fixes spacing
* comments
* removes unused test codes
* adds the conditional compilation for onchain tests
* uncomments offchain tests
* removes onchain tests
* reorganizes the code and moves the rln contract data into a separate module
* deletes txt files
* beautifies the code
* beautifies the code
* removes an excess line
* more formatting fixes
* minor fix
* updates the case of membership fee const
* renames compare to diff
* renames time to e
* edits the number of arguments of the send proc
* fixes a comment alignment
* fixes indentation
* fixed id style
* splits check from condition
* fixes a naming mismatch
* fix(store): limit capacity of persistent message store
fixes performance issue of loading a large message table by deleting
old messages in case of an overflow
* test(store): message capacity limit