All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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
        }
      }
    }
  ]
};




© 2015 - 2024 Weber Informatics LLC | Privacy Policy