Removed protocol_version from config #49
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What ❔
Removed protocol_version from config.
Instead, I've added a constant in bft crate indicating the version of the protocol implementation.
The payload format should be versioned separately. Payload format version should be included in the payload itself (set via PayloadSource::propose, verified via WriteBlockStore::verify_payload).
Why ❔
What is being versioned is actually the implementation of the consensus, so it doesn't make sense to configure it via config. If it was configurable the implementation wouldn't be able to reason about the protocol version and compatibility of the peers.