Skip to content

Validate outpost client startup configuration#534

Draft
huangminghuang wants to merge 1 commit into
masterfrom
fix/outpost-client-startup-validation
Draft

Validate outpost client startup configuration#534
huangminghuang wants to merge 1 commit into
masterfrom
fix/outpost-client-startup-validation

Conversation

@huangminghuang

Copy link
Copy Markdown
Contributor

Summary

  • require every Ethereum and Solana outpost client signer reference to match an explicitly named --signature-provider
  • enforce the correct target chain and native key type for each outpost
  • validate explicit Ethereum chain IDs with eth_chainId during startup using checked uint32 parsing
  • validate every Solana endpoint with getGenesisHash, and compare an optional configured expected genesis hash
  • bound client construction, DNS, and startup RPC validation to five seconds
  • add deterministic loopback RPC fixtures, startup validation coverage, provenance tests, and updated operator documentation

Why

Outpost client configuration previously resolved signers through the general provider registry, so anonymous/default/programmatically created aliases could satisfy a signer reference. Ethereum chain IDs and Solana cluster identities also were not verified against the configured RPC endpoint during startup. A misconfigured node could therefore boot with the wrong signer or remote chain and fail later in relay operation.

This change fails startup with a configuration error before relay work begins. The legacy three-field Ethereum client format remains supported and does not perform an identity RPC when no chain ID is configured. Solana endpoints are always identity-checked as required.

Validation

  • release build of test_signature_provider_manager_plugin, test_outpost_ethereum_client_plugin, and test_outpost_solana_client_plugin
  • focused CTest suites: 3/3 passed
  • json_rpc_client_tests: 10/10 passed
  • 100 repeated Ethereum three-field no-RPC compatibility runs
  • git diff --check
  • independent C++/behavior/test review loops and final Claude review: clean

Notes

This branch is based directly on origin/master; it does not include or depend on PR #516.

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.

1 participant