Summary
Nimbus VC v26.7.0 exits during startup when configured with two synced mainnet beacon nodes:
- Nimbus BN v26.7.0:
PAYLOAD_DUE_BPS=7500
- Teku BN v26.7.1:
PAYLOAD_DUE_BPS=5000
The log is:
WRN Received incompatible time configuration parameters node=http://<teku>:5052
slot_duration_ms=12000 expected_slot_duration_ms=12000
ERR Validator client initialization failed
err_msg="Could not obtain time configuration parameters"
Nimbus v26.7.0 uses consensus-specs v1.7.0-alpha.11, where this value is 7500. Teku v26.7.1 uses v1.7.0-alpha.12, where it was changed to 5000. This is a Gloas setting, and Gloas is not scheduled on mainnet.
Suspected cause
initTimeConfig() compares the TimeParams returned by all available beacon nodes. Any disagreement clears the result, so validator client initialization fails.
The runtime fallback check appears to compare slot duration but not these BPS fields, so startup and runtime handle the same configuration difference differently.
Expected behavior
A difference in an unscheduled fork setting should not prevent the validator client from using an otherwise compatible beacon node. Possible options might be:
- ignore settings belonging only to unscheduled forks; or
- reject only the disagreeing beacon node, using the same compatibility policy during startup and runtime.
It would also help if the warning logged the actual differing field and values instead of only the matching slot duration.
Reproduction
- Run a synced Nimbus BN v26.7.0 and Teku BN v26.7.1 on mainnet.
- Configure Nimbus VC v26.7.0 with both using
--beacon-node.
- Start the VC.
The VC exits with Could not obtain time configuration parameters. With a supervisor restart policy, this becomes a restart loop.
Note
AI assistance disclosure: I am a node operator, not a Nimbus developer. I used OpenAI Codex to help inspect the relevant source code and draft this report. I may not be able to answer implementation-level questions, and corrections are welcome. The reproduction and log excerpt are from my own nodes. I can provide the full keyless reproduction log, current /config/spec responses, or run suggested tests.
Summary
Nimbus VC v26.7.0 exits during startup when configured with two synced mainnet beacon nodes:
PAYLOAD_DUE_BPS=7500PAYLOAD_DUE_BPS=5000The log is:
Nimbus v26.7.0 uses consensus-specs v1.7.0-alpha.11, where this value is 7500. Teku v26.7.1 uses v1.7.0-alpha.12, where it was changed to 5000. This is a Gloas setting, and Gloas is not scheduled on mainnet.
Suspected cause
initTimeConfig()compares theTimeParamsreturned by all available beacon nodes. Any disagreement clears the result, so validator client initialization fails.The runtime fallback check appears to compare slot duration but not these BPS fields, so startup and runtime handle the same configuration difference differently.
Expected behavior
A difference in an unscheduled fork setting should not prevent the validator client from using an otherwise compatible beacon node. Possible options might be:
It would also help if the warning logged the actual differing field and values instead of only the matching slot duration.
Reproduction
--beacon-node.The VC exits with
Could not obtain time configuration parameters. With a supervisor restart policy, this becomes a restart loop.Note
AI assistance disclosure: I am a node operator, not a Nimbus developer. I used OpenAI Codex to help inspect the relevant source code and draft this report. I may not be able to answer implementation-level questions, and corrections are welcome. The reproduction and log excerpt are from my own nodes. I can provide the full keyless reproduction log, current
/config/specresponses, or run suggested tests.