PIP-0003: Enable DNS-based discv4 peer discovery for Parallax #4
andrepatta
started this conversation in
Networking
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
PIP-0003: Enable DNS-based discv4 peer discovery for Parallax
Author: Andre Patta
Status: Draft
Type: Standards Track
Category: Networking
Created: 2025-11-26
Simple Summary
Enable DNS based discv4 peer discovery for Parallax mainnet by wiring
KnownDNSNetworkto Parallax specific DNS node lists, following the Ethereum DNS discovery specification (EIP-1459).Abstract
Parallax currently ships with DNS based discv4 peer discovery disabled. Nodes can only discover peers through static bootnodes, manual peer configuration or previously known peers stored on disk.
This proposal defines DNS node lists for Parallax networks and updates the
KnownDNSNetworkhelper to return a network appropriate DNS tree for the given genesis hash and protocol. This makes it possible for new nodes to join the network without hard coded bootnodes, improves resilience when bootnodes are down, and aligns Parallax with the more robust discovery model adopted by Ethereum.Motivation
Right now, Parallax depends on hard coded bootnodes and manual peer configuration for initial peer discovery. This has several drawbacks:
EIP-1459 introduced DNS based discovery for Ethereum, where a DNS tree encodes ENR (Ethereum Node Records) for a rotating set of well behaved peers. This mechanism:
Parallax should adopt the same approach so that:
Specification
Terminology
"nodes"or"snap".Networks
This proposal defines DNS node lists for the following Parallax networks:
Implementations must map the known genesis hash constants to their respective DNS domains.
Proposed canonical domains (examples, actual domains to be registered by Parallax maintainers):
nodes.mainnet.parallaxchain.orgThese domains will host EIP-1459 compatible DNS trees that encode ENR entries for a rotating set of stable, well connected Parallax nodes.
KnownDNSNetwork behavior
The
KnownDNSNetworkfunction must be updated as follows:The function signature is unchanged:
Example mapping (non normative, concrete domains may differ):
KnownDNSNetwork(MainnetGenesisHash, "nodes")returnsdnsPrefix + "nodes.mainnet.parallaxchain.org"dnsPrefixis the same constant used by go-ethereum's EIP-1459 implementation (for exampleenrtree://), and is defined elsewhere in the codebase.DNS tree requirements
For each configured network domain, the following requirements apply:
The DNS zone and signing infrastructure are out of scope for this EIP but must follow best practices for DNSSEC and key management where applicable.
Rationale
Why DNS based discovery
DNS based discovery has several advantages:
Why per network domains
Using separate domains per network keeps discovery data clean and avoids accidental cross network connections. The genesis hash is used to select the appropriate domain, which matches the existing
KnownDNSNetworkdesign.Optionality
Nodes that do not want to use DNS discovery can still rely on:
Enabling
KnownDNSNetworkonly adds an extra source of potential peers; it does not remove any existing mechanism.Backwards Compatibility
This change is fully backward compatible:
KnownDNSNetworkcontinues to return an empty string.The only behavioral change is that nodes which previously had no DNS tree available will now have an extra discovery source once the domains are live.
Security Considerations
DNS poisoning and control of discovery
Since the DNS tree defines which nodes are advertised to new participants, control of the signing key and DNS zone is security sensitive.
Mitigations:
If the DNS tree is compromised, an attacker could attempt to route new nodes through their own peers. However:
Availability
If the DNS service or tree is temporarily unavailable, node discovery falls back to existing mechanisms such as bootnodes and manual peers. Nodes must handle DNS failures gracefully, treating DNS discovery as an optional enhancement rather than a critical dependency.
Privacy
DNS based discovery leaks the fact that a client is attempting to join the Parallax network to any observers of its DNS traffic. This is already the case for bootnode hostnames and many other network interactions. Users requiring stronger privacy can:
Test Cases
Implementations should include at least the following tests:
Unknown network
genesisequal to an unknown hash,protocol = "nodes".KnownDNSNetworkreturns"".Mainnet mapping
MainnetGenesisHash,protocol = "nodes"."nodes.mainnet.".Unsupported protocol
MainnetGenesisHash,protocol = "foo".KnownDNSNetworkreturns"".End to end discovery (integration test)
Deployment Considerations
Deployment should proceed in the following phases:
DNS infrastructure setup
parallaxchain.org).Tree bootstrap
Client release
KnownDNSNetworkchanges.Monitoring and maintenance
Once deployed, new Parallax nodes will benefit from a more robust, flexible and decentralized discovery mechanism while remaining compatible with existing setups that rely on bootnodes and manual peering.
Beta Was this translation helpful? Give feedback.
All reactions