Releases: logos-messaging/logos-messaging-nim
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-RELAYimplementation. - 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
EXPERIMENTALcompiler 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=falsenot 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_ssincorrectly 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.
2022-11-15 v0.13.0
NB: this release contains important configuration changes for store service nodes and nodes that persist peers. See the Upgrade Instructions under the release notes for more.
Release highlights:
- A Waku canary tool to check if nodes are reachable and what protocols they support.
- Simplified configuration for store protocol. This new guide explains how to configure store from this release forward.
- Support for environment variables to configure a nwaku node. See our configuration guide for more.
- A Waku network monitoring tool to report network metrics, including network size, discoverable peer capabilities and more.
Features
- Added Waku canary tool to check if i) a given node is reachable and ii) it supports a set of protocols.
- Simplified Waku store configuration.
- Decoupled Waku peer persistence configuration from message store configuration.
- Added keyfile support for secure storage of RLN credentials.
- Added configurable libp2p agent string to nwaku switch.
- Support for configuration with environment variables.
- Added example module to showcase basic nwaku relay usage.
- Added a nwaku network monitoring tool to provide metrics on peers, network size and more.
Changes
- Removed support for Kilic's RLN library (obsolete).
- Improved logging for
17/WAKU-RLN-RELAYimplementation. - Connection to eth node for RLN now more stable, maintains state and logs failures.
- Waku apps and tools now moved to their own subdirectory.
- Continued refactoring of several protocol implementations to improve maintainability and readability.
- Periodically log metrics when running RLN spam protection.
- Added metrics dashboard for RLN spam protection.
- Github CI test workflows are now run selectively, based on the content of a PR.
- Improved reliability of CI runs and added email notifications.
- Discv5 discovery loop now triggered to fill a 34/WAKU2-PEER-EXCHANGE peer list cache asynchronously.
- Upgraded to Nim v1.6.6.
- Cleaned up compiler warnings on unused imports.
- Improved exception handling and annotation.
13/WAKU2-STOREno longer enabled by default on nwaku nodes.- Merkle tree roots for RLN membership changes now on a per-block basis to allow poorly connected peers to operate within a window of acceptable roots.
Fixes
- Fixed encoding of ID commitments for RLN from Big-Endian to Little-Endian. #1256
- Fixed maxEpochGap to be the maximum allowed epoch gap (RLN). #1257
- Fixed store cursors being retrieved incorrectly (truncated) from DB. #1263
- Fixed message indexed by store cursor being excluded from history query results. #1263
- Fixed log-level configuration being ignored by the nwaku node. #1272
- Fixed incorrect error message when failing to set 34/WAKU2-PEER-EXCHANGE peer. #1298
- Fixed and replaced deprecated
TaintedStringtype. #1326 - Fixed and replaced unreliable regex library and usage. #1327 #1328
- Fixed and replaced deprecated
ganache-clinode package withganachefor RLN onchain tests. Added graceful daemon termination. #1347
Docs
- Added cross client RLN testnet tutorial.
- Fixed broken link to Kibana in cluster documentation.
- Added an improved quickstart guide for operators.
- Added a Docker usage guide for operators.
- Added operator guide on running RLN spam prevention on nwaku nodes.
- Extended guidelines on nwaku configuration methods for operators.
- Added new store configuration guide to reflect simplified options.
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 to the configuration for nodes that (a) store historical messages, or (b) persist peers
(a) if your node is configured as a store service node:
- it is now mandatory that
--storemust explicitly be set totrue(previously this wastrueby default) - the
--sqlite-storeoption is deprecated - simply remove this from config. The SQLite store will now automatically be selected if you've set a--store-message-db-url(see below). - the
--persist-messagesoption is deprecated - simply remove this from config. Messages will be persisted ifstoreis set totrue. - the
--db-pathitem is deprecated. Replace with--store-message-db-urlfollowed by a URL formatted path, e.g.sqlite://<database-file-path> - the
--store-capacityand--sqlite-retention-timeoptions are deprecated. Replace with--store-message-retention-policyfollowed by either a time-based policy (time:<duration-in-seconds>) or absolute capacity (capacity:<messages-count>)
See this configuration guide for more on the simplified store config items.
(b) if your node has peer persistence enabled:
- the
--persist-peersoption is deprecated. Replace with--peer-persistence.
2022-10-06 v0.12.0
Release highlights:
- The performance and stability of the message
storehas improved dramatically. Query durations, even for long-term stores, have improved by more than a factor of 10. - Support for Waku Peer Exchange - a discovery method for resource-restricted nodes.
- Messages can now be marked as "ephemeral" to prevent them from being stored.
- Zerokit is now the default implementation for spam-protected
relaywith RLN.
The full list of changes is below.
Features
- Default support for Zerokit version of
17/WAKU-RLN-RELAYimplementation. - Added Filter REST API OpenAPI specification.
- Added POC implementation for 43/WAKU2-DEVICE-PAIRING.
- 14/WAKU2-MESSAGE can now be marked as
ephemeralto prevent them from being stored. - Support for 34/WAKU2-PEER-EXCHANGE.
Changes
17/WAKU-RLN-RELAYimplementation now handles on-chain transaction errors.17/WAKU-RLN-RELAYimplementation now validates the Merkle tree root against a window of acceptable roots.- Added metrics for
17/WAKU-RLN-RELAYimplementation. - Continued refactoring of several protocol implementations to improve maintainability and readability.
- Cleaned up nwaku imports and dependencies.
- Refactored and organised nwaku unit tests.
- Nwaku now periodically logs node metrics by default.
- Further improvements to the
storeimplementation:- Better logging and query traceability.
- More useful metrics to measure query and insertion time.
- Reworked indexing for faster inserts and queries.
- Reworked data model to use a simple, single timestamp for indexing, ordering and querying.
- Improved retention policy management with periodic execution.
- Run sqlite database vacuum at node start.
- Improved logging when migrating the database to a newer version.
relayno longer auto-mounted on all nwaku nodes.- The most complete node ENR now included in response to API requests for node
info(). - Updated Grafana dashboards included with nwaku.
- Github CI test execution now skipped for doc-only changes.
Fixes
- Fixed nwaku unnecessary sleep when no dynamic bootstrap nodes retrieved.
- Fixed
12/WAKU2-FILTERnot working from browser-based clients due to nwaku peer manager failing to reuse existing connection. - Waku Message payload now correctly encoded as base64 in the Relay REST API.
- Fixed handling of bindParam(uint32) in sqlite.
chat2application now correctly selects a random store node on startup.- Fixed macos builds failing due to an unsupported dependency.
- Fixed nwaku not reconnecting to previously discovered nodes after losing connection.
- Fixed nwaku failing to start switch transports with external IP configuration.
- Fixed SIGSEGV crash when attempting to start nwaku store without
db-pathconfiguration.
Docs
- Improved RLN testnet tutorial
- Added tutorial on running nwaku from a DigitalOcean droplet.
- Added guide on how to monitor nwaku using Prometheus and Grafana.
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.
2022-08-15 v0.11
Release highlights:
- Major improvements in the performance of historical message queries to longer-term, sqlite-only message stores.
- Introduction of an HTTP REST API with basic functionality
- On-chain RLN group management. This was also integrated into an example spam-protected chat application.
The full list of changes is below.
Features
- Support for on-chain group membership management in the
17/WAKU-RLN-RELAYimplementation. - Integrated HTTP REST API for external access to some
wakunode2functionality:- Debug REST API exposes debug information about a
wakunode2. - Relay REST API allows basic pub/sub functionality according to
11/WAKU2-RELAY.
- Debug REST API exposes debug information about a
35/WAKU2-NOISEimplementation now adds padding to ChaChaPoly encryptions to increase security and reduce metadata leakage.
Changes
- Significantly improved the SQLite-only historical message
storequery performance. - Refactored several protocol implementations to improve maintainability and readability.
- Major code reorganization for the
13/WAKU2-STOREimplementation to improve maintainability. This will also make thestoreextensible to support multiple implementations. - Disabled compiler log colors when running in a CI environment.
- Refactored
35/WAKU2-NOISEimplementation into smaller submodules. 11/WAKU2-RELAYimplementation can now optionally be compiled with Zerokit RLN. Previously only Kilic's RLN was supported.
Fixes
- Fixed wire encoding of protocol buffers to use proto3.
- Fixed Waku v1 <> Waku v2 bridge losing connection to statically configured v1 nodes.
- Fixed underlying issue causing DNS discovery to fail for records containing multiple strings.
Docs
- Updated release process documentation.
- Added tutorial on how to run a spam-protected chat2 application with on-chain group management.
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.
2022-06-15 v0.10
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-NOISEhandshakes as key exchange protocols. - Support for TOML config files via
--config-file=<path/to/config.toml>. - Support for
--versioncommand. This prints the current tagged version (or compiled commit hash, if not on a version). - Support for running
storeprotocol from afilterclient, storing only the filtered messages. - Start of an HTTP REST API implementation.
- Support for a memory-efficient SQLite-only
storeconfiguration.
Changes
- Added index on
receiverTimestampin the SQLitestoreto 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-RELAYimplementation. - Nodes with
--keep-aliveenabled now sends more regular pings to keep connections more reliably alive. - Disabled
swapprotocol 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
storenow 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 (
NIMFLAGSinstead ofNIM_PARAMS). - Fixed issue where
--dns4-domain-namecaused an unhandled exception if no external port was available. - Avoids unnecessarily calling DB migration if a
--db-pathis 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
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.
2022-03-31 v0.9
Release highlights:
- Support for Peer Exchange (PX) when a peer prunes a
11/WAKU2-RELAYmesh due to oversubscription. This can significantly increase mesh stability. - Improved start-up times through managing the size of the underlying persistent message storage.
- New websocket connections are no longer blocked due to parsing failures in other connections.
The full list of changes is below.
Features
- Support for bootstrapping
33/WAKU-DISCV5via DNS discovery - Support for GossipSub Peer Exchange
Changes
- Waku v1 <> v2 bridge now supports DNS
multiaddrs - Waku v1 <> v2 bridge now validates content topics before attempting to bridge a message from Waku v2 to Waku v1
- Persistent message storage now auto deletes messages once over specified
--store-capacity. This can significantly improve node start-up times. - Renamed Waku v1 <> v2 bridge
maketarget and binary towakubridge - Increased
storelogging to assist with debugging - Increased
rln-relaylogging to assist with debugging - Message metrics no longer include the content topic as a dimension to keep Prometheus metric cardinality under control
- Waku v2
toy-chatapplication now sets the sender timestamp when creating messages - The type of the
prooffield of theWakuMessageis changed toRateLimitProof - Added method to the JSON-RPC API that returns the git tag and commit hash of the binary
- The node's ENR is now included in the JSON-RPC API response when requesting node info
Fixes
- Fixed incorrect conversion of seconds to nanosecond timestamps
- Fixed store queries blocking due to failure in resource clean up
- Fixed underlying issue where new websocket connections are blocked due to parsing failures in other connections
- Fixed failure to log the ENR necessary for a discv5 connection to the node
Docs
- Added RAM requirements to
wakunode2build instructions - Added tutorial on communicating with waku2 test fleets via the chat2
toy-chatapplication in spam-protected mode using17/WAKU-RLN-RELAY. - Added a section on bug reporting to
wakunode2README - Fixed broken links in the JSON-RPC API Tutorial
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.
2022-03-03 v0.8
Release highlights:
- Working demonstration and integration of
17/WAKU-RLN-RELAYin the Waku v2toy-chatapplication - Beta support for ambient peer discovery using a version of Discovery v5
- A fix for the issue that caused a
storenode to run out of memory after serving a number of historical queries - Ability to configure a
dns4domain name for a node and resolve other dns-basedmultiaddrs
The full list of changes is below.
Features
17/WAKU-RLN-RELAYimplementation now supports spam-protection for a specific combination ofpubsubTopicandcontentTopic(available under therlncompiler flag).17/WAKU-RLN-RELAYintegrated into chat2toy-chat(available under therlncompiler flag)- Added support for resolving dns-based
multiaddrs - A Waku v2 node can now be configured with a domain name and
dns4multiaddr - Support for ambient peer discovery using
33/WAKU-DISCV5
Changes
- Metrics: now monitoring content topics and the sources of new connections
- Metrics: improved default fleet monitoring dashboard
- Introduced a
Timestamptype (currently an alias for int64). - All timestamps changed to nanosecond resolution.
timestampfield number inWakuMessageobject changed from4to1013/WAKU2-STOREidentifier updated to/vac/waku/store/2.0.0-beta4toy-chatapplication now uses DNS discovery to connect to existing fleets
Fixes
- Fixed underlying bug that caused occasional failures when reading the certificate for secure websockets
- Fixed
storememory usage issues when responding to history queries
Docs
- Documented use of domain certificates for secure websockets
- Documented how to configure a
dns4domain name for a node - Clarified use of DNS discovery and provided current URLs for discoverable fleet nodes
- Added tutorial on using
17/WAKU-RLN-RELAYwith the chat2toy-chatapplication - Added tutorial on how to configure and a use a
15/WAKU-BRIDGE
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.
2022-01-19 v0.7
Release highlights:
- Support for secure websockets.
- Ability to remove unreachable clients in a
filternode. - Several fixes to improve
storeperformance and decrease query times. Query time for large stores decreased from longer than 8 min to under 100 ms. - Fix for a long-standing bug that prevented proper database migration in some deployed Docker containers.
The full list of changes is below. See #818 for more details.
Features
- Support for secure websocket transport
Changes
- Filter nodes can now remove unreachable clients
- The WakuInfo
listenStris deprecated and replaced with a sequence oflistenAddressesto accommodate multiple transports - Removed cached
peerInfoon local node. Rely on underlying libp2p switch instead - Metrics: added counters for protocol messages
- Waku v2 node discovery now supports
31/WAKU2-ENR
Fixes
- Fixed database migration failure in the Docker image
- All
HistoryResponsemessages are now auto-paginated to a maximum of 100 messages per response - Increased maximum length for reading from a libp2p input stream to allow largest possible protocol messages, including
HistoryResponsemessages at max size - Significantly improved
storenode query performance - Implemented a GossipSub
MessageIdProviderfor11/WAKU2-RELAYmessages instead of relying on the unstable default - Receiver timestamps for message indexing in the
storenow have consistent millisecond resolution
This release supports the following libp2p protocols:
| Protocol | Spec status | Protocol id |
|---|---|---|
17/WAKU-RLN-RELAY |
raw |
/vac/waku/waku-rln-relay/2.0.0-alpha1 |
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-beta3 |
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.
2021-11-05 v0.6
Some useful features and fixes in this release, include:
- two methods for Waku v2 node discovery
- support for unsecure websockets, which paves the way for native browser usage
- a fix for
nim-wakustore nodes running out of memory due to store size: the number of stored messages can now easily be configured - a fix for densely connected nodes refusing new connections: the maximum number of allowed connections can now easily be configured
- support for larger message sizes (up from 64kb to 1Mb per message)
The full list of changes is below.
Features
- Waku v2 node discovery via DNS following EIP-1459
- Waku v2 node discovery via Node Discovery v5
Changes
- Pagination of historical queries are now simplified
- GossipSub prune backoff period is now the recommended 1 minute
- Bridge now uses content topic format according to 23/WAKU2-TOPICS
- Better internal differentiation between local and remote peer info
- Maximum number of libp2p connections is now configurable
udp-portCLI option has been removed for binaries where it's not used- Waku v2 now supports unsecure WebSockets
- Waku v2 now supports larger message sizes of up to 1 Mb by default
- Further experimental development of RLN for spam protection.
These changes are disabled by default under a compiler flag. Changes include:- Per-message rate limit proof defined
- RLN proof generation and verification integrated into Waku v2
- RLN tree depth changed from 32 to 20
- Support added for static membership group formation
Docs
- Added contributor guidelines on Waku v2 fleet monitoring and management
- Added basic tutorial on using Waku v2 DNS-based discovery
Fixes
- Bridge between
toy-chatand matterbridge now shows correct announced addresses - Bridge no longer re-encodes already encoded payloads when publishing to V1
- Bridge now populates WakuMessage timestamps when publishing to V2
- Store now has a configurable maximum number of stored messages
- Network simulations for Waku v1 and Waku v2 are runnable again
This release supports the following libp2p protocols:
| Protocol | Spec status | Protocol id |
|---|---|---|
17/WAKU-RLN |
raw |
/vac/waku/waku-rln-relay/2.0.0-alpha1 |
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-beta3 |
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.
2021-07-23 v0.5
This release contains the following:
Features
- Support for keep-alives using libp2p ping protocol.
- DB migration for the message and peer stores.
- Support for multiple protocol IDs. Mounted protocols now match versions of the same protocol that adds a postfix to the stable protocol ID.
Changes
- Bridge topics are now configurable.
- The
resumeNim API now eliminates duplicates messages before storing them. - The
resumeNim API now fetches historical messages in page sequence. - Added support for stable version of
relayprotocol, with protocol ID/vac/waku/relay/2.0.0. - Added optional
timestamptoWakuRelayMessage. - Removed
PCREas a prerequisite for building Waku v1 and Waku v2. - Improved
swapmetrics.
General refactoring
- Refactored modules according to Nim best practices.
- Simplified the way protocols get notified of new messages.
- Refactored
wakunode2setup into 6 distinct phases with improved logging and error handling. - Moved
Whispertypes and protocol from thenim-ethmodule tonim-waku.
Docs
- Added database migration tutorial.
- Added tutorial to setup
websockify.
Schema
- Updated the
Messagetable of the persistent message store:- Added
senderTimestampcolumn. - Renamed the
timestampcolumn toreceiverTimestampand changes its type toREAL.
- Added
API
- Added optional
timestamptoWakuRelayMessageon JSON-RPC API.
Fixes
- Conversion between topics for the Waku v1 <-> v2 bridge now follows the RFC recommendation.
- Fixed field order of
HistoryResponseprotobuf message: the field numbers of theHistoryResponseare shifted up by one to match up the 13/WAKU2-STORE specs.
This release supports the following libp2p protocols:
| Protocol | Spec status | Protocol id |
|---|---|---|
17/WAKU-RLN |
raw |
/vac/waku/waku-rln-relay/2.0.0-alpha1 |
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-beta3 |
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.