|
| 1 | +## 2022-10-06 v0.12.0 |
| 2 | + |
| 3 | +Release highlights: |
| 4 | +- The performance and stability of the message `store` has improved dramatically. Query durations, even for long-term stores, have improved by more than a factor of 10. |
| 5 | +- Support for Waku Peer Exchange - a discovery method for resource-restricted nodes. |
| 6 | +- Messages can now be marked as "ephemeral" to prevent them from being stored. |
| 7 | +- [Zerokit](https://github.com/vacp2p/zerokit) is now the default implementation for spam-protected `relay` with RLN. |
| 8 | + |
| 9 | +The full list of changes is below. |
| 10 | + |
| 11 | +### Features |
| 12 | + |
| 13 | +- Default support for [Zerokit](https://github.com/vacp2p/zerokit) version of [`17/WAKU-RLN-RELAY`](https://rfc.vac.dev/spec/17/) implementation. |
| 14 | +- Added Filter REST API OpenAPI specification. |
| 15 | +- Added POC implementation for [43/WAKU2-DEVICE-PAIRING](https://rfc.vac.dev/spec/43/). |
| 16 | +- [14/WAKU2-MESSAGE](https://rfc.vac.dev/spec/14/) can now be marked as `ephemeral` to prevent them from being stored. |
| 17 | +- Support for [34/WAKU2-PEER-EXCHANGE](https://rfc.vac.dev/spec/34/). |
| 18 | + |
| 19 | +### Changes |
| 20 | + |
| 21 | +- [`17/WAKU-RLN-RELAY`](https://rfc.vac.dev/spec/17/) implementation now handles on-chain transaction errors. |
| 22 | +- [`17/WAKU-RLN-RELAY`](https://rfc.vac.dev/spec/17/) implementation now validates the Merkle tree root against a window of acceptable roots. |
| 23 | +- Added metrics for [`17/WAKU-RLN-RELAY`](https://rfc.vac.dev/spec/17/) implementation. |
| 24 | +- Continued refactoring of several protocol implementations to improve maintainability and readability. |
| 25 | +- Cleaned up nwaku imports and dependencies. |
| 26 | +- Refactored and organised nwaku unit tests. |
| 27 | +- Nwaku now periodically logs node metrics by default. |
| 28 | +- Further improvements to the `store` implementation: |
| 29 | + - Better logging and query traceability. |
| 30 | + - More useful metrics to measure query and insertion time. |
| 31 | + - Reworked indexing for faster inserts and queries. |
| 32 | + - Reworked data model to use a simple, single timestamp for indexing, ordering and querying. |
| 33 | + - Improved retention policy management with periodic execution. |
| 34 | + - Run sqlite database vacuum at node start. |
| 35 | + - Improved logging when migrating the database to a newer version. |
| 36 | +- `relay` no longer auto-mounted on all nwaku nodes. |
| 37 | +- The most complete node ENR now included in response to API requests for node `info()`. |
| 38 | +- Updated Grafana dashboards included with nwaku. |
| 39 | +- Github CI test execution now skipped for doc-only changes. |
| 40 | + |
| 41 | +### Fixes |
| 42 | + |
| 43 | +- Fixed nwaku unnecessary sleep when no dynamic bootstrap nodes retrieved. |
| 44 | +- Fixed [`12/WAKU2-FILTER`](https://rfc.vac.dev/spec/12/) not working from browser-based clients due to nwaku peer manager failing to reuse existing connection. |
| 45 | +- Waku Message payload now correctly encoded as base64 in the Relay REST API. |
| 46 | +- Fixed handling of bindParam(uint32) in sqlite. |
| 47 | +- `chat2` application now correctly selects a random store node on startup. |
| 48 | +- Fixed macos builds failing due to an unsupported dependency. |
| 49 | +- Fixed nwaku not reconnecting to previously discovered nodes after losing connection. |
| 50 | +- Fixed nwaku failing to start switch transports with external IP configuration. |
| 51 | +- Fixed SIGSEGV crash when attempting to start nwaku store without `db-path` configuration. |
| 52 | + |
| 53 | +### Docs |
| 54 | + |
| 55 | +- Improved [RLN testnet tutorial](https://github.com/status-im/nwaku/blob/14abdef79677ddc828ff396ece321e05cedfca17/docs/tutorial/onchain-rln-relay-chat2.md) |
| 56 | +- Added [tutorial](https://github.com/status-im/nwaku/blob/14abdef79677ddc828ff396ece321e05cedfca17/docs/operators/droplet-quickstart.md) on running nwaku from a DigitalOcean droplet. |
| 57 | +- Added [guide](https://github.com/status-im/nwaku/blob/14abdef79677ddc828ff396ece321e05cedfca17/docs/operators/how-to/monitor.md) on how to monitor nwaku using Prometheus and Grafana. |
| 58 | + |
| 59 | +This release supports the following [libp2p protocols](https://docs.libp2p.io/concepts/protocols/): |
| 60 | +| Protocol | Spec status | Protocol id | |
| 61 | +| ---: | :---: | :--- | |
| 62 | +| [`11/WAKU2-RELAY`](https://rfc.vac.dev/spec/11/) | `stable` | `/vac/waku/relay/2.0.0` | |
| 63 | +| [`12/WAKU2-FILTER`](https://rfc.vac.dev/spec/12/) | `draft` | `/vac/waku/filter/2.0.0-beta1` | |
| 64 | +| [`13/WAKU2-STORE`](https://rfc.vac.dev/spec/13/) | `draft` | `/vac/waku/store/2.0.0-beta4` | |
| 65 | +| [`18/WAKU2-SWAP`](https://rfc.vac.dev/spec/18/) | `draft` | `/vac/waku/swap/2.0.0-beta1` | |
| 66 | +| [`19/WAKU2-LIGHTPUSH`](https://rfc.vac.dev/spec/19/) | `draft` | `/vac/waku/lightpush/2.0.0-beta1` | |
| 67 | + |
| 68 | +The Waku v1 implementation is stable but not under active development. |
| 69 | + |
1 | 70 | ## 2022-08-15 v0.11 |
2 | 71 |
|
3 | 72 | Release highlights: |
|
0 commit comments