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
Richard Ramos
c320b38cbe
feat(rln-relay): use atomic operations API
2023-08-12 07:44:07 -04:00
Richard Ramos
da45dab68e
fix: nwaku / go-waku rlnKeystore compat
2023-08-11 11:54:24 -04:00
Richard Ramos
9e52e09dd5
chore: keepAlive will not immediatly disconnect peers when waking up from sleep, but do it only if pinging the peer fails
2023-08-10 11:16:02 -04:00
Richard Ramos
e0e4a2fa87
refactor: remove unused function and simplify code related to creating db and migrations
2023-08-10 10:37:22 -04:00
Richard Ramos
e56f54252f
fix: postgresql VACUUM FULL is the equivalent to sqlite VACUUM
2023-08-10 10:29:40 -04:00
Richard Ramos
05d8cfdc65
feat: postgresql vacuum
2023-08-10 10:29:40 -04:00
Richard Ramos
ee2af4646c
feat: sqlite vacuum and optional migrations
2023-08-10 10:29:40 -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
af7471d158
fix:during unsubscribeAll, remove peer without any checks
2023-08-07 15:01:44 +05:30
Prem Chaitanya Prathi
baeaa1dd55
fix: data race in peer connector
2023-08-07 14:42:48 +05:30
Prem Chaitanya Prathi
20040f2e9b
fix: data race in filter unsubscribe
2023-08-05 08:03:19 +05:30
Prem Chaitanya Prathi
22398b2868
fix:race in filter peer subscription map iteration and deletion
2023-08-05 08:00:04 +05:30
Prem Chaitanya Prathi
884f65ecdf
fix: noise protocol channel close race condition
2023-08-04 17:19:53 +05:30
Prem Chaitanya Prathi
42b2c0bc6d
fix: race condition in rendezvous test code
2023-08-04 16:37:45 +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
33344c2ae0
refactor: use uint instead of int for RLN indexes
2023-08-03 11:17:50 -04:00
Richard Ramos
a4b038730c
feat(rln-relay): pass in index to keystore credentials
2023-08-03 11:17:50 -04:00
Prem Chaitanya Prathi
e6aaf9c852
chore: fix comment on test
2023-08-02 11:24:50 +05:30
Richard Ramos
55ec2347a8
fix: RLN
...
- subscription to topic is not required for registering RLN validator
- check for duplication msg within same epoch was incorrect
- added an example on how to use RLN
2023-08-01 09:19:38 -04:00
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
1abd476d3e
refactor: use backoff strategy to connect to random rendezvous points
2023-08-01 09:17:11 -04:00
Richard Ramos
88d52d6417
fix: set concurrent dials to 5
2023-07-31 12:01:05 -04:00
Richard Ramos
dc08c44804
feat: add filters for discv5
2023-07-31 10:45:45 -04:00
Richard Ramos
ad9236fd6b
refactor: move RPC and REST servers to waku cmd
2023-07-28 08:03:00 -04:00
Richard Ramos
a422add209
chore: add missing comments to functions
2023-07-23 07:01:42 -04:00
Richard Ramos
bc6a305759
chore: extract `EncapsulatePeerID`
2023-07-07 12:04:05 -04:00
Richard Ramos
cfe28d4698
fix: add artificial delay to discv5 iterator
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
6d9018cb11
refactor: connect to discovered peers linearly
2023-07-07 12:04:05 -04:00
Richard Ramos
dbd94ebb81
fix: add p2p-circuit component to multiaddresses that use circuit-relay
2023-07-07 12:04:05 -04:00
Richard Ramos
8cac406a4c
fix: warning message format when using static shards and named shards at same time
2023-07-07 10:35:12 -04:00
Richard Ramos
ca297713fa
refactor: move app code to cmd/waku
2023-07-07 10:10:21 -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
Prem Chaitanya Prathi
97f02361d4
Persistence: Addressing code-climate issues to increase maintainability score ( #592 )
...
* chore:fix minor issues reported by code-climate
* chore: reduce code duplication
* chore: update vendorSHA for nix build due to recent updates to dependencies
2023-07-07 07:08:23 +05:30
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
7dd02067f8
fix: unsubscribe from all peers unless specified and check err code when full node has no subscription
2023-07-05 15:54:31 -04:00
Richard Ramos
0822fdb280
chore: use pgx instead of lib/pq since it's not actively maintained
2023-07-03 11:16:05 -04:00
Richard Ramos
fb3447f3d8
fix: adding relay protocol to feature check function of gossipsub
2023-06-29 09:29:08 -04:00
Richard Ramos
b8ab99ba08
fix: set wakurelay at index 0 in gossipsub protocol list
2023-06-28 14:06:16 -04:00
Richard Ramos
cd358c7bd6
refactor: rendezvous
2023-06-28 09:01:41 -04:00
Richard Ramos
cd335f8168
fix: handle scenarios where localnode has no shard set
2023-06-26 11:03:16 -04:00
Richard Ramos
eba4aa43e5
feat: find discv5 peers with shards
2023-06-26 11:03:16 -04:00
Richard Ramos
0381b92531
feat(c-bindings): filterv2
2023-06-26 11:03:01 -04:00
Vitaliy Vlasov
f0f3543df8
Modify isOnline setting when LightMode is on and Relay is off
2023-06-22 15:38:40 -04:00
Richard Ramos
be766a8636
feat(discv5): find peers with predicate
2023-06-15 08:54:40 -04:00
Richard Ramos
c380faa6ae
fix: code review and disconnect bad peers
2023-06-09 14:57:43 -04:00
Richard Ramos
875d132c1e
feat: gossipsub scoring
2023-06-09 14:57:43 -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
b0c094b0b6
feat: more utils functions to setup a relay shards field on the enr
2023-06-05 16:03:14 -04:00
Richard Ramos
1bffa35dfa
fix: enodeToMultiaddress when using ipv6
...
Fixes #560
2023-06-01 14:02:18 -04:00
Richard Ramos
1c75c89790
refactor: remove unneeded `Connect` as dns4 addresses are being resolved now
2023-06-01 14:02:08 -04:00
Richard Ramos
f18f219086
fix(rendezvous) - interop with nwaku
2023-06-01 13:31:21 -04:00
Richard Ramos
9207dbcb4a
fix: addPeers
2023-06-01 08:26:03 -04:00
Richard Ramos
10c2e20910
fix: signatures
2023-05-26 11:18:00 -04:00
Richard Ramos
2c17e20d99
fix: neither encoding nor address comparison are needed to protect a topic
2023-05-26 10:42:25 -04:00
Richard Ramos
39c97c5d89
feat: set resource limits
2023-05-24 11:46:32 -04:00
Richard Ramos
189b2ed120
revert: "refactor: use an address instead of public key for the node setup"
...
This reverts commit 38a9fc4b19
.
2023-05-22 17:03:40 -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
30b9fac6a7
fix: dns > ext ip
2023-05-15 11:51:46 -04:00
Richard Ramos
9594e54d36
feat: use circuit relay in service node
2023-05-14 13:10:56 -04:00
Richard Ramos
ceed9c7d59
feat: v0.6.0
2023-05-12 12:27:14 -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
38a9fc4b19
refactor: use an address instead of public key for the node setup
2023-05-12 09:09:08 -04:00
Richard Ramos
aed730c634
feat: use addresses in signed topic validator
2023-05-12 09:09:08 -04:00
Richard Ramos
fa61e58d3b
fix: do not block ctx.Done() on peer discovery
2023-05-10 08:09:44 -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
Richard Ramos
279524f100
feat(filter): get subscription list
2023-05-08 17:37:15 -04:00
Richard Ramos
ac75160817
fix: use 5s timeout in discv5 iterator
2023-05-08 12:29:18 -04:00
Richard Ramos
9b7ad40b06
feat: ext-ip
2023-05-08 11:59:46 -04:00
harsh-98
38741caca0
fix: constrainted env add wait to TestRelaySubscription
2023-05-08 08:31:19 -04:00
harsh-98
bf8c856bc3
fix: use buffered channel as needed by legacy_filter, filter
2023-05-08 08:31:19 -04:00
harsh-98
128999b763
fix: make test work without buffered channel from relay.Subcribe
2023-05-08 08:31:19 -04:00
harsh-98
60edf95c48
fix: broadcaster shouldn't block if channels are not listened to
2023-05-08 08:31:19 -04:00
harsh-98
210597f7e0
fix: to test for new Broadcaster
2023-05-08 08:31:19 -04:00
harsh-98
31c8035589
feat: safe broadcaster
2023-05-08 08:31:19 -04:00
harsh-98
02fdf916d8
refactor: sync.atomic has Boolean type
2023-05-08 08:27:44 -04:00
harsh-98
e391fe6a2f
refactor(discv5): lock-free via atomics
2023-05-08 08:27:44 -04:00
Richard Ramos
46500b0de9
fix: handle duplicate filter id removal
2023-05-05 13:52:58 -04:00
Richard Ramos
231469b441
feat: validate message timestamp in signed topic validator
2023-05-05 13:52:51 -04:00
harsh-98
f94b071a84
nit: remove redundant field
2023-05-05 11:41:10 -04:00
harsh-98
e6d9f6b1d8
nit: change to simpleLRU
2023-05-05 11:41:10 -04:00
harsh-98
c890b1fee8
refactor(peerExchange): use lru for storing peers
2023-05-05 11:41:10 -04:00
Richard Ramos
c15f4ada56
feat: add message size and published/received time to debug log
2023-05-04 16:22:11 -04:00
harsh-98
caeba39b21
fix: only last discoveryUrl set discoveredNodes
2023-05-04 13:27:54 -04:00
Richard Ramos
8711a08df6
fix: code review
2023-05-04 13:25:45 -04:00
Richard Ramos
f11b82d94a
fix: use deterministic signatures RFC6979
2023-05-04 13:25:45 -04:00
Richard Ramos
837a0f2708
chore: add unit test for signed validator and --protected-topic-flag
2023-05-04 13:25:45 -04:00
Richard Ramos
88ecf728a3
fix: rename `gowaku_` metrics to `waku_`
2023-04-27 09:58:06 -04:00
Richard Ramos
21a28e9b53
feat: record message size
2023-04-27 09:58:06 -04:00
Richard Ramos
fad1a98f77
chore: run onchain tests
2023-04-26 12:40:15 -04:00
Richard Ramos
360a44830a
fix(rln): onchain tests
2023-04-26 12:12:10 -04:00
Richard Ramos
7f276d572f
fix: retrieve membership fee from contract
2023-04-26 11:56:56 -04:00
Richard Ramos
24587e57aa
refactor: handle max records exceeded
2023-04-25 10:55:11 -04:00
Richard Ramos
966cbba4c4
feat: utils for handling shards in enr
2023-04-25 10:54:59 -04:00
Richard Ramos
c23eac64fb
feat(filterv2): ignore messages received from peers not subscribed to
2023-04-25 10:46:50 -04:00
Richard Ramos
9ed8f16a0a
feat: add metrics to archive protocol and discv5
2023-04-20 10:04:20 -04:00
Richard Ramos
68b615a87e
feat: improve metrics for filter, lightpush, dns discovery and store protocols
2023-04-20 08:57:22 -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
c559932931
chore: update flags
2023-04-17 10:07:15 -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
c3ef173b2c
feat: handle chain forks
2023-04-17 10:02:09 -04:00
Richard Ramos
5de3d9f619
feat(rest): store
2023-04-17 10:01:32 -04:00
Richard Ramos
c690b6c050
feat: dos protected topic relay msgs based on meta field
2023-04-17 09:56:13 -04:00
Richard Ramos
e74f60f173
feat: enable webstransport
2023-04-14 12:34:47 -04:00
Richard Ramos
801ec92c11
refactor: loading credentials and chat2
2023-04-11 10:39:07 -04:00
Richard Ramos
42c0e123d9
refactor: credentials
2023-04-11 10:39:07 -04:00
Richard Ramos
04c90657cd
refactor: dynamic rln
2023-04-11 10:39:07 -04:00
harsh-98
6747603a73
refactor: fetch membership events
2023-04-10 11:39:15 -04:00
Richard Ramos
41691a44e5
fix: remove message cache on relay and fix proof validation
2023-04-04 14:20:41 -04:00
Richard Ramos
9c5d1e88b1
refactor: proof generation and merkleroot tracking
2023-04-04 14:20:41 -04:00
Richard Ramos
be09f3f550
refactor: static RLN relay
2023-04-04 14:20:41 -04:00
Richard Ramos
6796936f5e
chore: upgrade RLN dep
2023-04-04 14:20:41 -04:00
harsh-98
70ddd48274
refactor: setting nodeKey via GOWAKU-NODEKEY env
2023-04-04 06:09:52 -04:00
Richard Ramos
98e14cf0f6
chore: add debug log to identify when peer is discovered
2023-03-31 08:44:01 -04:00
Richard Ramos
7c56ceb139
chore: remove swap protocol
2023-03-30 12:12:41 -04:00
Richard Ramos
56785d8aa7
fix: limit number of content topics per request and timeout message pushes
2023-03-30 12:10:04 -04:00
Richard Ramos
dd9261c981
fix: simplify code by using mutex instead of channels
2023-03-30 12:00:19 -04:00
Richard Ramos
c5faf8b9e9
fix: race condition deleting items from cache
2023-03-30 12:00:19 -04:00
Richard Ramos
144dfa5b7b
feat: add WakuMessage validation in gossipsub
...
This also stores the waku message in a cache to avoid having to decode it twice
2023-03-30 12:00:19 -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
63bb4509bf
feat(filterv2): ping
2023-03-08 12:26:50 -04:00
Richard Ramos
4b52983fc4
fix: limit number of subscribers and criteria
2023-03-08 09:51:26 -04:00
Richard Ramos
aeddc7848a
refactor: namespaced pubsub topics
2023-03-08 09:10:14 -04:00
Richard Ramos
3bba1a86f1
feat(message): added waku message deterministic hashing
2023-03-08 09:08:08 -04:00
Richard Ramos
a19a3b5a79
feat: add meta field to WakuMessage
2023-03-04 13:27:36 -04:00
Richard Ramos
2d2fbc7e47
fix: do not use a var to hold hash
2023-03-04 11:55:42 -04:00
Richard Ramos
b20bf3dccd
fix: use pool for all sha256 hash operations
2023-03-02 12:00:54 -04:00
Richard Ramos
df2cccec04
fix: use sync.Pool for msgId hasher
2023-03-02 11:10:31 -04:00
Richard Ramos
7bc000b61f
fix: use url-safe base64 encoding for noise
2023-02-28 14:14:22 -04:00
Richard Ramos
6e2a0ffeb4
refactor(px): use request-response instead of dialing back
2023-02-28 14:11:50 -04:00
Richard Ramos
cedaa670c7
fix: logLevel
2023-02-24 12:02:00 -04:00
Richard Ramos
f41055778c
fix: use stdbase64 encoding
2023-02-23 19:45:46 -04:00
RichΛrd
042521e00b
fix: set a max length for the multiaddr field ( #474 )
2023-02-23 19:43:04 -04:00
Richard Ramos
7426ca5845
fix: noise example
2023-02-20 10:53:30 -04:00
Richard Ramos
abcadd1bcf
feat(c-bindings): expose enrs via dns discovery
2023-02-17 11:05:28 -04:00
Richard Ramos
8b5e22002c
fix: use base64url encoding
2023-02-17 11:03:59 -04:00
Richard Ramos
053f3f2540
fix: convert pb.WakuMessage to RPCWakuMessage so version is included in replies
2023-02-16 23:37:19 -04:00
Richard Ramos
9c75a3325d
fix: invalid in-memory db URL
2023-02-16 23:05:15 -04:00