Skip to content

config: support hostnames for additional shred destinations - #11407

Open
esemeniuc wants to merge 1 commit into
firedancer-io:mainfrom
esemeniuc:eric/shred-dest
Open

config: support hostnames for additional shred destinations#11407
esemeniuc wants to merge 1 commit into
firedancer-io:mainfrom
esemeniuc:eric/shred-dest

Conversation

@esemeniuc

@esemeniuc esemeniuc commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

The additional leader and retransmit shred destinations currently accept only IPv4 endpoints. Allow DNS/NSS host:port values in Firedancer and Frankendancer, such as shred-receiver.example.com:5566

Resolve each configured hostname once at tile startup using the system resolver's first IPv4 result, then reuse the numeric endpoints across shred tiles and child processes. Unresolvable hosts fail startup; DNS changes require a restart. IPv6 remains unsupported. Also prevent long hostnames beginning with an IPv4-looking prefix from bypassing the system resolver

Resolve additional shred destinations through the system IPv4 resolver before starting tiles, and pass numeric endpoints through the topology. Keep admin commands independent of DNS and reuse resolved destinations in child processes.
Copilot AI balanced review requested due to automatic review settings September 10, 2026 19:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

Endpoint validation, startup ordering, cross-tile reuse, and relevant edge cases are implemented consistently and covered by tests.

Pull request overview

Adds hostname support for additional shred destinations while preserving numeric IPv4 behavior.

Changes:

  • Parses and resolves host:port endpoints once before tile startup.
  • Reuses resolved endpoints across shred tiles and child processes.
  • Expands configuration storage, documentation, and resolver tests.
File summaries
File Description
src/disco/topo/fd_dns_resolve.c Prevents long IPv4-prefixed hostnames from bypassing DNS.
src/app/shared/test_config_parse.c Tests validation, resolution, and endpoint reuse.
src/app/shared/fd_config.h Expands destination buffers for hostnames.
src/app/shared/fd_config.c Adds endpoint resolution and tile propagation.
src/app/shared/fd_config_private.h Declares the new internal helpers.
src/app/shared/fd_config_json.c Updates the configuration layout assertion.
src/app/shared/commands/run/run1.c Resolves destinations for standalone shred tiles.
src/app/shared/commands/run/run.c Resolves destinations before startup serialization.
src/app/firedancer/topology.c Removes numeric-only topology parsing.
src/app/firedancer/config/default.toml Documents hostname behavior for Firedancer.
src/app/firedancer-dev/commands/forktest/forktest.c Resolves destinations before forktest startup.
src/app/fdctl/topology.c Removes numeric-only Frankendancer parsing.
src/app/fdctl/config/default.toml Documents hostname behavior for Frankendancer.
Review details
  • Files reviewed: 13/13 changed files
  • Comments generated: 0
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@esemeniuc
esemeniuc marked this pull request as ready for review September 10, 2026 20:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants