avail
avail copied to clipboard
feat(node): Add CLI configuration validation for early error detection
Description
Adds comprehensive CLI configuration validation that runs before node services start. This prevents invalid or dangerous configurations from causing runtime failures or consensus issues.
Key Changes
Added Cli::validate() method that performs critical checks:
- Prevents zero values for
grandpa_justification_periodandkate_max_cells_size - Enforces upper bounds on
kate_max_cells_size(≤10,000) to prevent resource exhaustion -
Blocks
--unsafe-da-sync+--validatorcombination (critical for consensus safety) - Warns when Kate RPC metrics are enabled without Kate RPC
Integrated validation into startup flow (command.rs):
- Validation runs immediately after CLI parsing, before any services initialize
- Provides clear, actionable error messages for misconfigurations
- Fails fast to prevent silent operational failures
Why This Matters
Previously, invalid configurations could:
- Cause validators to skip data availability checks (consensus violation)
- Lead to finalization failures from zero-value parameters
- Enable DoS attacks via oversized RPC requests
- Produce errors hours after startup, making debugging difficult