Commit Graph

342 Commits

Author SHA1 Message Date
Franck R 96cf24d34e
Allow specifying decryption methods and content topic (#409) 2022-01-17 14:11:05 +11:00
Franck Royer 2c16f0befb
Separate tests that use DNS data in CI 2022-01-14 12:44:06 +11:00
Franck Royer b65ab17cb9
Expose types to ensure documentation is complete 2022-01-13 16:40:11 +11:00
Franck Royer 6276b1537f
Remove unnecessary declaration of Buffer
It's handled by the polyfill config in webpack.
2022-01-13 16:40:10 +11:00
Franck Royer fa4e94750f
Make parseBootstrap a class
Makes it easier to use the resulting function and document defaults.
2022-01-13 16:40:10 +11:00
Franck Royer ae0faa2146
Clarify default DNS servers 2022-01-13 16:39:52 +11:00
Franck Royer f0eb9d1609
Rename libp2p bootstrap import
To avoid name conflict.
2022-01-13 16:39:52 +11:00
Franck Royer e871da056f
Export enr, dns, entree modules 2022-01-13 16:39:52 +11:00
Franck Royer 4bfe060064
Export BootstrapOptions 2022-01-13 16:39:52 +11:00
Franck Royer 284644b822
Fix-up new bootstrap API 2022-01-13 16:39:52 +11:00
Franck Royer e47335f4c0
Implement DNS Discovery and ENR tree 2022-01-13 15:38:22 +11:00
Franck Royer e244bae03d
Renamed `getBootstrapNodes` to `getNodesFromHostedJson`
So that the name better matches the function's behaviour.
2022-01-13 15:33:37 +11:00
Franck Royer f4f6b4a808
Create discovery submodule 2022-01-12 14:54:00 +11:00
dependabot[bot] 7adb51a9cc
Bump ts-proto from 1.97.0 to 1.100.0
Bumps [ts-proto](https://github.com/stephenh/ts-proto) from 1.97.0 to 1.100.0.
- [Release notes](https://github.com/stephenh/ts-proto/releases)
- [Changelog](https://github.com/stephenh/ts-proto/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stephenh/ts-proto/compare/v1.97.0...v1.100.0)

---
updated-dependencies:
- dependency-name: ts-proto
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-10 15:31:46 +11:00
Franck 06d89418aa
Format change 2022-01-05 11:27:37 +11:00
Franck 8000afbc72
typo 2022-01-04 17:33:04 +11:00
Franck fa3ab19176
Generate proto files withts-protoa 1.97.0 2022-01-03 10:56:37 +11:00
Franck 7a3e46a384
Add encoded value for reference for other implementations 2021-12-07 09:16:32 +11:00
Franck eb1b384be4
Remove console.log 2021-12-06 14:32:18 +11:00
F 01c66f7e89
Add ENR with multiaddr
Imported from https://github.com/D4nte/discv5/pull/1
Replaced bcrypto backend with secp256k1.
2021-12-06 14:29:08 +11:00
F eb9057fc8f
doc: Remove warnings 2021-12-02 23:51:54 +11:00
Franck Royer 8d469ff842
Enable caller to abort store query
If the `callback` function passed to`WakuStore.queryHistory` returns
`true`, then no further pages are retrieved from the store.
2021-10-07 15:33:00 +11:00
Franck Royer 6f4d765e30
Remove useless log 2021-10-05 13:36:04 +11:00
Franck Royer 62b30b3f33
Log queried store peer info 2021-10-05 13:36:04 +11:00
Franck Royer 92ee5b060c
doc: Move comments to ensure they appear in generated documentation 2021-10-05 13:36:03 +11:00
Franck Royer f5a0416efd
Rename to page direction
As the direction only affects the page ordering,
not the message ordering in the pages.
2021-10-05 13:36:03 +11:00
Franck Royer c990660fb9
Rename node only suites 2021-09-24 17:15:46 +10:00
Franck Royer 928d888ad8
Remove 'browser' from test filename
These tests are run both on node and in browser.
2021-09-24 17:09:34 +10:00
Franck Royer d900945b6d
Add 'node' in test file names that only run on node 2021-09-24 17:09:34 +10:00
Franck Royer d875994908
Fix hearbeat tick handler rounding issue
807bf282c5
2021-09-24 10:36:19 +10:00
Franck Royer 2eb88068ae
Test default discovery as part of the CI 2021-09-21 14:47:45 +10:00
Franck Royer 640a672257
Do not setup libp2p discovery module if we fail to retrieve node addrs 2021-09-21 14:47:45 +10:00
Franck Royer a95315eeb5
Ensure node address is returned for Object type responses 2021-09-21 14:47:45 +10:00
Franck Royer 6504106a9e
Connects to a limited number of bootstrap nodes, defaults to 1 2021-09-16 10:38:01 +10:00
Franck Royer ca09c34ac6
Upgrade libp2p libraries 2021-09-03 16:02:22 +10:00
Franck Royer a21d641280
Added `Waku.waitForConnectedPeer` helper
To ensure that we are connected to Waku peers when using the bootstrap
option.
2021-09-02 15:46:23 +10:00
Franck Royer 75f605a676
Improve error text
To make it clearer what the issue is.
2021-09-02 15:20:44 +10:00
Franck Royer 50fb533e44
test: Increase timeouts + add debug logs 2021-09-02 15:20:43 +10:00
Franck Royer cfb97b6bde
Allow passing decryption keys to `Waku` instance
Keys can be set at creation or at run time.
They are passed to `WakuStore` and `WakuRelay` instances.
2021-09-02 15:20:43 +10:00
Franck Royer 911ce5bab7
Allow passing decryption keys to `WakuStore` instance
To avoid having to pass them at every `queryHistory` call.
2021-09-02 15:17:40 +10:00
Franck Royer f4cae60ef8
Fix documentation 2021-09-02 15:15:43 +10:00
Franck Royer 931a414a3c
Allow passing decryption keys in hex string format 2021-09-02 15:13:50 +10:00
Franck Royer 75352abcac
Promote dedicated symmetric key generation API
Using the private key API for symmetric key is confusing.
2021-09-02 15:09:31 +10:00
Franck Royer 398f34b57f
Fixed Buffer.concat error when using symmetric encryption in the browser 2021-08-26 16:12:53 +10:00
Franck Royer 5b34da6b5f
Both or neither time parameters must be passed
The protocol does not support open-ended time filtering windows. See
https://github.com/status-im/nim-waku/issues/706
2021-08-25 12:14:53 +10:00
Franck Royer b7693853d2
Added support for `startTime` and `endTime` in Store queries 2021-08-20 10:37:58 +10:00
Franck Royer 1d48dc4372
Rename all `pubsubTopic` occurrences to `pubSubTopic` 2021-08-20 10:13:02 +10:00
Franck Royer 026aaaf67e
Remove default value
Default value is handled one layer above.
2021-08-20 10:12:56 +10:00
Franck Royer 60290e8d84
Moved `DefaultPubSubTopic` to `waku.ts` and fixed the casing
The pubsub topic is used by several protocol, not just relay.
2021-08-20 10:12:55 +10:00
Franck Royer 3f95934250
Replace deprecated package for libp2p-noise 2021-08-19 11:26:34 +10:00
Franck Royer 6d42c39298
export values so they are included in the documentation 2021-08-13 16:18:03 +10:00
Franck Royer bac26ea3da
fixup 2021-08-13 16:18:02 +10:00
Franck Royer 140791cc91
Provide easy way to bootstrap when creating Waku node 2021-08-13 16:18:00 +10:00
Franck Royer c3855112d7
Rename `getStatusFleetNodes`
To make it more generic to allow retrieval of bootstrap nodes from
other sources.
2021-08-13 16:17:15 +10:00
Franck Royer 319f44a0b1
`WakuStore.queryHistory` throws when encountering an error
Instead of returning a `null` value.
2021-08-09 12:36:24 +10:00
Franck Royer b422c9a10b
Move `contentTopics` out the `WakuStore.queryHistory`'s optional params 2021-08-09 12:36:12 +10:00
Franck Royer 355b8414d8
Separate shutdown process to pinpoint CI failure 2021-08-09 12:27:52 +10:00
Franck Royer dcdab3203d
Replace nim-waku log grep with new pattern 2021-08-09 12:27:22 +10:00
Franck Royer 80cfa3c87a
Increase timeout to shutdown node 2021-08-09 12:09:21 +10:00
Franck Royer c14951cb0e
Increase timeout for nim-waku starts
Took 5 seconds in CI run.
2021-08-09 11:58:58 +10:00
Franck Royer ad9d629daa
`ChatMessage` has been moved from js-waku to web-chat example
It is a type used for the [TOY-CHAT](https://rfc.vac.dev/spec/22/)
 protocol;
js-waku users should not build on top if this toy protocol and instead
design message data structures appropriate to their use case.
2021-08-06 17:25:12 +10:00
Franck Royer d035359616
Workaround the fact that ni-waku does not accept integers as timestamp 2021-08-05 13:32:37 +10:00
Franck Royer 45dc8f81c9
Fixed `ChatMessage.payloadAsUtf8` returning garbage on utf-8 non-ascii 2021-08-02 10:36:50 +10:00
Franck Royer 1f692f1683
Fixed `payloadAsUtf8` returning garbage on utf-8 non-ascii characters 2021-08-02 09:51:37 +10:00
Franck Royer 0cfdd34284
Removed `DefaultContentTopic`
As developers must choose a content topic for their app.
The`WakuMessage` APIs have been changed to move `contentTopic` out of
the optional parameters. Recommendations for content topic can be found
at https://rfc.vac.dev/spec/23/.
2021-07-28 12:03:51 +10:00
Franck Royer 5e056d8b81
Shorten imports, remove warning 2021-07-28 11:58:05 +10:00
Franck Royer 9638f6db10
Introduced new `relayKeepAlive` option
..on `Waku` with a default to 5min to send ping messages over relay
to ensure the relay stream stays open.

This is a workaround until
[js-libp2p#744](https://github.com/libp2p/js-libp2p/issues/744) is done
as there are issues when TCP(?) timeouts and the stream gets closed.
2021-07-27 16:24:04 +10:00
Franck Royer ea33b9cd8a
Rename `keepAlive` option to `pingKeepAlive`
In preparation for introducing a relay keep alive feature.
2021-07-27 16:06:57 +10:00
Franck Royer c4d0501c6a
nim-waku v0.5 uses new waku relay protocol id 2021-07-26 11:35:08 +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 6817a2f6b2
Pass timestamp to RPC call 2021-07-26 11:32:50 +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 6135127e5d
Correct name 2021-07-21 15:02: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 addf9543a2
Export `generatePrivateKey` and `getPublicKey` directly from the root 2021-07-16 09:43:10 +10:00
Franck Royer f3738b1eac
doc: Fix keep alive default value 2021-07-15 14:00:24 +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 302fc20243
Remove dupe tests 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 06ee0ac1d8
Symmetric encryption for node 2021-07-14 15:34:48 +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 70058f0e36
Split browser and node tests 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 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 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