* 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 trace log for the valid messages
* brings the log trace one line up
* WIP
* WIP: fixes a bug
* adds test for static group formation
* adds static group creation when rln-relay is enabled
* adds createStatic group
* wip: adds group formation to mount rlnrelay
* adds createMembershipList utility function
* adds doc strings and todos
* cleans up the code and add comments
* defaults createRLNInstance depth argument to 32
* renames Depth
* distinguishes between onchain and offchain modes
* updates index boundaries
* updates log levels
* updates docstring
* updates log level of displayed membership keys
* relocates a todo
* activates all the tests
* fixes some comments and todos
* extracts some utils procs for better debugging
* adds todo
* moves calculateMerkleRoot and toMembersipKeyPairs to the rln utils
* makes calls to the utils functions
* adds unit test for createMembershipList
* adds unittest for toMembershipKeyPairs and calcMerkleRoot
* cleans up the code and fixes tree root value
* reverts an unwanted change
* minor
* adds comments and cleans up the code
* updates config message
* adds more comments
* fixes a minor value mismatch
* edits the size of group
* minor rewording
* defines a const var for the group keys
* replaces the sequence literal with the StaticGroupKeys const
* adds a rudimentary unittest
* adds todos
* adds more comment
* replaces uint with MembeshipIndex type
* fixes rln relay mem index config message
* adds rln relay setup proc
* decouples relay and rln-relay
* uses MemIndexType instead of uint
* brings back the rlnRelayEnabled flag to mountRlnRelay
* deletes commented codes
* adds rln relay topic validator inside updates rln relay mounting procedure
* adds rln-relay-pubsub-topic cli option
* adds a static rln-relay topic
* deletes rlnrelayEnabled argument
* adds pubsub topic for rln-relay
* deletes static pubsub topic
* mounts relay before rlnrelay in the tests
* logs rln relay pubsub topic
* cleans up the code
* edits rlnrelay setup
* uninitializes the input parameter of rlnrelay setup
* adds comments
* removes unused comments
* compiles addRLNRelayValidtor when RLN compilation flag is set
* adds comment about topic validator
* minor
* mode modifications on the description of add validator
* adds pubsubtopic field to wakuRlnRelay type
* WIP: shaping the test
* Checks whether rln relay pubsub topic is within the supported topics of relay protocol
* minor
* WIP: unit test for actual proof
* fixes a bug
* removes a redundant proc
* refines the test for actual proof
* breaks lines to 80 chars
* defines NonSpamProof type
* adds a return
* defines Epoch type
* WIP: proof gen
* implements actual proof gen
* adds proto enc and init
* adds notes about proof structure
* adds NonSpamProof to wakumessage
* adds proof gen
* WIP: non working tests for protobuf
* fixes the protobuf encoding issue
* discards the output of copyFrom
* WIP: hash unittest and proofVrfy and ProofGen
* integrates proofVrfy
* uses toBuffer inside the hash proc
* adds comment
* fixes a bug
* removes proof field initialization
* cleans up the test
* generalizes input from byte seq to byte openArray
* adds toBuffer
* adds a bad test
* cleans up unused tests
* adds integration test
* adds comments
* cleans up
* adds description to the integration test
* adds test for unhappy path
* tides up the tests
* tides up hash unit test
* renames a few var
* uses a const for wku rln relay pubsub topic
* minor refinement
* deletes an obsolete comment
* comment revision
* adds comments
* cleans up and adds docstrings
* profGen returns proofRes instead of proof
* removes extra sleepAsync
* fixes two bugs
* returns reject when proof is not verified\
* addresses comments
* adds comments
* links to rln doc
* more comments
* fixes space format
* uncomments v2 tests
* dnsclient branch update
* undo branch update
* minor spacing fix
* makes proof field conditional
* replaces uint with MembeshipIndex type
* fixes rln relay mem index config message
* adds rln relay setup proc
* decouples relay and rln-relay
* uses MemIndexType instead of uint
* brings back the rlnRelayEnabled flag to mountRlnRelay
* deletes commented codes
* adds rln relay topic validator inside updates rln relay mounting procedure
* adds rln-relay-pubsub-topic cli option
* adds a static rln-relay topic
* deletes rlnrelayEnabled argument
* adds pubsub topic for rln-relay
* deletes static pubsub topic
* mounts relay before rlnrelay in the tests
* logs rln relay pubsub topic
* cleans up the code
* edits rlnrelay setup
* uninitializes the input parameter of rlnrelay setup
* adds comments
* removes unused comments
* compiles addRLNRelayValidtor when RLN compilation flag is set
* adds comment about topic validator
* minor
* mode modifications on the description of add validator
* Checks whether rln relay pubsub topic is within the supported topics of relay protocol
* minor
* addresses comments
membeshipindex to membershipindex,
adds default value for rln topic
adds missing return
* WIP
* WIP: fixes a bug
* adds test for static group formation
* adds static group creation when rln-relay is enabled
* adds createStatic group
* wip: adds group formation to mount rlnrelay
* adds createMembershipList utility function
* adds doc strings and todos
* cleans up the code and add comments
* defaults createRLNInstance depth argument to 32
* renames Depth
* distinguishes between onchain and offchain modes
* updates index boundaries
* updates log levels
* updates docstring
* updates log level of displayed membership keys
* relocates a todo
* activates all the tests
* fixes some comments and todos
* extracts some utils procs for better debugging
* adds todo
* moves calculateMerkleRoot and toMembersipKeyPairs to the rln utils
* makes calls to the utils functions
* adds unit test for createMembershipList
* adds unittest for toMembershipKeyPairs and calcMerkleRoot
* cleans up the code and fixes tree root value
* reverts an unwanted change
* minor
* adds comments and cleans up the code
* updates config message
* adds more comments
* fixes a minor value mismatch
* edits the size of group
* minor rewording
* defines a const var for the group keys
* replaces the sequence literal with the StaticGroupKeys const
* converts var to let when applicable
* replaces hardcoded value with well-defined constants
* moves createMembershipList to the rln relay utils module
* renames HashSize to HashHexSize
* minor updates on the comments
* reorganizes the consts
* indicates that rlnRelayMemIndex is an experimental option
* fixes a type conversion bug
* revises the unittest of "mount waku rln-relay off-chain"
* clarifies the use of index
* updates a docstring
* removes redundant constants and capitalize all of them
* deletes the ETH_CLIENT const from the test file
* renames a few vars for the sake of clarity
* reorganizes unittest into blocks of execution, debug messages, and checks
* adds more comments
* more comments and clarifications
* cleans up the tests
* minor
* adds a minor fix
* replaces a var usage with let
* fixes a bug
* tests rln instance as pointer
* test insertion
* tests deletion
* tests proof generation and verification
* updates rln instance type and the rln api
* deletes old API
* removes temporary tests
* deletes unused codes
* Delete settings.json
* reverts the changes in tests v2
* removes an old comment
* adds member insertion and deletion
* adds getMerkleRoot and unit tests
* makes insertMember argument a value type
* adds static group creation
* adds rln field to WakuRLNRelay type, and enables static group construction inside mountRlnRelay
* renames self to membershipKeyPair and removes key generation from mountRlnRelay
* renames sk,pk tp idKey and idCommitment
* updates mountRlnRelay arguments name
* logs created keys
* uncomments the key generation and adds explainer about it
* enables all the tests
* adds comments to the rln relay types
* logs error message for the arguments that are not set
* tests rln instance as pointer
* test insertion
* tests deletion
* tests proof generation and verification
* updates rln instance type and the rln api
* deletes old API
* removes temporary tests
* deletes unused codes
* Delete settings.json
* reverts the changes in tests v2
* removes an old comment
* moves migration paths to the migration_types module
* moves USER_VERSION to the migration_types module
* updates migration execution condition to cover the peer store
* adds a message to the store if it is inserted to the db
* adds debug messages and checks migration path recursively
* deletes unused debug messages
* deletes commented codes
* clean up
* fixes a bug
* renames the first migration file of the message store
In the `when isMainModule:` section of wakunode2.nim, the module
`./storage/message/waku_message_store` is imported, which in turn imports
waku's sqlite module and also the sqlite3_abi module from `vendor/`.
Outside of the `when isMainModule:` section, imports from waku's sqlite module
are not used in wakunode2. However, importing it at the top-level results in
the C code underlying sqlite3_abi to be compiled into whatever executable one
is building, and this is a problem if nim-waku is being consumed together with
another library, e.g. nim-sqlcipher, which links against a different build of
sqlite (sqlcipher being a superset of sqlite). The linker step fails with
reports of duplicate symbols for sqlite.
* adds timestamp to waku message store impl
* stores timestamp as int64
* adds untitest
* stores timestamp as seq of bytes
* minor
* re-orders unittest
* changes receiver timestamp to float64
* unit test for receiver timestamps
* adds comments
* reorder a few lines
* updates changelog
* more updates on changelog
* WIP
* WIP
* adds migration
* more debug messages
* passes the path to the migration scripts from message store module
* adds migration result type
* replaces migrationScripts with migrationScriptsResult
* adds path calculation to the message store
* removes some tests binary file
* removes redundant imports
* comments out user_version assignment in sqlite init
* more descriptive err messages
* clean up test file
* more info logs
* minor code format
* removes a todo
* minor updates
* remove a binary file
* unit tests for migration utils
* adds split script
* integrates split query to handle scripts with multiple commands
* updates migration script for v1
* updates the v1 migration script
* update user version
* updates script
* fixes a few bugs on the splitScript
* more debug logs
* adds float64 parameter support to sqlite3
* change in timestamp type in the script
* deletes float64 toBytes utils
* enables storage of timestamp as a real number in the sqlite db
* bump up script index
* comment edits
* removes migrate unit test
* adds todo and docstring
* updates changelog
* removes an unused item in .gitignore
* minor
* updates changelog
* organizes imports
* cleans up imports
* WIP
* updates script
fixes a few bugs on the splitScript
more debug logs
adds float64 parameter support to sqlite3
change in timestamp type in the script
deletes float64 toBytes utils
* edits migration util test
* remove an empty test file
* includes migration utils tests in
* deletes unused codes
* tides up imports
* adds range based filter to the filterMigrationScripts
* renames procs: removes Migration
* tides up imports
* edits docstring
* edits docstring
* edits docstring
* removes unused imports
* more clean up
* groups std imports
* updates changelog
* adds docstring for setUserVersion
* adds unittest for the migrate
* Update waku/v2/node/storage/message/waku_message_store.nim
Co-authored-by: RichΛrd <info@richardramos.me>
* Update waku/v2/node/storage/sqlite.nim
Co-authored-by: RichΛrd <info@richardramos.me>
* Update waku/v2/node/storage/sqlite.nim
Co-authored-by: RichΛrd <info@richardramos.me>
* removes split scripts
* fixes a naming issue
* fixes a bug
* fixes a typo
* adds a log re updated user_version
* fixes a proc naming mismatch
* fixes naming mismatch
* more descriptive var names
* adds migration script of the first user version
* moves migration to after persistMessages flag is checked
* deletes unused comment
* fixes a bug
* brings back split script
* adds unit tests for split scripts
* runs scripts one command at a time
* deletes a commented line
* relocates the migrate proc to sqlite.nim
* adds unit test for filter scripts
* adds filterScripts unittest testing varying zero-prefixed user versions
* minor
Co-authored-by: RichΛrd <info@richardramos.me>
* Add mode to waku swap
* Modify swap test and policy function
* Make rln optional (dependencies and compilation) (#602)
* makes rlnlib target optional
* makes the rln-related targets conditioned to the RLN command line flag
* adds the rln compiler flag condition
* adds the rln compiler flag condition to the rln module
* wakunode2 rln conditional compilation
* updates wakunode2 test
* updates waku rln relay tests
* removing the rln test from the default imports of the v2 tests
* imports rln module conditionally
* removes the rln flag condition from the rln module
* separates rln data types from its procs
* adds the import statement
* brings back the contract def to the rln utils
* adds rln module import to the rln unit tests
* clean up and reorganization
* adds a todo
* minor edits on a comment
* Fix indentation and typo
* Add Swap Config Object and set default config value on mount
* Minor changes
* Fix issues with grammar in code comment
* Create init procedure for setting default values in SwapConfig
* Minor changes to mountSwap call in wakunode2
* Improve Docs on Swap Mode
Co-authored-by: Sanaz Taheri Boshrooyeh <35961250+staheri14@users.noreply.github.com>
Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>
* makes rlnlib target optional
* makes the rln-related targets conditioned to the RLN command line flag
* adds the rln compiler flag condition
* adds the rln compiler flag condition to the rln module
* wakunode2 rln conditional compilation
* updates wakunode2 test
* updates waku rln relay tests
* removing the rln test from the default imports of the v2 tests
* imports rln module conditionally
* removes the rln flag condition from the rln module
* separates rln data types from its procs
* adds the import statement
* brings back the contract def to the rln utils
* adds rln module import to the rln unit tests
* clean up and reorganization
* adds a todo
* minor edits on a comment