63 Commits

Author SHA1 Message Date
Oskar Thorén
53682341b2 Accounting SWAP protocol basic data types and test (#262)
* Start of SWAP

* SWAP basic data types (untested)

* SWAP Add handshake test and fix imports

* SWAP Add cheque encode/decode test and fix bug
2020-11-13 14:02:17 +08:00
Hanno Cornelius
7a8a50f563 Feature/unsubscribe from content filter (#255)
Unsubscribe from a content topic

Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
2020-11-10 09:13:16 +02:00
Sanaz Taheri Boshrooyeh
53e1a9289d Pagination feature/indexing waku messages (#233)
* 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>
2020-11-09 12:48:09 +08:00
Dean Eigenmann
6dc111ee2a Add WakuMessage version as per spec (#250) 2020-10-30 16:46:07 +01:00
Sanaz Taheri Boshrooyeh
94a28d9fb7 adds protobuf methods for pagination (#248) 2020-10-30 09:55:31 +08:00
Hanno Cornelius
79a1b1d082 Add functionality to unsubscribe from pubsub topic (#241) 2020-10-27 09:13:56 +08:00
Dean Eigenmann
cb6fb5d309 fix/content-type-int (#235)
* fixes

* fixes

* using a better topic

* fix

* fixed
2020-10-21 16:55:06 +08:00
Dean Eigenmann
bef916b31c fix/protocol-strings (#222)
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
2020-10-13 13:10:31 +02:00
Dean Eigenmann
3f334a98b8 feature/mount-filter-node-api (#181)
* started working on filter mount

* fixes

* fix indentation

* fixes

* save

* change

* rm

* Update waku_types.nim

* Update waku_filter.nim

* fixes

* fix

* using new filter

* did some testing stuff

* rm

* fix

* updated

* update doc

* fix

* fix

* unasynced

* fix

* w -> node

* rename

* move to content filter

* fix

* method

* rename

* renamed contentFilter -> contentFilters

* readded

* moved

* first test fix

* readded

* no more need

* fixes

* fix

* fix

* fixes

* todo

* removes mother fuck

* Update waku_types.nim
2020-10-02 14:48:56 +02:00
Dean Eigenmann
66fdea5797 feature/use-crypto-rng (#190)
* fixes

* fix

* Update waku_types.nim

* fixes

* fix

* Improve the generateRequestId call

Co-authored-by: kdeme <kim.demey@gmail.com>
2020-09-28 23:44:14 +02:00
Dean Eigenmann
17ffdfc463 enhancement/store-message-handler (#185)
* started working on wrapper

* fixes

* changes

* fixes

* Update waku_store.nim
2020-09-25 16:02:13 +02:00
Dean Eigenmann
c40ee04e58 sync/filter-spec-alpha6 (#184) 2020-09-24 14:06:41 +02:00
Dean Eigenmann
300dbf8dcb feature/store-query-node-api (#174)
* changes

* fix

* changes

* made the query function work

* added rpc

* whoops

* Update wakurpc.nim

* minor

* fixes

* update docs

* fix

* error handling

* end-to-end waku node test

* Update test_wakunode.nim

* Update waku/node/v2/rpc/wakurpc.nim

Co-authored-by: Oskar Thorén <ot@oskarthoren.com>

* Update test_wakunode.nim

* Update wakunode2.nim

* fix

* fix

* shorter

* rm echo

* fix

* added history peer

Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
2020-09-24 10:16:25 +08:00
Dean Eigenmann
f376f9f6c6 fix/make-filter-work (#182)
* starts to actually get the filter protocol working

* made it work

* Update all_tests_v2.nim

* Update test_waku_filter.nim
2020-09-23 06:19:37 +02:00
Dean Eigenmann
bcae93300a fix/libp2p-protocol-inheritance (#173) 2020-09-18 15:28:19 +02:00
Dean Eigenmann
fe5c0a9ce8 fix/move-protocols-to-node (#172) 2020-09-18 12:14:52 +02:00
Dean Eigenmann
7bc0381768 fix/message-notifier-async (#169)
* made async

* fixes

* unused

* eol
2020-09-17 22:10:41 +02:00
Oskar Thorén
f234126ffd Bump relay protocol to beta1 (#164)
As of https://github.com/vacp2p/specs/pull/185
2020-09-17 19:24:27 +08:00
Dean Eigenmann
277f98d21d feature/subscriptions-in-node (#141)
* test

* Update wakunode2.nim

* input from @kdeme

* Update wakunode2.nim

* moved

* Update waku_message.nim

* fixed

* fix

* fix

* fix

* fix

* fix
2020-09-17 10:17:52 +08:00
Oskar Thorén
72b6e7debc Bump submodules (#157)
* 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 3a3139e4cfbb5ae9500fd30b2e79c676ccc4a53b.

* Only using gossip seems to work

Subscribe for floodsub broken

* Fix await in examples

* Get rid of double publish, still need sleep
2020-09-16 12:23:10 +08:00
Dean Eigenmann
4906149b27 fix/message-notifier-message-to-waku-message (#159)
* update message type

* cleanup
2020-09-16 10:59:10 +08:00
Dean Eigenmann
448f4554c3 spec/alpha-v4 (#151) 2020-09-10 13:16:31 +02:00
Oskar Thorén
1b12c67f0c Add basic rpc scripts to publish and subscribe (#140)
* 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>
2020-09-10 12:18:35 +08:00
Dean Eigenmann
f511e474de refactor/rename-filter-subscription (#138)
* fixes

* added

* added comment
2020-09-07 13:26:32 +02:00
Dean Eigenmann
9ab9763d57 enhancement/push-based-filter (#136)
* updated protobuf

* updated test
2020-09-07 11:12:27 +02:00
Kim De Mey
6ae03e5bc7 Remove filter parts from relay as this is obsolete (moved to WakuNode) (#132) 2020-09-02 16:52:00 +02:00
Kim De Mey
c3358168f9 Move filter.notify to WakuRelay handler and add test (#128) 2020-09-02 11:15:25 +08:00
Dean Eigenmann
1448f03827 feature/mount-store (#111)
* 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>
2020-09-02 11:08:48 +08:00
Oskar Thorén
6c511c92c5 Add support for WakuMessage and merge publish function (#122)
* 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>
2020-09-01 17:20:38 +02:00
Kim De Mey
91344e3ce2 Fix compile failure + CI endless example run (#126) 2020-09-01 15:43:06 +02:00
Oskar Thorén
46e395ec56 Partial filter (#120)
* 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>
2020-09-01 11:03:17 +08:00
Kim De Mey
2a77ecc2bf V2cleanup (#115)
* Cleanup of warnings + imports, etc.

* Remove connected_peers metric as there is already libp2p_pubsub_peers
2020-08-31 11:32:41 +08:00
Dean Eigenmann
cfc7575ea7 enhancement/request-id-to-uuid (#113) 2020-08-28 13:07:52 +02:00
Dean Eigenmann
a13526fe87 feature/store-protocol (#102)
* 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
2020-08-27 10:44:09 +08:00
Oskar Thorén
b96a0931a8 Refactor: Waku protocol -> Waku relay protocol (#104)
* Refactor: Waku protocol -> Waku relay protocol

Including updating protocol string.

Addresses https://github.com/status-im/nim-waku/issues/101

* Refactor: WakuSub -> WakuRelay
2020-08-26 19:28:24 +08:00
Dean Eigenmann
af7e29cbfa fix/filters (#79)
* fixes, using rpc msgs

* clean

* moved
2020-07-27 12:25:03 +02:00
Oskar Thorén
32bddd2ad6 Node: Separate run into create Wakunode and start (#59) 2020-07-24 09:39:58 +08:00
Dean Eigenmann
8517755a85 feature/filter (#63)
* simplified filter

* add filter

* eol

* Update waku_protocol2.nim

* trigger GitHub actions

* comment

* fix import

* oops

* and

* init filters

* import tables
2020-07-22 18:29:52 +02:00
Kim De Mey
e42cd95189 Bump vendor, fix builds and add v2 to CI (#45)
* Fix v2 builds, break v1 builds

* Fix build after nim-eth bump

* Add waku v2 build and tests to CI

* Fix parallel build issues by renaming
2020-07-13 12:08:03 +02:00
Oskar Thoren
c0f3927483 Update protocol identifier to /wakusub/2.0.0-alpha1 2020-07-07 11:23:20 +08:00
Kim De Mey
4a515f86a9 Refactor to abstract away the p2p request handler from mailserver (#34) 2020-06-30 15:29:02 +02:00
Dean Eigenmann
82cc06cd62 feature/accounting (#29)
* adds accounting experimentally

* updated

* sent

* updated

* print metrics

* var

* indent

* fix
2020-06-18 11:16:23 +08:00
Oskar Thoren
3abaf75593 Use gossipsub 2020-06-15 11:07:15 +08:00
Kim De Mey
ecdc29d93a Use metrics with labels, fix #24 (#27) 2020-06-09 13:44:39 +02:00
Oskar Thoren
83abcf58d8 Propagating subscribes work, BUT at perf (need light node behavior) 2020-06-03 19:32:11 +08:00
Oskar Thoren
aeb34d68de Manual topic interest intermediate direct nodes work 2020-06-03 19:30:37 +08:00
Oskar Thoren
16b74ad80d parameterize floodsub/gossipsub 2020-06-02 19:27:53 +08:00
Oskar Thorén
f87bf39e39 FloodSub -> GossipSub (#19)
Add GossipSub methods
2020-06-01 11:42:16 +08:00
Oskar Thorén
c2da1b0170 Update all vendor (#23)
* Upgrade all vendors

* Fix subscribeTopic signature
2020-05-29 09:41:13 +02:00
Oskar Thoren
64685135ae Remove unused imports 2020-05-27 12:09:05 +08:00