Commit Graph

614 Commits

Author SHA1 Message Date
Alvaro Revuelta 028efc8547
feat(networking): add backoff period after failed dial (#1462)
* feat(networking): add exponential backoff when dialing relay peers

* feat(networking): fix tests

* revert withTimeout

* feat(networking): refactor tests

* feat(networking): improve logs + ping using switch

* feat(networking): fix backoff bug + fix tests

* feat(networking): fix comments
2023-01-23 21:24:46 +01:00
Aaryamann Challani 9a12872465
fix(rln-relay): use new credentials for compatibility (#1497) 2023-01-19 14:20:08 +05:30
Alvaro Revuelta fd1ec4a74a
feat(networking): add relay connectivity loop (#1482)
* feat(networking): add relay connectivity loop

* Add unit tests

* feat(networking): fix comments

* Fix lnsd comments
2023-01-18 15:17:56 +01:00
Aaryamann Challani 605cf1c38c
feat(rln-relay): abstract group management into its own api (#1465)
* feat(rln-relay): group manager api

* fix(rln-relay): static gm, method async works now

* fix(rln-relay): cb naming, ensure merkle root changed

* chore(rln-relay): static group manager fully tested

* chore(rln-relay): split ffi into its own module, split conversion_utils

* chore(rln-relay): refactor onchain group

* fix(rln-relay): throw error if privatekey is malformed

* chore(rln-relay): convert methods to procs, remove warnings, formatting

* chore(rln-relay): remove comment

* style(rln-relay): fmt test

* feat(rln-relay): complete onchain group manager. pending tests

* fix(rln-relay): onchain implementation works now

* fix(rln-relay): reg index

* fix(rln): imports

* fix(rln-relay): revert method to proc conv

* fix(rln-relay): s/ffi/rln

* fix(rln-relay): remove rln/ from gitignore

* fix(rln-relay): s/ffi/rln
2023-01-16 18:26:18 +05:30
Lorenzo Delgado 3ee87d1848
feat(archive): respond with error on more than 10 content topics query 2023-01-11 12:19:59 +01:00
Alvaro Revuelta 982cd28265
feat(networking): use autonatservice and log if node is reachable (#1472) 2023-01-11 10:57:49 +01:00
Alvaro Revuelta 53bf00de69
refactor: remove unnecessary peermanager dependency (#1474) 2023-01-11 09:10:46 +01:00
Alvaro Revuelta 4eb9375b62
refactor(networking): wait for all futures together in connectToNodes (#1471)
* refactor(networking): wait for all futures together in connectToNodes

* refactor(networking): await fix style
2023-01-09 21:45:50 +01:00
Alvaro Revuelta 333ce0a2e1
fix(rpc): return error if peer cant be connected (#1476) 2023-01-09 14:15:03 +01:00
Alvaro Revuelta 5042b06215
chore(p2p): unify dialpeer functions (#1458) 2022-12-14 16:04:11 +01: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
G 002316cceb
feat(rln): use zerokit as static lib (#1385) 2022-12-06 00:33:03 +01:00
Aaryamann Challani 2e0db18cde
chore(rln-relay): re-enable root validation (#1445)
* fix(rln-relay): enable root validation

* fix(rln-relay): unused import
2022-12-05 23:52:54 +05:30
Lorenzo Delgado 3a4c4c660b
chore(build): simplify project makefile and update dockerfile 2022-11-30 21:02:39 +01:00
Tanguy e487c7d79e
Decouple waku v2 from waku v1 (#1421)
Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>
Co-authored-by: Lorenzo Delgado <lorenzo@status.im>
2022-11-29 20:15:07 +01:00
Alvaro Revuelta 8cce06b8a2
feat(peerstore): store peer direction (#1424)
* feat(peerstore): store peer direction

* feat(peerstore): add getPeersByDirection function + tests

* feat(peerstore): set out own MaxConnectionsPerPeer to 1

* feat(peermanager): add metric for inbound/outbound peers
2022-11-29 17:35:25 +01:00
G bcab36902d
fix(noise): T_ss is ss not se (#1432) 2022-11-29 06:22:18 +01:00
Hanno Cornelius 8d69846aa4
feat: enable AutoNAT and libp2p circuit relay (#1425)
* feat: enable libp2p circuit relay

* feat: enable libp2p autonat
2022-11-28 16:56:01 +02:00
Lorenzo Delgado 3474bef8e3
fix(archive): restore query and insert metrics duration precision 2022-11-25 23:20:24 +01:00
Lorenzo Delgado a4970d2625
fix(archive): fix message validator error metric labels 2022-11-25 02:06:42 +01:00
Lorenzo Delgado 59a204c32c
fix(archive): fix message validator error metric labels 2022-11-25 01:49:43 +01:00
Lorenzo Delgado 0050deed05
chore(store): remove obsolete metrics and error labels 2022-11-24 19:42:19 +01:00
Lorenzo Delgado 41b2f87f68
fix(archive): patch the sqlite driver to solve results inconsistencies 2022-11-24 18:59:25 +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 0188ec1a9e
feat(archive): add waku archive implementation 2022-11-22 19:40:24 +01:00
Lorenzo Delgado 299ee3eb5d
refactor(rln): decouple rln types from waku message type 2022-11-22 18:29:43 +01:00
Alvaro Revuelta 1e8e60caed
fix(tests): add missing import for tests (#1375) 2022-11-22 08:13:51 +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 59c18ab5c4
feat(store): add support for history query handler 2022-11-21 11:16:57 +01:00
Lorenzo Delgado e85b5cbae1
chore(store): remove waku swap integration from store protocol 2022-11-21 09:36:41 +01:00
Lorenzo Delgado 9396f64489
fix(lightpush): waku lightpush rpc codec support optional fields 2022-11-18 20:01:01 +01:00
Lorenzo Delgado af4fb5f5a7
fix(filter): waku filter rpc codec support optional fields 2022-11-18 18:37:08 +01:00
Lorenzo Delgado 1d72ee31b0
refactor(relay): collocate relay protocol initialization logic 2022-11-18 14:50:56 +01:00
alrevuelta bd5046f466
chore: add version to logs at startup 2022-11-18 11:59:35 +01:00
Lorenzo Delgado f89e6869cb
fix(store): waku store rpc codec support optional fields 2022-11-17 20:40:08 +01:00
Lorenzo Delgado 39bf289f43
refactor(protocols): decouple protocol rpc types from api types 2022-11-16 20:02:38 +01:00
Lorenzo Delgado e2a2ea6477
chore: move protobuf module from utils to common 2022-11-16 20:02:14 +01:00
Aaryamann Challani 2336522d7f
fix(rln-relay): feature guard (#1373)
* fix(rln-relay): feature guard

* Revert "fix(rln-relay): feature guard"

This reverts commit 9344f41a34.

* fix(rln-relay): surgically fix imports

* fix(rln-relay): indents

* fix(rln-relay): more usages of rln types
2022-11-14 19:29:34 +05:30
Aaryamann Challani 07833ce313
feat(rln-relay): process blocks atomically (#1349)
* test(rln-relay): atomic block processing

* fix(rln-relay): use correct starting index

* fix(rln-relay): args

* fix(rln-relay): append length

* fix(rln-relay): tests, remove insertMember

* fix(rln-relay): camelCase, cleanup

* fix(rln-relay): actually process per block

* fix(rln-relay): clean up

* chore(gitignore): Update .gitignore

Co-authored-by: Lorenzo Delgado <lorenzo@status.im>

* Update waku/v2/protocol/waku_rln_relay/waku_rln_relay_utils.nim

Co-authored-by: Sanaz Taheri <35961250+staheri14@users.noreply.github.com>

* Update waku/v2/protocol/waku_rln_relay/waku_rln_relay_utils.nim

Co-authored-by: Sanaz Taheri <35961250+staheri14@users.noreply.github.com>

* fix(rln-relay): args

* fix(rln-relay): add prefix def

* fix(rln-relay): make test cleaner

* chore(rln-relay): apply suggestions

Co-authored-by: G. <28568419+s1fr0@users.noreply.github.com>
Co-authored-by: Lorenzo Delgado <lorenzo@status.im>

* chore(rln-relay): add member order check

* test(rln-relay): batch insert in tests

* fix(rln-relay): test batching

* fix(rln-relay): toSeq the HSlice

* fix(rln-relay): naming

* fix(rln-relay): add insertMember back

* fix(rln-relay): serialize util, address review

* fix(rln-relay): add atomicity desc

* fix(rln-relay): inHex

* fix(rln-relay): explicit proc def

* fix(rln-relay): indexGap condition

* fix(rln-relay): func sig

* fix(rln-relay): onchain test

* fix(rln-relay): use asyncSpawn vs asyncCheck

* fix(rln-relay): do not explicitly insert into the index

* fix(rln-relay): condition, semantics

* fix(rln-relay): index must be 1

* chore(rln-relay): line br

* fix(rln-relay): missing return ok(true)

Co-authored-by: Lorenzo Delgado <lorenzo@status.im>
Co-authored-by: Sanaz Taheri <35961250+staheri14@users.noreply.github.com>
Co-authored-by: G. <28568419+s1fr0@users.noreply.github.com>
2022-11-10 22:28:31 +05:30
Alvaro Revuelta 7917e05d9d
chore(networkmonitor): tool to discover and provide metrics on peers (#1290)
* chore(networkmonitor): initial prototype

* chore(networkmonitor): add cli, metrics and PoC

* feat(utils): add supportsCapability function + tests

* feat(utils): add supportedCapabilites function

* chore(networkmonitor): add metrics with enr/ip/capabilities

* chore(networkmonitor): refactor + tests

* chore(networkmonitor): add discovered timestamp

* chore(networkmonitor): add metrics on connected nodes

* chore(networkmonitor): new flags + utils file + readme

* chore(networkmonitor): add user-agent metrics

* chore(networkmonitor): connect only to randomly discovered peers

* chore(networkmonitor): get location of peer using ip

* chore(networkmonitor): expose peer metrics with simple rest server

* chore(networkmonitor): update README

* chore(networkmonitor): fix wakunode2 to waku_node

* chore(networkmonitor): fix import order

* chore(networkmonitor): fix comments + refactor + pushraises

* chore(networkmonitor): refactor + handle exceptions

* chore(networkmonitor): fix makefile after rebase

* chore(networkmonitor): address review comments 1

* chore(networkmonitor): add nim.cfg
2022-11-10 10:29:34 +01: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
Alvaro Revuelta 054dc61763
refactor: continue pubsub/content types started in #1352 (#1362)
* refactor: continue gossip/content topic refactor started in #1352

* refactor: enforce using pubsubTopic instead of topic
2022-11-09 15:00:11 +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