2022-02-15 v0.15.0
NB: this release contains breaking changes in the JSON-RPC Relay API. It also changes how nwaku nodes compute GossipSub message IDs, which affects interoperability with previous versions. See the Upgrade Instructions under the release notes for more.
Release highlights:
- Relay connectivity is now maintained by a management loop that selects from the peerstore
- Ability to manually specify
multiaddrs
for the nwaku node to advertise - Two important fixes related to historical message queries:
- fixed archive bug that resulted in duplicate messages in store query response
- fixed query page size limit not being respected
Features
- New connectivity loop to maintain relay connectivity from peerstore 1482 1462
- Support for manually specifying
multiaddrs
to advertise 1509 1512 - Added dynamic keystore for membership credential storage and management 1466
Changes
- Abstracted RLN relay group management into its own API 1465
- Prune peers from peerstore when exceeding capacity 1513
- Removed Kilic submodule 1517
- Continued refactoring of several protocol implementations to improve maintainability and readability
- Refactored and improved JSON RPC API
- Added safe default values for peer-store-capacity 1525
- Improvements in regular CI test reliability and repeatability
- Improved archive query performance 1510
- Added better e2e trace logging for relay messages 1526
- Relay RPC API now encodes message payloads in base64 572 1555
Fixes
- Fixed Waku archive queries returning duplicate messages due to incorrect reordering 1511
- Fixed Admin RPC API crashing on returning peer with no multiaddresses 1507
- Fixed page size limit not being respected in store query responses 1520
- Fixed nwaku subscribing to default pubsub topic even if not configured 1548
- Fixed underlying issue causing node to incorrectly report it's unreachable 1518 1546
- Fixed Relay RPC API not adhering to RFC 1139
- Fixed message IDs in nwaku diverging from those in go-waku 1556
This release supports the following libp2p protocols:
Protocol | Spec status | Protocol id |
---|---|---|
11/WAKU2-RELAY |
stable |
/vac/waku/relay/2.0.0 |
12/WAKU2-FILTER |
draft |
/vac/waku/filter/2.0.0-beta1 |
13/WAKU2-STORE |
draft |
/vac/waku/store/2.0.0-beta4 |
18/WAKU2-SWAP |
draft |
/vac/waku/swap/2.0.0-beta1 |
19/WAKU2-LIGHTPUSH |
draft |
/vac/waku/lightpush/2.0.0-beta1 |
The Waku v1 implementation is stable but not under active development.
Upgrade instructions
NB: this release contains important changes in (a) the JSON-RPC Relay API and (b) how nodes compute gossipsub message IDs.
(a) if you use the JSON-RPC Relay API, note the corrections/improvements documented in RFC 16/WAKU2-RPC:
- posting messages, e.g. via
post_waku_v2_relay_v1_message
, now takes aWakuMessage
object. - retrieving (getting) messages, e.g. via
get_waku_v2_relay_v1_messages
also returns aWakuMessage
object. - the
WakuMessage
object'spayload
is now abase64
data string - the
WakuMessage
object has aversion
field
(b) nwaku now computes gossipsub message IDs slightly differently. Although this should not affect the operation of your node in isolation, it will affect the amount of unnecessary duplication in the network if yourv0.15.0
or later node is connected to nodes running an older version of nwaku. In other words, if you run a fleet of connected nodes in the same network or you're connected to an existing fleet, it is recommended to upgrade your nodes as soon as possible. Mixing pre-v0.15.0
and post-v0.15.0
nodes in the same network is not recommended.