Commit Graph

676 Commits

Author SHA1 Message Date
Richard Ramos 25486ebdb4 fix: obtain multiple multiaddresses from single enode 2023-01-15 13:24:34 -04:00
Richard Ramos 6e7c3b6183 feat: update localnode ENR without having to restart discv5 2023-01-14 10:35:24 -04:00
Richard Ramos 34c5e97d5e fix: remove manual connection to peers 2023-01-12 17:35:04 -04:00
Richard Ramos c87da46ce6 feat: use backedoff connector and discovery 2023-01-12 17:35:04 -04:00
Richard Ramos 27bc9488e6 feat: load config from toml file 2023-01-11 12:20:03 -04:00
Richard Ramos 7d2a0ac0e2 fix: discv5 was not being registered as discovery mechanism 2023-01-10 08:46:57 -04:00
Richard Ramos 69636fa263
fix: simplify addr factory 2023-01-08 17:12:29 -04:00
Richard Ramos 607bf07198 refactor: remove some duplication and unneeded code 2023-01-08 14:35:32 -04:00
Richard Ramos 30e3884000 refactor: improve store iterator 2023-01-08 13:55:51 -04:00
Richard Ramos 40675ff204 refactor: service interface 2023-01-07 11:25:32 -04:00
Richard Ramos f10b1b0d7a feat: postgresql support 2023-01-05 13:25:15 -04:00
Richard Ramos 2c9c763c30 fix(c-bindings): simplify discv5 API 2023-01-04 14:58:12 -04:00
Richard Ramos 26daf72a23 feat: use env. variables for arguments 2023-01-04 09:32:34 -04:00
Richard Ramos ea6d5bc7b8 fix: enable store only when `WithWakuStore` is used 2023-01-03 11:26:23 -04:00
Richard Ramos 408b1de802 fix: start rpc/rest with no relay 2023-01-03 11:18:32 -04:00
Richard Ramos e69d6e61dd fix: nil msg 2022-12-21 14:59:29 -04:00
Richard Ramos 627fbbab6e feat: js-noise / go-noise interop 2022-12-21 14:59:29 -04:00
Richard Ramos 77ace0d772
fix: nil paging info 2022-12-20 12:37:16 -04:00
Richard Ramos d916fbf2bb
fix: remove code duplication on metrics 2022-12-17 13:15:55 -04:00
Richard Ramos 4df6aa98bc feat(noise): finish pairing impl and test 2022-12-15 21:55:14 -04:00
Richard Ramos 5511e55227 fix: noise public key serialization 2022-12-15 21:55:14 -04:00
Richard Ramos ad33eabe39 fix: authcode padding and add String to messagenametag 2022-12-15 21:55:14 -04:00
Richard Ramos 5740a6d571 refactor: move payload handling to its own package 2022-12-15 21:55:14 -04:00
Richard Ramos 17eb12e62c feat(noise): WakuPairing object 2022-12-15 21:55:14 -04:00
Richard Ramos a0c2f96c55 fix: insert receiver timestamp if sender timestamp is 0 2022-12-15 20:59:30 -04:00
Richard Ramos f1fd8b354e feat(noise): WakuPairing 2022-12-14 13:44:09 -04:00
Richard Ramos 7443daea4c fix: handle missing pagingInfo 2022-12-12 11:45:45 -04:00
Richard Ramos 87ce20d38e feat: add /debug/pprof endpoint when using --pprof flag 2022-12-10 21:55:41 -04:00
Richard Ramos b9f47e8982 refactor: remove quit channel from rpc/rest 2022-12-10 12:23:28 -04:00
Richard Ramos 83fd53d432 refactor: use context instead of quit channel 2022-12-10 11:51:08 -04:00
Richard Ramos 446e38ceaf
chore: add sqlite default parameters 2022-12-10 07:25:26 -04:00
Richard Ramos ca17ac8c91 feat: allow passing params to db url and connection pool params 2022-12-09 23:11:27 -04:00
Richard Ramos d64c4aedc4
fix: examples and making resume nodes optional 2022-12-09 14:28:08 -04:00
Andrea Maria Piana ebaf10601f Pass bootnodes to discovery 2022-12-09 14:11:12 -04:00
Andrea Maria Piana 685142e7b7 Allow to set bootnodes 2022-12-09 13:53:07 -04:00
Richard Ramos a66bf8a893 fix: filter can submit broadcaster envelopes 2022-12-09 10:20:16 -04:00
Richard Ramos 84c7022e2d feat: add ntp timesource 2022-12-09 10:20:16 -04:00
Prajjawalk 066185ee86 Add: waitgroup for logger to wait for RPC server to be mounted, ref issue:- #299
Signed-off-by: Prajjawalk <prajjawalkhandelwal@gmail.com>
2022-12-08 15:49:34 -04:00
Richard Ramos b929aeeb4e
fix: initial value of lastTimeExecuted 2022-12-08 15:48:16 -04:00
Richard Ramos ff8c3009c7 refactor: store 2022-12-06 12:06:17 -04:00
Richard Ramos 05e33105c4 fix: force disconnect if keepAlive loop hasnt been executed recently 2022-12-05 15:20:14 -04:00
Richard Ramos b08ae4d7cc fix(peer_exchange): allow using as client without discv5 enabled 2022-12-03 09:52:01 -04:00
Richard Ramos 94d20ab122 fix: remove useless condition 2022-11-29 16:14:35 -04:00
Richard Ramos 982707e02c refactor(discv5): execute discover loop as separate goroutine 2022-11-29 15:28:13 -04:00
Richard Ramos 041c7be67d fix: RLN Merkle Root window 2022-11-26 17:09:12 -04:00
Richard Ramos 5243124af5 refactor: gowaku version 2022-11-25 21:56:43 -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 04a2a3fbae fix(store): max records per query 2022-11-24 08:51:03 -04:00
Richard Ramos 5d7d05ca16
fix: restart discv5 2022-11-22 19:46:56 -04:00
Richard Ramos df4e182266 fix: discV5 enr update 2022-11-22 17:57:05 -04:00
Richard Ramos 22404a0608 fix: log format 2022-11-21 14:33:46 -04:00
Richard Ramos a247e8346d chore: add extra logging for message IDs 2022-11-16 10:42:20 -04:00
Richard Ramos dbe152b8e5 feat: find by criteria 2022-11-16 10:38:21 -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 8c58037770 fix: set tls min version to 1.2 2022-11-09 22:39:25 +03:00
Richard Ramos 8b64934e2c feat: peer exchange 2022-11-09 17:26:38 +03:00
Richard Ramos 861f37f15a fix: concurrent map writes 2022-11-09 17:26:29 +03:00
Richard Ramos 5f65c5a9f4 fix: limit the number of content filters in query 2022-11-09 17:14:01 +03:00
Richard Ramos dc0968ca0a fix: chat2 rln credentials 2022-11-09 17:09:36 +03:00
Richard Ramos 448781687e feat: output logs to file 2022-11-03 07:06:16 +01:00
Richard Ramos 38093bf660 chore: move dependencies from status-im to waku-org 2022-10-27 11:41:23 -04:00
Richard Ramos a60213b14b chore: add `agent-string` flag 2022-10-27 11:28:37 -04:00
Richard Ramos 77df9a2224 chore: set userAgent to `go-waku` 2022-10-27 11:28:37 -04:00
Richard Ramos 1b7dd9fe3f chore: remove rendezvous 2022-10-27 09:16:26 -04:00
Richard Ramos 9b5922bc74 fix(rln): keep track of last loaded index 2022-10-26 18:17:10 -04:00
Richard Ramos 665968deea feat(rln): multiple acceptable roots 2022-10-26 18:16:55 -04:00
Richard Ramos 7636967ccc refactor(noise): use status-im/noise 2022-10-23 09:13:00 -04:00
Richard Ramos 721c27e101 fix(rln): attempt to re-subscribe if websocket conn fails 2022-10-21 15:24:26 -04:00
Richard Ramos 0ba2d9ea97
fix: remove println 2022-10-21 14:28:05 -04:00
Richard Ramos 3b4dcf3195 fix(rln): remove idcommitment and idkey 2022-10-21 11:42:18 -04:00
Richard Ramos e393b68ab7 fix: lint 2022-10-21 11:29:31 -04:00
Richard Ramos 97973e3226 fix: keep only last 30 messages in memory in rpc relay and filter 2022-10-21 11:29:31 -04:00
Richard Ramos df38038bc0 feat: allow lightpush to be used as client always 2022-10-20 09:56:47 -04:00
Richard Ramos b242389e05 chore: remove `--persist-messages` flag 2022-10-20 09:35:42 -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 1a8543f98f fix: add lock to nullifier log 2022-10-09 12:15:28 -04:00
Richard Ramos e91fd0e649 feat: use verifyProofWithRoots 2022-10-07 19:05:19 -04:00
Richard Ramos 4841f89eff
fix: handling bytes 2022-10-05 18:08:01 -04:00
Richard Ramos 4d23f4256a feat: zerokit RLN 2022-10-04 19:27:21 -04:00
Richard Ramos 5af5e89c08
chore: improve pagination logic (#325) 2022-10-03 15:26:45 -04:00
Richard Ramos 0ab7641a2f
fix: dnsdisc address (#318) 2022-09-26 18:03:18 -04:00
Richard Ramos 2b5c8769d5
fix: rpc message version (#319) 2022-09-23 16:40:12 -04:00
Richard Ramos eafbc4c01f
chore: install go-bindata and add indexes to message table (#317) 2022-09-21 09:22:22 -04:00
Richard Ramos 3a38e0e76a
fix: check if enr has UDP (#316) 2022-09-15 18:54:37 -04:00
Richard Ramos f6cd9904c5
fix: invalid order when pagination is backwards (#313) 2022-09-15 09:23:45 -04:00
Richard Ramos c39c4d535c
feat: support multiple DNS discovery URLs (#309) 2022-09-14 15:19:11 -04:00
Richard Ramos 8d42febe18
fix: make 0x prefix optional (#306) 2022-09-14 15:19:04 -04:00
Richard Ramos 83250be0fb
feat: ephemeral messages (#305) 2022-09-12 12:10:34 -04: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 3716ebdf1d
fix: chat2 feedback 2022-09-11 17:08:58 -04:00
Richard Ramos db85642862
fix: null response obtaining messages from relay (#296) 2022-09-08 08:54:12 -04:00
Richard Ramos b226f34f9f
fix: noise padding, docs and http status for rpc errors (#300) 2022-09-07 15:24:35 -04:00
Richard Ramos 81220b0a2e
fix: stop node without rln 2022-08-26 22:01:26 -04:00
Richard Ramos a1e5b587a2 feat: add flag to set wss port 2022-08-26 11:59:50 -04:00
Richard Ramos e201528da7 fix: increase timeout when dialing peers and add extra logging 2022-08-26 11:59:18 -04:00
Richard Ramos 8d885febf7
fix: set default response if nil 2022-08-19 12:00:20 -04:00
Richard Ramos 7943f8f657
fix: close eth connection on stop 2022-08-18 12:27:10 -04:00
Richard Ramos d14e3be64e
chore: add comments to rln options 2022-08-18 10:42:18 -04:00
Richard Ramos bcaf229994
fix: linting, printing addresses in chat2, adding err channel to event subs 2022-08-15 21:39:31 -04:00
Richard Ramos 8538013f29 fix: update contracts 2022-08-15 15:22:13 -04:00
Richard Ramos 39f70f71a9 feat: use generic flags and convert values to specific data types 2022-08-15 15:22:13 -04:00
Richard Ramos 4589b6c31c feat: make rln optional 2022-08-15 14:41:58 -04:00
Richard Ramos 4292b14ef4 chore: make dynamic tests optional 2022-08-15 14:40:10 -04:00
Richard Ramos c2ce8326ff test: rln onchain 2022-08-15 14:40:10 -04:00
Richard Ramos fb6aa64442 feat: store credentials in a file 2022-08-15 14:40:10 -04:00
Richard Ramos f486236d0d fix: don't use goroutines for processing logs 2022-08-15 14:40:10 -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 6481e72885 feat: chat2 + RLN(static) 2022-08-15 14:40:10 -04:00
Richard Ramos 67a43b8ba7 feat: test unit for RLN (static) 2022-08-15 14:40:10 -04:00
Richard Ramos 1636a33835 feat: RLN (static) 2022-08-15 14:40:10 -04:00
Richard Ramos e7bc6799ed refactor: decouple rpc and rest http servers 2022-08-09 11:59:47 -04:00
Richard Ramos 7279600c64 feat(REST): relay (#267) 2022-08-09 11:59:47 -04:00
Richard Ramos 6e44784255
feat(REST): debug (#266) 2022-08-09 10:15:16 -04:00
Richard Ramos dec00e69ad
feat: noise (#258) 2022-08-09 09:55:08 -04:00
Elise Alix 924acf67d9
fix: verify matching `requestId` before removing subscription (#280)
* Check we are removing content topics for the correct request
* Verify request id matches before removing peer as well
2022-08-03 09:35:25 -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 a549337a42
fix: quit channel on store 2022-07-28 15:33:56 -04:00
Richard Ramos 4041f5a67a
fix: store recorded messages metric 2022-07-28 15:17:12 -04:00
Richard Ramos 1c2c68fbfd
fix: test and lint 2022-07-28 14:29:35 -04:00
Nicholas Molnar 2bfdcb6fd1
fix: handle case of unsubscribe from non-existent topic (#276) 2022-07-26 15:20:56 -04:00
Richard Ramos 069d66ed6d
fix: get_waku_v2_admin_v1_peers response 2022-07-26 13:49:10 -04:00
Richard Ramos ecf55b6f89
fix: advertise addr IP 2022-07-26 11:24:24 -04:00
Richard Ramos 6043f6db2e
chore: add docs to filter protocol 2022-07-25 13:28:50 -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 e2b04570c1
chore: improve docs 2022-07-25 11:28:17 -04:00
Richard Ramos 6d65d4921c
feat: encrypt nodekey file (#270) 2022-07-25 08:24:42 -04:00
Steven Normore d8853e62c6
fix: store error metrics tagging (#269) 2022-07-23 08:14:49 -04:00
Richard Ramos 36d4a61dc4 chore: add missing flags 2022-06-19 17:47:39 -04:00
Richard Ramos 27b5ab9c51 chore: test store being decoupled from relay and fix empty contenttopics on filter 2022-06-14 15:53:48 -04:00
Martin Kobetic 2c2725308f
fix: filter deadlock (#262) 2022-06-14 11:53:56 -04:00
Richard Ramos 25c3887342 fix: js-waku / nwaku interop - pt2 2022-06-14 11:36:34 -04:00
Martin Kobetic b749cf22c0
fix: gowaku_lightpush_errors tag (#261) 2022-06-13 14:36:04 -04:00
Richard Ramos 3c0c3c4eeb
fix: js-waku / nwaku interop (#252) 2022-06-13 14:30:35 -04:00
Martin Kobetic 73af2002ce
fix: races in filter protocol and tests (#260)
* Fix races in filter protocol and tests
* only RLock needed
2022-06-10 08:18:34 -04:00
Martin Kobetic 8e295a2a57
fix: race in TestConnectionStatusChanges (#257) 2022-06-10 08:15:00 -04:00
Vitaliy Vlasov ca595277e6
fix: iterate through Network peers during ping process (#182) 2022-06-01 16:11:35 -04:00
Martin Kobetic 80385bf78e feat: add option for setting the encoding/format for logs (#250) 2022-06-01 16:04:00 -04:00
Richard Ramos fddffed78b fix: restore time variance verification 2022-06-01 15:51:28 -04:00
Richard Ramos 3847bcae68 fix: add back mplex muxer 2022-05-31 15:51:53 -04:00
Richard Ramos 77c1e26a9e chore: upgrade deps and go1.17 2022-05-30 15:30:43 -04:00
Richard Ramos 623e0705c5 fix: increase timeout 2022-05-30 15:30:43 -04:00
Richard Ramos b14f4a9aa8
feat: db migrations (#246) 2022-05-30 15:13:27 -04:00
Richard Ramos 7c0206684f
refactor: use db for serving history queries (#243) 2022-05-30 14:48:22 -04:00
Martin Kobetic 7c44369def
feat: structured logging followup (#248) 2022-05-30 11:55:30 -04:00
Richard Ramos 56c8ef705a fix: lint and unclosed prepared stmt 2022-05-27 14:34:13 -04:00
Martin Kobetic 0c989d3d8c
feat: structured logging (#242) 2022-05-27 09:25:06 -04:00
Richard Ramos d872b28d8f fix: change rpc endpoint to match nwaku 2022-05-26 08:23:10 -04:00
Richard Ramos c3e4262475
fix: removing VACUUM to speedup db operations 2022-05-19 17:29:15 -04:00
Richard Ramos b4697210b0
chore: adding some log messages to store 2022-05-19 16:30:41 -04:00
Richard Ramos dfed1409ff feat: domain name config 2022-05-17 17:54:41 -04:00
Nicholas Molnar 5353ae48f2 Use new errgroup 2022-05-17 13:49:40 -04:00
Nicholas Molnar 38fc9ee8bb Push subscriptions in parallel 2022-05-17 13:49:40 -04:00
Richard Ramos 257847ebaa
feat: add flags for enabling admin and private RPC methods 2022-05-06 15:47:39 -04:00
Richard Ramos 7b3c853c15
refactor: use diff logger for waku 2022-05-06 15:29:31 -04:00
Richard Ramos 79f3cf5b9f feat: discv5 dns bootstrap 2022-05-05 15:41:36 -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 281e932c56 feat: add commit hash and method in debug rpc endpoint 2022-05-05 14:26:24 -04:00
Richard Ramos 30527b9a80 chore: vacuum DB after deleting records 2022-05-05 14:26:24 -04:00
Richard Ramos 3a0fc81889
chore: add docs. pt - 1 (#230) 2022-05-04 17:08: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 15f3abec3a
fix: envelope hash should match messageIdFn hash (#220) 2022-03-23 09:16:11 -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
Richard Ramos e85d112828
feat: store timestamp validity checks (#215) 2022-03-22 08:34:45 -04:00
Richard Ramos df235db6b7
feat: c-bindings for waku relay (#212) 2022-03-21 19:15:53 -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 af6f36ec54
fix: flaky test (#211) 2022-03-18 15:50:10 -04:00
Richard Ramos e7098efcff
chore: nim-waku interop test (#207) 2022-03-10 18:14:50 -04:00
Richard Ramos 61cda61c3d
fix: flag conn error as failure (#209) 2022-03-09 19:15:04 -04:00
Richard Ramos cf6c4ae8fe
fix: extract multiaddress from enode key if available (#199) 2022-03-08 08:58:32 -04:00
Richard Ramos f4f307db87
fix: connect before opening a stream 2022-03-03 12:04:03 -04:00
Richard Ramos b820d797c8
feat: add pubsub topic to Index pb (#200)
* feat: add pubsub topic to Index pb
* fix: flaky test
2022-03-02 12:02:13 -04:00
Richard Ramos 2817d71fea
feat: use `d5waku` as ProtocolID for DiscV5 (#196) 2022-02-28 14:28:09 -04:00
Richard Ramos cdc0c9c69d
fix: remove unused vars 2022-02-24 09:40:18 -04:00
Richard Ramos d1931a6c69
fix: remove print 2022-02-24 09:37:10 -04:00
Richard Ramos df66ef5bb5
fix: race condition in unsubscribe (#197) 2022-02-23 11:08:27 -04:00
Richard Ramos 8d155fb51e
fix: protocol name 2022-02-23 11:06:47 -04:00
Richard Ramos 58f739765e
refactor: use int64 timestamps (#189)
* refactor: use int64 timestamps
* fix: changed PB Timestamp index to 10
2022-02-23 11:01:53 -04:00
Richard Ramos e9dafb6038
fix: remove public key (#193) 2022-02-21 15:21:31 -04:00
Richard Ramos 3e5d0d0843
fix: flag naming inconsistency (#194)
Fixes #80
2022-02-21 11:23:52 -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 a3c67e0d42
feat: separate waku2 network (#179)
* chore: use go-discover instead of go-ethereum/p2p/discover
* feat: use validator function for discV5
2021-12-10 11:29:50 -04:00
Anthony Laibe 12593bb503 feat: private get messages 2021-12-10 15:51:40 +01:00
Richard Ramos 1b0e03c07b
feat: add support for RFC31 ENR (#180) 2021-12-10 10:26:38 -04:00
Richard Ramos 0de19253da
refactor: maintenaibility fixes (#167) 2021-12-08 10:21:30 -04:00
Anthony Laibe d0d3271433 feat: private rpc encrypt message 2021-12-08 14:07:57 +01: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 23cbb24a94
fix: use max Int32 instead of 64 due to compile issue on android (#170) 2021-11-25 10:18:33 -04:00
Richard Ramos a3125c7b61
fix: increase response read limit (#169) 2021-11-25 09:46:04 -04:00
Richard Ramos b728e62ec7
fix: disconnect peer after failing 2 consecutive pings (#168) 2021-11-24 16:11:24 -04:00
Anthony Laibe 3571f0bab9 feat: init swap protocol
* Add proto files
* Add options
* Add credit/debit for soft mode
2021-11-24 13:58:35 +01:00
Richard Ramos ce417a6486
refactor: use WaitGroup for graceful shutdown of worker goroutines (#166) 2021-11-23 11:03:12 -04:00
Richard Ramos c8caa46c99
feat: add NAT for DiscV5 UDP port (#164) 2021-11-23 10:24:05 -04:00
Anthony Laibe 28487873b6 refactor: runnable service 2021-11-22 16:03:54 +01:00
Anthony Laibe 74c0f648f2 fix: Use log.Info rather than fmt.Println 2021-11-22 14:54:17 +01:00
Anthony Laibe 2afffd9dd9 feat: Add rpc method for filter#getmessages 2021-11-22 13:43:41 +01:00
Richard Ramos 79bb101787 fix: port number verification 2021-11-21 10:04:31 -04:00
Richard Ramos e8c08ac18b fix: invalid ticker usage 2021-11-21 10:04:23 -04:00
Richard Ramos 78a0d4d74d fix: replace WIthTopic to ToTopic 2021-11-19 20:04:38 -04:00
Richard Ramos 00ee0b7511 refactor: create separate functions for subscriptions and publishing 2021-11-19 20:04:38 -04:00
Richard Ramos 56ef99e11f refactor: remove topic type 2021-11-19 20:04:38 -04:00
Anthony Laibe 75516a8f96 feat: implement rcp relay get messages 2021-11-19 14:53:40 +01:00
Richard Ramos 055227a4c6
fix: invalid ENR generated for addresses (#151) 2021-11-19 09:13:00 -04:00
Anthony Laibe c91d666f35 feat: Add private service
Plus add missing methods in other services as not implemented yet
2021-11-19 09:38:16 +01:00
Anthony Laibe 38e5fdbe3e feat: Add rpc filter 2021-11-18 13:35:55 +01:00
Anthony Laibe 2ae370ca41 test: Add test/refactor filter option 2021-11-18 13:35:46 +01:00
Richard Ramos c9a9b02e48
test: stop / start discovery (#153) 2021-11-18 08:26:36 -04:00
Richard Ramos 817759c235
feat: discoveryV5 - part2 (#150) 2021-11-17 12:19:42 -04:00
Anthony Laibe 978bedfafa feat: add admin rpc methods 2021-11-17 16:11:02 +01:00
Richard Ramos 6ae4d4fce2
feat: discoveryV5 - part1 (#149) 2021-11-16 10:22:01 -04:00
Anthony Laibe e176975aed test: Add more test for waku node 2021-11-12 14:26:22 +01:00
Richard Ramos 54f647aa4f
test: public_key and resolver (#147) 2021-11-10 21:34:39 -04:00
Richard Ramos 6d04308716
feat: 23/WAKU2-TOPICS (#146) 2021-11-10 10:28:45 -04:00
Anthony Laibe 9f504b1150 test: extend coverage with missing test 2021-11-10 14:55:23 +01:00
Anthony Laibe b81bd6ff30 feat: Add rpc store
Add test for rpc services
2021-11-10 09:22:00 +01:00
Richard Ramos 0c873e3c2d
feat: select peer with lowest ping time and test peer functions (#143)
* feat: select peer with lowest ping time and test peer functions
* fix: do not self-ping
2021-11-09 19:34:04 -04:00
Richard Ramos 9426cd133a
fix: store protocol should have a host regardless if acts as store node or not (#142) 2021-11-09 12:18:57 -04:00
Anthony Laibe 7ff5fcf838 feat: Add relay rpc methods 2021-11-09 13:54:45 +01:00
Richard Ramos 49737780ea refactor: concurrent map and slices for filter 2021-11-08 08:58:14 -04:00
Richard Ramos fcfe3568ab feat: clean up older records in message queue
Fixes #133
2021-11-07 11:16:04 -04:00
Anthony Laibe a1cb371d5a refactor: lightpush options and be more explicit about
the relay node being present or not
2021-11-07 16:15:07 +01:00
Richard Ramos a46881fc27 fix: rebase issues 2021-11-06 12:57:01 -04:00
Richard Ramos 2cbedf47a0 refactor: rename parameter from maxDays to maxDuration 2021-11-06 12:57:01 -04:00
Richard Ramos a7c76d2af1 fix: typo 2021-11-06 12:57:01 -04:00
Richard Ramos 08c5c2303e Use function to calculate duration in days 2021-11-06 12:57:01 -04:00
Richard Ramos 12a1daae74 fix: remove useless parameter 2021-11-06 12:57:01 -04:00
Richard Ramos 6db2f258d8 feat: message retention policy for wakustore
Fixes#69
2021-11-06 12:57:01 -04:00
Richard Ramos 793e7f572f refactor: filter
Moves the filter logic from wakunode2 to waku_filter
2021-11-06 12:45:14 -04:00
Richard Ramos 99248e9931 test: unsubscribe to filter 2021-11-06 12:25:45 -04:00
Richard Ramos c98769b7f2 refactor: use envelopes in the store
Also do some linting and add documentation for some functions
2021-11-06 09:06:53 -04:00
Richard Ramos 0df1a21dba fix: connectedness_test async error 2021-11-05 10:29:40 -04:00
Richard Ramos 2336252efc add size to store message channel 2021-11-05 10:29:40 -04:00
Anthony Laibe 7a34cf6d45 feat: Use correct rpc method name 2021-11-03 13:25:28 +01:00
Anthony Laibe 06a86f45b0 feat: Add first endpoint for rpc server 2021-11-02 15:16:23 +01:00
Richard Ramos 82ec44fcfa fix: lint and failing test 2021-11-02 07:59:10 -04:00
Richard Ramos 6a3a5b08b3 test: replace peer_events example app by a test 2021-11-02 07:59:10 -04:00
Vitaliy Vlasov 268767262b
Iterate through Peerstore in startKeepAlive() (#102) 2021-11-01 13:33:58 -04:00
Anthony Laibe 189724dd1e test: add filter test 2021-11-01 16:38:24 +01:00
Richard Ramos b789d9900e
refactor: relay (#119) 2021-11-01 10:42:55 -04:00
Richard Ramos c0ba800af7
refactor: store and lightpush (#118) 2021-11-01 08:38:03 -04:00
Richard Ramos 98255060f3
refactor: add Next() and create Query and Result structs (#117) 2021-10-31 15:00:38 -04:00
Richard Ramos d150123f21
fix: store and lightpush metrics (#114) 2021-10-30 19:19:03 -04:00
Richard Ramos d94802f739
chose node type when starting filter and make relay optional (#113) 2021-10-30 10:29:34 -04:00
Richard Ramos f2be4a8e7a
test: keep alive (#110) 2021-10-29 11:24:31 -04:00
Richard Ramos b7a7143803
select random peer instead of just the first (#109) 2021-10-28 15:26:25 -04:00
Richard Ramos 8ba64affba
test: resume and time based queries (#108) 2021-10-28 09:03:23 -04:00
Anthony Laibe 9030907960
test: add test for lightpush (#106)
* test: add test for lightpush


Co-authored-by: Richard Ramos <info@richardramos.me>
2021-10-28 14:41:17 +02:00
Richard Ramos 8253e381df
test: store 2021-10-25 15:41:08 -04:00
Anthony Laibe ce49f29c08 test: add test for relay protocol 2021-10-25 21:24:42 +02:00
Anthony Laibe 3bf00b2f37 test: add test for generating requestid 2021-10-25 20:27:01 +02:00
Anthony Laibe 10378a5827 test: Add persistence module test 2021-10-22 09:41:26 +02:00
Richard Ramos 041a5dae67
test: payload encryption (#97) 2021-10-21 11:56:18 -04:00
Richard Ramos 59e4a11b55
test: payload encoding / decoding (#96) 2021-10-21 08:18:14 -04:00
Anthony Laibe 9ad06b6eb8 test: Add time test 2021-10-20 21:51:26 +02:00
Richard Ramos b1284d367d
test: utils (#95) 2021-10-20 14:43:59 -04:00
Richard Ramos 68fe29c56f
test: broadcast (#94) 2021-10-20 14:43:51 -04:00
Anthony Laibe 6f8e86b667 test: add persistence sqlite test 2021-10-20 17:34:03 +02:00
Anthony Laibe 990bbc50dc test: Add metrics unit test 2021-10-20 15:50:53 +02:00
Richard Ramos eadd018ce5
fix: multiaddress format was incorrect when using ws (#90) 2021-10-18 08:38:01 -04:00
Richard Ramos e482075fa9
refactor: peer selection and filter API (#87) 2021-10-18 08:25:55 -04:00
Richard Ramos 5f3df9343c fix: goroutine leak on ping 2021-10-18 07:55:42 -04:00
Anthony Laibe 5744879242 refactor: add leveldb rendezvous persistence 2021-10-18 09:16:57 +02:00
Richard Ramos 654bebdb93
fix: peer metrics 2021-10-16 18:02:48 -04:00
Richard Ramos b661a4b9bc
fix: missing identity 2021-10-15 15:51:24 -04:00
Richard Ramos a956684f48
fix: use same privKey when displaying addresses 2021-10-15 08:39:51 -04:00
Jakub 1c991a94d8
metrics: add /health endpoint for healthchecks (#84)
Because calling `/metrics` for a Consul healhcheck is too heavy
and far too verbose.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-10-15 12:47:40 +02:00
Richard Ramos c86db00285
feat: add --advertise-address flag 2021-10-14 22:15:02 -04:00
Richard Ramos 8c590851e3
fix: add --show-addresses and allow setting the listening address 2021-10-14 14:36:25 -04:00
Anthony Laibe 54a93a60c5
feat: add ability to regenerate proto files (#76) 2021-10-14 11:03:25 +02:00
Anthony Laibe 2df2289972
feat: Add log level options (#75) 2021-10-13 16:18:10 +02:00
Anthony Laibe 86cf5304b2
fix linter (#73) 2021-10-13 14:48:29 +02:00
Richard Ramos c1bdead94d
revert: utils.GetUnixEpoch() 2021-10-12 09:45:22 -04:00
Richard Ramos dc52ba182a refactor: filter
- Create a channel when a subscription is created
- Add stop function for protocols
2021-10-11 19:02:25 -04:00
Richard Ramos 578b40a44e refactor: extract function to subscribe to topic 2021-10-10 18:53:25 -04:00
Richard Ramos 13aee0b1e0 refactor: change filter function parameters to not use protobuffers 2021-10-10 18:53:25 -04:00
Richard Ramos 8a28978f83
fix: wait until peer is connected to resume history 2021-10-10 11:46:31 -04:00
Richard Ramos 8f87009466
fix: docs 2021-10-10 11:46:23 -04:00
Richard Ramos 4a7779dda1 refactor: remove go-wakurelay-pubsub and update dependencies 2021-10-08 10:46:46 -04:00
Richard Ramos dbd7a1c2d7 WIP: replace go-wakurelay-pubsub by go-libp2p-pubsub 2021-10-08 10:46:46 -04:00
Richard Ramos 761ae88bbd
fix: remove channel for disconnections
Since a subscriber might not be connected always it makes no sense to automatically unsubscribe on disconnet
2021-10-06 15:25:41 -04:00
Richard Ramos 70e301f348
fix: flag names 2021-10-06 14:43:41 -04:00
Richard Ramos 245c01b286 fix: check err on wakunode start 2021-10-06 14:07:46 -04:00
Richard Ramos 1991a54d64 refactor: connectedness
Uses libp2p network notifier to determine when a peer connects or disconnects, as well as using the host network peerstore instead of managing out own separate peer map
2021-10-06 14:07:46 -04:00
Richard Ramos 79e21dbb99 refactor: add peers before starting 2021-10-04 22:16:24 -04:00
Richard Ramos de0b63f4a2 feat: options to generate/specify/load node privatekey 2021-10-04 22:14:38 -04:00
Richard Ramos f82732cd19 refactor: reorganize wakunode flags in groups 2021-10-04 18:39:03 -04:00
Richard Ramos a58db1656d refactor: rendezvous nodes are added to peer store
- No need to specify peerIDs in command line flag
- Rendezvous nodes are selected automatically instead of passing them via waku option
2021-10-01 14:45:25 -04:00
Richard Ramos 034656b2c0 refactor: rename protocol variables 2021-10-01 14:45:25 -04:00
Richard Ramos 954f2a0c56
feat: use leveldb for storing peers and clean up periodically older records from rendezvous server (#56) 2021-10-01 14:37:52 -04:00
Richard Ramos 70efcd72f3
feat: rendezvous (#54) 2021-10-01 13:49:50 -04:00
Richard Ramos 5c9a29524d
feat: add gossipsub peer exchange option to waku node (#53) 2021-10-01 13:43:03 -04:00
Richard Ramos 37a01edce4
fix: add context parameter to peer dial (#59) 2021-10-01 06:32:15 -04:00
Richard Ramos c8a83f04de
feat: add dns-discovery flags to wakunode and chat2 example (#52) 2021-09-30 19:03:19 -04:00
Richard Ramos 9416077adf
fix: use multiaddres instead of strings 2021-09-27 14:16:06 -04:00
Andrea Maria Piana cfcfb52a58
[Fixes: #39] Add DNS discovery (#48)
This commit adds a public method that takes a url and returns a list of
multiaddr.

Once we better understand how to integrate it we can make it so that is
passed as a config when initializing waku, this commit only provides the
basic functionality.
2021-09-27 13:52:56 -04:00
RichΛrd 6c4a74fb9c
fix: check for messages first on filter in case a non null request is being sent (#50)
* fix: check for messages first on filter in case a non null request is being sent
* fix: clean up logs
* fix: peer lock
2021-09-27 08:47:18 -04:00
Vitaliy Vlasov 67ac969a65 Use peerstore instead of network 2021-09-23 17:38:08 +03:00
Vitaliy Vlasov a3c7102a34 Fix keepAlive 2021-09-23 17:38:08 +03:00
Richard Ramos 1cf3de3a3f fix: return 2021-09-23 17:38:08 +03:00
Richard Ramos 4ce04014d1 fix: make resume optional and trigger connect/disconnect when dialing a peer or dropping it 2021-09-23 17:38:08 +03:00
Richard Ramos cf32e10236 expose function to retrieve list of peers and supported protocols 2021-09-23 17:38:08 +03:00
Richard Ramos 4450e6bba0 adds DialbyPeerID 2021-09-23 17:38:08 +03:00
Richard Ramos 11bf973daf chore: change log level to reduce noise 2021-09-23 17:38:08 +03:00
RichΛrd 52b46d6869 emit ConnStatus always to get an update when peers change connectivity (#46)
* emit ConnStatus event always to get an update when peers change
connectivity
* use peers map to determine peer count
2021-09-23 17:38:08 +03:00
RichΛrd 53b3d19948 add peers to ConnStatus (#45)
* add peers to ConnStatus
* return connected peers and supported protocols
2021-09-23 17:38:08 +03:00
Vitaliy Vlasov 24c7a8e4c6 Use keepAlive for Connectedness events 2021-09-23 17:38:08 +03:00
Richard Ramos 51f220a130
refactor: code duplication 2021-08-31 14:19:49 -04:00
Andrea Maria Piana b387da9ab4
Add tests and lint code 2021-08-13 13:56:09 +02:00
Richard Ramos c9d3334f2d
fix: matcher function 2021-07-29 12:35:08 -04:00
Richard Ramos fd49e33a45
fix: timestamp format and bump go-wakurelay-pubsub 2021-07-29 11:03:30 -04:00
RichΛrd 654f3f8cd4
fix: order of fields of History Response protobuf (#35) 2021-07-29 08:43:29 -04:00
RichΛrd c3ac5ef9c5
feat: Add support for multiple protocol IDs (#34) 2021-07-29 08:41:37 -04:00
RichΛrd 748e738d9a
adding lint target and fixing lint issues (#38) 2021-07-29 08:40:54 -04:00
Richard Ramos 73bedde63c
fix: invalid parameter 2021-07-21 14:02:31 -04:00
Richard Ramos a2ff7f3df9
Use sender timestamp for retrieving messages from store 2021-07-11 14:11:38 -04:00
Vitaliy Vlasov 690841d042 Add peer connectivity notifications 2021-06-29 16:35:01 +03:00
RichΛrd 367459f4d7
filter and lightpush showcase (#28) 2021-06-28 10:14:28 -04:00
RichΛrd 48d5a6996b
feat: configure metrics using opencensus (#32)
* feat: configure metrics using opencensus
* add runtime metrics
2021-06-28 09:20:23 -04:00
RichΛrd c44e50677c
feat: use ping protocol to keep conn to peers alive (#27) 2021-06-24 09:02:53 -04:00
Vitaliy Vlasov 0c3f109d9e Add UnsubscribeFilter 2021-06-16 11:39:15 +03:00
RichΛrd ceacac10c3
feat: resume message history (#24) 2021-06-10 09:00:06 -04:00
Vitaliy Vlasov b9f3f562eb
waku2-filter (#23)
* waku2-filter
2021-06-10 08:59:51 -04:00
Richard Ramos 9138d58152
Add option to enable lightpush protocol 2021-04-28 16:23:03 -04:00
Richard Ramos 3d8aae5b81
Lightpush protocol
- Partially implements #20. Requires some tests
- Extracts wakurelay code to separate file
- Extracts request id gen to separate file
- Initial implementation of lightpush protocol
- Adds utils functions to obtain a message hash
- Publish receives a context to send a message
2021-04-28 16:10:44 -04:00
Richard Ramos aee86211d1
Enabling pubsub topic filter in history queries
Fixes #19
2021-04-28 11:11:32 -04:00
Richard Ramos 4a4d0c97ec
docs. pt-2 2021-04-22 16:42:44 -04:00
Richard Ramos 51e0fecb76
docs. pt-1 2021-04-22 14:49:52 -04:00
Richard Ramos f978071043
add websocket support 2021-04-22 09:07:22 -04:00
Richard Ramos 997bc4f2d8
refactor: organize code 2021-04-21 20:09:37 -04:00
Richard Ramos 287a54aca7
add history content filter 2021-04-20 17:46:35 -04:00
Richard Ramos ef67ff356f
support memory only waku store 2021-04-18 20:03:16 -04:00
Richard Ramos 57e36021bb
Use options pattern for starting a waku node 2021-04-18 19:41:42 -04:00
Richard Ramos 183b8f52c1
subscribe to multiple topics 2021-04-15 17:23:07 -04:00
Richard Ramos 7ba8c51bca
use peer.ID instead of string 2021-04-15 13:55:40 -04:00
Richard Ramos ed9ea40668
use broadcaster for subscriptions and minor code reorg 2021-04-14 22:19:31 -04:00
Richard Ramos e1f10d2099
Add options and start/end time to waku_store 2021-04-14 22:17:53 -04:00
Richard Ramos 547be3c951
extract subscription to separate file 2021-04-14 22:17:12 -04:00
Richard Ramos 11b588a46f
Reorg file paths, and initialize peer store 2021-04-13 14:54:06 -04:00
Richard Ramos 1b746cdec8
Persistent peer store 2021-04-13 14:52:57 -04:00