173 Commits

Author SHA1 Message Date
Franck Royer
36a5a51aa8
Upgrade to libp2p 0.32.0 2021-07-27 14:31:06 +10:00
Franck Royer
c35fe74dad
Release 0.9.0
### Changed
- **Breaking**: Store Response Protobuf changed to align with
  nim-waku v0.5
  ([nim-waku#676](https://github.com/status-im/nim-waku/pull/676)).
2021-07-26 16:49:30 +10:00
Franck Royer
5f7eee394b
Store Response Protobuf change to align with nim-waku
status-im/nim-waku#676
2021-07-26 11:35:08 +10:00
Franck Royer
be007f4839
Ensure there is no infinite loop on error 2021-07-21 15:44:00 +10:00
Franck Royer
92a76b3be0
Support multiple protocol id for relay
Support id of latest nim-waku release 0.4 and current master.
2021-07-21 15:43:30 +10:00
Franck Royer
0753184079
Release 0.8.1
### Added
- Examples (web-chat): New `/fleet` command to switch connection between
  Status prod and test fleets.
- Export `generatePrivateKey` and `getPublicKey` directly from the root.
- Usage of the encryption and signature APIs to the readme.

### Changed
- **Breaking**: Renamed `WakuRelay.(add|delete)PrivateDecryptionKey` to
  `WakuRelay.(add|delete)DecryptionKey` to make it clearer that it
  accepts both symmetric keys and asymmetric private keys.

### Fix
- Align `WakuMessage` readme example with actual code behaviour.
2021-07-16 12:00:43 +10:00
Franck Royer
4f796ab920
Add encryption/signature documentation 2021-07-16 11:19:38 +10:00
Franck Royer
1d4137e2c4
Rename so that it does make dev thinks it's for asymmetric enc only 2021-07-16 10:24:29 +10:00
Franck Royer
07cba4f8ca
Update changelog for readme changes 2021-07-16 09:51:59 +10:00
Franck Royer
a3c4eed656
Update changelog for fleet command 2021-07-16 09:50:44 +10:00
Franck Royer
addf9543a2
Export generatePrivateKey and getPublicKey directly from the root 2021-07-16 09:43:10 +10:00
Franck Royer
3a3e718749
Release 0.8.0
### Added
- `WakuRelay.deleteObserver` to allow removal of observers, useful when
  a React component add observers when mounting and needs to delete it
  when unmounting.
- Keep alive feature that pings host regularly, reducing the chance of
  connections being dropped due to idle.
  Can be disabled or default frequency (10s) can be changed when calling
  `Waku.create`.
- New `lib/utils` module for easy, dependency-less hex/bytes
  conversions.
- New `peers` and `randomPeer` methods on `WakuStore` and
  `WakuLightPush` to have a better idea of available peers;
  Note that it does not check whether Waku node is currently connected
  to said peers.
- Enable passing decryption private keys to `WakuStore.queryHistory`.
- Test: Introduce testing in browser environment (Chrome) using Karma.
- Add support for Waku Message version 1: Asymmetric encryption,
  symmetric encryption, and signature of the data.

### Changed
- **Breaking**: Auto select peer if none provided for store and light
  push protocols.
- Upgrade to `libp2p@0.31.7` and `libp2p-gossipsub@0.10.0` to avoid
  `TextEncoder` errors in ReactJS tests.
- Disable keep alive by default as latest nim-waku release does not
  support ping protocol.
- **Breaking**: Optional parameters for `WakuMessage.fromBytes` and
  `WakuMessage.fromUtf8String` are now passed in a single `Options`
   object.
- **Breaking**: `WakuMessage` static functions are now async to allow
  for encryption and decryption.
- **Breaking**: `WakuMessage` constructor is now private, `from*` and
  `decode*` function should be used.
- `WakuMessage` version 1 is partially supported, enabling asymmetrical
  encryption and signature of messages;
  this can be done by passing keys to `WakuMessage.from*` and
  `WakuMessage.decode*` methods.
- Examples (eth-dm): Use Waku Message version 1 encryption scheme
  instead of `eth-crypto`.
- Examples (eth-dm): Use Protobuf for direct messages instead of JSON
  ([#214](https://github.com/status-im/js-waku/issues/214)).

### Fixed
- Disable `keepAlive` if set to `0`.
2021-07-15 12:48:47 +10:00
Franck Royer
6afecd9989
Mention encryption support 2021-07-15 10:36:24 +10:00
Franck Royer
8c66022a18
Update changelog for Karma 2021-07-14 15:35:46 +10:00
Franck Royer
c2cef05c2d
Use protobuf instead of JSON for direct messages 2021-07-12 17:29:52 +10:00
Franck Royer
48bdb0b3f2
Use WakuMessage version 1 instead of eth-crypto 2021-07-12 17:09:44 +10:00
Franck Royer
0e9c482a19
Enable decryption of messages retrieve via WakuStore.queryHistory 2021-07-12 13:15:19 +10:00
Franck Royer
d68ee3fb74
New peers and randomPeer methods to return available peers 2021-07-12 13:15:19 +10:00
Franck Royer
4fe0116039
Use ecies library that provide right ECIES parameters 2021-07-12 11:30:19 +10:00
Franck Royer
8cd5a52eba
Provide hex/bytes utils as part of js-waku 2021-07-09 15:50:17 +10:00
Franck Royer
34e6ac5247
Add version 1 support to WakuMessage 2021-07-09 15:50:15 +10:00
Franck Royer
2266f31d30
Move optional parameters to a single Options object. 2021-07-09 15:50:15 +10:00
Franck Royer
aaf3b1867e
Disable keep alive by default as latest nim-waku release does not
support ping protocol.
2021-07-05 09:40:07 +10:00
Franck Royer
370a347ff2
Actually disable keep alive if set to 0 2021-07-02 10:51:58 +10:00
Franck Royer
6cb92dd4b9
Upgrade to latest libp2p versions
And few other packages
2021-06-22 13:21:23 +10:00
Franck Royer
e3b4a42822
Add keep alive feature
Using libp2p ping protocol.
2021-06-21 09:46:29 +10:00
Franck Royer
939b5fb20a
Auto select peer if none provided for store and light push protocols 2021-06-16 23:51:20 +10:00
Franck Royer
60eb473047
Add WakuRelay.deleteObserver to allow removal of observers
Useful when a React component add observers when mounting and needs to
delete it when unmounting.
2021-06-16 16:37:04 +10:00
Franck Royer
6ed7445d83
Release 0.7.0
### Changed
- Test: Upgrade nim-waku node to v0.4.
- Waku Light Push upgraded to `2.0.0-beta1`.
- Examples (web chat): Catch error if chat message decoding fails.
- Examples (web chat): Do not send message if shift/alt/ctrl is pressed,
 enabling multiline messages.
2021-06-15 15:36:47 +10:00
Franck Royer
c293e268e8
Do not send message if a modifier is pressed to enable multiline msgs 2021-06-11 14:38:31 +10:00
Franck Royer
8073021d82
Do not fail if a chat message is malformed 2021-06-11 14:38:22 +10:00
Franck Royer
bc544c8e0b
Update Light Push protocol string to match nim-waku v0.4 2021-06-11 14:38:08 +10:00
Franck Royer
ba8390f02a
Upgrade nim-waku to v0.4 2021-06-11 14:37:54 +10:00
Franck Royer
e75fb91d3f
Release 0.6.0
### Changed
- **Breaking**: Websocket protocol is not automatically added anymore
  if the user specifies a protocol in `libp2p.modules` when using
  `Waku.create`.
- **Breaking**: Options passed to `Waku.create` used to be passed to
  `Libp2p.create`; Now, only the `libp2p` property is passed to
  `Libp2p.create`, allowing for a cleaner interface.
- Examples (cli chat): Use tcp protocol instead of websocket.

### Added
- Enable access to `WakuMessage.timestamp`.
- Examples (web chat): Use `WakuMessage.timestamp` as unique key for
  list items.
- Doc: Link to new [topic guidelines](https://rfc.vac.dev/spec/23/) in
  README.
- Doc: Link to [Waku v2 Toy Chat specs](https://rfc.vac.dev/spec/22/) in
  README.
- Examples (web chat): Persist nick.
- Support for custom PubSub Topics to `Waku`, `WakuRelay`, `WakuStore`
  and `WakuLightPush`;
  Passing a PubSub Topic is optional and still defaults to
  `/waku/2/default-waku/proto`;
  JS-Waku currently supports one, and only, PubSub topic per instance.
2021-06-09 20:49:19 +10:00
Franck Royer
2350ce5a6f
Clarify new libp2p modules transport behaviour 2021-06-09 16:59:27 +10:00
Franck Royer
1bb1f8f6b6
Use tcp protocol only
Due to #201, Websocket protocol is not added by default if the caller
specifies a protocol for libp2p.

In the case cli-chat. We were using both tcp and ws.
As the web-chat already demonstrates usage of websocket protocol, we
cli-chat to tcp only.
2021-06-09 16:58:08 +10:00
Franck Royer
5ce0717f05
Enable passing a custom pubsub topic
Note that we currently only support one, and only one, pubsub topic for
a given instance across the codebase. The PubSub topic needs to be set
when instantiating the Waku* classes.

At this stage, we believe that most DApp will use, and only use, the
default PubSub topic. Some application want to use an alternative topic
but not use the default one so this behaviour should be fine. See #174
for details.
2021-06-09 15:00:03 +10:00
Franck Royer
f17a008278
Separate the libp2p create options from Waku's 2021-06-09 15:00:02 +10:00
Franck Royer
6b48c55266
Persist nick 2021-06-04 15:15:07 +10:00
Franck Royer
39f96f4a56
Add link to Waku v2 Toy Chat specs 2021-06-01 16:35:52 +10:00
Franck Royer
5de796ea70
Add link to new topic usage recommendation 2021-06-01 16:35:52 +10:00
Franck Royer
553c0154d9
Use waku message timestamp as better unique key 2021-05-28 22:38:00 +10:00
Franck Royer
9e64eec2a6
Enable test encoding and decoding of WakuMessage.timestamp 2021-05-28 22:35:59 +10:00
Franck Royer
80e7ae9d1e
Release 0.5.0 2021-05-21 15:43:34 +10:00
Franck Royer
90e224577f
Add --help command 2021-05-19 12:29:30 +10:00
Franck Royer
2ea17bfdfa
Use light push to send messages if it's passed 2021-05-19 12:29:29 +10:00
Franck Royer
fb7e9f2b9e
Get messages from store in chronological order 2021-05-19 12:29:29 +10:00
Franck Royer
de3aea626a
Implement Light Push protocol 2021-05-19 12:29:29 +10:00
Franck Royer
85dd64b81e
Release 0.4.0 2021-05-18 14:14:18 +10:00
Franck Royer
c4c259f47a
Connect cli chat to prod fleet upon passing --prod 2021-05-18 13:51:11 +10:00