Skip to content

RFC-0008: Store parachain bootnodes in the relay chain DHT#8072

Merged
dmitry-markin merged 70 commits intomasterfrom
dm-dht-bootnodes
Apr 30, 2025
Merged

RFC-0008: Store parachain bootnodes in the relay chain DHT#8072
dmitry-markin merged 70 commits intomasterfrom
dm-dht-bootnodes

Conversation

@dmitry-markin
Copy link
Copy Markdown
Contributor

@dmitry-markin dmitry-markin commented Mar 27, 2025

Implement RFC-0008 "DHT bootnodes". Close #1825.

With this mechanism, every parachain node is eligible to act as a bootnode. If its peer ID is close to the parachain key for the current relay chain epoch, it becomes discoverable by other parachain nodes via the relay chain DHT. This removes the need to specify bootnodes in the parachain chainspec, eliminating a single point of failure and simplifying things for parachain operators.

The mechanism is enabled by default. The embedded DHT bootnode can be disabled using the --no-dht-bootnode flag, and discovery of such nodes can be disabled with the --no-dht-bootnode-discovery flag.

Copy link
Copy Markdown
Contributor

@skunert skunert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please fix last two nits, otherwise nice work!

@dmitry-markin dmitry-markin enabled auto-merge April 30, 2025 12:04
@dmitry-markin dmitry-markin added this pull request to the merge queue Apr 30, 2025
Merged via the queue into master with commit 3ff1b1d Apr 30, 2025
242 of 249 checks passed
@dmitry-markin dmitry-markin deleted the dm-dht-bootnodes branch April 30, 2025 13:52
@github-project-automation github-project-automation bot moved this to Blocked ⛔️ in Networking Apr 30, 2025
castillax pushed a commit that referenced this pull request May 12, 2025
Implement [RFC-0008 "DHT
bootnodes"](https://polkadot-fellows.github.io/RFCs/approved/0008-parachain-bootnodes-dht.html).
Close #1825.

With this mechanism, every parachain node is eligible to act as a
bootnode. If its peer ID is close to the parachain key for the current
relay chain epoch, it becomes discoverable by other parachain nodes via
the relay chain DHT. This removes the need to specify bootnodes in the
parachain chainspec, eliminating a single point of failure and
simplifying things for parachain operators.

The mechanism is enabled by default. The embedded DHT bootnode can be
disabled using the `--no-dht-bootnode` flag, and discovery of such nodes
can be disabled with the `--no-dht-bootnode-discovery` flag.

---------

Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
snowmead added a commit to Moonsong-Labs/storage-hub that referenced this pull request Mar 16, 2026
Upgrade all polkadot-sdk git dependencies from branch `stable2503` to
`stable2506`. Upgrade all Frontier EVM dependencies from branch
`stable2503` to tag `frontier-stable2506`.

Fix all compilation errors and test failures caused by upstream breaking
API changes in polkadot-sdk stable2506 (134 PRs) and 9 patch releases.

Upstream breaking changes addressed:
- Remove local `AccountIdFor` alias, now provided by
  `frame_system::pallet_prelude` (paritytech/polkadot-sdk#7229)
- Add `RelayParentOffset = ConstU32<0>` to parachain system config
  (paritytech/polkadot-sdk#8299)
- Fix `Outcome` enum pattern matching: `Error` is now tuple variant
  wrapping `InstructionError` (paritytech/polkadot-sdk#8535)
- Remove `RuntimeEvent` from `pallet_evm::Config` and
  `pallet_ethereum::Config` (frontier stable2506)
- Add `RuntimeEvent` to `pallet_session::historical::Config`
- Remove `PassByInner` import, use `.0` for `H256` inner access
  (paritytech/polkadot-sdk#7375)
- Destructure 4 return values from `build_relay_chain_interface`
  (paritytech/polkadot-sdk#8072)
- Add `metrics` field to `BuildNetworkParams`
  (paritytech/polkadot-sdk#8332)
- Add `prometheus_registry` to `StartRelayChainTasksParams`
  (paritytech/polkadot-sdk#8332)

Release: https://github.com/paritytech/polkadot-sdk/releases/tag/polkadot-stable2506

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
snowmead added a commit to Moonsong-Labs/storage-hub that referenced this pull request Mar 17, 2026
- Remove unused `pallet_prelude::*` import in pallet-bucket-nfts
  (leftover from RuntimeEvent removal in paritytech/polkadot-sdk#7229)
- Prefix unused `relay_network_service` and `relay_req_receiver`
  variables with underscore (new return values from
  build_relay_chain_interface in paritytech/polkadot-sdk#8072)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T0-node This PR/Issue is related to the topic “node”. T9-cumulus This PR/Issue is related to cumulus.

Projects

Status: Blocked ⛔️

Development

Successfully merging this pull request may close these issues.

Implement RFC 8: store parachain bootnodes in the relay chain DHT

4 participants