* 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
* moves resume to after the relay is mounted
* Update waku/v2/node/wakunode2.nim
Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>
Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>
* activates resume
* adds unit test
* add store condition
* mode debug info
* updates wakunode resume api and its unittest
* adds todo
* adds documentation
* edits resume documentation
* further edits on the docs
* removes a todo
* fixes a bug
* add resume to waku node api
* further updates on the node.md
* updates the changelog
* minor
* removes return type
* adds a brief desc of the resume to node.md
* adds resume function
* unittest for findLastSeen
* fixes a bug in find last seen unit test
* argument type change to indexed waku message
* relocates findLastSeen
* adds unit test for resume
* adds comments
* adds a TODO
* adds offset
* cleans up
* modifies some of tests title and deletes a duplicate unit test
* more condition on running resume()
* adds more detailed docstring and simplifies if statement
* Update waku/v2/protocol/waku_store/waku_store.nim
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* new doc string
* Update waku/v2/protocol/waku_store/waku_store.nim
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* fixes a bug
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* Fix nim-waku config inconsistencies
* Revert staticnode to singular form
* Fix reference to deprecated config item
* Revert nodekey config item to be consistent with Waku v1
made resulting changes to waku_filter
Made changes to wakunode2, filter_api and waku_filter
Update waku v2 test scripts referencing Content Topics
Update ContentFilter in chat example
Remove unneccesary loops from filter api
closes#496
Apply keep-alive for chat2 (#525)
Makes the arguments of the store jsonrpc api optional (#526)
* makes pubsubTopic filter optional
* makes contentFilter optional
* append Option
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
Update Changelog with changes to ContentFilter
Fix indentation and code semantics
Enables perssist-message flag in the store protocol for wakunode2 (#519)
* enables perssistmessage flag
* disables in memory storage when persist-messages is false
* adds the persistMessages input to the mountStore
* defaults the store flag to true
* adds the missing argument
* persists messages in memory conditioned to the persistMessages flag
* adds persistmessages flag to the config_bridge
* defaults persistmessages to true
* defaults the store flag to true and persist-messages to false
* updates store.md
* updates chat2 instructions about --store flag
* removes --store flag from chat2 command execution
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
Fix: light-mode relay for all light protocols (#529)
* Fix: light-mode relay for all light protocols
* Clear up confusing use of overloaded concepts
Fix ContentFilter Schema in wakunode test script
Enables perssist-message flag in the store protocol for wakunode2 (#519)
* enables perssistmessage flag
* disables in memory storage when persist-messages is false
* adds the persistMessages input to the mountStore
* defaults the store flag to true
* adds the missing argument
* persists messages in memory conditioned to the persistMessages flag
* adds persistmessages flag to the config_bridge
* defaults persistmessages to true
* defaults the store flag to true and persist-messages to false
* updates store.md
* updates chat2 instructions about --store flag
* removes --store flag from chat2 command execution
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
Fix: light-mode relay for all light protocols (#529)
* Fix: light-mode relay for all light protocols
* Clear up confusing use of overloaded concepts
Fix resulting issues after merge
* enables perssistmessage flag
* disables in memory storage when persist-messages is false
* adds the persistMessages input to the mountStore
* defaults the store flag to true
* adds the missing argument
* persists messages in memory conditioned to the persistMessages flag
* adds persistmessages flag to the config_bridge
* defaults persistmessages to true
* defaults the store flag to true and persist-messages to false
* updates store.md
* updates chat2 instructions about --store flag
* removes --store flag from chat2 command execution
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* lightpush conf and mount with relay from node
* mount lightpush after relay
* lightpush relay integration wip
* lightpush node integrate and test node
* clean
* entirely replaces the prior rln header, the var variables are changed to ptr
* updates the unittest of key_gen
* adds test for update_next_member
* updates membershipKeyGen internals and prototype
* adds createRLNInstance
* adds helpers methods
* adds generateKeyPairBuffer
* cleans up the test and adds comments
* renames merkleTreeDepth to d
* fixes a buf re decoding the keys into sk and pk
* adds getSKPK proc
* unifies key gen helper procs, adds todos
* comments out the createRLNInstance
* refactors the code based on the updated createRLNInstance interface
* adds the test for the verify proc
* fixes a variable name and replaces random key gen with the real key gen
* tests a simple hash
* adds get_root method
* fixes the data pointer issue and adds the proof breakdown
* adds rln
* adds unit tests for Merkle tree
* adds a sample hash test
* fixes the hash bug and comments out unused part of proof gen test
* cleans up the proof gent test
* replaces unsafeAddr with addr
* fixes an issue in key gen
* updates rln submodule
* fixes the verification problem
* adds a failed test
* replaces an old test scenario with a new one
* handles createRLNInstance output
* working createRLNInstance2
* refactors the code by replacing the old createRLNInstance
* renames createRLNInstance2
* adds documentation and reorganizes rln.nim
* replace echo with debug, renames vars, adds a bad proof test
* minor
* minor
* edits var names
* adds one more check
* adds one more test to the hash
* enforcing exception handling
* adds pacman -Sy
* removes update:true
* activates update
* Bump nim-chronos and fix exception tracking issues
* Bump other Nim submodules to latest
* Fix repeatMessage properly through proc type fix in nim-eth
Also add and use unittest2 through testutils to avoid extra
annotations.
* entirely replaces the prior rln header, the var variables are changed to ptr
* updates the unittest of key_gen
* adds test for update_next_member
* updates membershipKeyGen internals and prototype
* adds createRLNInstance
* adds helpers methods
* adds generateKeyPairBuffer
* cleans up the test and adds comments
* renames merkleTreeDepth to d
* fixes a buf re decoding the keys into sk and pk
* adds getSKPK proc
* unifies key gen helper procs, adds todos
* comments out the createRLNInstance
* refactors the code based on the updated createRLNInstance interface
* adds the test for the verify proc
* fixes a variable name and replaces random key gen with the real key gen
* tests a simple hash
* adds get_root method
* fixes the data pointer issue and adds the proof breakdown
* adds rln
* adds unit tests for Merkle tree
* deletes unnecessary comments
* updates createRLNInstance to return bool indicating the success of call
* updates create RLN Instance interface
* minor
* clean up
* removes unused imports
* adds documentation
* adds comments
* adds byteutils
* removes extra spaces
* updates rln submodule
* deletes genSKPK
* fixes a bug in membershipKeyGen
* unsafeAddr to addr
* Update waku/v2/protocol/waku_rln_relay/rln.nim
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* clean up
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* adds the proof field to the WakuMessage
* adds a basic zkProof api
* adds proof gen to the publish proc
* relocates the proofGen and proofVrfy to rln_relay_utils
* wip: test of proof gen
* adds a procedure to pass rln-relay message validator, adds the proof gen
* tests the proof gen and verify
* relocates zkp API
* adds documentation and todos
* adds todos and documentations
* removes an unnecessary comment
* adds todos
* cleans up imported modules
* adds uploadContract proc and consolidates rln-relay test files
* deletes test_rln_relay_wrappers
* deletes wrappers tests
* adds waku_rln_relay_utils
* adds the unit test for the membership key generation
* adds the key generation procedure
* adds unit test of key gen proc
* adds RLNRelayPeer data type
* adds the register proc
* adds the register proc unit test
* minor
* edits registration test
* adds comments to the registration unit test and relocates some constants
* defines constants variables for membership contract inputs and adds todos
* fixes a typo
* enables signed transaction
* adds registration into waku rln relay
* adds a TODO
* adds debug notes
* WIP add registration test
* integrates rln relay inputs into the mountRelay proc
* minor
* adds mountRelay
* renames RlnRelayPeer to WakuRlnRelay
* adds debugging notes
* changes the test title
* adds rln to gitignore
* cleans up tests, fixes a bug
* exposes mountRlnrelay, adds some comments
* fixes a bug
* deletes async pragma from mountRelay
* exposes the wakuRlnRelay field
* adds bash command to delete any existing rln directory before cloning the rln repo
* removes -v verbose flag from rln removal
* replaces await with WaitFor
* embed mountRlnRelay inside mountRelay