Skip to content

2022-06-15 v0.10

Compare
Choose a tag to compare
@jm-clius jm-clius released this 14 Jun 20:05
· 1367 commits to master since this release
d754444

Release highlights:

  • Support for key exchange using Noise handshakes.
  • Support for a SQLite-only historical message store. This allows for cheaper, longer-term historical message storage on disk rather than in memory.
  • Several fixes for native WebSockets, including slow or hanging connections and connections dropping unexpectedly due to timeouts.
  • A fix for a memory leak in nodes running a local SQLite database.

Features

  • Support for 35/WAKU2-NOISE handshakes as key exchange protocols.
  • Support for TOML config files via --config-file=<path/to/config.toml>.
  • Support for --version command. This prints the current tagged version (or compiled commit hash, if not on a version).
  • Support for running store protocol from a filter client, storing only the filtered messages.
  • Start of an HTTP REST API implementation.
  • Support for a memory-efficient SQLite-only store configuration.

Changes

  • Added index on receiverTimestamp in the SQLite store to improve query performance.
  • GossipSub Peer Exchange is now disabled by default. This is a more secure option.
  • Progress towards dynamic group management for the 17/WAKU-RLN-RELAY implementation.
  • Nodes with --keep-alive enabled now sends more regular pings to keep connections more reliably alive.
  • Disabled swap protocol by default.
  • Reduced unnecessary and confusing logging, especially during startup.
  • Added discv5 UDP port to the node's main discoverable ENR.

Fixes

  • The in-memory store now checks the validity of message timestamps before storing.
  • Fixed underlying bug that caused connection leaks in the HTTP client.
  • Fixed Docker image compilation to use the correct external variable for compile-time flags (NIMFLAGS instead of NIM_PARAMS).
  • Fixed issue where --dns4-domain-name caused an unhandled exception if no external port was available.
  • Avoids unnecessarily calling DB migration if a --db-path is set but nothing is persisted in the DB. This led to a misleading warning log.
  • Fixed underlying issues that caused WebSocket connections to hang.
  • Fixed underlying issue that caused WebSocket connections to time out after 10 mins.
  • Fixed memory leak in nodes that implements a SQLite database.

Docs

  • Added tutorial on how to generate and configure a node key.
  • Added first guide for nwaku operators.

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.