Commit Graph

248 Commits

Author SHA1 Message Date
Simon-Pierre Vivier 3e72e83067
refactor: Moved external APIs out of node (#2069) 2023-09-22 09:36:46 -04:00
NagyZoltanPeter 02a814bd35
feat: lightpush rest api (#2052)
RestApi Lightpush endpoint implemented
* Openapi definition for lightpush rest api
* Update waku/node/rest/lightpush/handlers.nim
* Fix install handler naming, added negative test cases and fixes for restapi lightpush
* Fix error handling in lightpush rest handler
* Fix main success case - relay message that comes with pushRequest
* Fix rest relay serdes test with RelayWakuMessage validation changes
* Checking response message tests
2023-09-22 13:46:55 +02:00
Ivan Folgueira Bande 1c4533a27a
Bumping vendor/nim-confutils and vendor/nim-serialization (#2056) 2023-09-21 13:12:14 +02:00
NagyZoltanPeter dac072f843
feat: HTTP REST API: Filter support v2 (#1890)
Filter v2 rest api support implemented 
Filter rest api documentation updated with v1 and v2 interface support.
Separated legacy filter rest interface
Fix code and tests of v2 Filter rest api
Filter v2 message push test added
Applied autoshard to Filter V2
Redesigned FilterPushHandling, code style, catch up apps and tests with filter v2 interface changes
Rename of FilterV1SubscriptionsRequest to FilterLegacySubscribeRequest, fix broken chat2 app, fix tests
Changed Filter v2 push handler subscription to simple register
Separate node's filterUnsubscribe and filterUnsubscribeAll
2023-09-14 21:28:57 +02:00
Aaryamann Challani 645b034367
feat(rln-relay): removed rln from experimental 🚀 (#2001)
* feat(rln-relay): removed rln from experimental 🚀

* fix(waku_node): if rln-relay is nil, return true

* chore(tests): mark rest health as skipped
2023-09-11 12:02:31 +05:30
NagyZoltanPeter fc6194bb6b
feat: Rest endoint /health for rln (#2011)
* Rest endoint /health added

* Remove dev-debug echo

* Changed not ready message

* Update waku/node/rest/health/handlers.nim

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>

* Various fixes on PR foundings, added comments

---------

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>
2023-09-08 11:19:47 +02:00
Ivan Folgueira Bande 1fb13b0967
Adding healtcheck and reconnection mechanism to the postgres archive driver (#1997)
It starts an asynchronous infinite task that checks the connectivity
with the database. In case of error, the postgres_healthcheck task
tries to reconnect for a while, and if it determines that the connection
cannot be resumed, then it invokes a callback indicating that
situation. For the case of the `wakunode2` app, this callback
quits the application itself and adds a log trace indicating
the connectivity issue with the database.
2023-09-06 19:16:37 +02:00
Aaryamann Challani 483f40c8f7
chore(rln-relay): clean up nullifier table every MaxEpochGap (#1994) 2023-09-06 13:48:02 +05:30
Aaryamann Challani debc5f19d9
feat(relay): ordered validator execution (#1966)
* feat(relay): ordered validator execution

* fix: make more readable

* test: ignore accepts only

* fix: idempotent .subscribe

* fix(rln-relay): make validators private

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>

* fix: include comments, unsubscribe behaviour

* fix: compilation

---------

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>
2023-09-05 14:35:07 +05:30
Aaryamann Challani a14c32614a
chore(rln-relay): use the only key from keystore if only 1 exists (#1984)
* chore(rln-relay): use the only key from keystore if only 1 exists

* fix: convert iterator to seq and then index into it
2023-09-04 15:46:44 +05:30
Simon-Pierre Vivier 037b166263
fix: --topic should be ignore when using --pubsub-topic or --content-topic (#1977) 2023-08-31 16:13:45 -04:00
Ivan Folgueira Bande 7d37f2ec28
external_config.nim: cleanup 'store-resume-peer' attribute (#1970) 2023-08-31 17:29:05 +02:00
Aaryamann Challani e7b2b88f5b
fix(rln-relay): modify keystore credentials logic (#1956)
* fix(rln-relay): modify keystore credentials logic

fix: bump version

* Update waku/waku_rln_relay/group_manager/on_chain/group_manager.nim

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>

* Update tests/waku_rln_relay/test_waku_rln_relay.nim

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>

* Update waku/waku_keystore/protocol_types.nim

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>

* fix: greatly improve error handling

* fix: display proc and appropriate assert

---------

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>
2023-08-29 17:46:21 +05:30
Simon-Pierre Vivier 4539dfc761
feat(discv5): topic subscriptions update discv5 filter predicate (#1918) 2023-08-23 11:50:59 -04:00
Simon-Pierre Vivier c369b3294e
feat: topic subscriptions updates discv5 ENR (#1875) 2023-08-23 09:53:17 -04:00
Aaryamann Challani 6c6302f9e1
fix(rln-relay): waitFor startup, otherwise valid proofs will be marked invalid (#1920) 2023-08-22 17:47:06 +05:30
Aaryamann Challani f08315cdde
fix(rln-relay): remove registration capability (#1916) 2023-08-22 11:49:18 +05:30
Alvaro Revuelta af95b5713f
chore(rln): run rln in all relay pubsubtopics + remove cli flags (#1917) 2023-08-21 08:55:34 +02:00
Simon-Pierre Vivier cf3013962c
feat: update various protocols to autoshard (#1857)
* feat: update FILTER & LIGHTPUSH to autoshard
2023-08-17 08:11:18 -04:00
richΛrd fc604ca5f6
fix: no enr record in chat2 (#1907) 2023-08-14 20:43:10 -04:00
Simon-Pierre Vivier d5d2243c2e
fix: bring back default topic in config (#1902)
* fix: bring back default topic in config

* fix

* Fix a bug

* Fix enr creation
2023-08-11 17:28:24 +02:00
Vaclav Pavlin 7dce0b9e94
fix(wakucanary): add missing return on timeout (#1901) 2023-08-11 10:00:19 +02:00
Hanno Cornelius b9d5d28af5
chore: remove references to v2 (#1898)
* chore: remove references to v2

* fix: lingering rln-relay import path
2023-08-09 18:11:50 +01:00
Hanno Cornelius ab344a9dec
chore: remove Waku v1 and wakubridge code (#1874)
* chore: remove v1 code

* chore: deprecate support for v1 compatibility from JSON-RPC API

* chore: remove v1 tests from JSON-RPC suite

* chore: remove wakubridge code

* chore: remove v1 compatibility functions

* chore: remove support for v1 payloads from chat2 app

* chore: remove v1 from CI processes

* fix: lingering references to private API functions

* fix: remove v1 compat from chat2

* fix: some more lingering references in tests
2023-08-07 15:11:46 +01:00
NagyZoltanPeter 08ff667227
feat: Rest API interface for legacy (v1) filter service. (#1851)
* Added Rest API interface for legacy (v1) filter service with tests.
2023-08-04 11:34:22 +02:00
Vaclav Pavlin 831a093f25
fix(wakucanary): add enr record to builder (#1882) 2023-08-04 07:22:31 +02:00
Simon-Pierre Vivier afb93e2995
feat: autosharding content topics in config (#1856)
- added content topic to config.
- updated ENR building to include content topics.
2023-08-01 16:01:44 -04:00
Simon-Pierre Vivier bbff1ac138
feat: autosharding core algorithm (#1854)
- basic rendezvous hashing
- content topic parsing
- sharding config
- tests
2023-08-01 09:05:16 -04:00
Aaryamann Challani 3fe4522a7e
chore(rln-relay): verify proofs based on bandwidth usage (#1844)
* chore(rln-relay): Verify proofs based on bandwidth usage

* fix(rln-relay): make default threshold 0, for backwards compat

* fix(rln-relay): add unit test for bandwidth cutoff

* fix(rln-relay): rlnRelayBandwidthTreshold option
2023-07-07 17:28:37 +05:30
Alvaro Revuelta 17b24cded6
feat: limit relay connections below max conns (#1813) 2023-07-04 13:31:18 +02:00
Ivan Folgueira Bande 97d3b9f79f
chore(refactor): Move record creation & fix libwaku compilation (#1833)
* Move record creation & fix libwaku

* app,external_config,internal_config,libwaku,sharding: refactorgin to make it compile

---------

Co-authored-by: SionoiS <simvivier@status.im>
2023-06-29 21:59:53 +02:00
Ivan Folgueira Bande 96aa59ba58
refactor of internal_config to avoid passing a 'WakuNodeConf' item (#1832)
This change is needed so that the `libwaku.nim` code gets simpler. The
`libwaku.nim` can't import the 'WakuNodeConf' type because this is
related to the wakunode2 app, and the library shouldn't know about it.
2023-06-29 11:01:14 +02:00
Simon-Pierre Vivier cf46fb7cf6
chore: discv5 re-org clean-up (#1823)
- Remove discv5 from node and it's builder
- Require a record to init a node (was previously using discv5 record).
- Fix various tests that assumed nodes with discv5.
- Fix ENR creation
- Fix wakubridge
- Fix networkmonitor
2023-06-28 08:57:10 -04:00
Ivan Folgueira Bande 3aefade647
fix(discv5): Fixing issue that prevented the wakunode2 from starting (#1829)
* Fixing issue that prevented the wakunode2 from starting

The issue was introduced in PR#1818.

Before this commit, the `wakunode2` app crashed with the next error:

ERR 2023-06-27 15:57:27.268+00:00 5/7 Starting node and protocols failed
topics="wakunode main" tid=1 file=wakunode2.nim:92 error="failed to
start waku discovery v5: "

* fix tests accordingly

* publisher.nim, subscriber.nim: fix
2023-06-27 15:16:59 -04:00
Simon-Pierre Vivier 62d3653022
chore: move discv5 out of node. (#1818)
- Refactor discv5 start, stop & loop.
- Fix tests.
2023-06-27 09:50:11 -04:00
Ivan Folgueira Bande 52894a82d0
refactor(archive): Moving waku archive logic from app.nim to the archive module (#1817)
* Refactoring the Waku Archive. Simplifying the app.nim

This change is needed to accommodate the further PRs where we will integrate Postgres in `wakunode2`.
2023-06-27 13:24:31 +02:00
Alvaro Revuelta 71c4ac1641
chore: add peer manager config to builder (#1816) 2023-06-23 15:30:28 +02:00
Simon-Pierre Vivier 44f9d8dc0e
chore: discv5 re-org setup (#1815)
Key, netconfig, enr are created at App initialization and config files has been renamed.
2023-06-22 16:58:14 -04:00
Ivan Folgueira Bande a44d4bfbcd
refactor(databases): Creation of the databases folder to keep the logic for sqlite and postgres (#1811)
* Refactoring in sqlite and postgres. Creation of the databases folder.
2023-06-22 11:27:40 +02:00
Ivan Folgueira Bande 5d4fa3ce73
Deprecation of the 'topics' param (#1806) 2023-06-20 13:14:17 +02:00
Simon-Pierre Vivier 50412d1880
sharded topic validation & ENR update (#1795)
Add sharded topic validation and update the node ENR accordingly.
2023-06-19 18:16:25 -04:00
Aaryamann Challani bbded9eea7
feat(rln-relay): resume onchain sync from persisted tree db (#1805)
* feat(rln-relay): resume onchain sync from persisted tree db

* chore(rln-relay): bump zerokit
2023-06-19 15:21:18 +05:30
Aaryamann Challani dba84248f1
chore(rln-relay): pass in the path to the tree db (#1782)
* chore(rln-relay): pass in the path to the tree db

* fix(rln-relay): address visibility

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>

* fix(rln-relay): make db used more explicit

* fix(rln-relay): reduce visibility

---------

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>
2023-06-08 17:22:21 +05:30
Aaryamann Challani a00aa8cc59
feat(rln-relay): pass in index to keystore credentials (#1777)
* feat(rln-relay): pass in index to keystore credentials

* fix(rln-relay): s/MembershipIndex/uint
2023-06-06 23:13:05 +05:30
Alvaro Revuelta 34a9263191
feat(networking): integrate gossipsub scoring (#1769) 2023-06-06 19:28:47 +02:00
Hanno Cornelius 21737c7c1b
feat(discv5): added find random nodes with predicate (#1762) (#1763)
* feat(discv5): added find random nodes with predicate (#1762)

Co-authored-by: Lorenzo Delgado <lnsdev@proton.me>

* chore: play around with sleep times on tests

* chore: simplify flaky tests

* chore: update waku/v2/node/waku_node.nim

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>

* chore: update tests/v2/test_waku_discv5.nim

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>

* chore: update examples/v2/subscriber.nim

Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>

---------

Co-authored-by: Lorenzo Delgado <lnsdev@proton.me>
Co-authored-by: Ivan Folgueira Bande <128452529+Ivansete-status@users.noreply.github.com>
2023-06-06 16:36:20 +02:00
Vaclav Pavlin 835a409d10
feat(wakunode2): enable libp2p rendezvous protocol by default (#1770) 2023-06-01 21:43:10 +02:00
Ivan Folgueira Bande 59ca03a875
feat(postgresql): 1st commit to async sql (waku_archive/driver...) (#1755) 2023-05-25 17:34:34 +02:00
Aaryamann Challani 36266b43cf
fix(rln-relay): keystore usage (#1750)
* fix(rln-relay): keystore usage

* docs(rln-relay): explicit keystore usage
2023-05-22 22:06:55 +05:30
Aaryamann Challani bb9d231bdc
chore(rln-relay): docs and config update for testnet 3 (#1738)
* chore(rln-relay): docs and config update for testnet 3

* chore(rln-relay): update more docs
2023-05-19 18:22:01 +05:30
Ivan Folgueira Bande 665484c17b
refactor: proper use of setupNat (#1740)
Notice that I had to adapt to use 'rlpx_connected_peers' instead
of 'connected_peers' in 'wakunode1.nim' because due to the update
of the 'vendor/nim-eth', which adds the dependency-break with
'confutils' but also includes another changes.

Aside note: we cannot have 'confutils' dependency in 'nim-eth' because
that will prevent the generation of any waku dynamic library.
2023-05-17 18:32:53 +02:00
Ivan Folgueira Bande 2ec9809cf3
fix: wakunode2 config. adding new 'topic' config parameter. (#1727)
* wakunode2 config. adding new 'topic' config parameter.

This new parameter can be repeated and we are starting to deprecate the
parameter 'topics', that expected to receive a space-separated list of
pubsubtopic to subscribe to.

* Appying PR suggestions
2023-05-12 13:37:54 +02:00
Alvaro Revuelta 3e0a693d2e
chore: add timestamp and ephemeral for opt-in dos validator (#1713) 2023-05-05 10:12:49 +02:00
Alvaro Revuelta eaa162ee94
chore: add test vectors dos protection validator (#1711) 2023-05-04 15:38:52 +02:00
Alvaro Revuelta 3e14686950
chore: add validator for dos protec metrics and move to app (#1704) 2023-05-02 16:20:38 +02:00
Alvaro Revuelta 16b4452390
feat: configure protected topics via cli (#1696) 2023-05-02 11:45:50 +02:00
Lorenzo Delgado 209579b0a7
chore: move networkmonitor and wakucanary to apps directory 2023-04-27 16:25:31 +02:00
Lorenzo Delgado ce92fc1aed
refactor(wakunode2): flatten and simplify app setup (#1705) 2023-04-26 19:25:18 +02:00
Lorenzo Delgado c8081c8859
refactor(wakunode2): split setup logic into app module 2023-04-25 15:34:57 +02:00
Lorenzo Delgado e041e04342
chore(core): move peers utils module to waku_core 2023-04-24 16:37:54 +02:00
Lorenzo Delgado 93b0c0713e
chore(core): move utils time module to waku_core 2023-04-19 16:39:52 +02:00
Alvaro Revuelta 14305c610a
feat: curate peers shared over px protocol (#1671) 2023-04-19 16:12:00 +02:00
Lorenzo Delgado c9b6b2308c
chore(core): rename waku_message module to waku_core 2023-04-19 13:29:23 +02:00
Lorenzo Delgado d7b72ac736
chore: flatten waku v2 protocols folder 2023-04-18 15:22:10 +02:00
Ivan Folgueira Bande b2dcb07751
Adding parsePeerInfo and deprecating 'parseRemotePeerInfo' (#1658) 2023-04-12 11:29:11 +02:00
Ivan Folgueira Bande 0b4a2e68e4
chore: allow to call store api endpoints without a storenode (#1575) (#1647)
* test_jsonrpc_store: testing when there is no peer-store-node available
2023-04-12 09:26:26 +02:00
Lorenzo Delgado 1cfb251b65
fix(wakunode2): made setup nat return errors 2023-04-06 13:41:05 +02:00
Ivansete-status b2acb54d6a
feat(rest-api-store): new rest api to retrieve store waku messages (#1611) (#1630)
* feat: new rest api based on the current store json-rpc api and
following the same structure as the current relay rest api.

* feat: the store api attend GET requests to retrieve historical messages

* feat: unit tests.

* feat: allow return message to rest-client in case error (4XX or 5XX)

* chore: always allow to call the store api endpoints (only rest) without explicit storenode (#1575)

* feat: always mounting the current node as storenode client
2023-04-06 11:43:19 +02:00
Lorenzo Delgado e931fa5dc8
feat(node): added waku node builder type 2023-04-05 14:27:11 +02:00
Lorenzo Delgado e8448dfdbe
chore: pointed all waku node imports to the barrel import 2023-04-05 11:58:59 +02:00
Lorenzo Delgado 139428883f
refactor(node): added waku_node barrel import and split config module 2023-04-05 09:46:13 +02:00
Lorenzo Delgado caf78249b2
fix: fixed multiple bare except warnings 2023-04-04 15:34:53 +02:00
Alvaro Revuelta c26dcb2b39
feat: dos protected topic relay msgs based on meta field (#1614) 2023-04-04 10:58:45 +02:00
Lorenzo Delgado f95147f5b7
fix(wakunode2): fix main warnings and drop swap support 2023-03-29 12:47:48 +02:00
Lorenzo Delgado 7639d8d273
refactor(enr): node capabilities code clean up and reorganization 2023-03-08 15:44:10 +01:00
Lorenzo Delgado 67db35e29d
feat(message): differentiate content and pubsub topic namespacing 2023-03-07 11:10:36 +01:00
Lorenzo Delgado d5f93e385d
chore(enr): move waku_enr to protocols module 2023-03-07 10:52:12 +01:00
Lorenzo Delgado 412ac20606
chore: move discovery protocols under protocol module 2023-03-06 17:18:41 +01:00
Lorenzo Delgado 1c39de7fbc
refactor(message): move namespacing utils to waku message module 2023-03-03 10:07:25 +01:00
Aaryamann Challani 8f66e61ac1
feat(rln-relay): group manager integration (#1496)
* feat(rln-relay): init group manager integration

fix(rln-relay): integrate group manager. todo spam and reg handlers

fix(rln-relay): decouple waku-relay and waku-rln-relay

fix(rln-relay): compiles now

fix(chat2): compilation

fix(rln-relay): wip segfault

fix(rln-relay): segfault

fix(chat2|wakunode2): use optional field

fix(rln-relay): wakunode test

fix(rln-relay): uncomment fields in proto decode

fix(rln-relay): used pragma on tests

fix(rln-relay): include cred processing

fix(rln-relay): add reg callback

fix(rln-relay): args to mount

fix(rln-relay): add timeout to waitForExit

fix(rln-relay): use osproc term instead of posix kill

fix(rln-relay): use poParentStream to prevent deadlock

fix(rln-relay): remove poParentStream, remove ganache log output

* fix(rln-relay): abstract tuple into own type
2023-02-28 19:08:30 +05:30
Alvaro Revuelta 700dbbb7fd
refactor(networking): peermanager refactor and cleanups (#1539)
* refactor(networking): use addServicePeer where needed + add metrics
2023-02-27 10:24:31 -07:00
Aaryamann Challani b6a011733d
chore(rln-relay): bump zerokit and update ffi (#1571)
fix(chat2): compilation
2023-02-22 19:47:12 +05:30
Lorenzo Delgado 0a15ce48d8
refactor(rest): deep code and tests reorganization 2023-02-13 15:22:24 +01:00
Lorenzo Delgado 9a40ad6400
fix: remove unused imports 2023-02-13 15:02:34 +01:00
Lorenzo Delgado 2f390ce884
refactor(jsonrpc): deep code and tests reorganization 2023-02-10 10:43:16 +01:00
Lorenzo Delgado a853bf52f0
refactor(wakubridge): split message compatibility from wakubridge 2023-02-10 09:54:47 +01:00
Alvaro Revuelta 9c3e5f5bc5
refactor(px): refactor peer exchange + tests (#1527) 2023-02-09 16:59:29 +01:00
Aaryamann Challani 9ddf0fe1e2
feat(discv5): advertise custom multiaddresses (#1512)
* feat(discv5): allow custom multiaddr advertisement in discv5

feat(discv5): allow custom multiaddr advertisement in discv5

feat(discv5): move discv5 setup from wakunode2 to waku_node

fix(waku_node): def param

test(discv5): test for ext multiaddr

fix(discv5): address comments

fix(discv5): address comments

fix(wakunode2): discoveryconfig in var before init

fix(discv5): pass multiaddr to discv5 directly

fix(discv5): make multiaddrs optional

fix(test): discv5 init

fix(discv5): split discv5 mounting from waku_node

chore(discv5): s/WakuAddressMetadata/WakuNodeAddrMeta/g

* fix(waku_node): 1.25 max conns

* fix(discv5): s/WakuNodeAddrMeta/NetConfig/g

* fix(discv5): address reviews

* fix(discv5): smaller try-catches

* fix(discv5): missing arg

* fix: compile error
2023-02-07 18:36:50 +05:30
Lorenzo Delgado 7f2ea1caeb
refactor(utils): moved noise/compat payload encryption code to utils 2023-02-07 10:45:25 +01:00
Aaryamann Challani c9bc774895
fix(rng): create rng only within isMainModule blocks (#1523)
* fix(rng): create rng only within isMainModule blocks

* fix(rng): wakucanary rng

* fix(rng): address comments
2023-02-06 17:23:05 +05:30
Lorenzo Delgado 8ba36e2dfa
chore(peer_manager): added peer_manager barrel module 2023-02-06 10:03:30 +01:00
Alvaro Revuelta 94459b4886
fix: add safe default values for peer-store-capacity (#1525) 2023-01-31 17:26:22 +01:00
Aaryamann Challani d09ec815ce
feat(wakunode): advertise custom multiaddresses (#1509)
* feat(wakunode2): ability to advertise custom multiaddresses

* test(wakunode): test the feature

* fix(wakunode): remove rln diff

* revert(rln-relay): change that creeped into the diff

* fix(wakunode): move extMultiaddrs closer to nat

* fix(waku_node): idiomatic default arg

* fix(config): shortened validation

* fix(wakunode): discoverable via discv5 and dnsdisc
2023-01-26 15:48:30 +05:30
Alvaro Revuelta ea4703e9a2
feat(networking): add service slots to peer manager (#1473) 2023-01-26 10:20:20 +01:00
Aaryamann Challani 8d74e791df
fix(chat2): warn when rln relay is enabled but not compiled (#1494) 2023-01-16 13:59:45 +05:30
Hanno Cornelius 76bb7520f3
chore: update submodules (#1480)
* chore: switch to nim-eth master branch

* chore: updated submodules

* fix: submodule without error handling

* fix: autonat client
2023-01-11 08:06:30 +02:00
G 226b44c86d
refactor(rln): use zerokit extended_key_gen in place of key_gen (#1459)
* chore(rln-relay): refactor mounting procedure

* fix(rln-relay): tests

* fix(rln-relay|chat2): update mounting proc in chat2, fix args to mountRlnRelay

* refactor(rln): use zerokit extended_key_gen in place of key_gen

refactor(rln): rename membershipKeyPair to identityCredential

update zerokit submodule

refactor(rln): use extended_key_gen; rebrand keypairs to idCredentials

refactor(rln): rename mountRlnRelay memKeyPair argument

* fix(rln): fix wrong field

* fix(rln): add () to toHex

Co-authored-by: Aaryamann Challani <43716372+rymnc@users.noreply.github.com>

Co-authored-by: rymnc <43716372+rymnc@users.noreply.github.com>
2022-12-14 12:28:09 +01:00
Aaryamann Challani 33e9d8b9b2
chore(rln-relay): refactor mounting procedure (#1457)
* chore(rln-relay): refactor mounting procedure

* fix(rln-relay): tests

* fix(rln-relay|chat2): update mounting proc in chat2, fix args to mountRlnRelay

* fix(rln-relay): remove stale todo
2022-12-13 14:56:24 +05:30
Lorenzo Delgado e4c10ed661
feat(wakunode2): support log format format selection 2022-12-07 12:30:32 +01:00
Tanguy 4b180c89bd
Fix Ctrl-C quitting (#1416) 2022-12-06 12:51:33 +02:00
Alvaro Revuelta a7a87f1f10
chore(networkmonitor): Add DNS discovery (#1446)
* chore(networkmonitor): add dns disc to networkmonitor tool

* chore(networkmonitor): decouple ip api calls from main loop

* chore(networkmonitor): add timeout flag
2022-12-05 20:02:21 +01:00
Alvaro Revuelta 670035f32b
chore: print getBacktrace() after sigsegv (#1440) 2022-11-30 19:41:19 +01:00
Alvaro Revuelta 34d116ff58
chore(wakunode): handle sigsegv signal (#1430) 2022-11-29 16:02:18 +01:00
kaiserd 6942e466e8
fix: start px discv5 loop after discv5 has started (#1407) 2022-11-25 14:15:39 +01:00
Alvaro Revuelta 43fd11b4dc
refactor: reuse nim-libp2p peerstore + move peermanager logic (#1383)
* refactor: reuse nim-libp2p peerstore + move peermanager logic

* refactor: fix comments

* refactor: modify reconnectPeers and unittest

* feat(apps): new flag for peerStoreCapacity

* fix(examples): fix example2 target

* refactor: fix comments
2022-11-24 14:11:23 +01:00
Lorenzo Delgado 6811af328c
feat(archive): add waku archive implementation 2022-11-23 10:08:00 +01:00
Lorenzo Delgado 299ee3eb5d
refactor(rln): decouple rln types from waku message type 2022-11-22 18:29:43 +01:00
Aaryamann Challani 853995e17f
chore(rln-relay): barrel imports (#1386)
Co-authored-by: s1fr0 <28568419+s1fr0@users.noreply.github.com>
Co-authored-by: Lorenzo Delgado <lorenzo@status.im>
2022-11-21 15:15:03 +01:00
Lorenzo Delgado 39bf289f43
refactor(protocols): decouple protocol rpc types from api types 2022-11-16 20:02:38 +01:00
Lorenzo Delgado f1ab1475db
fix: store clients with `--store=false` does not install Store Client JSON-RPC API handlers 2022-11-15 22:03:06 +01:00
Hanno Cornelius 97eaa6919b
chore: disable store protocol by default (#1374) 2022-11-14 13:09:37 +02:00
G 63137f3e2a
refactor(rln): remove kilic lib (#1365)
* refactor(rln): remove kilic lib

* chore(rln): address reviewerS
2022-11-09 19:45:04 +01:00
Lorenzo Delgado b07cdb1841
refactor(store): decouple waku store public api types from rpc types 2022-11-09 18:50:18 +01:00
Lorenzo Delgado 4acc611e47
refactor: unify pubsub topic type and default value 2022-11-09 09:55:47 +01:00
Lorenzo Delgado c4f9813ab3
refactor(queue_store): rename queue_store module and simplify api 2022-11-08 16:10:23 +01:00
Lorenzo Delgado b4bda3c10b
fix(rln-relay): remove dependency on applications' configuration 2022-11-08 12:53:47 +01:00
Lorenzo Delgado bcc6c32287
chore: rename protocols rpc_codec procs from init to decode 2022-11-07 16:24:16 +01:00
Lorenzo Delgado 2c2ce20c4e
chore: build rln dependecies only when building v2 2022-11-07 09:14:21 +01:00
Lorenzo Delgado 4509f4f361
refactor(message_store): move message_store to node module 2022-11-04 19:48:22 +01:00
Lorenzo Delgado 7ef4eaf46d
chore: update push raises pragma according to nim 1.6 2022-11-04 10:52:27 +01:00
Lorenzo Delgado cb1f4d46f4
chore: remove unused imports 2022-11-04 10:52:08 +01:00
Lorenzo Delgado 0569beadbe
refactor(peer_manager): move peer_store under peer_manager module 2022-11-04 09:40:13 +01:00
Aaryamann Challani 53e8979aa9
chore(rln-relay): remove all raises and replace with Result types (#1321)
* chore(rln-relay): remove all raises and replace with Result types

* chore(rln-relay): s/var/let

* chore(rln-relay): s/isOk/isOk()

* fix(rln-relay): proc def comments about the result type

Co-authored-by: Lorenzo Delgado <lorenzo@status.im>
2022-11-04 08:30:42 +05:30
Lorenzo Delgado d1df046c87
feat(wakunode2): support configuration via environment variables 2022-11-03 17:58:48 +01:00
Lorenzo Delgado e5a0c3d633
refactor(wakunode2): move configuration load logic to config module 2022-11-03 10:45:06 +01:00
Lorenzo Delgado cf7e51a3f1
fix(wakunode2): fix message retention policy config validation regex 2022-11-02 17:38:24 +01:00
Lorenzo Delgado 0e1dae5956
fix: replace nim's std/nre with nim-regex library 2022-11-02 15:55:09 +01:00
Lorenzo Delgado 83ae6987b8
fix: replace TaintedString type deprecated in nim 1.5 2022-11-02 14:55:48 +01:00
Lorenzo Delgado 8fee1b9bed
feat(filter): split waku filter protocol into server and client 2022-11-02 11:59:58 +01:00
Lorenzo Delgado 1c46b61402
refactor(peer-exchange): move peer management to waku_node module 2022-11-02 09:45:21 +01:00
Lorenzo Delgado 0de5a122ef
chore(common): move sqlite module to common module 2022-10-28 20:13:41 +02:00
Lorenzo Delgado ee86d190d6
refactor(node): use store client in waku_node 2022-10-28 20:11:28 +02:00
Lorenzo Delgado 2c1ad9f760
refactor(node): use lightpush client in waku_node 2022-10-28 16:30:01 +02:00
Alvaro Revuelta d479aacec5
feat(wakunode2): add nwaku agent-string to switch (#1302) 2022-10-28 15:12:06 +02:00
Hanno Cornelius 16c85db43c
chore: update submodules and bump Nim to 1.6.6 (#1307)
* chore: update submodules

* fix: libp2p now provides callback to update peer addrs

* fix: breaking change in EthereumNode constructor

* fix: contentType type has changed (again)

* fix: explicit future type

* fix: nim 1.6.6 error handling requirements

* fix: missed a spot - peer info addrs in sim2

* fix: help compiler a bit here
2022-10-28 12:51:46 +03:00
G ea8d72188e
feat: add keyfile support for RLN credentials secure storage (#1285)
* feat(utils): add keyfile + test

* feat(keyfile): make id and version field optional

* feat(rln): enable input password for keyfile encryption

* refactor(keyfile): store multiple keyfiles in single file

* refactor(rln): write and read rln credentials proc using keyfiles + test update

* feat(keyfile): allow skip successful decryption to iterate among multiple keyfiles + test

* fix(rln): add rln-relay-cred-password in wakunode2 config

* chore(keyfile): remove unnencessary echo

* refactor(rln/kesyore): address reviewers' comments

* refactor(rln/keyfile): use defer instead of try/finally

* feat(rln): address reviewers comments; return all successful decryptions

* chore(keyfile): add comments; changed name to loadKeyfiles

* feat(keyfile): chmod 600 for keyfiles

* fix(rln): fix errors raised by readRlnCredentials

* feat(keyfile): add nim-eth tests; address reviewers comments

* fix(keyfile/rln): better error handling

* refactor(keyfile): refactoring nim-eth tests

* fix(keyfile): fix wrong index

* fix(keyfile): fix wrong password generation in test

* feat(keyfile): add wrong mac test

Co-authored-by: Aaryamann Challani <43716372+rymnc@users.noreply.github.com>
2022-10-28 11:13:05 +02:00
Lorenzo Delgado 62328f0abd
feat(wakunode2): simplify wakunode2 config and decouple peer persistence 2022-10-28 00:05:02 +02:00
Lorenzo Delgado 0725da0b66
chore(node): waku node code reorganization 2022-10-27 17:29:09 +02:00
Lorenzo Delgado bccb73c325
feat(store): simplify wakunode2 configuration options 2022-10-26 17:10:30 +02:00
kaiserd f5ce9ce4a4
fix(wakunode2): no peer-exchange peer error msg
Co-authored-by: ksr <kaiserd@users.noreply.github.com>
2022-10-26 12:50:19 +02:00
kaiserd c99b0a4778
fix: call runPeerExchangeDiscv5Loop (#1297) 2022-10-25 12:15:10 +02:00
Lorenzo Delgado c19081b6ce
refactor(wakunode2): extract setup proc definitions from main section 2022-10-21 15:01:01 +02:00
Aaryamann Challani bdb120d842
feat(chat2): metrics server + metrics logging (#1279)
* feat(rln-relay): periodically log metrics

* fix(chat2): enable metrics by default in chat2 config

* test(chat2): metrics, gc compilation error

* chore(metrics): make metrics a util, and import into wakunode2 apps dir

* fix(metrics): raise error

* fix(metrics): gc error

* fix(wakunode2): remove setup_metrics

* chore(metrics): waku utils metrics

* fix(metrics): create waku_metrics in node dir

* fix(metrics): log scope

* fix(chat2): disable metrics server by default

* fix(utils): collectorAsF64 proc def

* fix(metrics): store metrics path
2022-10-21 14:03:36 +05:30
Lorenzo Delgado e5c3aa560e
feat(store): add waku store client module 2022-10-20 18:09:40 +02:00
Alvaro Revuelta df6d215424
fix: log-level being ignored (#1272) 2022-10-18 18:03:43 -05:00
Lorenzo Delgado 757804c9ee
chore(wakunode2): move wakunode2 to apps directory 2022-10-18 12:35:26 -05:00
Lorenzo Delgado 5046a4b3da
refactor(node): split wakunode into waku_node and wakunode2 2022-10-18 09:05:53 -05:00
Lorenzo Delgado 5fbc537cbf
chore: move apps and tools to their own directory 2022-10-12 14:41:25 -05:00