Upgrades/Updates
Goals
- Release upgrades to the RChain platform
Background and strategic fit
There needs to be a way that platform updates can be released in such a way that node operators know when the upgrade takes effect. In non-shared blockchain implementations, this is handled by block height. However, RChain aims to be sharded, which means that the block height mechanism probably won't work.
Assumptions
- Each shard will have its own block DAG
- Within each shard, the block DAG will add new blocks at different rates.
- Updates need to be released and installed on the node well in advance of the date when the update takes effect. Particularly for changes to the protocol, where a hard fork is likely.
- Not all validators will accept an update. If that is the case, the network will fork.
Requirements
# | Title | User Story | Importance | Notes |
---|---|---|---|---|
1 | Accept updates | As a validator, I want to control whether I accept an update or not | Must Have |
|
2 | Shard version number? | As a validator, I want to select a shard that is running a specific version of the RChain protocol | Must Have |
|
3 | Consensus on updates? | As a validator, I would like to apply the update as the same time as the other validators in my shard, so that our shard doesn't have a fork | Nice to Have |
|
User interaction and design
Questions
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
---|---|
When will a feature take effect? | |