Files
pezkuwi-sdk/docs/sdk/src/guides/dht_bootnodes.md
T

1.7 KiB

DHT Bootnodes (RFC-8)

The "DHT bootnodes" mechanism, as defined in RFC-0008: Store teyrchain bootnodes in relay chain DHT and implemented in Pezkuwi, enables teyrchain nodes to bootstrap without requiring hardcoded bootnode addresses in the chainspec.

How It Works

This mechanism, enabled by default, allows any teyrchain node to serve as a bootnode. In each epoch, 20 teyrchain nodes are selected as bootnodes based on the proximity of their relay chain peer IDs to the teyrchain key for that epoch. These selected nodes register themselves in the relay chain's Kademlia DHT as content providers. Other nodes can then discover and query them to obtain the multiaddresses of their teyrchain instances.

Information for Teyrchain Operators

The DHT bootnode mechanism simplifies teyrchain deployment by removing the need for dedicated bootnodes and hardcoded addresses in the chainspec. It also reduces the risk of single points of failure if predefined bootnodes become unreachable.

However, since this feature is relatively new, high-value teyrchains are still advised to include a set of dedicated bootnodes in the chainspec as a fallback mechanism. Also, the bootnodes specified via the --bootnodes command-line option are always used.

Command-Line Options

There are two independent CLI options controlling the mechanism:

  • --no-dht-bootnode prevents a node from acting as a DHT bootnode.
  • --no-dht-bootnode-discovery disables discovery of other teyrchain nodes via the DHT bootnode mechanism.