consensus.models.protocol_version.proto Maven / Gradle / Ivy
The newest version!
syntax = "proto3";
import "scalapb/scalapb.proto";
import "scalapb/validate.proto";
package org.plasmalabs.consensus.models;
import "validate/validate.proto";
// Protocol Version Specification, see TIP-003
message ProtocolVersion {
// `firstDigit` Significant hard fork/version change/consensus rule set change
uint32 firstDigit = 1 [(validate.rules).uint32 = {gte:0}];
// `secondDigit` Feature additions, bugs fixing hard forks, minor hard forks, significant soft forks, interface should work the same
uint32 secondDigit = 2 [(validate.rules).uint32 = {gte:0}];
// `thirdDigit` Minor changes
uint32 thirdDigit = 3 [(validate.rules).uint32 = {gte:0}];
}
option (scalapb.options) = {
[scalapb.validate.file] {
validate_at_construction: true
}
field_transformations: [
{
when: {options: {[validate.rules] {message: {required: true}}}}
set: {
[scalapb.field] {
required: true
}
}
}
]
};