Commit Graph

343 Commits

Author SHA1 Message Date
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
Oskar Thoren 8bd432ad33
Use staticnode arg 2020-05-18 13:07:36 +08:00
Oskar Thoren caba9096d1
Fix vendor import in wakunode 2020-05-15 12:11:14 +08:00
Oskar Thoren 072f002990
Add Waku node README 2020-05-15 12:07:49 +08:00
Oskar Thoren 7d51244ffe
Clean up logging and imports 2020-05-15 11:35:32 +08:00
Oskar Thoren 2070f65828
Fix SIGSERV error by initializing child methods 2020-05-15 11:29:01 +08:00
Oskar Thoren 5e50c6a225
Remove old test file 2020-05-14 10:43:30 +08:00
Oskar Thoren 2e9c2ed949
Move waku test to test folder; reset with floodsub test 2020-05-14 10:28:34 +08:00
Oskar Thoren 2dda8fe3c0
Fix initPubSub call 2020-05-11 12:20:07 +08:00
Oskar Thoren edd0074ff7
Move waku test out; basic protocol handler 2020-05-11 12:05:28 +08:00
Oskar Thoren 824bef65ad
Import standard_setup and utils
Will be used for new PubSub protocol
2020-05-10 15:13:26 +08:00
Kim De Mey eb880f5b8b
Move and update Readme.md (#9) 2020-05-08 22:39:16 +02:00
Kim De Mey a254ec03da
Bump nim-eth and move tests under v1 subfolder (#3) 2020-05-08 09:36:28 +02:00
kdeme f445c12830
Correct wakunode dockerfile 2020-05-04 18:20:35 +02:00
kdeme 5c701d35cc
Move waku_protocol + tests from nim-eth 2020-05-01 14:43:25 +02:00
kdeme 55538c7bf8
Add protocol2 target after rebase + fix some import paths 2020-05-01 12:05:19 +02:00
kdeme 87e4e5282a Move Nimbus Waku RPC code + add converted whisper rpc test
- Move Waku RPC code from Nimbus + necessary code around it
- Add Waku RPC test which is a copy of the Whisper RPC test
- Some renaming
- Remove nimbus submodule
2020-05-01 11:29:16 +02:00
kdeme fe1450d4b4 Update waku/node with latest of waku files in nimbus repository 2020-05-01 11:29:16 +02:00
kdeme c4ac6de5ae Set up repo to make use of nimbus-build-system 2020-05-01 11:29:16 +02:00
Oskar Thoren 0255e8def7
Move Waku node into v0 folder; hacky vendor dir; fix Makefile path 2020-04-28 14:46:00 +08:00
Oskar Thoren b560e8ca1a
Hacky import vendor declaration 2020-04-28 14:27:13 +08:00
Oskar Thoren 2f290d95d6
Import Waku folder from Nimbus 2020-04-28 14:04:27 +08:00