Commit Graph

271 Commits

Author SHA1 Message Date
Hanno Cornelius d6bafcf697
Feature/add admin api (#319)
* Add Admin API
2020-12-15 17:48:00 +02:00
Hanno Cornelius fa4d873ee3
Limit cache size on Filter API and Relay API (#317)
Minor improvements to Filter API and Relay API
2020-12-07 15:26:58 +02:00
Jakub Sokołowski e7d031fadd waku.nimble: rename wakunode1 task binary to wakunode1
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-12-04 11:18:31 +01:00
Hanno Cornelius 57f69201d6
Added content topic polling on FilterAPI (#314) 2020-12-03 18:26:34 +02:00
Hanno Cornelius 8a1ca1ff8f
Await WakuRelay publish on node (#313)
* Await WakuRelay publish on node

* Reflect 'await' change on CHANGELOG
2020-12-02 10:40:53 +02:00
Hanno Cornelius d3c5840a79
Feature/jsonrpc basic impl (#311)
* Added some basic debug and relay json-rpc calls

* Basic relay polling
2020-12-01 11:57:54 +02:00
Hanno Cornelius 51b35c59c6
Added some basic debug and relay json-rpc calls (#309) 2020-11-30 11:44:57 +02:00
Hanno Cornelius dc3b3b87be
Added some basic debug and relay json-rpc calls (#305) 2020-11-27 09:18:48 +02:00
Oskar Thorén 35f9e52d49
Accounting: End to end with Cheque PoC (#304) 2020-11-26 18:02:10 +08:00
Dean Eigenmann 309bcb05a1
enhancement/remove-flood (#295)
* removes flood

* rm

Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
2020-11-24 10:14:18 +01:00
Oskar Thorén 63b0e8af76
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
2020-11-24 12:53:42 +08:00
Oskar Thorén 44e9d4d86b
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
2020-11-24 12:34:32 +08:00
Hanno Cornelius 135eaae9fb
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>
2020-11-24 11:44:37 +08:00
Dean Eigenmann e875027be4
refactor/db-message-store-split (#280)
* fixes

* fic

* fix

* fix

* fix

* fixed

* fix

* fixes

* fixes, using sqlite lib fully

* fix

* Update sqlite.nim
2020-11-24 10:50:59 +08:00
Oskar Thorén 54ac399f5f
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
2020-11-23 10:27:45 +08:00
Oskar Thorén f8aff5756c
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
2020-11-21 13:31:48 +08:00
Dean Eigenmann 1193b69d6c
enhancement/cleanup-warnings (#290) 2020-11-20 14:59:29 +01:00
Oskar Thorén 010408aadb
Minimal accounting state PoC (#278)
* Add basic WakuSwap type and init

* Mount swap protocol and keep accounting state

* Flags off by default
2020-11-18 20:45:51 +08:00
Hanno Cornelius e68fe50bc1
Updated submodules (#279) 2020-11-18 13:58:46 +02:00
Oskar Thorén 9518322198
Folder restructure (#274)
* 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>
2020-11-17 17:34:53 +08:00
Oskar Thorén d46f357495
Minimal accounting (#264)
* 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
2020-11-16 17:55:49 +08:00
Dean Eigenmann 1568fa6e6f
feature/persistence-simple (#268)
* implements

* add

* fix

* eol

* rebase

* added tests

* minor cleanup

* errors

* Update store.md

* fix
2020-11-16 09:38:52 +01:00
Oskar Thorén a1bb2c4954
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 24f4a087de
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 ea5f9993a7
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
Kim De Mey 0b70fe61a4
Add encoding/decoding of payload for Waku v2 (#251)
* Add encoding/decoding of payload for Waku v2

* Allow for Waku v1 payload in chat through compile time flag
2020-11-03 21:20:40 +01:00
Dean Eigenmann 57c3cd44a9
changed to int (#253) 2020-11-03 11:14:29 +08:00
Dean Eigenmann 6262f01c7c
Add WakuMessage version as per spec (#250) 2020-10-30 16:46:07 +01:00
Sanaz Taheri Boshrooyeh 0cb2e125b6
adds protobuf methods for pagination (#248) 2020-10-30 09:55:31 +08:00
Oskar Thoren 4b21bb6b9b
Default topic: waku -> /waku/2/default-waku/proto 2020-10-28 13:19:43 +08:00
Dean Eigenmann 45d57efaea
feature/add-filter (#244)
* started working on adding filter

* fix

* fix

* fix

* not subscribing

* fix

* filter

Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
2020-10-27 11:40:29 +01:00
Hanno Cornelius 16c4e65762
Add functionality to unsubscribe from pubsub topic (#241) 2020-10-27 09:13:56 +08:00
Kim De Mey aab93912ef
Cleanup the wakunode2 config (#242) 2020-10-22 17:04:17 +02:00
Dean Eigenmann bfb29338a1
fixes/wait-for-start (#228)
* fixes subscribe to wait for start

* moved around

* added test

* fix

* eol

* rm

* removed as waku is default

* updated docs

* fix

* Update node.md

* Update node.md

* Update wakunode2.nim

* Update wakunode2.nim

* fix test

* rm

* fix

* fixes

* fixes

* fix

* fix

* using connect

* fix

* fix

* Update wakubridge.nim

* Update wakunode2.nim
2020-10-22 13:12:00 +02:00
Kim De Mey dcbefbf4d6
Wakuv1v2 process (#238)
* 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>
2020-10-21 17:54:29 +08:00
Dean Eigenmann 5ddd8701c9
fix/content-type-int (#235)
* fixes

* fixes

* using a better topic

* fix

* fixed
2020-10-21 16:55:06 +08:00
Dean Eigenmann b2edfe8dda
feature/start-protocol-command (#209)
* started working

* fixes

* rename start -> mount

* started logging

* mounting relay

* Update wakunode2.nim

* start of fixe

* fix

* fix

* fixes

* Update waku/node/v2/wakunode2.nim

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

* removed comment

* fix

* update

* changed the default

Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
2020-10-20 10:36:27 +08:00
Sanaz Taheri Boshrooyeh d6c48da071
Pagination: Pagination feature/compute index (#225)
* 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>
2020-10-20 10:20:44 +08:00
Dean Eigenmann 5c25ed131a
enhancement/integrate-store-chat (#230)
* added store protocol

* setting peer

* fix

* line

* Update dingpu.md

* Update chat2.nim

* Update dingpu.md

* Update dingpu.md

* playing around

* fix

* fix

* fixes

* tested

* tested and finalized

* fix

* Update docs/tutorial/dingpu.md

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

* Update chat2.nim

* fix

Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
2020-10-15 13:56:53 +02:00
Oskar Thoren e3099f1ab3
Revert "enhancement/integrate-store-chat (#208)"
This reverts commit 5c338ba731.

Breaks chat2
2020-10-15 13:06:09 +08:00
Dean Eigenmann 5c338ba731
enhancement/integrate-store-chat (#208)
* added store protocol

* setting peer

* fix

* line

* Update dingpu.md

* Update chat2.nim

* Update dingpu.md

* Update dingpu.md

* playing around

* fix

* fix
2020-10-14 14:33:21 +02:00
Oskar Thorén d6fdecafd8
Fix timing issue with subscribe in chat2 (#226)
- Support static node
- Ensure nodes are connected before subscribing
- Sleep to allow settling down before subscribing
- Default chat2 log to DEBUG
2020-10-14 18:34:29 +08:00
Kim De Mey f31ab81546
Pass ReuseAddr flag for wakunode2 (#223) 2020-10-14 11:32:37 +08:00
Dean Eigenmann c2024344cf
fix/protocol-strings (#222)
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
2020-10-13 13:10:31 +02:00
Dean Eigenmann 9ac41b2eda
feature/filter-rpc-script (#200)
* started working

* fixes

* added tutorial

* added

* rm from description
2020-10-09 15:58:50 +02:00
Kim De Mey daeb736335
Cleanup warnings in v1 and split test target in Makefile (#211)
* Cleanup warnings in v1 and split test target in Makefile

* Remove protocol2 target and get chat2 build in CI
2020-10-08 11:10:45 +02:00
Oskar Thorén a6e94bf171
Node Info API call. (#202)
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
2020-10-06 11:33:28 +08:00
Dean Eigenmann a975bf6d70
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 3eb015ee7b
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 25b48bb99e
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 bcc931baf5
feature/rpc-query (#186)
* started working on rpc query

* rpc

* fixes

* setup

* made it work

* update

* Create store.md

* Update nangang.md
2020-09-25 13:35:32 +02:00
Dean Eigenmann 29706734a8
sync/filter-spec-alpha6 (#184) 2020-09-24 14:06:41 +02:00
Dean Eigenmann 1f68e63185
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 e1414ac922
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
Oskar Thorén 21283d291c
Don't crash on non WakuMessage in rpc subscribe (#175)
Instead, log stringified version. (This is used for other PoC right now.)
2020-09-22 10:14:39 +08:00
Dean Eigenmann 255e762536
fix/libp2p-protocol-inheritance (#173) 2020-09-18 15:28:19 +02:00
Dean Eigenmann b25c1e10f2
fix/move-protocols-to-node (#172) 2020-09-18 12:14:52 +02:00
Dean Eigenmann 24e2f7dcdc
removed (#171)
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
2020-09-18 11:48:18 +08:00
Dean Eigenmann 6b866490ad
fix/message-notifier-async (#169)
* made async

* fixes

* unused

* eol
2020-09-17 22:10:41 +02:00
Oskar Thorén 69e4ff8991
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 c55635e93e
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 a8dbf8a7b6
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 3a3139e4cf.

* 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 dfee0359af
fix/message-notifier-message-to-waku-message (#159)
* update message type

* cleanup
2020-09-16 10:59:10 +08:00
Dean Eigenmann 03895ffaf5
feature/subscribe-to-waku (#152)
* sub by default

* added

* fmt

* fix

* moved

* removed

* fix
2020-09-11 13:28:27 +02:00
Oskar Thorén 4447a93884
JSON RPC: Use WakuNode instead of WakuRelay (#154)
* Using Node publish for JSON RPC

Compiles, untested

* Subscribe and print waku message

* Readable string

* Use actual input
2020-09-11 15:49:45 +08:00
Kim De Mey 1f3fe21bb9
Minimal changes of splitting API and CLI code to make import in wakurpc work (#153) 2020-09-11 12:16:45 +08:00
Dean Eigenmann 4a5acd224a
spec/alpha-v4 (#151) 2020-09-10 13:16:31 +02:00
Oskar Thorén e5f0f36f01
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 76e0b49e2b
feature/mount-filter-protocol (#125) 2020-09-07 14:22:46 +02:00
Dean Eigenmann a4c6caa62f
refactor/rename-filter-subscription (#138)
* fixes

* added

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

* updated test
2020-09-07 11:12:27 +02:00
Kim De Mey ea079cf7bd
Remove filter parts from relay as this is obsolete (moved to WakuNode) (#132) 2020-09-02 16:52:00 +02:00
Kim De Mey 2717209f05
Move filter.notify to WakuRelay handler and add test (#128) 2020-09-02 11:15:25 +08:00
Dean Eigenmann 7a2bbdff11
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 f828736e1c
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 fd2bb36b15
Fix compile failure + CI endless example run (#126) 2020-09-01 15:43:06 +02:00
Oskar Thorén e8d3156571
Make basic Waku v2 examples run again (#123)
* 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>
2020-09-01 16:32:19 +08:00
Oskar Thorén 67a964be28
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 ea0d62993d
WakuNode init without WakuNodeConf (#117)
* 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
2020-09-01 10:09:54 +08:00
Kim De Mey ddcfc3fdd6
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 1924bcc96c
enhancement/request-id-to-uuid (#113) 2020-08-28 13:07:52 +02:00
Oskar Thorén 705b4b32a1
Waku v2: Simplify Waku Relay references (#112)
- 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
2020-08-28 17:08:28 +08:00
Oskar Thorén bab0e12d68
Waku v2: Update docs and API with current state (#110)
* 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>
2020-08-27 18:15:46 +08:00
Kim De Mey e875dfd1d7
Properly exit when address is already in use, fix #15 (#108) 2020-08-27 10:44:52 +08:00
Dean Eigenmann 0e62e8ffa4
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
Kim De Mey 4314dcf6e9
Add Waku v1 usage example, fix #54 (#106)
* Add Waku v1 usage example, fix #54

* Add readme for example and fix typos
2020-08-26 14:20:04 +02:00
Oskar Thorén 893134b536
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 c3f57c79f5
feature/historic-api (#95)
* started working on historic api

* very rough code

* moved

* also publishing

* todos

* added tests

* added

* fix
2020-07-29 15:24:01 +02:00
Dean Eigenmann f0d40f1acc
enhancement/move-standard-setup (#94)
* moves out

* oops

* setup

* fix
2020-07-28 13:00:34 +02:00
Dean Eigenmann 2d6c5ae9a1
enhancement/init-function-signature-type (#93) 2020-07-28 12:28:32 +02:00
Oskar Thorén 4745135ee6
Node API: Implement publish (#91)
* Fix init signature according to Node API

See https://github.com/status-im/nim-waku/blob/master/docs/api/v2/node.md

* Update docs and example

* Node API: Basic subscribe

* Modify example with subscribe handler

* Waku Node: Implement basic publish topic
2020-07-28 16:18:30 +08:00
Oskar Thorén ad5d5e2401
Node API: Implement basic subscribe topic (#89)
* Fix init signature according to Node API

See https://github.com/status-im/nim-waku/blob/master/docs/api/v2/node.md

* Update docs and example

* Node API: Basic subscribe

* Modify example with subscribe handler
2020-07-28 16:17:50 +08:00
Oskar Thorén 1ca3962e8d
Fix init signature according to Node API (#80)
* Fix init signature according to Node API

See https://github.com/status-im/nim-waku/blob/master/docs/api/v2/node.md

* Update docs and example
2020-07-28 16:06:00 +08:00
Dean Eigenmann 75d7d4780e
fix/filters (#79)
* fixes, using rpc msgs

* clean

* moved
2020-07-27 12:25:03 +02:00
Oskar Thorén 3c11734bbf
Simplify Node API (#77)
* Waku v2 Node API: Split into implemented and NYI

- Init is now separated into Create and Start node

* Simplify Node API

* Node API: proc->method and add WakuNode as first argument

* Fix indent to make compile

* Stub out all API methods
2020-07-27 17:01:06 +08:00
Oskar Thorén bede5a9358
Node: Separate run into create Wakunode and start (#59) 2020-07-24 09:39:58 +08:00
Dean Eigenmann fb45502ba7
enhancement/protobuf (#47)
* changed to data

* fix

* updated

* checkpoint

* sending protobuf

* working on tests

* bump

* fix

* fix

* fix

* testing

* Update test_waku.nim
2020-07-23 10:53:29 +08:00
Dean Eigenmann 0799ef9c16
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
Oskar Thorén e493c84b2a
Add basic example usage for Waku v2 (#52)
* Make Waku node async and gcsafe, hacky

...but the nimbus people are doing it!

* Add skeleton example usage

* Rename example to basic2 and add to Makefile

* Sketch out basic example and qualify imports etc

Loading config to start with.

Quite messy with imports/ambiguous identifiers/qualified names. Probably a
better way with exports (hide implementation details) and fully qualified names
by default?

* Example usage run, public run function

* Sketch out API usage

* Example basic RPC client usage

* waitFor run to compile

* Remove run and gsync markers; adjust example
2020-07-20 12:40:35 +08:00
Kim De Mey 95438b9389
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
Dean Eigenmann 2fbc371f37
remove dir seperator as we already import os (#42) 2020-07-13 12:18:15 +08:00
Oskar Thoren 35007145f9
Update protocol identifier to `/wakusub/2.0.0-alpha1` 2020-07-07 11:23:20 +08:00
Oskar Thoren 6c07442918
Add back metrics and grafana server under insecure flag
Update RAEDME
2020-07-07 10:43:46 +08:00
Oskar Thoren e8c8221862
More messages for FloodSub vs GossipSub scenario 2020-07-07 10:43:46 +08:00
Kim De Mey 181889dcd8
Cleanup metrics + accounting flag + bump deps (#37)
* Cleaner metrics logging + accounting behind flag + some cleanup

* Bump vendor
2020-07-02 23:52:54 +02:00
Kim De Mey 481379815f
Refactor to abstract away the p2p request handler from mailserver (#34) 2020-06-30 15:29:02 +02:00
Dean Eigenmann c770e3fd76
updated printing enode of peer (#32) 2020-06-19 15:53:06 +02:00
Dean Eigenmann aafb865755
feature/accounting (#29)
* adds accounting experimentally

* updated

* sent

* updated

* print metrics

* var

* indent

* fix
2020-06-18 11:16:23 +08:00
Oskar Thoren 19e6c2a55d
Break out sim into scenarios, one full node mesh vs light 2020-06-15 11:09:20 +08:00
Oskar Thoren 26321ca0c9
Use gossipsub 2020-06-15 11:07:15 +08:00
Kim De Mey 37d8720d52
Use metrics with labels, fix #24 (#27) 2020-06-09 13:44:39 +02:00
Kim De Mey 928280bc4f
Add genNodekey subcommand for #21 (#25) 2020-06-03 20:31:18 +02:00
Oskar Thoren 9fc3e11f3b
Propagating subscribes work, BUT at perf (need light node behavior) 2020-06-03 19:32:11 +08:00
Oskar Thoren 037c3f29cb
Manual topic interest intermediate direct nodes work 2020-06-03 19:30:37 +08:00
Oskar Thoren 407ec3534f
parameterize floodsub/gossipsub 2020-06-02 19:27:53 +08:00
Oskar Thoren 7b14649f2d
quicksim unique messages 2020-06-02 19:27:20 +08:00
Oskar Thoren bb1403a378
Quicksim failing example 2020-06-02 12:30:29 +08:00
Oskar Thoren bcaaf7056f
Adjust logs 2020-06-02 12:30:29 +08:00
Oskar Thorén c1823c3c68
FloodSub -> GossipSub (#19)
Add GossipSub methods
2020-06-01 11:42:16 +08:00
Oskar Thoren 1400575067
Update nim-libp2p and other submodules
Need to use latest libp2p for GossipSub bug fix, safer to update all

Use MultiAddr.tryGet() per resultification upstream
2020-06-01 11:40:55 +08:00
Oskar Thorén 610305f27b
Update all vendor (#23)
* Upgrade all vendors

* Fix subscribeTopic signature
2020-05-29 09:41:13 +02:00
Oskar Thoren dcbd0c617a
Hardcode all six nodes listen topic, flooding 2020-05-28 11:52:57 +08:00
Oskar Thoren a8e791ab8c
Maybe connect to multiple peers
Now connnectedpeers is (divide by two?): 0/8/7/6/5/4. Progress?
2020-05-28 11:40:41 +08:00
Oskar Thoren c5fa3543ff
WIP try to fix port shift and multiple address mismatch 2020-05-28 11:28:44 +08:00
Oskar Thoren a229e910a0
Remove unused stuff from wakunode 2020-05-28 11:27:01 +08:00
Oskar Thoren 063a57d583
Fix mesh bug indent 2020-05-28 10:58:37 +08:00
Jakub Sokołowski 8a648a44aa add a Dockerfile for creating nim-waku images
Also I remove old Dockerfile at waku/node/v1/docker.

Images are uploaded to our Docker Hub account:
https://hub.docker.com/r/statusteam/nim-waku

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2020-05-27 12:51:20 +02:00
Oskar Thoren e0a5f810b7
Add support for mesh topology 2020-05-27 13:37:27 +08:00
Oskar Thoren 037e164058
6 nodes in quicksim and post 100 messages 2020-05-27 12:33:53 +08:00
Oskar Thoren 4f4f623b96
More cleanup 2020-05-27 12:25:02 +08:00
Oskar Thoren 971c7a262b
Remove unused imports 2020-05-27 12:09:05 +08:00
Oskar Thoren 57c9ee1138
Basic metrics print node metrics 2020-05-27 12:00:50 +08:00
Oskar Thorén d68f6aedd2
Sleep and debug quicksim to get clearer view (#14) 2020-05-26 12:02:25 +08:00
Oskar Thorén b5006e482e
Upgrade vendor nim-libp2p and related packages (#13)
* Upgrade nim-libp2p to latest

* Upgrade nim-chronos to latest (needed for nim-libp2p)

* Fix conn.readLp varint

* Fix standard switch API change

* WIP: Crypto resultification on v2

* Fix Result usage for SkPrivateKey

* Result fixes

Co-authored-by: kdeme <kim.demey@gmail.com>
2020-05-26 11:55:53 +08:00
Oskar Thoren 97d3119c33
Subscribe RPC and quicksim WIP; hacky in-line handler 2020-05-22 15:35:31 +08:00
Oskar Thoren bcf6ec95ed
wakuPost -> wakuPublish and change sig 2020-05-22 15:28:51 +08:00
Oskar Thoren 444da6a80a
Publish with RPC; fix RPC sigs 2020-05-22 14:25:09 +08:00
Oskar Thoren f7b9fc2613
Change Waku RPC to have access to wakuProto; basic publish rpc 2020-05-22 14:18:14 +08:00
Oskar Thoren dd4a1615f1
Move out WakuProto to waku_types 2020-05-22 14:12:05 +08:00
Oskar Thoren e0a7de170a
RPC version call through quicksim 2020-05-22 12:23:53 +08:00
Oskar Thoren 8ac686ea9e
Setup starNetwork and multitail sim orchestration 2020-05-21 12:36:30 +08:00
Oskar Thoren 11575f5df3
Add master and portoffset option 2020-05-21 12:28:57 +08:00
Oskar Thoren 438f2ecab2
Use config nodekey for deterministic node id from CLI 2020-05-21 12:16:58 +08:00
Oskar Thoren 3d69658dab
Modify config to parse and use libp2p nodekey 2020-05-21 12:16:00 +08:00
Oskar Thoren 05922c8ebc
Build node command with key and adress 2020-05-20 14:21:17 +08:00
Oskar Thoren cbab3d069b
Start network key from/toHex 2020-05-20 13:34:43 +08:00
Oskar Thoren 6771c924e2
Start of start_network 2020-05-19 13:00:03 +08:00
Oskar Thoren 2cf0d2592b
Return correct version string from RPC 2020-05-19 11:49:25 +08:00
Oskar Thoren c67e36fc13
Use waku protocol; switch to p2p in multiaddress; trace 2020-05-18 14:03:33 +08:00
Oskar Thoren 31a6d9a051
Use WakuSubCodec 2020-05-18 13:28:54 +08:00