From e9aa2940be3a180fe409a29d120dc4a5ab0afe78 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Fri, 20 Jun 2025 14:39:17 +0200 Subject: [PATCH 1/9] CHANGELOG for v0.36.0 --- CHANGELOG.md | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c7b0369b1..31b47451b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,90 @@ +## v0.36.0 (2025-06-20) + +### Features + +- Update implementation for new contract abi ([#3390](https://github.com/waku-org/nwaku/issues/3390)) ([ee4058b2d](https://github.com/waku-org/nwaku/commit/ee4058b2d)) +- Lighptush v3 for lite-protocol-tester ([#3455](https://github.com/waku-org/nwaku/issues/3455)) ([3f3c59488](https://github.com/waku-org/nwaku/commit/3f3c59488)) +- Retrieve metrics from libwaku ([#3452](https://github.com/waku-org/nwaku/issues/3452)) ([f016ede60](https://github.com/waku-org/nwaku/commit/f016ede60)) +- Dynamic logging via REST API ([#3451](https://github.com/waku-org/nwaku/issues/3451)) ([9fe8ef8d2](https://github.com/waku-org/nwaku/commit/9fe8ef8d2)) +- Add waku_disconnect_all_peers to libwaku ([#3438](https://github.com/waku-org/nwaku/issues/3438)) ([7f51d103b](https://github.com/waku-org/nwaku/commit/7f51d103b)) +- Extend node /health REST endpoint with all protocol's state ([#3419](https://github.com/waku-org/nwaku/issues/3419)) ([1632496a2](https://github.com/waku-org/nwaku/commit/1632496a2)) +- Deprecate sync / local merkle tree ([#3312](https://github.com/waku-org/nwaku/issues/3312)) ([50fe7d727](https://github.com/waku-org/nwaku/commit/50fe7d727)) +- Refactor waku sync DOS protection ([#3391](https://github.com/waku-org/nwaku/issues/3391)) ([a81f9498c](https://github.com/waku-org/nwaku/commit/a81f9498c)) +- Waku Sync dashboard new panel & update ([#3379](https://github.com/waku-org/nwaku/issues/3379)) ([5ed6aae10](https://github.com/waku-org/nwaku/commit/5ed6aae10)) +- Enhance Waku Sync logs and metrics ([#3370](https://github.com/waku-org/nwaku/issues/3370)) ([f6c680a46](https://github.com/waku-org/nwaku/commit/f6c680a46)) +- Add waku_get_connected_peers_info to libwaku ([#3356](https://github.com/waku-org/nwaku/issues/3356)) ([0eb9c6200](https://github.com/waku-org/nwaku/commit/0eb9c6200)) +- Add waku_relay_get_peers_in_mesh to libwaku ([#3352](https://github.com/waku-org/nwaku/issues/3352)) ([ef9074443](https://github.com/waku-org/nwaku/commit/ef9074443)) +- Add waku_relay_get_connected_peers to libwaku ([#3353](https://github.com/waku-org/nwaku/issues/3353)) ([7250d7392](https://github.com/waku-org/nwaku/commit/7250d7392)) +- Introduce `preset` option ([#3346](https://github.com/waku-org/nwaku/issues/3346)) ([0eaf90465](https://github.com/waku-org/nwaku/commit/0eaf90465)) +- Add store sync dashboard panel ([#3307](https://github.com/waku-org/nwaku/issues/3307)) ([ef8ee233f](https://github.com/waku-org/nwaku/commit/ef8ee233f)) + +### Bug Fixes + +- Fix typo from DIRVER to DRIVER ([#3442](https://github.com/waku-org/nwaku/issues/3442)) ([b9a4d7702](https://github.com/waku-org/nwaku/commit/b9a4d7702)) +- Fix discv5 protocol id in libwaku ([#3447](https://github.com/waku-org/nwaku/issues/3447)) ([f7be4c2f0](https://github.com/waku-org/nwaku/commit/f7be4c2f0)) +- Fix dnsresolver ([#3440](https://github.com/waku-org/nwaku/issues/3440)) ([e42e28cc6](https://github.com/waku-org/nwaku/commit/e42e28cc6)) +- Misc sync fixes, added debug logging ([#3411](https://github.com/waku-org/nwaku/issues/3411)) ([b9efa874d](https://github.com/waku-org/nwaku/commit/b9efa874d)) +- Relay unsubscribe ([#3422](https://github.com/waku-org/nwaku/issues/3422)) ([9fc631e10](https://github.com/waku-org/nwaku/commit/9fc631e10)) +- Fix build_rln.sh update version to download v0.7.0 ([#3425](https://github.com/waku-org/nwaku/issues/3425)) ([2678303bf](https://github.com/waku-org/nwaku/commit/2678303bf)) +- Timestamp based validation ([#3406](https://github.com/waku-org/nwaku/issues/3406)) ([1512bdaf0](https://github.com/waku-org/nwaku/commit/1512bdaf0)) +- Enable WebSocket connection also in case only websocket-secure-support enabled ([#3417](https://github.com/waku-org/nwaku/issues/3417)) ([698fe6525](https://github.com/waku-org/nwaku/commit/698fe6525)) +- Fix addPeer could unintentionally override metadata of previously stored peer with defaults and empty ([#3403](https://github.com/waku-org/nwaku/issues/3403)) ([5cccaaac6](https://github.com/waku-org/nwaku/commit/5cccaaac6)) +- Fix bad HttpCode conversion, add missing lightpush v3 rest api tests ([#3389](https://github.com/waku-org/nwaku/issues/3389)) ([7ff055e42](https://github.com/waku-org/nwaku/commit/7ff055e42)) +- Adjust mistaken comments and broken link ([#3381](https://github.com/waku-org/nwaku/issues/3381)) ([237f7abbb](https://github.com/waku-org/nwaku/commit/237f7abbb)) +- Avoid libwaku's redundant allocs ([#3380](https://github.com/waku-org/nwaku/issues/3380)) ([ac454a30b](https://github.com/waku-org/nwaku/commit/ac454a30b)) +- Avoid performing nil check for userData ([#3365](https://github.com/waku-org/nwaku/issues/3365)) ([b8707b6a5](https://github.com/waku-org/nwaku/commit/b8707b6a5)) +- Fix waku sync timing ([#3337](https://github.com/waku-org/nwaku/issues/3337)) ([b01b1837d](https://github.com/waku-org/nwaku/commit/b01b1837d)) +- Fix filter out ephemeral msg from waku sync ([#3332](https://github.com/waku-org/nwaku/issues/3332)) ([4b963d8f5](https://github.com/waku-org/nwaku/commit/4b963d8f5)) +- Apply latest nph formating ([#3334](https://github.com/waku-org/nwaku/issues/3334)) ([77105a6c2](https://github.com/waku-org/nwaku/commit/77105a6c2)) +- waku sync 2.0 codecs ENR support ([#3326](https://github.com/waku-org/nwaku/issues/3326)) ([bf735e777](https://github.com/waku-org/nwaku/commit/bf735e777)) +- waku sync mounting ([#3321](https://github.com/waku-org/nwaku/issues/3321)) ([380d2e338](https://github.com/waku-org/nwaku/commit/380d2e338)) +- Fix rest-relay-cache-capacity ([#3454](https://github.com/waku-org/nwaku/issues/3454)) ([fed4dc280](https://github.com/waku-org/nwaku/commit/fed4dc280)) + +### Changes + +- Lower waku sync log lvl ([#3461](https://github.com/waku-org/nwaku/issues/3461)) ([4277a5349](https://github.com/waku-org/nwaku/commit/4277a5349)) +- Refactor to unify online and health monitors ([#3456](https://github.com/waku-org/nwaku/issues/3456)) ([2e40f2971](https://github.com/waku-org/nwaku/commit/2e40f2971)) +- Refactor rm discv5-only ([#3453](https://github.com/waku-org/nwaku/issues/3453)) ([b998430d5](https://github.com/waku-org/nwaku/commit/b998430d5)) +- Add extra debug REST helper via getting peer statistics ([#3443](https://github.com/waku-org/nwaku/issues/3443)) ([f4ad7a332](https://github.com/waku-org/nwaku/commit/f4ad7a332)) +- Expose online state in libwaku ([#3433](https://github.com/waku-org/nwaku/issues/3433)) ([e7f5c8cb2](https://github.com/waku-org/nwaku/commit/e7f5c8cb2)) +- Add heaptrack support build for Nim v2.0.12 builds ([#3424](https://github.com/waku-org/nwaku/issues/3424)) ([91885fb9e](https://github.com/waku-org/nwaku/commit/91885fb9e)) +- Remove debug for js-waku ([#3423](https://github.com/waku-org/nwaku/issues/3423)) ([5628dc6ad](https://github.com/waku-org/nwaku/commit/5628dc6ad)) +- Bump dependencies for v0.36 ([#3410](https://github.com/waku-org/nwaku/issues/3410)) ([005815746](https://github.com/waku-org/nwaku/commit/005815746)) +- Enhance feedback on error CLI ([#3405](https://github.com/waku-org/nwaku/issues/3405)) ([3464d81a6](https://github.com/waku-org/nwaku/commit/3464d81a6)) +- Allow multiple rln eth clients ([#3402](https://github.com/waku-org/nwaku/issues/3402)) ([861710bc7](https://github.com/waku-org/nwaku/commit/861710bc7)) +- Separate internal and CLI configurations ([#3357](https://github.com/waku-org/nwaku/issues/3357)) ([dd8d66431](https://github.com/waku-org/nwaku/commit/dd8d66431)) +- Avoid double relay subscription ([#3396](https://github.com/waku-org/nwaku/issues/3396)) ([7d5eb9374](https://github.com/waku-org/nwaku/commit/7d5eb9374) [#3429](https://github.com/waku-org/nwaku/issues/3429)) ([ee5932ebc](https://github.com/waku-org/nwaku/commit/ee5932ebc)) +- Improve disconnection handling ([#3385](https://github.com/waku-org/nwaku/issues/3385)) ([1ec9b8d96](https://github.com/waku-org/nwaku/commit/1ec9b8d96)) +- Return all peers from REST admin ([#3395](https://github.com/waku-org/nwaku/issues/3395)) ([f6fdd960f](https://github.com/waku-org/nwaku/commit/f6fdd960f)) +- Simplify rln_relay code a little ([#3392](https://github.com/waku-org/nwaku/issues/3392)) ([7a6c00bd0](https://github.com/waku-org/nwaku/commit/7a6c00bd0)) +- Extended /admin/v1 RESP API with different option to look at current connected/relay/mesh state of the node ([#3382](https://github.com/waku-org/nwaku/issues/3382)) ([3db00f39e](https://github.com/waku-org/nwaku/commit/3db00f39e)) +- Timestamp set to now in publish if not provided ([#3373](https://github.com/waku-org/nwaku/issues/3373)) ([f7b424451](https://github.com/waku-org/nwaku/commit/f7b424451)) +- Update lite-protocol-tester for handling shard argument ([#3371](https://github.com/waku-org/nwaku/issues/3371)) ([5ab69edd7](https://github.com/waku-org/nwaku/commit/5ab69edd7)) +- Fix unused and deprecated imports ([#3368](https://github.com/waku-org/nwaku/issues/3368)) ([6ebb49a14](https://github.com/waku-org/nwaku/commit/6ebb49a14)) +- Expect camelCase JSON for libwaku store queries ([#3366](https://github.com/waku-org/nwaku/issues/3366)) ([ccb4ed51d](https://github.com/waku-org/nwaku/commit/ccb4ed51d)) +- Maintenance to c and c++ simple examples ([#3367](https://github.com/waku-org/nwaku/issues/3367)) ([25d30d44d](https://github.com/waku-org/nwaku/commit/25d30d44d)) +- Skip two flaky tests ([#3364](https://github.com/waku-org/nwaku/issues/3364)) ([b672617b2](https://github.com/waku-org/nwaku/commit/b672617b2)) +- Retrieve protocols in new added peer from discv5 ([#3354](https://github.com/waku-org/nwaku/issues/3354)) ([df58643ea](https://github.com/waku-org/nwaku/commit/df58643ea)) +- Better keystore management ([#3358](https://github.com/waku-org/nwaku/issues/3358)) ([a914fdccc](https://github.com/waku-org/nwaku/commit/a914fdccc)) +- Remove pubsub topics arguments ([#3350](https://github.com/waku-org/nwaku/issues/3350)) ([9778b45c6](https://github.com/waku-org/nwaku/commit/9778b45c6)) +- New performance measurement metrics for non-relay protocols ([#3299](https://github.com/waku-org/nwaku/issues/3299)) ([68c50a09a](https://github.com/waku-org/nwaku/commit/68c50a09a)) +- Start triggering CI for windows build ([#3316](https://github.com/waku-org/nwaku/issues/3316)) ([55ac6ba9f](https://github.com/waku-org/nwaku/commit/55ac6ba9f)) +- Less logs for rendezvous ([#3319](https://github.com/waku-org/nwaku/issues/3319)) ([6df05bae2](https://github.com/waku-org/nwaku/commit/6df05bae2)) +- Add test reporting doc to benchmarks dir ([#3238](https://github.com/waku-org/nwaku/issues/3238)) ([94554a6e0](https://github.com/waku-org/nwaku/commit/94554a6e0)) +- Improve epoch monitoring ([#3197](https://github.com/waku-org/nwaku/issues/3197)) ([b0c025f81](https://github.com/waku-org/nwaku/commit/b0c025f81)) + +### This release supports the following [libp2p protocols](https://docs.libp2p.io/concepts/protocols/): +| Protocol | Spec status | Protocol id | +| ---: | :---: | :--- | +| [`11/WAKU2-RELAY`](https://github.com/vacp2p/rfc-index/blob/main/waku/standards/core/11/relay.md) | `stable` | `/vac/waku/relay/2.0.0` | +| [`12/WAKU2-FILTER`](https://github.com/vacp2p/rfc-index/blob/main/waku/standards/core/12/filter.md) | `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`](https://github.com/vacp2p/rfc-index/blob/main/waku/standards/core/13/store.md) | `draft` | `/vac/waku/store/2.0.0-beta4` | +| [`19/WAKU2-LIGHTPUSH`](https://github.com/vacp2p/rfc-index/blob/main/waku/standards/core/19/lightpush.md) | `draft` | `/vac/waku/lightpush/2.0.0-beta1` | +| [`WAKU2-LIGHTPUSH v3`](https://github.com/waku-org/specs/blob/master/standards/core/lightpush.md) | `draft` | `/vac/waku/lightpush/3.0.0` | +| [`66/WAKU2-METADATA`](https://github.com/waku-org/specs/blob/master/standards/core/metadata.md) | `raw` | `/vac/waku/metadata/1.0.0` | +| [`WAKU-SYNC`](https://github.com/waku-org/specs/blob/feat--waku-sync/standards/core/sync.md) | `draft` | `/vac/waku/sync/1.0.0` | + + ## v0.35.1 (2025-03-30) ### Bug fixes From e57243ce7c789e897487d84b7717c398532bfded Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Fri, 20 Jun 2025 14:45:31 +0200 Subject: [PATCH 2/9] Simplify PR template --- .github/pull_request_template.md | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index cdbb4d120..b5aba5cbd 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,26 +1,8 @@ -# Description - +## Description -# Changes +## Changes - - -- [ ] ... -- [ ] ... - - - - - \ No newline at end of file From 60aa5cb48ce4e55afebabc9c97749c4410ac760d Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Fri, 20 Jun 2025 14:45:53 +0200 Subject: [PATCH 3/9] Remove PR lint title --- .github/workflows/pr-lint.yml | 42 ----------------------------------- 1 file changed, 42 deletions(-) diff --git a/.github/workflows/pr-lint.yml b/.github/workflows/pr-lint.yml index 45f9dcaad..d3ac05f46 100644 --- a/.github/workflows/pr-lint.yml +++ b/.github/workflows/pr-lint.yml @@ -8,47 +8,6 @@ on: - synchronize jobs: - main: - name: Validate PR title - runs-on: ubuntu-22.04 - permissions: - pull-requests: write - steps: - - uses: amannn/action-semantic-pull-request@v5 - id: lint_pr_title - with: - types: | - chore - docs - feat - fix - refactor - style - test - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: marocchino/sticky-pull-request-comment@v2 - # When the previous steps fails, the workflow would stop. By adding this - # condition you can continue the execution with the populated error message. - if: always() && (steps.lint_pr_title.outputs.error_message != null) - with: - header: pr-title-lint-error - message: | - Hey there and thank you for opening this pull request! 👋🏼 - - We require pull request titles to follow the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/) and it looks like your proposed title needs to be adjusted. - - Details: - - > ${{ steps.lint_pr_title.outputs.error_message }} - - # Delete a previous comment when the issue has been resolved - - if: ${{ steps.lint_pr_title.outputs.error_message == null }} - uses: marocchino/sticky-pull-request-comment@v2 - with: - header: pr-title-lint-error - delete: true - labels: runs-on: ubuntu-22.04 @@ -81,7 +40,6 @@ jobs: Please also make sure the label `release-notes` is added to make sure any changes to the user interface are properly announced in changelog and release notes. comment_tag: configs - - name: Comment DB schema change uses: thollander/actions-comment-pull-request@v2 if: ${{steps.filter.outputs.db_schema == 'true'}} From dbecd721f9f86e8d05f1506126033fcfa206c084 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Fri, 20 Jun 2025 15:47:19 +0200 Subject: [PATCH 4/9] CHANGELONG add notes section --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 31b47451b..33fe663dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ ## v0.36.0 (2025-06-20) +### Notes + +- The `rln-relay-eth-client-address` parameter, from now on, should be passed as an array of RPC addresses. +- new `preset` parameter. `preset=twn` is the RLN-protected Waku Network (cluster 1). Overrides other values. +- Removed `dns-addrs` parameter as it was duplicated and unused. +- Removed `rln-relay-id-key`, `rln-relay-id-commitment-key`, `rln-relay-bandwidth-threshold` parameters. +- Effectively removed `pubsub-topic`, which was deprecated in `v0.33.0`. +- Removed `store-sync-max-payload-size` parameter. +- Removed `dns-discovery-name-server` and `discv5-only` parameters. + ### Features - Update implementation for new contract abi ([#3390](https://github.com/waku-org/nwaku/issues/3390)) ([ee4058b2d](https://github.com/waku-org/nwaku/commit/ee4058b2d)) From b81a593dd2e3a82e3dac7314f5e90fcec1dfe027 Mon Sep 17 00:00:00 2001 From: Ivan FB <128452529+Ivansete-status@users.noreply.github.com> Date: Fri, 27 Jun 2025 12:47:16 +0200 Subject: [PATCH 5/9] fix: release v0.36 (#3475) * group manager better logs debug chainId * avoid printing eth client url which contains api key --- waku/factory/waku_conf.nim | 3 +-- .../waku_rln_relay/group_manager/on_chain/group_manager.nim | 6 ++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/waku/factory/waku_conf.nim b/waku/factory/waku_conf.nim index caf925ff2..7b7ef2b80 100644 --- a/waku/factory/waku_conf.nim +++ b/waku/factory/waku_conf.nim @@ -158,8 +158,7 @@ proc logConf*(conf: WakuConf) = contract = rlnRelayConf.ethContractAddress.string, maxMessageSize = conf.maxMessageSizeBytes, rlnEpochSizeSec = rlnRelayConf.epochSizeSec, - rlnRelayUserMessageLimit = rlnRelayConf.userMessageLimit, - ethClientUrls = rlnRelayConf.ethClientUrls + rlnRelayUserMessageLimit = rlnRelayConf.userMessageLimit proc validateNodeKey(wakuConf: WakuConf): Result[void, string] = wakuConf.nodeKey.getPublicKey().isOkOr: diff --git a/waku/waku_rln_relay/group_manager/on_chain/group_manager.nim b/waku/waku_rln_relay/group_manager/on_chain/group_manager.nim index 4f2fb5228..70a10e45e 100644 --- a/waku/waku_rln_relay/group_manager/on_chain/group_manager.nim +++ b/waku/waku_rln_relay/group_manager/on_chain/group_manager.nim @@ -10,7 +10,7 @@ import nimcrypto/keccak as keccak, stint, json, - std/[strutils, tables, algorithm], + std/[strutils, tables, algorithm, strformat], stew/[byteutils, arrayops], sequtils @@ -669,7 +669,9 @@ method init*(g: OnchainGroupManager): Future[GroupManagerResult[void]] {.async.} elif metadataGetOptRes.get().isSome(): let metadata = metadataGetOptRes.get().get() if metadata.chainId != g.chainId: - return err("persisted data: chain id mismatch") + return err( + fmt"chain id mismatch. persisted={metadata.chainId}, smart_contract_chainId={g.chainId}" + ) if metadata.contractAddress != g.ethContractAddress.toLower(): return err("persisted data: contract address mismatch") From 75375111acfc575ec57c10671780641d65fee241 Mon Sep 17 00:00:00 2001 From: Ivan FB <128452529+Ivansete-status@users.noreply.github.com> Date: Wed, 2 Jul 2025 16:37:02 +0200 Subject: [PATCH 6/9] fix: Completely clean dns-discovery-name-server references (#3477) --- apps/chat2/chat2.nim | 2 +- apps/chat2/config_chat2.nim | 7 ++++--- apps/networkmonitor/networkmonitor.nim | 4 ++-- docs/operators/how-to/configure-dns-disc.md | 3 --- docs/tutorial/dns-disc.md | 6 ++---- waku/README.md | 4 +--- waku/discovery/waku_dnsdisc.nim | 4 ++-- 7 files changed, 12 insertions(+), 18 deletions(-) diff --git a/apps/chat2/chat2.nim b/apps/chat2/chat2.nim index 1ba599d78..7a66a8b90 100644 --- a/apps/chat2/chat2.nim +++ b/apps/chat2/chat2.nim @@ -428,7 +428,7 @@ proc processInput(rfd: AsyncFD, rng: ref HmacDrbgContext) {.async.} = if dnsDiscoveryUrl.isSome: var nameServers: seq[TransportAddress] - for ip in conf.dnsDiscoveryNameServers: + for ip in conf.dnsAddrsNameServers: nameServers.add(initTAddress(ip, Port(53))) # Assume all servers use port 53 let dnsResolver = DnsResolver.new(nameServers) diff --git a/apps/chat2/config_chat2.nim b/apps/chat2/config_chat2.nim index 8cc525208..bd7a4499f 100644 --- a/apps/chat2/config_chat2.nim +++ b/apps/chat2/config_chat2.nim @@ -170,10 +170,11 @@ type name: "dns-discovery-url" .}: string - dnsDiscoveryNameServers* {. - desc: "DNS name server IPs to query. Argument may be repeated.", + dnsAddrsNameServers* {. + desc: + "DNS name server IPs to query for DNS multiaddrs resolution. Argument may be repeated.", defaultValue: @[parseIpAddress("1.1.1.1"), parseIpAddress("1.0.0.1")], - name: "dns-discovery-name-server" + name: "dns-addrs-name-server" .}: seq[IpAddress] ## Chat2 configuration diff --git a/apps/networkmonitor/networkmonitor.nim b/apps/networkmonitor/networkmonitor.nim index f8cde5281..c5c4ea50b 100644 --- a/apps/networkmonitor/networkmonitor.nim +++ b/apps/networkmonitor/networkmonitor.nim @@ -354,7 +354,7 @@ proc crawlNetwork( await sleepAsync(crawlInterval.millis - elapsed.millis) proc retrieveDynamicBootstrapNodes( - dnsDiscoveryUrl: string, dnsDiscoveryNameServers: seq[IpAddress] + dnsDiscoveryUrl: string, dnsAddrsNameServers: seq[IpAddress] ): Future[Result[seq[RemotePeerInfo], string]] {.async.} = ## Retrieve dynamic bootstrap nodes (DNS discovery) @@ -363,7 +363,7 @@ proc retrieveDynamicBootstrapNodes( debug "Discovering nodes using Waku DNS discovery", url = dnsDiscoveryUrl var nameServers: seq[TransportAddress] - for ip in dnsDiscoveryNameServers: + for ip in dnsAddrsNameServers: nameServers.add(initTAddress(ip, Port(53))) # Assume all servers use port 53 let dnsResolver = DnsResolver.new(nameServers) diff --git a/docs/operators/how-to/configure-dns-disc.md b/docs/operators/how-to/configure-dns-disc.md index fc0ee5cb1..f003c61a4 100644 --- a/docs/operators/how-to/configure-dns-disc.md +++ b/docs/operators/how-to/configure-dns-disc.md @@ -9,7 +9,6 @@ The following command line options are available: ``` --dns-discovery Enable DNS Discovery --dns-discovery-url URL for DNS node list in format 'enrtree://@' ---dns-discovery-name-server DNS name server IPs to query. Argument may be repeated. ``` - `--dns-discovery` is used to enable DNS discovery on the node. @@ -17,8 +16,6 @@ Waku DNS discovery is disabled by default. - `--dns-discovery-url` is mandatory if DNS discovery is enabled. It contains the URL for the node list. The URL must be in the format `enrtree://@` where `` is the fully qualified domain name and `` is the base32 encoding of the compressed 32-byte public key that signed the list at that location. -- `--dns-discovery-name-server` is optional and contains the IP(s) of the DNS name servers to query. -If left unspecified, the Cloudflare servers `1.1.1.1` and `1.0.0.1` will be used by default. A node will attempt connection to all discovered nodes. diff --git a/docs/tutorial/dns-disc.md b/docs/tutorial/dns-disc.md index b30716b65..c9cc24e15 100644 --- a/docs/tutorial/dns-disc.md +++ b/docs/tutorial/dns-disc.md @@ -33,12 +33,10 @@ The following command line options are available for both `wakunode2` or `chat2` ``` --dns-discovery Enable DNS Discovery --dns-discovery-url URL for DNS node list in format 'enrtree://@' ---dns-discovery-name-server DNS name server IPs to query. Argument may be repeated. ``` - `--dns-discovery` is used to enable DNS discovery on the node. Waku DNS discovery is disabled by default. - `--dns-discovery-url` is mandatory if DNS discovery is enabled. It contains the URL for the node list. The URL must be in the format `enrtree://@` where `` is the fully qualified domain name and `` is the base32 encoding of the compressed 32-byte public key that signed the list at that location. See [EIP-1459](https://eips.ethereum.org/EIPS/eip-1459#specification) or the example below to illustrate. -- `--dns-discovery-name-server` is optional and contains the IP(s) of the DNS name servers to query. If left unspecified, the Cloudflare servers `1.1.1.1` and `1.0.0.1` will be used by default. A node will attempt connection to all discovered nodes. @@ -63,9 +61,9 @@ Similarly, for `chat2`: The node will discover and attempt connection to all `waku.test` nodes during setup procedures. -To use specific DNS name servers, one or more `--dns-discovery-name-server` arguments can be added: +To use specific DNS name servers, one or more `--dns-addrs-name-server` arguments can be added: ``` ./build/wakunode2 --dns-discovery:true --dns-discovery-url:enrtree://AOGYWMBYOUIMOENHXCHILPKY3ZRFEULMFI4DOM442QSZ73TT2A7VI@test.waku.nodes.status.im --dns-dis -covery-name-server:8.8.8.8 --dns-discovery-name-server:8.8.4.4 +covery-name-server:8.8.8.8 --dns-addrs-name-server:8.8.4.4 ``` diff --git a/waku/README.md b/waku/README.md index 5b9462775..ed3887a09 100644 --- a/waku/README.md +++ b/waku/README.md @@ -179,7 +179,7 @@ The following command line options are available: ``` --dns-discovery Enable DNS Discovery --dns-discovery-url URL for DNS node list in format 'enrtree://@' ---dns-discovery-name-server DNS name server IPs to query. Argument may be repeated. +--dns-addrs-name-server DNS name server IPs to query. Argument may be repeated. ``` - `--dns-discovery` is used to enable DNS discovery on the node. @@ -187,8 +187,6 @@ Waku DNS discovery is disabled by default. - `--dns-discovery-url` is mandatory if DNS discovery is enabled. It contains the URL for the node list. The URL must be in the format `enrtree://@` where `` is the fully qualified domain name and `` is the base32 encoding of the compressed 32-byte public key that signed the list at that location. -- `--dns-discovery-name-server` is optional and contains the IP(s) of the DNS name servers to query. -If left unspecified, the Cloudflare servers `1.1.1.1` and `1.0.0.1` will be used by default. A node will attempt connection to all discovered nodes. diff --git a/waku/discovery/waku_dnsdisc.nim b/waku/discovery/waku_dnsdisc.nim index 10af99b4c..3115e6cd0 100644 --- a/waku/discovery/waku_dnsdisc.nim +++ b/waku/discovery/waku_dnsdisc.nim @@ -97,7 +97,7 @@ proc init*( return ok(wakuDnsDisc) proc retrieveDynamicBootstrapNodes*( - dnsDiscoveryUrl: string, dnsDiscoveryNameServers: seq[IpAddress] + dnsDiscoveryUrl: string, dnsAddrsNameServers: seq[IpAddress] ): Future[Result[seq[RemotePeerInfo], string]] {.async.} = ## Retrieve dynamic bootstrap nodes (DNS discovery) @@ -106,7 +106,7 @@ proc retrieveDynamicBootstrapNodes*( debug "Discovering nodes using Waku DNS discovery", url = dnsDiscoveryUrl var nameServers: seq[TransportAddress] - for ip in dnsDiscoveryNameServers: + for ip in dnsAddrsNameServers: nameServers.add(initTAddress(ip, Port(53))) # Assume all servers use port 53 let dnsResolver = DnsResolver.new(nameServers) From a7efee26200c004235482a8bf27ddfcbbbcaab05 Mon Sep 17 00:00:00 2001 From: Ivan FB <128452529+Ivansete-status@users.noreply.github.com> Date: Sun, 24 Aug 2025 22:58:06 +0200 Subject: [PATCH 7/9] fix: detach partition (#3535) * fix to make sure partitions get properly detached --- waku/waku_archive/driver/postgres_driver/postgres_driver.nim | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/waku/waku_archive/driver/postgres_driver/postgres_driver.nim b/waku/waku_archive/driver/postgres_driver/postgres_driver.nim index 6c49ee15a..1518f7a3b 100644 --- a/waku/waku_archive/driver/postgres_driver/postgres_driver.nim +++ b/waku/waku_archive/driver/postgres_driver/postgres_driver.nim @@ -1348,7 +1348,10 @@ proc removePartition( "ALTER TABLE messages DETACH PARTITION " & partitionName & " CONCURRENTLY;" debug "removeOldestPartition", query = detachPartitionQuery (await self.performWriteQuery(detachPartitionQuery)).isOkOr: - if ($error).contains("FINALIZE"): + debug "detected error when trying to detach partition", error + + if ($error).contains("FINALIZE") or + ($error).contains("already pending detach in part"): ## We assume the database is suggesting to use FINALIZE when detaching a partition let detachPartitionFinalizeQuery = "ALTER TABLE messages DETACH PARTITION " & partitionName & " FINALIZE;" From c6af8dd9ec5defe0ac7d79c03829393bb5b66354 Mon Sep 17 00:00:00 2001 From: Ivan FB <128452529+Ivansete-status@users.noreply.github.com> Date: Mon, 25 Aug 2025 13:24:03 +0200 Subject: [PATCH 8/9] Update CHANGELOG.md Co-authored-by: NagyZoltanPeter <113987313+NagyZoltanPeter@users.noreply.github.com> --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 33fe663dd..7b6c4d5f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ ## v0.36.0 (2025-06-20) +### Notes +- Extended REST API for better debugging + - Extended `/health` report + - Very detailed access to peers and actual status through [`/admin/v1/peers/...` endpoints](https://waku-org.github.io/waku-rest-api/#get-/admin/v1/peers/stats) + - Dynamic log level change with[ `/admin/v1/log-level`](https://waku-org.github.io/waku-rest-api/#post-/admin/v1/log-level/-logLevel-) ### Notes - The `rln-relay-eth-client-address` parameter, from now on, should be passed as an array of RPC addresses. From 48e9ece5446e02a6f66d34dc23e007770d49154e Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Mon, 25 Aug 2025 13:30:14 +0200 Subject: [PATCH 9/9] rm extra Notes title from CHANGELOG.md --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b6c4d5f7..dc073792c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,6 @@ - Extended `/health` report - Very detailed access to peers and actual status through [`/admin/v1/peers/...` endpoints](https://waku-org.github.io/waku-rest-api/#get-/admin/v1/peers/stats) - Dynamic log level change with[ `/admin/v1/log-level`](https://waku-org.github.io/waku-rest-api/#post-/admin/v1/log-level/-logLevel-) -### Notes - The `rln-relay-eth-client-address` parameter, from now on, should be passed as an array of RPC addresses. - new `preset` parameter. `preset=twn` is the RLN-protected Waku Network (cluster 1). Overrides other values.