Releases: logos-messaging/logos-messaging-nim
2023-11-09 v0.21.3
v0.21.3 (2023-11-09)
This patch release adds the following feature:
- Adding generateRlnKeystore subcommand for RLN membership generation
Features
This is a patch release that is fully backwards-compatible with release v0.21.0, v0.21.1 and v0.21.2.
It supports the same 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.
2023-11-07 v0.21.2
v0.21.2 (2023-11-07)
This patch release addresses the following issue:
- Inability to send RLN messages through the REST API
Bug Fixes
This is a patch release that is fully backwards-compatible with release v0.21.0 and v0.21.1.
It supports the same 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.
2023-10-26 v0.21.1
v0.21.1 (2023-10-26)
This patch release addresses the following issues:
- WSS connections being suddenly terminated under rare conditions
- Ability for the user to control announced multiaddresses
Changes
- adding ext-multiaddr-only CLI flag (#2141) (e2dfc2ed)
- bumping nim-libp2p to include WSS fix (#2150) (18b5149a)
This is a patch release that is fully backwards-compatible with release v0.21.0.
It supports the same 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.
2023-10-18 v0.21.0
Note: This is the last release supporting the
--topicoption. It is being deprecated in favor of a more specific options--pubsub-topic&--content-topic
What's Changed
Release highlights:
- Implemented a req/resp protocol that provides information about the node's medatadata
- Added REST APIs for Filter v2 and Lightpush protocols' services
- Ported /admin endpoint to REST
- Added a size-based retention policy for the user to set a limit for SQLite storage used
Features
- add new metadata protocol (#2062) (d5c3ade5)
- /admin rest api endpoint (#2094) (7b5c36b1)
- coverage: Add simple coverage (#2067) (d864db3f)
- added RELAY openapi definitions (#2081) (56dbe2a7)
- wakucanary: add latency measurement using ping protocol (#2074) (6cb9a8da)
- Autosharding API for RELAY subscriptions (#1983) (1763b1ef)
- networkmonitor: add ping latencies, optimize reconnections (#2068) (ed473545)
- peer manager can filter peers by shard (#2063) (0d9e9fbd)
- lightpush rest api (#2052) (02a814bd)
- HTTP REST API: Filter support v2 (#1890) (dac072f8)
Bug Fixes
- fix wrong install of filter rest api (#2133) (5277d122)
- consider WS extMultiAddrs before publishing host address (#2122) (a5b1cfd0)
- return erring response if lightpush request is invalid (#2083) (2c5eb427)
- sqlite limited delete query bug (#2111) (06bc433a)
- cluster id & sharding terminology (#2104) (a47dc9e6)
- ci: update the dependency list in pre-release WF (#2088) (e85f05b0)
- ci: fix name of discord notify method (aaf10e08)
- update wakuv2 fleet DNS discovery enrtree (89854a96)
- libwaku.nim: unsubscribe -> unsubscribeAll to make it build properly (#2082) (3264a4f5)
- archive: dburl check (#2071) (a27d005f)
- filter discv5 bootstrap nodes by shards (#2073) (d178105d)
- rln-relay: segfault when no params except rln-relay are passed in (#2047) (45fe2d3b)
- sqlite: Properly set user_version to 7 so that the migration procedure is not started (#2031) (aa3e1a66)
Changes
- remove js-node tests as release candidate dependencies (#2123) (ce5fb340)
- added size based retention policy (#2098) (25d6e52e)
- Clarify running instructions (#2038) (12e8b122)
- rln: add more hardcoded memberhips to static group (#2108) (1042cacd)
- Revert lightpush error handling to allow zero peer publish again succeed (#2099) (f05528d4)
- adding NetConfig test suite (#2091) (23b49ca5)
- cbindings: Adding cpp example that integrates the 'libwaku' (#2079) (8455b8dd)
- networkmonitor: refactor setConnectedPeersMetrics, make it partially concurrent, add version (#2080) (c5aa9704)
- resolving DNS IP and publishing it when no extIp is provided (#2030) (7797b2cd)
- Adding -d:postgres flag when creating a Docker image for release and PRs (#2076) (7a376f59)
- Moved external APIs out of node (#2069) (3e72e830)
- bump nim-libp2p, nim-toml-serialization, nim-unicodedb, nim-unittest2, nim-websock, nim-zlib, & nimbus-build-system (#2065) (dc25057a)
- ci: add js-waku as a dependency for pre-release createion (#2022) (28b04000)
- Updating nim-chronicles, nim-chronos, nim-presto, nimcrypto, nim-libp2p, and nim-nat-transversal (#2043) (f617cd97)
- cbindings: Thread-safe communication between the main thread and the Waku Thread (#1978) (72f90663)
- rln-relay: logs, updated submodule, leaves_set metric (#2024) (2e515a06)
- release: update changelog for v0.20.0 release (#2026) (9085b1b3)
- postgres: not loading the libpq library by default & better user feedback (#2028) (e8602021)
- move SubscriptionManager under waku_core (#2025) (563b2b20)
- README: List possible WSL Issue (#1995) (ebe715e9)
- ci: add js-waku test to pre-release workflow (#2017) (e8776fd6)
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
- Note that the
--topicCLI option is being deprecated in favor of a more specific options--pubsub-topic&--content-topic. This is the last release supporting the--topicoption. - The size-based retention policy has been tested with SQLite storage and is still on validation phases for Postgres> Note: This is the last release supporting the
--topicoption. It is being deprecated in favor of a more specific options--pubsub-topic&--content-topic
2023-09-14 v0.20.0
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
- rln-relay: removed rln from experimental 🚀 (#2001) (645b0343)
- Rest endoint /health for rln (#2011) (fc6194bb)
- rln_db_inspector: create rln_db_inspector tool (#1999) (ec42e2c7)
- relay: ordered validator execution (#1966) (debc5f19)
- discv5: topic subscriptions update discv5 filter predicate (#1918) (4539dfc7)
- topic subscriptions updates discv5 ENR (#1875) (c369b329)
- rln_keystore_generator: wired to onchain group manager (#1931) (c9b48ea1)
- rln: init rln_keystore_generator (#1925) (3d849541)
- update various protocols to autoshard (#1857) (cf301396)
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...
2023-08-16 v0.19.0
Note that the
--topicCLI 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
v2from the current version - Basic implementation of Autosharding for the Waku Network
- REST API implementation for Filter protocol
Features
- ci: add docker image builds per PR (#1881) (84f94d5d)
- Rest API interface for legacy (v1) filter service. (#1851) (08ff6672)
- autosharding content topics in config (#1856) (afb93e29)
- autosharding core algorithm (#1854) (bbff1ac1)
- cbindings: tiny waku relay example in Python (#1793) (0b2cfae5)
- rln-relay: close db connection appropriately (#1858) (76c73b62)
- enable TcpNoDelay (#1470) (08f3bba3)
- limit relay connections below max conns (#1813) (17b24cde)
- postgres: integration of postgres in wakunode2 (#1808) (88b7481f)
- discovery peer filtering for relay shard (#1804) (a4da87bb)
- rln-relay: resume onchain sync from persisted tree db (#1805) (bbded9ee)
- rln-relay: metadata ffi api (#1803) (045f07c6)
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
wssconnectivity 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
- remove references to v2 (#1898) (b9d5d28a)
- submodules: use zerokit v0.3.1 only (#1886) (311f5ea0)
- remove Waku v1 and wakubridge code (#1874) (ab344a9d)
- cbindings: libwaku - run waku node in a secondary working thread (#1865) (069c1ad2)
- update docs link (#1850) (d2b6075b)
- changelog: release notes for v0.19.0 (#1861) (32c1276f)
- rln-relay: verify proofs based on bandwidth usage (#1844) (3fe4522a)
- rln-relay: bump zerokit (#1838) (4f0bdf9a)
- bump nim-libp2p to 224f92e (661638da)
- refactor: Move record creation & fix libwaku compilation (#1833) (97d3b9f7)
- discv5 re-org clean-up (#1823) (cf46fb7c)
- networking: disconnect due to colocation ip in conn handler (#1821) (e12c979c)
- rln-relay: bump zerokit for version fix (#1822) (add294a9)
- move discv5 out of node. (#1818) (62d36530)
- archive: Moving waku archive logic from app.nim to the archive module (#1817) (52894a82)
- add peer manager config to builder (#1816) (71c4ac16)
- discv5 re-org setup (#1815) (44f9d8dc)
- databases: Creation of the databases folder to keep the logic for sqlite and postgres (#1811) (a44d4bfb)
- deps: bump libp2p & websock (#1800) (f6e89c31)
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
--topicCLI option is being depreaced in favour of two more spefici options--pubsub-topicand--content-topic. The--topicoption will be available for next 2 releases with a deprecat...
2023-06-14 v0.18.0
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
- ci: enforce basic CPU instruction set to prevent CI issues (#1759) (35520bd0)
- test: wait more for gossip (#1753) (0fce3d83)
- rln-relay: keystore usage (#1750) (36266b43)
- ci: fix flaky test for dos topic (#1747) (46e231d0)
- rln-relay: trace log (#1743) (5eae60e8)
- ci: make experimental default to true in fleet deployment (#1742) (b148c305)
Changes
- rln: bump zerokit (#1787) (9c04b59b)
- ci: extend and rename nightly workflow to support RC builds (#1784) (96074071)
- rln-relay: pass in the path to the tree db (#1782) (dba84248)
- rln-relay: update tree_config (#1781) (ba8ec704)
- ci: properly set os and architecture for nightly and release (#1780) (44bcf0f2)
- ci: remove add-to-project workflow (#1778) (a9505892)
- ci: add experimental builds to nightly (#1761) (ffac7761)
- px: close px streams after resp is sent (#1746) (3c2d2891)
- docs: fix docs and mark some as deprecated (#1754) (b51fb616)
- makefile: unify where chronicles_log_level is set (#1748) (39902dc2)
- rln-relay: docs and config update for testnet 3 (#1738) (bb9d231b)
- rln-relay: update metrics dashboard (#1745) (0ced2195)
- rln-relay: updated metrics for testnet 3 (#1744) (62578746)
- networking: set and use target outbound connections + prune (#1739) (87f694a8)
- proper use of setupNat (#1740) (665484c1)
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
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
- ci: remove target flag from docker command (#1725) (d822cdc5)
- wakunode2 config. adding new 'topic' config parameter. (#1727) (2ec9809c)
- streams was used instead of connections (#1722) (b9e0763e)
- change filter request default behaviour to ping (#1721) (7c39be9a)
- rln-relay: handle invalid deletes (#1717) (81dffee8)
- fix filter v2 proto fields (#1716) (68a39c65)
- unstable peers in mesh (#1710) (703c3ab5)
- networkmonitor: break import dependency with wakunode2 app (043feacd)
- import nimchronos instead heartbeat (#1695) (7d12adf6)
- rest: change rest server result error type to string (d5ef9331)
- rln-relay: scope of getEvents (#1672) (b62193e5)
- logs: fix log reporting wrong ok connected peers (#1675) (1a885b96)
- move canBeConnected to PeerManager and check for potential overflow (#1670) (d5c2770c)
- wrap untracked protocol handler exceptions (9e1432c9)
- wakunode2: made setup nat return errors (1cfb251b)
- fixed multiple bare except warnings (caf78249)
- bump libp2p with traffic metrics fix (#1642) (0ef46673)
- rln-relay: buildscript bad cp (#1636) (bd9857c1)
- wakunode2: fix main warnings and drop swap support (f95147f5)
- rln-relay: on chain registration (#1627) (b1bafda2)
- connect instead of dialing relay peers (#1622) (85f33a8e)
- fix hash size greater than 32 (#1621) (c42ac16f)
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 ...
2023-03-15 v0.16.0
This release does not include upgrade instructions if upgrading from
v0.15.0or 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
metaattribute 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
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
multiaddrsfor 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
multiaddrsto 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 aWakuMessageobject. - retrieving (getting) messages, e.g. via
get_waku_v2_relay_v1_messagesalso returns aWakuMessageobject. - the
WakuMessageobject'spayloadis now abase64data string - the
WakuMessageobject has aversionfield
(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.0or 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.0and post-v0.15.0nodes in the same network is not recommended.