Skip to content

Releases: waku-org/nwaku

2023-09-14 v0.20.0

14 Sep 14:57
v0.20.0
57e511f
Compare
Choose a tag to compare

Note: IP address 0.0.0.0 is no longer advertised by a node

Note: Multiple CLI options have been removed in this release, please see Upgrade instructions section for details.

What's Changed

Release highlights:

  • RLN is now part of standard release (is no longer EXPERIMENTAL feature)
  • Interop tests between nwaku and js-waku are now gating PRs and releases
  • Libwaku has been made more threadsafe (1 out of 3 improvements applied.)
  • Added autosharding option on various protocol APIs

Features

Bug Fixes

  • rln-relay: waku_rln_number_registered_memberships metrics appropriately handled (#2018) (a4e78330)
  • prevent IP 0.0.0.0 from being published and update peers with empty ENR data (#1982) (47ae19c1)
  • rln-relay: missed roots during sync (#2015) (21604e6b)
  • p2p: fix possible connectivity issue (#1996) (7d9d8a3f)
  • rln-db-inspector: use valueOr pattern (#2012) (a8095d87)
  • tests: relay tests use random port to avoid conflict (#1998) (b991682b)
  • ci: incorrect use of braces (#1987) (4ed41457)
  • Makefile: invalid path to crate build (#1981) (1a318c29)
  • --topic should be ignore when using --pubsub-topic or --content-topic (#1977) (037b1662)
  • tests: fix flaky test (#1972) (f262397d)
  • rln-relay: deserialization of valid merkle roots (#1973) (d262837e)
  • ci: rename tools artifact to prevent conflict (#1971) (26c06b27)
  • Makefile: rln was enabled by default (#1964) (9b1d2904)
  • rln-relay: modify keystore credentials logic (#1956) (e7b2b88f)
  • Makefile: error out if rln-keystore-generator not compiled with rln flag (#1960) (ac258550)
  • rln-relay: sync from deployed block number (#1955) (bd3be219)
  • rln-relay: window of acceptable roots synced to rln metadata (#1953) (01634f57)
  • rln-relay: bump zerokit to v0.3.2 (#1951) (32aa1c5b)
  • rln-relay: flush_interval incorrectly set (#1933) (c07d63db)
  • rln-relay: RLN DB should be aware of chain and contract address (#1932) (1ae5b5a9)
  • rln-relay: waitFor startup, otherwise valid proofs will be marked invalid (#1920) (6c6302f9)
  • test: fix flaky rln test (#1923) (0ac8a7f0)
  • rln-relay: remove registration capability (#1916) (f08315cd)
  • rln-relay: invalid start index being set results in invalid proofs (#1915) (b3bb7a11)
  • rln-relay: should error out on rln-relay mount failure (#1904) (8c568cab)
  • rln-relay: timeout on macos runners, use fixed version of ganache (#1913) (c9772af0)
  • no enr record in chat2 (#1907) (fc604ca5)
  • archive: force correct user_version (7) in the SQLite database. (#2031)

Changes

  • ci: add js-waku test to pre-release workflow (#2017) (e8776fd6)
  • rln-relay: updated docs (#1993) (76e34077)
  • ci: execute js-waku integration tests on image build (#2006) (5d976df9)
  • rln-relay: add isReady check (#1989) (5638bd06)
  • rln-relay: clean up nullifier table every MaxEpochGap (#1994) (483f40c8)
  • ci: use commit instead of master for docker image (#1990) (98850192)
  • rln-relay: log levels for certain logs (#1986) (97a7c9d0)
  • rln-relay: use the only key from keystore if only 1 exists (#1984) (a14c3261)
  • ci: enable experimental for the PR image builds (#1976) (1b835b4e)
  • rln-relay: confirm that the provided credential is correct using onchain query (#1980) (be48891f)
  • api: validate rln message before sending (rest + rpc) (#1968) (05c98864)
  • cbindings: Thread-safe libwaku. WakuNode instance created directly from the Waku Thread (#1957) (68e8d9a7)
  • add debug log indicating succesful message pushes and also log the message hash (#1965) (e272bec9)
  • rln-keystore-generator: log out the membership index upon registration (#1963) (7d53aec1)
  • rln-relay: integrate waku rln registry (#1943) (cc9f8d42)
  • ci: add a job checking config options and db schema (#1927) (505d1967)
  • rln_keystore_generator: generate and persist credentials ([#1928](https://github.com/waku-org/nwaku/iss...
Read more

2023-08-16 v0.19.0

16 Aug 13:48
v0.19.0
fa69acb
Compare
Choose a tag to compare

Note that the --topic CLI option is being deprecated in favor a more specific option --pubsub-topic.

The Waku v1 implementation has been removed from this repository and can be found in a separate Waku Legacy repository.

What's Changed

Release highlights:

  • Improved connection management, including management for non-relay peers and limiting the number of connections from a single IP
  • Postgres support has been added as a backend for archive module
  • RLN initialization optimizations
  • Update to the latest nim-libp2p
  • Removed Waku v1 and also references to v2 from the current version
  • Basic implementation of Autosharding for the Waku Network
  • REST API implementation for Filter protocol

Features

Bug Fixes

  • bring back default topic in config (#1902) (d5d2243c)
  • ci: only add comment on PR and do not duplicate it (#1908) (b785b6ba)
  • ci: add mising OS arch option to image build (#1905) (2575f3c4)
  • wakucanary: add missing return on timeout (#1901) (7dce0b9e)
  • fixes out of bounds crash when waku2 is not set (#1895) (03363f1b)
  • wakucanary: add enr record to builder (#1882) (831a093f)
  • check nil before calling clearTimer (#1869) (2fc48842)
  • rln-relay: mark duplicated messages as spam (#1867) (4756ccc1)
  • ci: do not depend on number of procesors with job name (#1863) (c560af11)
  • libp2p: Updating nim-libp2p to fix the wss connectivity issue (#1848) (1d3410c7)
  • rln-relay: chunk event fetching (#1830) (e4d9ee1f)
  • discv5: Fixing issue that prevented the wakunode2 from starting (#1829) (3aefade6)
  • sanity-check the docker image start (ae05f0a8)
  • ci: fix broken test with wrong import (#1820) (4573e8c5)
  • temporary fix to disable default experimental builds on fleets (#1810) (e9028618)
  • rln-relay: tree race condition upon initialization (#1807) (f8e270fb)
  • fix mac docker build alpine version (#1801) (fce845bb)
  • rln-relay: flaky static group manager test (#1798) (0e9ecbd6)

Changes

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
/vac/waku/filter-subscribe/2.0.0-beta1
/vac/waku/filter-push/2.0.0-beta1
13/WAKU2-STORE draft /vac/waku/store/2.0.0-beta4
19/WAKU2-LIGHTPUSH draft /vac/waku/lightpush/2.0.0-beta1

The Waku v1 implementation has been removed from this repository and can be found in a separate Waku Legacy repository.

Upgrade instructions

  • The --topic CLI option is being depreaced in favour of two more spefici options --pubsub-topic and --content-topic. The --topic option will be available for next 2 releases with a deprecat...
Read more

2023-06-14 v0.18.0

13 Jun 21:21
0111b88
Compare
Choose a tag to compare

Note that there is a new naming scheme for release artifacts.

What's Changed

Release highlights:

  • Support for Gossipsub scoring
  • Rendezvous discovery protocol enabled by default with relay
  • Initial support for postgresql as Store backend
  • Atomic operations for insertions and deletions included in rln-relay

Features

  • postgres: complete implementation of driver and apply more tests (#1785) (5fc5770d)
  • postgres: adding a postgres async pool to make the db interactions asynchronous (#1779) (cb2e3d86)
  • rln-relay: pass in index to keystore credentials (#1777) (a00aa8cc)
  • networking: integrate gossipsub scoring (#1769) (34a92631)
  • discv5: added find random nodes with predicate (#1762) (#1763) (21737c7c)
  • wakunode2: enable libp2p rendezvous protocol by default (#1770) (835a409d)
  • postgresql: align previous work's PR#1590 changes into master (#1764) (7df6f4c8)
  • networking: prune peers from same ip beyond collocation limit (#1765) (047d1cf0)
  • ci: add nightly builds (#1758) (473af70a)
  • postgresql: 1st commit to async sql (waku_archive/driver...) (#1755) (59ca03a8)
  • ci: add release-notes target (#1734) (ceb54b18)
  • rln-relay: use new atomic_operation ffi api (#1733) (611e9539)

Bug Fixes

Changes

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
/vac/waku/filter-subscribe/2.0.0-beta1
/vac/waku/filter-push/2.0.0-beta1
13/WAKU2-STORE draft /vac/waku/store/2.0.0-beta4
19/WAKU2-LIGHTPUSH draft /vac/waku/lightpush/2.0.0-beta1

The Waku v1 implementation is stable but not under active development.

Upgrade instructions

There is a new naming scheme for release artifacts - nwaku-${ARCHITECTURE}-${OS}-${VERSION}.tar.gz. If you use any automation to download latest release, you may need to update it.

The --topics config option has been deprecated to unify the configuration style. It is still available in this release but will be removed in the next one. The new option --topic is introduced, which can be used repeatedly to achieve the same behavior.

2023-05-17 v0.17.0

17 May 14:52
c4370b3
Compare
Choose a tag to compare

Note that the --topics config item has been deprecated and support will be dropped in future releases. To configure support for multiple pubsub topics, use the new --topic parameter repeatedly.

What's Changed

Release highlights:

  • New REST API for Waku Store protocol.
  • New Filter protocol implentation. See 12/WAKU2-FILTER.
  • Initial C bindings support.
  • Support for Heaptrack to investigate memory utilization (tutorial).

Features

  • cbindings: first commit - waku relay (#1632) (#1714) (2defbd23)
  • example using filter and lightpush (#1720) (8987d4a3)
  • configure protected topics via cli (#1696) (16b44523)
  • mem-analysis: Adding Dockerfile_with_heaptrack (#1681) (9b9172ab)
  • add metrics with msg size histogram (#1697) (67e96ba8)
  • curate peers shared over px protocol (#1671) (14305c61)
  • enr: added support for relay shards field (96162536)
  • add tools maket target and build tools in CI (#1668) (d5979e94)
  • integrate new filter protocol, other improvements (#1637) (418efca2)
  • rest-api-store: new rest api to retrieve store waku messages (#1611) (#1630) (b2acb54d)
  • node: added waku node builder type (e931fa5d)
  • dos protected topic relay msgs based on meta field (#1614) (c26dcb2b)
  • further filter improvements (#1617) (d920b973)
  • common: added extensible implementation of the enr typed record (ac56e1dc)
  • rln-relay: fetch release from zerokit ci, or build (#1603) (179be681)
  • filter-v2: new filter protocol increment - message handling and clients (#1600) (be446b98)

Fixes

Changes

  • ci: cache all of submodules/deps to speed up build time (#1731) (4394c69d)
  • rln-relay: update args to contract (#1724) (b277ce10)
  • rln-relay: use new config for ffi (#1718) (44c54312)
  • adding new tutorial on how to handle heaptrack with nim waku (#1719) (4b59e472)
  • add timestamp and ephemeral for opt-in dos validator (#1713) (3e0a693d)
  • add test vectors dos protection validator (#1711) (eaa162ee)
  • add validator for dos protec metrics and move to app (#1704) (3e146869)
  • use QUICK_AND_DIRTY_COMPILER flag for CI (#1708) (21510425)
  • move networkmonitor and wakucanary to apps directory (209579b0)
  • wakunode2: flatten and simplify app setup (#1705) (ce92fc1a)
  • wakunode2: split setup logic into app module (c8081c88)
  • add payload bytes to trace log (#1703) (c6d291d3)
  • refactor flaky test with while (#1698) (dca0e9b2)
  • core: move peers utils module to waku_core (e041e043)
  • decouple test2 target from testcommon (91baa232)
  • core: move utils time module to waku_core (93b0c071)
  • add deprecation notice to utils module. move heartbeat to common (e8dceb2a)
  • core: rename waku_message module to waku_core (c9b6b230)
  • flatten waku v2 protocols folder (d7b72ac7)
  • fix test failing intermittently (#1679) (8d213e85)
  • networking: get relay number of connections from protocol conns/streams (#1609) (73cbafa6)
  • allow to call store api endpoints without a storenode (#1575) (#1647) (0b4a2e68)
  • bump container ...
Read more

2023-03-15 v0.16.0

15 Mar 10:58
v0.16.0
03f0de3
Compare
Choose a tag to compare

This release does not include upgrade instructions if upgrading from v0.15.0 or later. To upgrade from an older version, please refer to past release notes.

Release highlights:

  • a fix for an issue that prevented the node from generating high-resolution (up to nanosecond) timestamps
  • introduction of an application-defined meta attribute to the Waku Message. This can be quite valuable for network-wide deduplication, deterministic hashing, validity checking and other planned improvements to the protocol
  • many optimizations in RLN implementation and its underlying dependencies

Features

  • Integrated a new group manager for RLN-protected relay 1496
  • Added application-defined meta attribute to Waku Message according to RFC 14/WAKU2-MESSAGE 1581
  • Implemented deterministic hashing scheme for Waku Messages according to RFC 14/WAKU2-MESSAGE 1586

Changes

  • Upgraded nim-sqlite3-abi to the latest version 1565
  • Better validation of protocol buffers 1563
  • Improved underlying Zerokit performance and FFI 1571
  • Node peer ID now logged with relay trace logging 1574
  • Continued refactoring of several protocol implementations to improve maintainability and readability
  • Refactored and cleaned up peer manager 1539
  • Removed unused and legacy websocket submodule 1580 1582
  • Use base64 URL-safe encoding for noise 1569
  • Various general improvements to RLN implementation 1585 1587
  • Started on implementation for new and improved filter protocol 1584
  • Updated pubsub and content topic namespacing to reflect latest changes in RFC 23/WAKU2-TOPICS 1589
  • Unified internal peer data models 1597
  • Improved internal implementation of Waku ENR encoding and decoding 1598 1599
  • Underlying dependency for RLN implementation now loaded as a static library 1578

Fixes

  • Fixed internally generated timestamps to allow higher resolution than seconds 1570
  • Fixed padded base64 usage for encoding and decoding payloads on the JSON RPC API 1572
  • Fixed incorrect relative module imports 1591
  • Fixed RLN relay erroneously storing messages from multiple apps 1594

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-02-15 v0.15.0

14 Feb 15:02
v0.15.0
e12b7cb
Compare
Choose a tag to compare

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 a WakuMessage object.
  • retrieving (getting) messages, e.g. via get_waku_v2_relay_v1_messages also returns a WakuMessage object.
  • the WakuMessage object's payload is now a base64 data string
  • the WakuMessage object has a version 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 your v0.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.

2023-01-16 v0.14.0

16 Jan 10:17
v0.14.0
2df6cb1
Compare
Choose a tag to compare

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.
  • 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

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

15 Nov 09:52
v0.13.0
9debd44
Compare
Choose a tag to compare

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-RELAY implementation.
  • 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-STORE no 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 TaintedString type. #1326
  • Fixed and replaced unreliable regex library and usage. #1327 #1328
  • Fixed and replaced deprecated ganache-cli node package with ganache for RLN onchain tests. Added graceful daemon termination. #1347

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.

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 --store must explicitly be set to true (previously this was true by default)
  • the --sqlite-store option 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-messages option is deprecated - simply remove this from config. Messages will be persisted if store is set to true.
  • the --db-path item is deprecated. Replace with --store-message-db-url followed by a URL formatted path, e.g. sqlite://<database-file-path>
  • the --store-capacity and --sqlite-retention-time options are deprecated. Replace with --store-message-retention-policy followed 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-peers option is deprecated. Replace with --peer-persistence.

2022-10-06 v0.12.0

06 Oct 16:32
v0.12.0
a9fa3a2
Compare
Choose a tag to compare

Release highlights:

  • 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.
  • 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 relay with RLN.

The full list of changes is below.

Features

Changes

  • 17/WAKU-RLN-RELAY implementation now handles on-chain transaction errors.
  • 17/WAKU-RLN-RELAY implementation now validates the Merkle tree root against a window of acceptable roots.
  • Added metrics for 17/WAKU-RLN-RELAY implementation.
  • 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 store implementation:
    • 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.
  • relay no 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-FILTER not 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.
  • chat2 application 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-path configuration.

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-08-15 v0.11

15 Aug 14:02
v0.11
fec1397
Compare
Choose a tag to compare

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-RELAY implementation.
  • Integrated HTTP REST API for external access to some wakunode2 functionality:
    • Debug REST API exposes debug information about a wakunode2.
    • Relay REST API allows basic pub/sub functionality according to 11/WAKU2-RELAY.
  • 35/WAKU2-NOISE implementation now adds padding to ChaChaPoly encryptions to increase security and reduce metadata leakage.

Changes

  • Significantly improved the SQLite-only historical message store query performance.
  • Refactored several protocol implementations to improve maintainability and readability.
  • Major code reorganization for the 13/WAKU2-STORE implementation to improve maintainability. This will also make the store extensible to support multiple implementations.
  • Disabled compiler log colors when running in a CI environment.
  • Refactored 35/WAKU2-NOISE implementation into smaller submodules.
  • 11/WAKU2-RELAY implementation 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.