Remove minimum client version #361
Closed
karlb
started this conversation in
CIP Discussions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Simple Summary
Remove the
minimumClientVersion
from theBlockchainParameters
contract and all code using it.Abstract
The protocol contains a mechanism to store and update a minimum client version number on the blockchain. Celo clients should periodically read this version number and shut down if they are older than the specified version. This mechanism did not prove to be useful in practice, so this CIP suggests removing it.
Motivation
The client version check has been added to avoid problems when incompatible client versions interact with each other. The past has shown that changes which cause such incompatibilities always happen along with a hard fork. The hard fork ensures that incompatible versions won't be on the same fork, making additional version checks unnecessary.
Specification
Remove the following functions from the BlockchainParameters contract:
setMinimumClientVersion
getMinimumClientVersion
Celo clients will not call
getMinimumClientVersion
and continue operation regardless of their version number.Rationale
There is no specific need to remove this feature, but removal will simplify the code base and reduce the divergence from upstream geth, thereby making Celo clients more maintainable. Since there are no likely scenarios in which the feature would be helpful, the maintenance costs outweigh the benefits of having the feature.
Backwards Compatibility
Removal of
getMinimumClientVersion
in the contract breaks backwards compatibility. The client can easily be changed not to call this function, but removing the functions from the contract must wait until the next hard fork to avoid breaking existing clients.Implementation
Remove the following elements from the BlockchainParameters contract:
function setMinimumClientVersion
function getMinimumClientVersion
struct ClientVersion
ClientVersion private minimumClientVersion
major
,minor
,patch
parameters from constructorPR: celo-org/celo-blockchain#2026
Remove from
blockchain_parameters.go
:PR: celo-org/celo-monorepo#10204
Security Considerations
No known security considerations.
License
This work is licensed under the Apache License, Version 2.0.
Beta Was this translation helpful? Give feedback.
All reactions