This week's Tempo update introduces a breaking change for validator ID handling, a new fee recipient configuration in the consensus layer, and restores error handling for failed block canonicalization.
> impact
This week, we shipped a few key updates to the Tempo protocol. First, we introduced a breaking change to our command-line interface: the validator ID is no longer a flagged argument but is now a positional one. Second, in the consensus layer, block proposers will now source the fee recipient address directly from the v2 validator configuration, a significant shift in how rewards are managed. Finally, we merged a critical bug fix (commit e331e2f) that restores proper error handling when block canonicalization fails, enhancing network stability.
These changes were implemented to improve both developer experience and network robustness. The switch to a positional argument for the validator ID standardizes our CLI and simplifies scripting. Centralizing the fee recipient address in the v2 validator configuration provides a more secure and flexible way for validators to manage their earnings, decoupling it from the block proposal process itself. Restoring the canonicalization error handling was crucial for ensuring that the network correctly identifies and reports failures, which prevents silent errors and contributes to overall protocol stability.
This update has a direct impact on developers and node operators. All scripts and tooling that interact with the Tempo CLI must be updated to use the new positional argument for the validator ID to avoid failures. Validators must update their v2 configuration files to include their desired fee recipient address to continue earning transaction fees. The error handling fix is a background improvement, but developers building monitoring tools will now receive more explicit and reliable error signals from the consensus layer.
> Try this now
try this
# The validator ID argument has changed from a flag to a positional argument.
# Any scripts or commands using the old format must be updated.
# Old command (will now fail)
# The validator ID was previously passed with a flag, e.g., --validator-id.
# tempo --validator-id 0xabc...123 start
# New command (correct usage)
# The validator ID is now the first positional argument.
tempo 0xabc...123 start
# Additionally, to receive fees after the consensus update,
# ensure your v2 validator configuration file includes the `feeRecipient` field.
# Example validator_config_v2.json:
# {
# "validatorId": "0xabc...123",
# "feeRecipient": "0xdef...456",
# "...other settings"
# }