Commit Graph

2934 Commits

Author SHA1 Message Date
Franck Royer 6e22897f74
Rename `stateWaku` to `waku`
There should only be one.
2021-07-15 14:08:07 +10:00
Franck Royer f3738b1eac
doc: Fix keep alive default value 2021-07-15 14:00:24 +10:00
Franck Royer 383dd04911
Merge pull request #232 from status-im/release/0.8.0
Release 0.8.0
2021-07-15 13:54:55 +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 6bd93eef55
Merge pull request #231 from status-im/179-symmetric-encryption-store-relay 2021-07-15 12:40:22 +10:00
Franck Royer 0b3f1a33c2
test: Symmetric encryption with waku store 2021-07-15 12:26:05 +10:00
Franck Royer 44efd28ac1
Update terminology and docs to cater for both sym and asym encryption 2021-07-15 12:25:47 +10:00
Franck Royer b74acd73dc
Remove unknown type 2021-07-15 12:16:21 +10:00
Franck Royer 75d1b3834c
Simplify expression 2021-07-15 12:16:03 +10:00
Franck Royer 13c8a0527b
Test symmetric encryption with nim-waku using relay 2021-07-15 12:12:43 +10:00
Franck Royer d12430e19b
Merge karma tsconfig in karma conf 2021-07-15 11:10:19 +10:00
Franck Royer 2715fe0e8c
Merge pull request #229 from status-im/179-symmetric-encryption 2021-07-15 10:51:57 +10:00
Franck Royer 841b9dc89a
Mention fast-check 2021-07-15 10:36:25 +10:00
Franck Royer 302fc20243
Remove dupe tests 2021-07-15 10:36:24 +10:00
Franck Royer 6afecd9989
Mention encryption support 2021-07-15 10:36:24 +10:00
Franck Royer 9374de1931
Karma: Remove tests folder and use in place files & update contrib guide
*.browser.spec.ts files will be tested on both node and browser.
Other files only tested on node.
2021-07-15 10:36:24 +10:00
Franck Royer 25fccb4c9a
Add symmetric encryption support to Waku Message 2021-07-15 10:23:40 +10:00
Franck Royer 56c30059b2
Add comments on Waku Message Options 2021-07-15 10:23:34 +10:00
Franck Royer 57f65267c2
Implement and test symmetric encryption in the browser 2021-07-14 16:31:11 +10:00
Franck Royer 8c66022a18
Update changelog for Karma 2021-07-14 15:35:46 +10:00
Franck Royer 06ee0ac1d8
Symmetric encryption for node 2021-07-14 15:34:48 +10:00
Franck Royer 75fce5eed3
Merge pull request #230 from status-im/karma 2021-07-14 15:34:18 +10:00
Franck Royer 4dae00fe0d
Remove debug logs for Karma 2021-07-14 15:23:36 +10:00
Franck Royer f20acb9bfd
Use ChromeHeadless 2021-07-14 15:17:16 +10:00
Franck Royer ae051333de
Use puppeteer to make it work in the CI 2021-07-14 13:25:24 +10:00
Franck Royer 055247121a
Remove firefox for now 2021-07-14 13:14:04 +10:00
Franck Royer ac4f0aab98
Only include lib files, segregate browser tests 2021-07-14 13:04:11 +10:00
Franck Royer a9c83dac13
Do not use same key value for both constants 2021-07-14 13:03:22 +10:00
Franck Royer e443237a81
Remove local type definitions for Karma to not return "not found" 2021-07-14 12:25:23 +10:00
Franck Royer d24afafc82
Karma needs js files to be emitted 2021-07-14 12:13:03 +10:00
Franck Royer 7fa919273b
Set sourceMap instead of inline 2021-07-14 11:56:49 +10:00
Franck Royer 70058f0e36
Split browser and node tests 2021-07-14 11:56:48 +10:00
Franck Royer 4f8d8b099b
Setup Karma 2021-07-14 11:56:48 +10:00
Franck Royer a0d3a21762
Improve importing of Muxed Stream type 2021-07-14 11:38:59 +10:00
Franck Royer 2f5e75166f
Merge pull request #228 from status-im/eth-dm-proto
Use protobuf instead of JSON for direct messages
2021-07-12 19:57:48 +10:00
Franck Royer c2cef05c2d
Use protobuf instead of JSON for direct messages 2021-07-12 17:29:52 +10:00
Franck Royer b8296648e4
Merge pull request #227 from status-im/179-eth-dm-encrypt 2021-07-12 17:27:06 +10:00
Franck Royer 4ca440d27e
List relay and light push peers numbers instead of any peer 2021-07-12 17:13:28 +10:00
Franck Royer 7a0b947553
Add logs on light push 2021-07-12 17:10:05 +10:00
Franck Royer 48bdb0b3f2
Use WakuMessage version 1 instead of eth-crypto 2021-07-12 17:09:44 +10:00
Franck Royer 3d219d005d
Merge pull request #225 from status-im/179-asymmetric-enc-store 2021-07-12 16:49:31 +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 c5cb37ee49
Merge pull request #223 from status-im/ecies
Use ecies library that provide right ECIES parameters
2021-07-12 12:49:11 +10:00
Franck Royer 4fe0116039
Use ecies library that provide right ECIES parameters 2021-07-12 11:30:19 +10:00
Franck Royer d0958c1c57
Merge pull request #221 from status-im/waku-msg-version-1 2021-07-09 16:35:47 +10:00
Franck Royer 63923f4368
Prefer usage of utils 2021-07-09 16:06:49 +10:00
Franck Royer b70f7c5a95
Use DOM random generator if available 2021-07-09 16:06:49 +10:00
Franck Royer 1f6ed9b525
Prefer secp256k1 lib over ecies 2021-07-09 15:50:17 +10:00
Franck Royer 2b1a6dafea
Skip nim-waku interop tests
ecies-parity does not provide the same ECIES that waku:
ecies-parity uses a shared hmac of `[0,0]` whereas waku uses `[]`.

Work is needed to find or create a new library.
2021-07-09 15:50:17 +10:00