2023-01-16 v0.14.0
This release does not come with upgrade instructions if upgrading from v0.13.0 or later. If upgrading from any older versions of nwaku, please see the Upgrade Instructions for the v0.13.0 release
Release highlights:
- An important fix for the Waku message archive returning inconsistent responses to history queries.
- Support for AutoNAT and libp2p Circuit Relay that allows, among other things, for NAT hole punching.
- Support for structured logging in JSON format.
- A fix for an underlying file descriptor leak that affected websocket connections.
Features
- Support for AutoNAT
- Support for libp2p Circuit Relay (server only)
- New Waku Archive implementation. This allows easy addition of drivers for different technologies to store historical messages.
- Support for structured logging and specifying log format.
- Node now keeps track of its external reachability.
Changes
- Zerokit RLN library now statically linked.
- Use extended key generation in Zerokit API to comply with 32/RLN.
- Re-enable root validation in
17/WAKU-RLN-RELAY
implementation. - Network monitoring tool now supports DNS discovery.
- Added dashboard for network monitoring.
- Continued refactoring of several protocol implementations to improve maintainability and readability.
- Removed swap integration from store protocol.
- Peerstore now consolidated with libp2p peerstore.
- Peerstore now also tracks peer direction.
- SIGSEGV signals are now handled and logged properly.
- Waku v2 no longer imports libraries from Waku v1.
- Improved build and CI processes:
- Added support for an
EXPERIMENTAL
compiler flag. - Simplified project Makefile.
- Split Dockerfile into production and experimental stages.
- Removed obsolete simulation libraries from build.
- Added support for an
- Improved parallellisation (and therefore processing time) when dialing several peers simultaneously.
- Waku Archive now responds with error to historical queries containing more than 10 content topics.
Fixes
- Fixed support for optional fields in several protocol rpc codecs. #1393 #1395 #1396
- Fixed clients with
--store=false
not installing Store Client JSON-RPC API handlers. #1382 - Fixed SQLite driver returning inconsistent responses to store queries. #1415
- Fixed peer exchange discv5 loop starting before discv5 has started. #1407
- Fixed wakubridge test timing. #1429
- Fixed bug in Noise module types equating
T_ss
incorrectly to"se"
and not"ss"
. #1432 - Fixed Ctrl-C quitting resulting in unreleased resources and exit failures. #1416
- Fixed CI workflows not cloning repo on startup. #1454 #1455
- Fixed Admin API peer connection not returning error response if peer can't be connected. #1476
- Fixed underlying file descriptor leak. #1483
Docs
- Added instructions for running nwaku with docker compose.
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.