* adds time based query
* handling temporal history queries
* more tests for corner cases
* edits tests comments
* further comments
* updates the time query logic
queries with zero-size window will result in an empty response
* returns no messages for invalid time queries
* comment update
* converts contentTopics from int to string
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* Force chronological message history
* Fix start/end index computation
* Sleep before RPC call
* Lower default max cache sizes on APIs
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* changes pageSize to uint64
* WIP
* reworks tests and indexing proc to match uint64 pageSize
* minor simplification
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* updates the fields numbers of proof and timestamp
* clarifies that proof is not part of waku message specs
* Update waku/v2/protocol/waku_message.nim
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* fixes indentation
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* 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
* Fix balance JSON resp
* Resultify swap contract calls for error handling
* More resultify and fixup tests
* More results
* resultify waku swap handling
* re-enable waku swap test
should not crash now, even if it fails to settle (tested separately)
* fix balance test
* move waku swap contracts into own module
* Move more to separate waku swap contracts
* move erc20address
* Improve cmd/task util
* fix redeem part too
* sign cheque hardcode
* add signature field, send cheque
* echo->debug
* disable waku swap test
it calls contracts, which isnt integrated
* 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
* 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
* adds rln to gitignore
* moves all the types to the top
* adds contracts inputs to the utils module
* adds a TODO
* adds some comments
* removes newline! adds some comments
* 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
* removes extra spaces
* Update tests/v2/test_waku_rln_relay.nim
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* deletes the newline
* adds rln to gitignore
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* adds rlnlib dependency
* clones the full-node branch of rln repository
* moves rlnlib dependency to the deps target
* changes rlnlib path
* adds test_rln_relay_wrappers to the v2 tests
* loads rlnlib with different extensions based on the OS
* deletes unnecessary imports
* changes rlnlib extension to .exe for windows
* minor
* list files in rln/target/debug
* edits rln lib name for windows
* removes unnecessary commands
* edits some comments
* fetches specific commit of rln library
* adds the initial rln.nim wrapper
* adds test_rln_wrapper
* WIP: initial test (not working)
* changes RLNBn256 data type
* updates parameters type
* adds the wrappers and fixes the bugs
* adds tests
* replaces echo with debug
* enhancement/cleanup-warnings (#290)
Accounting: Move flag to config and add basic test for accounting state (#284)
* Accounting: Add config flag (default to false)
Also fix bug where query function is called twice when flag is set.
* Accounting: test state update after store req
Refactor: waku_types separation of concern (trial with waku_swap) (#282)
* waku_types refactor: Accounting types to waku_swap
* waku_types refactor: Separate waku_swap_types file
* Fix import path for waku_swap
adds the test file for waku rln relay
WIP: adds some initial code
commented out the rln-relay test code
refactor/db-message-store-split (#280)
* fixes
* fic
* fix
* fix
* fix
* fixed
* fix
* fixes
* fixes, using sqlite lib fully
* fix
* Update sqlite.nim
Waku v2 JSON-RPC REST API: Store protocol proof of concept (#263)
* Waku V2 history query POC
* Fix folder structure
* Improve test clarity
* Improve imports, returns and some naming
* Changed naming conventions. Refactor & improve.
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
Refactor types store (#291)
* Refactor: Move waku_store into its own folder
* Refactor: Move waku store types to new home (WIP)
* Refactor: Fix errors and recursive imports
* Fix rebase errors
* Refactor: More rebase import fixes
Accounting credit receiving node (#292)
* Accounting WIP: Swap access through Store
* Fix order bug and comment scenario + typo
* WIP
* Accounting: Account for receiving store node
- Turn accountFor function into credit and debit
- Misc formatting
* Accounting: Fix bugs related to mount and test
* Accounting: Simplify query signature
We already have a ref to wakuSwap through wakuStore now.
* Resolve rebase issues
enhancement/remove-flood (#295)
* removes flood
* rm
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
Updated submodules (#303)
add Jenkinsfile and some Makefile targets for CI (#302)
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
Accounting: End to end with Cheque PoC (#304)
Added some basic debug and relay json-rpc calls (#305)
Uncomment and call empty rln test
adds the membership contract to the test file
adds a test utils for contract deployment
increases the gas limit for group management contract
* removes some files
* WIP: adds the interface of membership contract
* uncomments the interface of getNumber contract
* adds tests for interaction with the membership contract
* send is replaced with call
* replaces call with send
* enhancement/cleanup-warnings (#290)
Accounting: Move flag to config and add basic test for accounting state (#284)
* Accounting: Add config flag (default to false)
Also fix bug where query function is called twice when flag is set.
* Accounting: test state update after store req
Refactor: waku_types separation of concern (trial with waku_swap) (#282)
* waku_types refactor: Accounting types to waku_swap
* waku_types refactor: Separate waku_swap_types file
* Fix import path for waku_swap
adds the test file for waku rln relay
WIP: adds some initial code
commented out the rln-relay test code
refactor/db-message-store-split (#280)
* fixes
* fic
* fix
* fix
* fix
* fixed
* fix
* fixes
* fixes, using sqlite lib fully
* fix
* Update sqlite.nim
Waku v2 JSON-RPC REST API: Store protocol proof of concept (#263)
* Waku V2 history query POC
* Fix folder structure
* Improve test clarity
* Improve imports, returns and some naming
* Changed naming conventions. Refactor & improve.
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
Refactor types store (#291)
* Refactor: Move waku_store into its own folder
* Refactor: Move waku store types to new home (WIP)
* Refactor: Fix errors and recursive imports
* Fix rebase errors
* Refactor: More rebase import fixes
Accounting credit receiving node (#292)
* Accounting WIP: Swap access through Store
* Fix order bug and comment scenario + typo
* WIP
* Accounting: Account for receiving store node
- Turn accountFor function into credit and debit
- Misc formatting
* Accounting: Fix bugs related to mount and test
* Accounting: Simplify query signature
We already have a ref to wakuSwap through wakuStore now.
* Resolve rebase issues
enhancement/remove-flood (#295)
* removes flood
* rm
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
Updated submodules (#303)
add Jenkinsfile and some Makefile targets for CI (#302)
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
Accounting: End to end with Cheque PoC (#304)
Added some basic debug and relay json-rpc calls (#305)
Uncomment and call empty rln test
adds the membership contract to the test file
adds a test utils for contract deployment
increases the gas limit for group management contract
* removes some files
* WIP: adds the interface of membership contract
* uncomments the interface of getNumber contract
* adds tests for interaction with the membership contract
* send is replaced with call
* replaces call with send
* adds a todo
* removes empty lines
* adds some comments
* adds a todo
* adds the solidity code of the NumberContract
* fixes a bug: replaces call with send
* removes store test comments
* removes excess spaces
* Accounting WIP: Swap access through Store
* Fix order bug and comment scenario + typo
* WIP
* Accounting: Account for receiving store node
- Turn accountFor function into credit and debit
- Misc formatting
* Accounting: Fix bugs related to mount and test
* Accounting: Simplify query signature
We already have a ref to wakuSwap through wakuStore now.
* Resolve rebase issues
* Refactor: Move waku_store into its own folder
* Refactor: Move waku store types to new home (WIP)
* Refactor: Fix errors and recursive imports
* Fix rebase errors
* Refactor: More rebase import fixes
* Accounting: Add config flag (default to false)
Also fix bug where query function is called twice when flag is set.
* Accounting: test state update after store req
* Change folder structure to {v1,v2,common}/...
Addresses https://github.com/status-im/nim-waku/issues/261
* Update waku.nimble paths
* Flatten paths
* Fix import paths
* Pull out utils folder for nat
* Pull out waku_types to top level for v2
* Fix test import paths
* Remove old READMEs and replace with one liner
* Update README and split v1 and v2
* Skeleton READMEs
* Update README.md
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
* Update README.md
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
* Minimal accounting
Start of accounting PoC and keeping track of balance with peer
- Untested
- Flag should be off by default
- should be put in a separaet module
* Move accountFor to right place
* Accounting Use length of messages
* Disable flag by default
* Move account update func sig
* changes the digest type to MDigest[256] and modifies the computeIndex
* fixes formatting issue
* adds the pagination with its tests
stores and retrieves IndexedWakuMessage
adds the paginate proc
adds the paginate function
fixes some formatting issues
minor
edits indentation and fixes a bug
removes unused imports
minor
fixes indentations and adds a new testcase
adds indexedWakuMessageComparison
adds `==` proc for IndexedWakuMessage
separates the comparison of index and indexed waku messages
adds testcases for the Index comparison and IndexedWakuMessage comparison
WIP
WIP: adds an decoder for Index
removes an unnecessary imports
WIP
adds findIndex() proc
removes the equality check '==' for IndexedWakuMessages
edits the code format and adds the pagination test
edits paginate() proc to work on a copy of the input list
deletes unnecessary echo
adds the boundary calculations for forward and backward pagination
adds test cases for the page boundaries
tests corner cases for the queried cursor and pagesize
minor
adds some comments
adds a proc to extract WakuMessages from a list of IndexedWakuMessages
integrates pagination into the findMessages proc
adds some comments
changes paginate to paginateWithIndex
removes some echos
modifies paginateWithIndex to handle invalid cursors
adds test case for an invalid cursor
WIP: adds a `$` proc for IndexedWakuMessages
adds some debugging message prints
adds an integration test for handling query with pagination
* fixes a type mismatch issue in the min proc
* replaces boolean direction with their enums and updates contentTopics
* adds the unit test for the sorting of the indexed waku messages
* fixes a flaky test
* fixes a flaky test
* removes index equality check proc
* handles an initial query with an empty cursor
* adds test for the initial query
* adds integration test for pagination
* adds a test for empty message list
* adds comments and fixes an issue
* adds comments
* code cleanup
* removes the content topic validation check
* resolves the errors related to the windows CI tests
* Update waku/protocol/v2/waku_store.nim
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* Update waku/protocol/v2/waku_store.nim
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* Update tests/v2/test_waku_pagination.nim
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* Update waku/protocol/v2/waku_store.nim
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* Update waku/protocol/v2/waku_store.nim
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* Update waku/protocol/v2/waku_store.nim
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* changes the output type of findIndex to Option
* Update tests/v2/test_waku_pagination.nim
Co-authored-by: Dean Eigenmann <7621705+decanus@users.noreply.github.com>
* Update tests/v2/test_waku_pagination.nim
Co-authored-by: Dean Eigenmann <7621705+decanus@users.noreply.github.com>
* Update tests/v2/test_waku_pagination.nim
Co-authored-by: Dean Eigenmann <7621705+decanus@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Dean Eigenmann <7621705+decanus@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Dean Eigenmann <7621705+decanus@users.noreply.github.com>
* adds some comments
* fixes an indentation issue
* some code modification for array initialization
* Apply suggestions from code review
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
Co-authored-by: Dean Eigenmann <7621705+decanus@users.noreply.github.com>
* does some code reorganizations and clean up
* CreateSampleList to createSampleList
* replaces a byte array literal initialization with a for loop
* relocates indexedWakuMessageComparison and indexComparison
* minor
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
Co-authored-by: Dean Eigenmann <7621705+decanus@users.noreply.github.com>
* Add start of wakubridge with only waku v1 node for now
* Add waku v2 node to wakubridge
* Add bridge target to makefile
* Keep waku v1 PoW configurable
* Fix for latest WakuNode API
* Fix Makefile target all
* Rename to config_bridge and at brief docs on bridge
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* adds the index object
* adds the indexedWakuMessage
* adds the PagingInfo
* Adds PagingInfo to HistoryResponse and HistoryQuery
* adds the computeIndex procedure
* Update waku/node/v2/waku_types.nim
Fixes spacing issues
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* Changes timestamp to receivedTime and checks for the empty contentTopic
* adds a test file for pagination with test scenarios for computeIndex
* changes receivedTimestamp to the unix timestamp
* updates a test case
* replaces std/sha1 with nimcrypto/sha2
* changes the tests titles
* minor comments
* Some clean up
* fixes some formatting issue
* edits a test-case
* adds comments
* changes the digest type to MDigest[256] and modifies the computeIndex
* fixes formatting issue
* edits indentations and fixes a bug
* minor edits
* changes suite to procSuite and adds a new text case
* fixes all the indentations
* cleanup of the imports
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
RPC node info
fix Makefile error
fix rpc query error
add rpc_node_info to scripts target
hm
node info -> info
consistent query node ref
Add info to node api
update node api docs
update node api doc for consistency and accuracy
minor
* Upgrade all submodules
* Use stock standard_setup and remove our version
Switch no longer relies on Pubsub argument
* Fix peerId
* Add reference to WakuRelay in WakuNode
* Use WakuRelay ref directly instead of via switch
* Tweak standard switch sig
* Fix start_network peerid
* Import nim-libp2p utils test
* Use WakuRelay in test utils
* Fix utils imports
* Tweak
* Fix trigger self test
* Disable broken filter test
* Fix and amend logscope topics
* Make subscribe calls async to use await
* Add debug stuff to nimble file
* Await for subscribe content
* Sleeping in tests
* Local checkout fixes
* XXX: Try to use .PubSub on WakuRelay
* Revert "XXX: Try to use .PubSub on WakuRelay"
This reverts commit 3a3139e4cf.
* Only using gossip seems to work
Subscribe for floodsub broken
* Fix await in examples
* Get rid of double publish, still need sleep
* Add basic rpc scripts to publish and subscribe
* Fix publish topic and payload script
Also change parameter name in waku relay due to weird shadowing of log
topic:
DBG 2020-09-09 12:07:54+08:00 waku_publish tid=8795 file=wakurpc.nim:30 topic=waku payload=@[]
DBG 2020-09-09 12:07:54+08:00 publish tid=8795 file=waku_relay.nim:65 topic=WakuRelay
Above should show topic=waku but it gets topic=WakuRelay from log scope
for some reason.
* Scripts take arguments
* Add basic nangang tutorial
* Update docs/tutorial/nangang.md
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
* Update docs/tutorial/nangang.md
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
* meh
* ENsure subscribe call succeeds
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
* mounts the store protocol
* todo
* Update waku/node/v2/wakunode2.nim
Co-authored-by: Oskar Thorén <me@oskarth.com>
* fix
* Update waku/node/v2/wakunode2.nim
Co-authored-by: Oskar Thorén <me@oskarth.com>
* eol
Co-authored-by: Oskar Thorén <me@oskarth.com>
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
* Add WakuMessage type
* Add WakuMessage encoding and decoding
Also clean up waku_types module and imports
* Clean up waku_relay module
Imports, remove old text test, make fields and functions public, format.
* Publish WakuMessage
Also fix type mismatch in RPC
* Make publish work in examples, node and protocol
* Parse protobuf content in examples
* Update docs
* Update waku/node/v2/waku_types.nim
* Fix compilation error and disable out of date waku test
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
* Make basic Waku v2 examples run again
Regression introduced in https://github.com/status-im/nim-waku/pull/117
Happened due to example not being run on CI.
- Add wakuexample to all target
- Fix example2 to run
- Basic formatting
* Update examples/v2/basic2.nim
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
* Update examples/v2/basic2.nim
* Update examples/v2/basic2.nim
* Update examples/v2/basic2.nim
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
* start work on filter protocol
* init functions for protobufs
* comment
* added init
* playing around with subscribers
* Update waku_filter.nim
* added test for protobuf
* fixes
* fix
* Update test_waku_filter.nim
* Update waku_filter.nim
* Add note on status
Co-authored-by: decanus <7621705+decanus@users.noreply.github.com>
* WakuNode init without WakuNodeConf
* WakuNode start without WakuNodeConf
* setupNat adjustments for making common version
* Move setupNat to common.nim to be used for v1 and v2
- Remove wakuRelayProto as this is initiated as part of switch PubSub
- Move WakuNode type into waku_types to avoid circular references
- Make necessary adjustments to get tests and sim to work
* Waku v2: Update docs and API with current state
- Publish and subscribe implemented
- Three protocol split
* Update docs/api/v2/node.md
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
* Update waku/node/v2/wakunode2.nim
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
* started working on store protocol
* eol
* update
* fix
* encoding
* started
* started working on decoding
* fixes
* started fleshing out tests
* testing
* encode / decode test
* eol
* fix test
* fmt
* errors
* testing entire rpc now
* fix
* format
* added comment
* removed StoreRPC
* added comment
* readded the store rpc
* updated
* fix tests