Commit Graph

591 Commits

Author SHA1 Message Date
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
Richard Ramos ad9abe601c
fix: numeric identifiers and index out of bounds issue on store 2021-04-12 13:59:09 -04:00
Richard Ramos f9e7589ffd
generate hashes of messages 2021-04-11 19:43:59 -04:00
Richard Ramos ff8d4ef8a4
change ContentTopic from uint32 to string 2021-04-08 18:07:31 -04:00
Richard Ramos a84b81b400
fix: error handling and proof numeric id 2021-04-08 14:49:03 -04:00
Richard Ramos 9c224c1849
fix: nim-waku interop for store 2021-04-07 17:16:29 -04:00
Richard Ramos f83423facd
update chat2 to use waku_payload encoding/decoding 2021-04-06 19:27:54 -04:00
Richard Ramos e8f7a4d38c
revert: making waku message fields optional 2021-04-06 19:17:52 -04:00
Richard Ramos be168ebe3f
fix: indirect access to content topic 2021-04-06 19:13:17 -04:00
Richard Ramos 0a0542324c
update waku_store protobuffer definition 2021-04-06 19:11:53 -04:00
Richard Ramos 100a26f49c
wakuv1 envelope format 2021-04-06 19:08:16 -04:00
Richard Ramos 65fc98f450
Update waku_message protobuffer definition 2021-04-06 19:07:20 -04:00
Richard Ramos 38b9ec5448
basic2 example 2021-04-04 15:33:21 -04:00
Richard Ramos 3294103e06
fix: index out of bounds when querying stored messages 2021-04-04 14:42:08 -04:00
Richard Ramos 56346c6b1a
fix: mark subscriptions as closed 2021-04-04 13:08:45 -04:00
Richard Ramos c44b40319e
create envelope struct with hash and size of message 2021-04-04 13:08:34 -04:00
Richard Ramos bc32532401
close peer connection and get num of connected peers 2021-04-04 13:08:29 -04:00
Richard Ramos fa7169bbbc
use go-wakurelay-pubsub instead of go-libp2p-pubsub 2021-04-04 13:08:22 -04:00
Richard Ramos c1bcba756c
add logs 2021-04-04 13:07:55 -04:00
Richard Ramos 1345809aba
example node used to emit/listen/retrieve messages 2021-04-04 13:07:50 -04:00
Richard Ramos c4ed58c188
Waku store - initial implementation 2021-04-04 13:07:41 -04:00
Richard Ramos 783ad01d92
Use a ticker for getting next message 2021-03-15 19:59:18 -04:00
Richard Ramos 32cdc4cadd
fix: lock subscription before closing it 2021-03-15 17:43:26 -04:00
Richard Ramos cac9aa7b37
Handle unsubscriptions and encoding of messages 2021-03-15 17:17:36 -04:00
Richard Ramos 09fe21baa5
Adding subscribe/unsubscribe methods 2021-03-15 12:07:23 -04:00
Richard Ramos 241733e6a4
WakuRelay 2021-03-12 15:06:20 -04:00
Richard Ramos ccff3dc8f8
Initial commit 2021-03-11 16:27:12 -04:00