|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## Next version |
4 | | - |
5 | | -- Refactor: Split out `waku_types` types into right place; create utils folder. |
6 | | -- Refactor: Replace sequence of ContentTopics in ContentFilter with a single ContentTopic. |
7 | | -- Docs: Add information on how to query Status test fleet for node addresses; how to view logs and how to update submodules. |
8 | | -- PubSub topic `subscribe` and `unsubscribe` no longer returns a future (removed `async` designation) |
9 | | -- Added a peer manager for `relay`, `filter`, `store` and `swap` peers. |
10 | | -- `relay`, `filter`, `store` and `swap` peers are now stored in a common, shared peer store and no longer in separate sets. |
11 | | -- Admin API now provides a `post` method to connect to peers on an ad-hoc basis |
12 | | -- Added persistent peer storage. A node will now attempt to reconnect to `relay` peers after a restart. |
13 | | -- Changed `contentTopic` back to a string |
14 | | -- Fixed: content filtering now works on any PubSub topic and not just the `waku` default. |
15 | | -- Added the `pubsubTopic` field to the `HistoryQuery`. Now, the message history can be filtered and queried based on the `pubsubTopic`. |
16 | | -- Added a new table of `Message` to the message store db. The new table has an additional column of `pubsubTopic` and will be used instead of the old table `messages`. The message history in the old table `messages` will not be accessed and have to be removed. |
17 | | -- Added a new column of `version` to the `Message` table of the message store db. |
18 | | -- Fix: allow mounting light protocols without `relay` |
19 | | -- Add `keep-alive` option to maintain stable connection to `relay` peers on idle topics |
20 | | -- Add a bridge between Waku v1 and v2 |
21 | | -- Add a chat application (`chat2`) over Waku v2 with bridging to matterbridge |
| 3 | +## 2021-05-11 v0.3 |
| 4 | + |
| 5 | +This release contains the following: |
| 6 | + |
| 7 | +### Features |
| 8 | + |
| 9 | +- Start of [`RLN relay` implementation](https://rfc.vac.dev/spec/17/) |
| 10 | +- Start of [`swap` implementation](https://rfc.vac.dev/spec/18/) |
| 11 | +- Start of [fault-tolerant `store` implementation](https://rfc.vac.dev/spec/21/) |
| 12 | +- Initial [`bridge` implementation](https://rfc.vac.dev/spec/15/) between Waku v1 and v2 protocols |
| 13 | +- Initial [`lightpush` implementation](https://rfc.vac.dev/spec/19/) |
| 14 | +- A peer manager for `relay`, `filter`, `store` and `swap` peers |
| 15 | +- Persistent storage for peers: A node with this feature enabled will now attempt to reconnect to `relay` peers after a restart. It will respect the gossipsub [PRUNE backoff](https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/gossipsub-v1.1.md#prune-backoff-and-peer-exchange) period before attempting to do so. |
| 16 | +- `--persist-peers` CLI option to persist peers in local storage |
| 17 | +- `--persist-messages` CLI option to store historical messages locally |
| 18 | +- `--keep-alive` CLI option to maintain a stable connection to `relay` peers on idle topics |
| 19 | +- A CLI chat application ([`chat2`](https://github.com/status-im/nim-waku/blob/master/docs/tutorial/chat2.md)) over Waku v2 with [bridging to matterbridge](https://github.com/status-im/nim-waku/blob/master/docs/tutorial/chat2.md#bridge-messages-between-chat2-and-matterbridge) |
| 20 | + |
| 21 | +### Changes |
| 22 | + |
| 23 | +#### General refactoring |
| 24 | + |
| 25 | +- Split out `waku_types` types into the right place; create `utils` folder. |
| 26 | +- Change type of `contentTopic` in [`ContentFilter`](https://rfc.vac.dev/spec/12/#protobuf) to `string`. |
| 27 | +- Replace sequence of `contentTopics` in [`ContentFilter`](https://rfc.vac.dev/spec/12/#protobuf) with a single `contentTopic`. |
| 28 | +- Add `timestamp` field to [`WakuMessage`](https://rfc.vac.dev/spec/14/#payloads). |
| 29 | +- Ensure CLI config parameters use a consistent naming scheme. Summary of changes [here](https://github.com/status-im/nim-waku/pull/543). |
| 30 | + |
| 31 | +#### Docs |
| 32 | + |
| 33 | +Several clarifications and additions aimed at contributors, including |
| 34 | + - information on [how to query Status test fleet](https://github.com/status-im/nim-waku/blob/master/docs/faq.md) for node addresses, |
| 35 | + - [how to view logs](https://github.com/status-im/nim-waku/blob/master/docs/contributors/cluster-logs.md), and |
| 36 | + - [how to update submodules](https://github.com/status-im/nim-waku/blob/master/docs/contributors/git-submodules.md). |
| 37 | + |
| 38 | +#### Schema |
| 39 | + |
| 40 | +- Add `Message` table to the persistent message store. This table replaces the old `messages` table. It has two additional columns, namely |
| 41 | + - `pubsubTopic`, and |
| 42 | + - `version`. |
| 43 | +- Add `Peer` table for persistent peer storage. |
| 44 | + |
| 45 | +#### API |
| 46 | + |
| 47 | +- [JSON-RPC Admin API](https://rfc.vac.dev/spec/16): Added a [`post` method](https://rfc.vac.dev/spec/16/#post_waku_v2_admin_v1_peers) to connect to peers on an ad-hoc basis. |
| 48 | +- [Nim API](https://github.com/status-im/nim-waku/blob/master/docs/api/v2/node.md): PubSub topic `subscribe` and `unsubscribe` no longer returns a future (removed `async` designation). |
| 49 | +- [`HistoryQuery`](https://rfc.vac.dev/spec/13/#historyquery): Added `pubsubTopic` field. Message history can now be filtered and queried based on the `pubsubTopic`. |
| 50 | +- [`HistoryQuery`](https://rfc.vac.dev/spec/13/#historyquery): Added support for querying a time window by specifying start and end times. |
| 51 | + |
| 52 | +### Fixes |
| 53 | + |
| 54 | +- Running nodes can now be shut down gracefully |
| 55 | +- Content filtering now works on any PubSub topic and not just the `waku` default. |
| 56 | +- Nodes can now mount protocols without supporting `relay` as a capability |
| 57 | + |
| 58 | +The [Waku v2 suite of protocols](https://rfc.vac.dev/) are still in a raw/draft state. |
| 59 | +This release supports the following [libp2p protocols](https://docs.libp2p.io/concepts/protocols/): |
| 60 | +| Protocol | Spec status | Protocol id | |
| 61 | +| ---: | :---: | :--- | |
| 62 | +| [`17/WAKU-RLN`](https://rfc.vac.dev/spec/17/) | `raw` | `/vac/waku/waku-rln-relay/2.0.0-alpha1` | |
| 63 | +| [`18/WAKU2-SWAP`](https://rfc.vac.dev/spec/18/) | `raw` | `/vac/waku/swap/2.0.0-alpha1` | |
| 64 | +| [`19/WAKU2-LIGHTPUSH`](https://rfc.vac.dev/spec/19/) | `raw` | `/vac/waku/lightpush/2.0.0-alpha1` | |
| 65 | +| [`11/WAKU2-RELAY`](https://rfc.vac.dev/spec/11/) | `draft` | `/vac/waku/relay/2.0.0-beta2` | |
| 66 | +| [`12/WAKU2-FILTER`](https://rfc.vac.dev/spec/12/) | `draft` | `/vac/waku/filter/2.0.0-beta1` | |
| 67 | +| [`13/WAKU2-STORE`](https://rfc.vac.dev/spec/13/) | `draft` | `/vac/waku/store/2.0.0-beta3` | |
| 68 | + |
| 69 | +The Waku v1 implementation is stable but not under active development. |
22 | 70 |
|
23 | 71 | ## 2021-01-05 v0.2 |
24 | 72 |
|
|
0 commit comments