Commit Graph

234 Commits

Author SHA1 Message Date
Prem Chaitanya Prathi f263be4a74
fix: race condition in peermgt initialization reported by race detector (#646) 2023-08-16 17:55:58 +05:30
Prem Chaitanya Prathi 06f027b1a9
feat: implement relay connectivity loop (#642)
* feat: implement relay conenctivity loop

* chore: fix codeclimate issues

* Apply suggestions from code review

Co-authored-by: richΛrd <info@richardramos.me>

* chore:address review comments

---------

Co-authored-by: richΛrd <info@richardramos.me>
2023-08-15 06:57:51 +05:30
Vitaliy Vlasov 419adcb6a8
chore(filter2): test updates 2023-08-14 16:29:00 -04:00
Prem Chaitanya Prathi 9f45d271ac
feat: support serviceslots in peermanager (#631)
* feat: support peermanager serviceslots and update store protocol to use serviceslots

* fix: lint errors in test code

* fix: error in nix build due to vendor sha change

* fix: set host in peermanager even if relay is disabled

* chore: fix codeclimate issues

* chore: using common filterPeer function to avoid duplication

* feat:use service slots in other service protocols

* chore: fix codeclimate issues

* chore: move AddPeer to peermanager

* Apply suggestions from code review

Co-authored-by: richΛrd <info@richardramos.me>

* chore:address review comments

* feat: implement RemovePeer #638

* chore: fix test failure

* Support for multiple slots for service peers
Adding discovered peers also moved to peer manager

---------

Co-authored-by: richΛrd <info@richardramos.me>
2023-08-10 18:28:22 +05:30
Prem Chaitanya Prathi 34de2941c7
Feat/peer manager (#596)
* chore: refactor existing code into peer maanger package

* feat: move peer connection related code into peer manager

* feat: in relay peer connection pruning

* feat: add max-connections CLI flag and limit outRelayPeers based on max-connections #621

* tested both in and out relay connection limits

Co-authored-by: richΛrd <info@richardramos.me>

* Review comment, use context to pause connectivity loop during node shutdown.

Co-authored-by: richΛrd <info@richardramos.me>

* address review comments


---------

Co-authored-by: richΛrd <info@richardramos.me>
2023-08-03 21:51:15 +05:30
Richard Ramos 8b3f42310d fix: code review 2023-08-01 09:17:11 -04:00
Richard Ramos 76961f2bd8 fix: code review 2023-08-01 09:17:11 -04:00
Richard Ramos bc6a305759 chore: extract `EncapsulatePeerID` 2023-07-07 12:04:05 -04:00
Richard Ramos a124c48b4e fix: add peerID to multiaddr 2023-07-07 12:04:05 -04:00
Richard Ramos 55a7d7b332 fix: reduce timeout and increase minimum backoff time 2023-07-07 12:04:05 -04:00
Richard Ramos b26859fc6a refactor: make discovery connector subscribe to discovery services 2023-07-07 09:47:46 -04:00
Richard Ramos 5ca26ef897 fix: allow wakunodes to be restarted without error 2023-07-07 09:47:46 -04:00
Richard Ramos 6ece3c483b feat: subscribe to shards with --topic and refactors
- Shards in same cluster are advertised on ENR
- Store().Resume() was moved to app layer
- NoDefaultWakuTopic() was removed since it's the app that must determine whether it subscribes to the default waku topic
- Removed `Publish` from WakuNode (not really used and easy to implement in app layer if needed)
2023-07-06 11:18:29 -04:00
Richard Ramos cd358c7bd6 refactor: rendezvous 2023-06-28 09:01:41 -04:00
Richard Ramos 76186e5477 refactor: store ENR 2023-06-09 14:57:43 -04:00
Richard Ramos 52ac8e3740 refactor: various
- Limit inbound connections to 10 per IP
- Expose gossipsub parameters on WakuRelay
- New peerstore
2023-06-09 14:57:43 -04:00
Richard Ramos b66c19ad8f
fix: set autorelay interval to 2 seconds 2023-05-18 12:10:37 -04:00
frank 898f433d2c
fix: dead loop after calling WakuNode.Stop() 2023-05-18 11:22:19 -04:00
Richard Ramos 8d6b2cd721 refactor: add `--ext-ip` and `--dns4-domain-name` values to the list of node multiaddressess 2023-05-15 17:39:58 -04:00
Richard Ramos 9594e54d36 feat: use circuit relay in service node 2023-05-14 13:10:56 -04:00
Richard Ramos 25562d6240 feat: add peer connection notif channel and allow dialing peers with the peer.AddrInfo 2023-05-12 09:09:08 -04:00
Richard Ramos e14c55c263 refactor: enr builder 2023-05-09 17:30:26 -04:00
Richard Ramos d9a12bf079 fix: gossipsub parameters, and cancel() execution in wakunode2 2023-05-09 16:42:24 -04:00
harsh-98 31c8035589 feat: safe broadcaster 2023-05-08 08:31:19 -04:00
Richard Ramos 966cbba4c4 feat: utils for handling shards in enr 2023-04-25 10:54:59 -04:00
Richard Ramos 2c3566377a refactor: inject host on node start 2023-04-17 11:09:05 -04:00
Richard Ramos fbd58df2e8 refactor: initialize broadcaster on Start 2023-04-17 10:19:08 -04:00
Richard Ramos 0b01e4bb16 refactor: rename filter to legacy filter and set filterv2 as filter 2023-04-17 10:07:15 -04:00
Richard Ramos 801ec92c11 refactor: loading credentials and chat2 2023-04-11 10:39:07 -04:00
Richard Ramos 7c56ceb139 chore: remove swap protocol 2023-03-30 12:12:41 -04:00
Richard Ramos ca20eb4a79 feat: connect to discovered peers 2023-03-29 08:59:36 -04:00
Richard Ramos 2b30726c14 feat: rendezvous client 2023-03-29 08:59:36 -04:00
RichΛrd 8826e2df66
feat: rendezvous server 2023-03-09 11:48:25 -04:00
Richard Ramos 4b52983fc4 fix: limit number of subscribers and criteria 2023-03-08 09:51:26 -04:00
Richard Ramos 3bba1a86f1 feat(message): added waku message deterministic hashing 2023-03-08 09:08:08 -04:00
Richard Ramos cedaa670c7
fix: logLevel 2023-02-24 12:02:00 -04:00
Richard Ramos f0eaa84aad chore: upgrade dependencies 2023-02-16 12:22:47 -04:00
Richard Ramos 335f7b6771 test: filterv2 2023-02-15 17:36:30 -04:00
Richard Ramos 52f7c8d86e feat: improvements on filter protocol (client) 2023-02-15 17:36:30 -04:00
Richard Ramos f255adffd9 feat: improvements on filter protocol (server) 2023-02-15 17:36:30 -04:00
Richard Ramos eb9e727b1b feat: advertise custom multiaddresses
This replaces the flag `--advertise-address` with `--ext-multiaddr`
2023-02-12 11:01:11 -04:00
RichΛrd c55a979af4
fix: close channel after waiting for goroutines to stop (#444) 2023-02-09 09:03:05 -04:00
Richard Ramos cce85913e6 fix: enr exceeds 300 bytes 2023-02-07 09:51:55 -04:00
Richard Ramos 61cba076bb feat: set zap core when using `WithLogger` 2023-02-01 19:38:04 -04:00
Richard Ramos 6c989fb178 refactor(c-bindings): do not subscribe automatically to default waku topic 2023-01-25 17:46:32 -04:00
Richard Ramos e0ccdbe966 refactor: peer discovery management for discv5 and peer exchange 2023-01-17 17:40:48 -04:00
Richard Ramos 6e7c3b6183 feat: update localnode ENR without having to restart discv5 2023-01-14 10:35:24 -04:00
Richard Ramos c87da46ce6 feat: use backedoff connector and discovery 2023-01-12 17:35:04 -04:00
Richard Ramos 7d2a0ac0e2 fix: discv5 was not being registered as discovery mechanism 2023-01-10 08:46:57 -04:00
Richard Ramos 607bf07198 refactor: remove some duplication and unneeded code 2023-01-08 14:35:32 -04:00
Richard Ramos 40675ff204 refactor: service interface 2023-01-07 11:25:32 -04:00
Richard Ramos ea6d5bc7b8 fix: enable store only when `WithWakuStore` is used 2023-01-03 11:26:23 -04:00
Richard Ramos 83fd53d432 refactor: use context instead of quit channel 2022-12-10 11:51:08 -04:00
Andrea Maria Piana ebaf10601f Pass bootnodes to discovery 2022-12-09 14:11:12 -04:00
Richard Ramos 84c7022e2d feat: add ntp timesource 2022-12-09 10:20:16 -04:00
Richard Ramos ff8c3009c7 refactor: store 2022-12-06 12:06:17 -04:00
Richard Ramos 982707e02c refactor(discv5): execute discover loop as separate goroutine 2022-11-29 15:28:13 -04:00
Richard Ramos 7e74155dca feat: add version metric 2022-11-25 17:38:14 -04:00
Richard Ramos 3620a6b222 feat: allow specifying list of peerIDs to chose when doing a request 2022-11-25 17:37:54 -04:00
Richard Ramos a247e8346d chore: add extra logging for message IDs 2022-11-16 10:42:20 -04:00
Richard Ramos c8fc0404d1
chore: rename status-im/go-waku to waku-org/go-waku 2022-11-09 16:03:40 -04:00
Richard Ramos 8b64934e2c feat: peer exchange 2022-11-09 17:26:38 +03:00
Richard Ramos 1b7dd9fe3f chore: remove rendezvous 2022-10-27 09:16:26 -04:00
Richard Ramos 57a525f71e chore: upgrade libp2p 2022-10-19 15:54:02 -04:00
Richard Ramos 644debe042 refactor(rln): credentials management 2022-10-10 17:41:28 -05:00
Richard Ramos cd79be4812
fix: jenkinscript (#304)
* chore: add jenkinsfile for tests
* chore: remove old jenkinsfile
* fix: lint
* fix: update cc-test-reporter
2022-09-12 10:13:38 -04:00
Richard Ramos 7943f8f657
fix: close eth connection on stop 2022-08-18 12:27:10 -04:00
Richard Ramos 4589b6c31c feat: make rln optional 2022-08-15 14:41:58 -04:00
Richard Ramos 893f9f396c feat: chat2 dynamic RLN (#283) 2022-08-15 14:40:10 -04:00
Richard Ramos 132ac128e5 feat: RLN (dynamic) 2022-08-15 14:40:10 -04:00
Richard Ramos 587fd148ca chore: use static rln lib and fix lint 2022-08-15 14:40:10 -04:00
Richard Ramos 1636a33835 feat: RLN (static) 2022-08-15 14:40:10 -04:00
Richard Ramos 546416a9d5
refactor: remove WakuStoreWithRetentionPolicy and add build tag to migrations (#281) 2022-08-03 09:32:52 -04:00
Steven Normore fb6d59ff33
fix: close addrChan in the writer goroutine (#277) 2022-08-01 20:16:52 -04:00
Richard Ramos 8cf5f80529
fix: dial wss nodes and add ws to list of default transports (#274)
Also updates libp2p to latest version
2022-07-25 11:49:10 -04:00
Richard Ramos 36d4a61dc4 chore: add missing flags 2022-06-19 17:47:39 -04:00
Richard Ramos 3c0c3c4eeb
fix: js-waku / nwaku interop (#252) 2022-06-13 14:30:35 -04:00
Richard Ramos 77c1e26a9e chore: upgrade deps and go1.17 2022-05-30 15:30:43 -04:00
Martin Kobetic 7c44369def
feat: structured logging followup (#248) 2022-05-30 11:55:30 -04:00
Martin Kobetic 0c989d3d8c
feat: structured logging (#242) 2022-05-27 09:25:06 -04:00
Richard Ramos 9845fea2a2 fix: improve log for ENR and print git hash on startup 2022-05-05 14:26:24 -04:00
Richard Ramos bbab0f1714
fix: add topic to broadcast and some comments to functions (#229) 2022-04-25 23:31:26 +04:00
Richard Ramos b294ee6f6f
fix: port on discv5 (#224) 2022-03-31 21:20:10 -04:00
Richard Ramos a20a128fb7
fix: discv5 ip advertising (#223) 2022-03-29 20:02:33 -04:00
Richard Ramos aa6d8c8b58
fix: c api and add some documentation (#219) 2022-03-22 12:30:14 -04:00
Richard Ramos 290b7663d1
feat: secure websockets (#201) 2022-03-22 09:12:58 -04:00
Nicholas Molnar 21b2e1d97c
Create pluggable store (#210)
* Add store factory
* Add to test
2022-03-18 15:56:34 -04:00
Richard Ramos e7098efcff
chore: nim-waku interop test (#207) 2022-03-10 18:14:50 -04:00
Richard Ramos 8d155fb51e
fix: protocol name 2022-02-23 11:06:47 -04:00
Richard Ramos 0db40c7de5
fix: broadcaster blocked after publishing 1024 messages (#188) 2022-02-18 13:49:11 -04:00
Richard Ramos 11d1f8fb0d
feat: result aggregation in resume and enforce max page size (#183)
* feat: result aggregation in resume and enforce max page size
* feat: add WithLogger option to wakunode (#184)
* fix: rebase issues
2022-01-18 14:17:06 -04:00
Richard Ramos 0de19253da
refactor: maintenaibility fixes (#167) 2021-12-08 10:21:30 -04:00
Richard Ramos c45e8a3c31
fix: handle stale clients in filter protocol (#174) 2021-12-08 09:00:20 -04:00
Anthony Laibe 2b225e90e7 feat: Implement logic for publish from node 2021-12-07 14:32:02 +01:00
Anthony Laibe 9bb957afeb feat: build swap and attach it to the store 2021-12-07 14:31:36 +01:00
Richard Ramos ed91f47ff0
fix: wakuflag for ListenAddresses ENR (#171)
Also, reorganize code in utils package
2021-12-03 09:40:51 -04:00
Richard Ramos b728e62ec7
fix: disconnect peer after failing 2 consecutive pings (#168) 2021-11-24 16:11:24 -04:00
Richard Ramos ce417a6486
refactor: use WaitGroup for graceful shutdown of worker goroutines (#166) 2021-11-23 11:03:12 -04:00
Richard Ramos e8c08ac18b fix: invalid ticker usage 2021-11-21 10:04:23 -04:00
Richard Ramos 00ee0b7511 refactor: create separate functions for subscriptions and publishing 2021-11-19 20:04:38 -04:00