Releases: waku-org/nwaku
Release v0.28.0
v0.28.0 (2024-05-22)
What's Changed
Release highlights:
- Store V3 has been merged
- Implemented an enhanced and more robust node health check mechanism
- Introduced the Waku object to libwaku in order to setup a node and its protocols
Features
- Added message size check before relay for lightpush (#2695) (9dfdfa27)
- adding json string support to bindings config (#2685) (be5471c6)
- Added flexible rate limit checks for store, legacy store and lightpush (#2668) (026d804a)
- store v3 return pubsub topics (#2676) (d700006a)
- supporting meta field in store (#2609) (a46d4451)
- store v3 (#2431) (0b0fbfad)
Bug Fixes
- use await instead of waitFor in async tests (#2690) (a37c9ba9)
- message cache removal crash (#2682) (fa26d05f)
- add
meta
to sqlite migration scripts (#2675) (82f95999) - content_script_version_4.nim: migration failed when dropping unexisting constraing (#2672) (38f8b08c)
- filter: log is too large (#2665) (cee020f2)
- issue #2644 properly (#2663) (853ec186)
- store v3 validate cursor & remove messages (#2636) (e03d1165)
- waku_keystore: sigsegv on different appInfo (#2654) (5dd645cf)
- rln-relay: persist metadata every batch during initial sync (#2649) (a9e19efd)
- handle named sharding in enr (#2647) (8d1b0834)
- parse shards properly in enr config for non twn (#2633) (6e6cb298)
- proto field numbers & status desc (#2632) (843fe217)
- missing rate limit setting for legacy store protocol (#2631) (5f65565c)
- rln-relay: enforce error callback to remove exception raised from retryWrapper (#2622) (9c9883a6)
- rln-relay: increase retries for 1 minute recovery time (#2614) (1a23700d)
- ci: unique comment_tag to reference rln version (#2613) (2c01fa0f)
- don't use WakuMessageSize in req/resp protocols (#2601) (e61e4ff9)
- create options api for cors preflight request (#2598) (768c61b1)
- node restart test issue (#2576) (4a8e62ac)
- doc: update REST API docs (#2581) (006d43ae)
Changes
- move code from wakunode2 to a more generic place, waku (#2670) (840e0122)
- closing ping streams (#2692) (7d4857ea)
- Postgres enhance get oldest timestamp (#2687) (8451cf8e)
- rln-relay: health check should account for window of roots (#2664) (6a1af922)
- updating TWN bootstrap fleet to waku.sandbox (#2638) (22f64bbd)
- simplify migration script postgres version_4 (#2674) (91c85738)
- big refactor to add waku component in libwaku instead of only waku node (#2658) (2463527b)
- simplify app.nim and move discovery items to appropriate modules (#2657) (404810aa)
- log enhancement for message reliability analysis (#2640) (d5e0e4a9)
- metrics server. Simplify app.nim module (#2650) (4a110f65)
- change nim-libp2p branch from unstable to master (#2648) (d09c9c91)
- Enabling to use a full node for lightpush via rest api without lightpush client configured (#2626) (2a4c0f15)
- rln-relay: resultify rln-relay 1/n (#2607) (1d7ff288)
- ci.yml - avoid calling brew link libpq --force on macos (#2627) (05f332ed)
- an enhanced version of convenient node health check script (#2624) (7f8d8e80)
- rln-db-inspector: add more logging to find zero leaf indices (#2617) (40752b1e)
- addition of waku_api/rest/builder.nim and reduce app.nim (#2623) (b28207ab)
- Separation of node health and initialization state from rln_relay (#2612) (6d135b0d)
- enabling rest api as default (#2600) (6bc79bc7)
- move app.nim and networks_config.nim to waku/factory (#2608) (1ba9df4b)
- workflow to autoassign PR (#2604) (10d36c39)
- start moving discovery modules to waku/discovery (#2587) (828583ad)
- don't create docker images for users without org's secrets (#2585) (51ec12be)
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 |
66/WAKU2-METADATA |
raw |
/vac/waku/metadata/1.0.0 |
The Waku v1 implementation has been removed from this repository and can be found in a separate Waku Legacy repository.
Release v0.27.0
v0.27.0 (2024-04-19)
Note:
- Filter v1 protocol and its REST-API access have been deprecated.
- A new field of the
WakuMetadataRequest
protobuf for shards was introduced. The old shards field (2) will be deprecated in 2 releases time- CLI flags
--requestRateLimit
and--requestRatePeriod
have been added for rate limiting configuration. Period is measured in seconds. Limits are measured per protocol per period of time. Over limit will result in TOO_MANY_REQUEST (429) response.
What's Changed
Release highlights:
- Introduced configurable rate limiting for lightpush and store requests
- Sync time has been considerably reduced for node initialization
- Significant refactors were made to node initialization and
WakuArchive
logic as work towards C-bindings and Store V3 features
Features
- Added simple, configurable rate limit for lightpush and store-query (#2390) (a00f350c)
- examples/golang/waku.go add new example (#2559) (8d66a548)
- c-bindings: rln relay (#2544) (2aa835e3)
- incentivization: add codec for eligibility proof and status (#2419) (65530264)
- rest: add support to ephemeral field (#2525) (c734f60d)
- archive update for store v3 (#2451) (505479b8)
- c-bindings: add function to dealloc nodes (#2499) (8341864d)
Bug Fixes
- rln-relay: reduce sync time (#2577) (480a62fa)
- rest store: content_topic -> contentTopic in the response (#2584) (d2578553)
- c-bindings: rln credential path key (#2564) (3d752b11)
- cluster-id 0 disc5 issue (#2562) (a76c9587)
- regex for rpc endpoint (#2563) (c87545d5)
- rln: set a minimum epoch gap (#2555) (b5e4795f)
- fix regresion + remove deprecated flag (#2556) (47ad0fb0)
- networkmanager: regularly disconnect from random peers (#2553) (70c53fc0)
- remove subscription queue limit (#2551) (94ff5eab)
- peer_manager - extend the number of connection requests to known peers (#2534) (2173fe22)
- 2491: Fix metadata protocol disconnecting light nodes (#2533) (33774fad)
- rest: filter/v2/subscriptions response (#2529) (7aea2d4f)
- store: retention policy regex (#2532) (23a291b3)
- enable autosharding in any cluster (#2505) (5a225809)
- introduce new field for shards in metadata protocol (#2511) (f9f92b7d)
- rln-relay: handle empty metadata returned by getMetadata proc (#2516) (1274b15d)
Changes
- adding migration script adding i_query index (#2578) (4117fe65)
- bumping chronicles version (#2583) (a04e0d99)
- add ARM64 support for Linux/MacOS (#2580) (269139cf)
- rln: update submodule + rln patch version (#2574) (24f6fed8)
- bumping dependencies for 0.27.0 (#2572) (f68ac792)
- c-bindings: node initialization (#2547) (6d0f6d82)
- remove deprecated legacy filter protocol (#2507) (e8613172)
- switch wakuv2 to waku fleet (#2519) (18a05359)
- create nph.md (#2536) (a576e624)
- Better postgres duplicate insert (#2535) (693a1778)
- add 150 kB to msg size histogram metric (#2430) (2c1391d3)
- content_script_version_2: add simple protection and rename messages_backup if exists (#2531) (c6c376b5)
- vendor: update nim-libp2p path (#2527) (3c823756)
- adding node factory tests (#2524) (a1b3e090)
- factory cleanup (#2523) (8d7eb3a6)
- rln-relay-v2: wakunode testing + improvements (#2501) (059cb975)
- update CHANGELOG for v0.26.0 release (#2518) (097cb362)
- migrating logic from wakunode2.nim to node_factory.nim (#2504) (dcc88ee0)
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 |
66/WAKU2-METADATA |
raw |
/vac/waku/metadata/1.0.0 |
The Waku v1 implementation has been removed from this repository and can be found in a separate Waku Legacy repository.
Release v0.26.0
v0.26.0 (2024-03-07)
Note:
- JSON-RPC API has been removed completely. Instead we recommend you to utilize REST API endpoints that have same and extended functionality.
Please have a look at Waku's REST-API reference: https://waku-org.github.io/waku-rest-api- Support for Cross-Origin-Resource-Sharing (CORS headers) is added for our REST-API services. This allows you to access our REST-API from a browser.
New repeatable CLI flag is added by this feature:
--rest-allow-origin="example.com"
or--rest-allow-origin="127.0.0.0:*"
Flag allows using wildcards (*
and?
) in the origin string.- Store protocol now has a better support for controlling DB size of Postgres store. This feature needs no user action.
Announcement:
Please notice that from the next release (0.27.0) we will deprecate features.
- We will decomission the Filter v1 protocol and its REST-API access.
Features
- Postgres partition implementation (#2506) (161a10ec)
- waku-stealth-commitments: waku stealth commitment protocol (#2490) (0def4904)
- bindings: generate a random private key (#2446) (56ff30ca)
- prioritise yamux above mplex (#2417) (ce151efc)
- supporting meta field in WakuMessage (#2384) (3903f130)
eventCallback
per wakunode anduserData
(#2418) (707f3e8b)- rln-relay-v2: nonce/messageId manager (#2413) (50308eda)
- networkmonitor: add support for rln (#2401) (9c0e9431)
- rln-relay-v2: rln-keystore-generator updates (#2392) (2d46c351)
- add yamux support (#2397) (1b402667)
Bug Fixes
- rln-relay: make nullifier log abide by epoch ordering (#2508) (beba14dc)
- postgres: import under feature flag (#2500) (e692edf6)
- notify Waku Metadata when Waku Filter subscribe to a topic (#2493) (91e3f8cd)
- time on 32 bits architecture (#2492) (0a751228)
- return message id on
waku_relay_publish
(#2485) (045091a9) - bindings: base64 payload and key for content topic (#2435) (d01585e9)
- rln-relay: regex pattern match for extended domains (#2444) (29b0c0b8)
- checking for keystore file existence (#2427) (8f487a21)
- rln-relay: graceful shutdown with non-zero exit code (#2429) (22026b7e)
- check max message size in validator according to configured value (#2424) (731dfcbd)
- wakunode2: move node config inside app init branch (#2423) (0dac9f9d)
Changes
- rln_db_inspector: include in wakunode2 binary (#2292) (a9d0e481)
- Update link to DNS discovery tutorial (#2496) (9ef2eccb)
- rln-relay-v2: added tests for static rln-relay-v2 (#2484) (5b174fb3)
- moving node initialization code to node_factory.nim (#2479) (361fe2cd)
- Postgres migrations (#2477) (560f949a)
- rln-relay-v2: added tests for onchain rln-relay-v2 (#2482) (88ff9282)
- remove json rpc (#2416) (c994ee04)
- ci: use git describe for image version (55ff6674)
- Implemented CORS handling for nwaku REST server (#2470) (d832f92a)
- remove rln epoch hardcoding (#2483) (3f4f6d7e)
- cbindings: cbindings rust simple libwaku integration example (#2089) (a4993005)
- adding NIMFLAGS usage to readme (#2469) (a1d5cbd9)
- bumping nim-libp2p after yamux timeout fix (#2468) (216531b0)
- new proc to foster different size retention policy implementations (#2463) (d5305282)
- rln-relay: use anvil instead of ganache in onchain tests (#2449) (f6332ac6)
- bindings return multiaddress array (#2461) (7aea145e)
- ci: fix IMAGE_NAME to use harbor.status.im (b700d046)
- rln-relay: remove wss support from node config (#2442) (2060cfab)
- ci: reuse discord send function from library (1151d50f)
- rln-relay-v2: add tests for serde (#2421) (d0377056)
- add stdef.h to libwaku.h (#2409) (d58aca01)
- automatically generating certs if not provided (Waku Canary) (#2408) (849d76d6)
- Simplify configuration for the waku network (#2404) (985d092f)
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 |
66/WAKU2-METADATA |
raw |
/vac/waku/metadata/1.0.0 |
The Waku v1 implementation has been removed from this repository and can be found in a separate Waku Legacy repository.
v0.26.0-rc.0
Generated at Thu Mar 7 13:00:19 UTC 2024
Features
- Postgres partition implementation (#2506) (161a10ec)
- waku-stealth-commitments: waku stealth commitment protocol (#2490) (0def4904)
- bindings: generate a random private key (#2446) (56ff30ca)
- prioritise yamux above mplex (#2417) (ce151efc)
- supporting meta field in WakuMessage (#2384) (3903f130)
eventCallback
per wakunode anduserData
(#2418) (707f3e8b)- rln-relay-v2: nonce/messageId manager (#2413) (50308eda)
- networkmonitor: add support for rln (#2401) (9c0e9431)
- rln-relay-v2: rln-keystore-generator updates (#2392) (2d46c351)
- add yamux support (#2397) (1b402667)
Bug Fixes
- rln-relay: make nullifier log abide by epoch ordering (#2508) (beba14dc)
- postgres: import under feature flag (#2500) (e692edf6)
- notify Waku Metadata when Waku Filter subscribe to a topic (#2493) (91e3f8cd)
- time on 32 bits architecture (#2492) (0a751228)
- return message id on
waku_relay_publish
(#2485) (045091a9) - bindings: base64 payload and key for content topic (#2435) (d01585e9)
- rln-relay: regex pattern match for extended domains (#2444) (29b0c0b8)
- checking for keystore file existence (#2427) (8f487a21)
- rln-relay: graceful shutdown with non-zero exit code (#2429) (22026b7e)
- check max message size in validator according to configured value (#2424) (731dfcbd)
- wakunode2: move node config inside app init branch (#2423) (0dac9f9d)
Changes
- rln_db_inspector: include in wakunode2 binary (#2292) (a9d0e481)
- Update link to DNS discovery tutorial (#2496) (9ef2eccb)
- rln-relay-v2: added tests for static rln-relay-v2 (#2484) (5b174fb3)
- moving node initialization code to node_factory.nim (#2479) (361fe2cd)
- Postgres migrations (#2477) (560f949a)
- rln-relay-v2: added tests for onchain rln-relay-v2 (#2482) (88ff9282)
- remove json rpc (#2416) (c994ee04)
- ci: use git describe for image version (55ff6674)
- Implemented CORS handling for nwaku REST server (#2470) (d832f92a)
- remove rln epoch hardcoding (#2483) (3f4f6d7e)
- cbindings: cbindings rust simple libwaku integration example (#2089) (a4993005)
- adding NIMFLAGS usage to readme (#2469) (a1d5cbd9)
- bumping nim-libp2p after yamux timeout fix (#2468) (216531b0)
- new proc to foster different size retention policy implementations (#2463) (d5305282)
- rln-relay: use anvil instead of ganache in onchain tests (#2449) (f6332ac6)
- bindings return multiaddress array (#2461) (7aea145e)
- ci: fix IMAGE_NAME to use harbor.status.im (b700d046)
- rln-relay: remove wss support from node config (#2442) (2060cfab)
- ci: reuse discord send function from library (1151d50f)
- update CHANGELOG.md for v0.25.0 (#2399) (d00065e9)
- rln-relay-v2: add tests for serde (#2421) (d0377056)
- add stdef.h to libwaku.h (#2409) (d58aca01)
- automatically generating certs if not provided (Waku Canary) (#2408) (849d76d6)
- Simplify configuration for the waku network (#2404) (985d092f)
Release v0.25.0
v0.25.0
Note:
Waku Filter v2 now has three additional configuration options
--filter-max-peers-to-serve=1000
drives how many peers can subscribe at once and
--filter-max-criteria=1000
defines what is the maximum criterion stored per each peersThis release introduces a major change in Filter v2 protocol subscription management.
From now each subscribed peer needs to refresh its living subscriptions by sending a SUBSCRIBER_PING message every 5 minutes by default, otherwise the peer's subscription will be removed.
--filter-subscription-timeout=300
defines configurable timeout for the subscriptions (in seconds).New experimental feature, shard aware peer manager for relay protocol can be activated by the flag:
--relay-shard-manager=true|false
It is disabled by default.
Announcement:
Please notice that from the next release (0.26.0) we will deprecate features.
- JSON-RPC API will be removed completely. Instead we recommend you to utilize REST API endpoints that have same and extended functionality.
- We will retire websockets support for RLN on-chain group management. You are expected to use HTTP version of ETH_CLIENT_ADDRESS
Features
- running validators in /relay/v1/auto/messages/{topic} (#2394) (e4e147bc)
- rln-relay-v2: update C FFI api's and serde (#2385) (b88facd0)
- running validators in /relay/v1/messages/{pubsubTopic} (#2373) (59d8b620)
- shard aware relay peer management (#2332) (edca1df1)
Bug Fixes
- adding rln validator as default (#2367) (bb58a63a)
- Fix test for filter client receiving messages after restart (#2360) (7de91d92)
- making filter admin data test order independent (#2355) (8a9fad29)
Changes
- rln-relay-v2: use rln-v2 contract code (#2381) (c55ca067)
- v0.25 vendor bump and associated fixes (#2352) (761ce7b1)
- handle errors w.r.t. configured cluster-id and pubsub topics (#2368) (e04e35e2)
- add coverage target to Makefile (#2382) (57378873)
- Add check spell allowed words (#2383) (c1121dd1)
- adding nwaku compose image update to release process (#2370) (4f06dcff)
- changing digest and hash log format from bytes to hex (#2363) (025c6ec9)
- log messageHash for lightpush request that helps in debugging (#2366) (42204115)
- rln-relay: enabled http based polling in OnchainGroupManager (#2364) (efdc5244)
- improve POST /relay/v1/auto/messages/{topic} error handling (#2339) (f841454e)
- Refactor of FilterV2 subscription management with Time-to-live maintenance (#2341) (c3358409)
- Bump
nim-dnsdisc
(#2354) (3d816c08) - postgres-adoption.md add metadata title, description, and better first-readable-title (#2346) (2f8e8bcb)
- fix typo (#2348) (a4a8dee3)
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 |
66/WAKU2-METADATA |
raw |
/vac/waku/metadata/1.0.0 |
The Waku v1 implementation has been removed from this repository and can be found in a separate Waku Legacy repository.
v0.25.0-rc.0
Generated at Wed Feb 14 11:02:28 UTC 2024
Release v0.24.0
v0.24.0
Note: The Waku message size limit (150 KiB) is now enforced according to the specifications. To change this limit please use
--max-msg-size="1MiB"
Note:
--ip-colocation-limit=2
is the new parameter for limiting connections from the same IP
What's Changed
Release highlights:
- IP colocation filter can now be changed via a configuration parameter.
- New filter admin endpoint can now be used to access subscription data.
- Waku message size limit can now be changed via a configuration parameter.
Features
- feat: adding filter data admin endpoint (REST) #2314
- ip colocation is parameterizable. if set to 0, it is disabled #2323
Bug Fixes
- fix: revert "feat: shard aware peer management #2151" #2312
- fix: setting connectivity loop interval to 15 seconds #2307
- fix: set record to the Waku node builder in the examples as it is required #2328
- fix(discv5): add bootnode filter exception #2267
Changes
- update CHANGELOG.md for 0.23.0 #2309
- test(store): Implement store tests #2235, #2240
- refactor(store): HistoryQuery.direction #2263
- test_driver_postgres: enhance test coverage, multiple and single topic #2301
- chore: examples/nodejs - adapt code to latest callback and ctx/userData definitions #2281
- chore: update
CHANGELOG.md
to reflect bug fix for issue #2317 #2340 in v0.23.1 - test(peer-connection-managenent): functional tests #2321
- docs: update post-release steps #2336
- docs: fix typos across various documentation files #2310
- test(peer-connection-managenent): functional tests #2321
- bump vendors for 0.24.0 #2333
- test(autosharding): functional tests #2318
- docs: add benchmark around postgres adoption #2316
- chore: set max Waku message size to 150KiB according to spec #2298
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 |
66/WAKU2-METADATA |
raw |
/vac/waku/metadata/1.0.0 |
The Waku v1 implementation has been removed from this repository and can be found in a separate Waku Legacy repository.
v0.24.0-rc.1
Generated at Thu Jan 18 16:45:53 UTC 2024
Features
Bug Fixes
- Set
record
to the Waku Node Builder in the examples as it is required (#2328) (42ede93b) - discv5: add bootnode filter exception (#2267) (7b4f4bb1)
- Revert "feat: shard aware peer management (#2151)" (#2312) (32668f43)
- setting connectivity loop interval to 15 seconds (#2307) (a1b27edf)
Changes
- update CHANGELOG.md for v0.24.0 (7fc8e322)
- Update CHANGELOG.md to reflect bug fix for issue #2317 (#2340) in v0.23.1 (8ce8ec69)
- update after release steps (#2336) (7f1682de)
- Fix Typos Across Various Documentation Files (#2310) (3553fb4f)
- add benchmar around postgres adoption (#2316) (b0c78052)
- message.nim - set max message size to 150KiB according to spec (#2298) (ed09074c)
- store: HistoryQuery.direction (#2263) (fae20bff)
- examples/nodejs - adapt code to latest callback and ctx/userData definitions (#2281) (d01904e7)
v0.24.0-rc.0
Generated at Wed Jan 10 14:37:58 UTC 2024
Features
Bug Fixes
- Set
record
to the Waku Node Builder in the examples as it is required (#2328) (42ede93b) - discv5: add bootnode filter exception (#2267) (7b4f4bb1)
- Revert "feat: shard aware peer management (#2151)" (#2312) (32668f43)
- setting connectivity loop interval to 15 seconds (#2307) (a1b27edf)
Changes
- Update CHANGELOG.md to reflect bug fix for issue #2317 (#2340) in v0.23.1 (8ce8ec69)
- update after release steps (#2336) (7f1682de)
- Fix Typos Across Various Documentation Files (#2310) (3553fb4f)
- add benchmar around postgres adoption (#2316) (b0c78052)
- message.nim - set max message size to 150KiB according to spec (#2298) (ed09074c)
- store: HistoryQuery.direction (#2263) (fae20bff)
- examples/nodejs - adapt code to latest callback and ctx/userData definitions (#2281) (d01904e7)