content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: consensus.proto
  
  package com.alipay.antchain.bridge.plugins.bifchain;
  
  public final class Consensus {
    private Consensus() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistryLite registry) {
    }
  
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistry registry) {
      registerAllExtensions(
          (com.google.protobuf.ExtensionRegistryLite) registry);
    }
    /**
     * Protobuf enum {@code PbftMessageType}
     */
    public enum PbftMessageType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>PBFT_TYPE_PREPREPARE = 0;</code>
       */
      PBFT_TYPE_PREPREPARE(0),
      /**
       * <code>PBFT_TYPE_PREPARE = 1;</code>
       */
      PBFT_TYPE_PREPARE(1),
      /**
       * <code>PBFT_TYPE_COMMIT = 2;</code>
       */
      PBFT_TYPE_COMMIT(2),
      /**
       * <code>PBFT_TYPE_VIEWCHANGE = 3;</code>
       */
      PBFT_TYPE_VIEWCHANGE(3),
      /**
       * <code>PBFT_TYPE_NEWVIEW = 4;</code>
       */
      PBFT_TYPE_NEWVIEW(4),
      /**
       * <code>PBFT_TYPE_VIEWCHANG_WITH_RAWVALUE = 5;</code>
       */
      PBFT_TYPE_VIEWCHANG_WITH_RAWVALUE(5),
      /**
       * <code>PBFT_TYPE_PREBLOCK = 6;</code>
       */
      PBFT_TYPE_PREBLOCK(6),
      UNRECOGNIZED(-1),
      ;
  
      /**
       * <code>PBFT_TYPE_PREPREPARE = 0;</code>
       */
      public static final int PBFT_TYPE_PREPREPARE_VALUE = 0;
      /**
       * <code>PBFT_TYPE_PREPARE = 1;</code>
       */
      public static final int PBFT_TYPE_PREPARE_VALUE = 1;
      /**
       * <code>PBFT_TYPE_COMMIT = 2;</code>
       */
      public static final int PBFT_TYPE_COMMIT_VALUE = 2;
      /**
       * <code>PBFT_TYPE_VIEWCHANGE = 3;</code>
       */
      public static final int PBFT_TYPE_VIEWCHANGE_VALUE = 3;
      /**
       * <code>PBFT_TYPE_NEWVIEW = 4;</code>
       */
      public static final int PBFT_TYPE_NEWVIEW_VALUE = 4;
      /**
       * <code>PBFT_TYPE_VIEWCHANG_WITH_RAWVALUE = 5;</code>
       */
      public static final int PBFT_TYPE_VIEWCHANG_WITH_RAWVALUE_VALUE = 5;
      /**
       * <code>PBFT_TYPE_PREBLOCK = 6;</code>
       */
      public static final int PBFT_TYPE_PREBLOCK_VALUE = 6;
  
  
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }
  
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PbftMessageType valueOf(int value) {
        return forNumber(value);
      }
  
      public static PbftMessageType forNumber(int value) {
        switch (value) {
          case 0: return PBFT_TYPE_PREPREPARE;
          case 1: return PBFT_TYPE_PREPARE;
          case 2: return PBFT_TYPE_COMMIT;
          case 3: return PBFT_TYPE_VIEWCHANGE;
          case 4: return PBFT_TYPE_NEWVIEW;
          case 5: return PBFT_TYPE_VIEWCHANG_WITH_RAWVALUE;
          case 6: return PBFT_TYPE_PREBLOCK;
          default: return null;
        }
      }
  
      public static com.google.protobuf.Internal.EnumLiteMap<PbftMessageType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          PbftMessageType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PbftMessageType>() {
              public PbftMessageType findValueByNumber(int number) {
                return PbftMessageType.forNumber(number);
              }
            };
  
      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return Consensus.getDescriptor().getEnumTypes().get(0);
      }
  
      private static final PbftMessageType[] VALUES = values();
  
      public static PbftMessageType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }
  
      private final int value;
  
      private PbftMessageType(int value) {
        this.value = value;
      }
  
      // @@protoc_insertion_point(enum_scope:PbftMessageType)
    }
  
    /**
     * Protobuf enum {@code PbftValueType}
     */
    public enum PbftValueType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>PBFT_VALUE_TX = 0;</code>
       */
      PBFT_VALUE_TX(0),
      /**
       * <code>PBFT_VALUE_TXSET = 1;</code>
       */
      PBFT_VALUE_TXSET(1),
      UNRECOGNIZED(-1),
      ;
  
      /**
       * <code>PBFT_VALUE_TX = 0;</code>
       */
      public static final int PBFT_VALUE_TX_VALUE = 0;
      /**
       * <code>PBFT_VALUE_TXSET = 1;</code>
       */
      public static final int PBFT_VALUE_TXSET_VALUE = 1;
  
  
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }
  
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static PbftValueType valueOf(int value) {
        return forNumber(value);
      }
  
      public static PbftValueType forNumber(int value) {
        switch (value) {
          case 0: return PBFT_VALUE_TX;
          case 1: return PBFT_VALUE_TXSET;
          default: return null;
        }
      }
  
      public static com.google.protobuf.Internal.EnumLiteMap<PbftValueType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          PbftValueType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<PbftValueType>() {
              public PbftValueType findValueByNumber(int number) {
                return PbftValueType.forNumber(number);
              }
            };
  
      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return Consensus.getDescriptor().getEnumTypes().get(1);
      }
  
      private static final PbftValueType[] VALUES = values();
  
      public static PbftValueType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }
  
      private final int value;
  
      private PbftValueType(int value) {
        this.value = value;
      }
  
      // @@protoc_insertion_point(enum_scope:PbftValueType)
    }
  
    public interface PbftPrePrepareOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PbftPrePrepare)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>int64 view_number = 1;</code>
       */
      long getViewNumber();
  
      /**
       * <code>int64 sequence = 2;</code>
       */
      long getSequence();
  
      /**
       * <code>int64 replica_id = 3;</code>
       */
      long getReplicaId();
  
      /**
       * <code>bytes value = 4;</code>
       */
      com.google.protobuf.ByteString getValue();
  
      /**
       * <code>bytes value_digest = 5;</code>
       */
      com.google.protobuf.ByteString getValueDigest();
    }
    /**
     * Protobuf type {@code PbftPrePrepare}
     */
    public  static final class PbftPrePrepare extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PbftPrePrepare)
        PbftPrePrepareOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PbftPrePrepare.newBuilder() to construct.
      private PbftPrePrepare(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PbftPrePrepare() {
        value_ = com.google.protobuf.ByteString.EMPTY;
        valueDigest_ = com.google.protobuf.ByteString.EMPTY;
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PbftPrePrepare();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private PbftPrePrepare(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
  
                viewNumber_ = input.readInt64();
                break;
              }
              case 16: {
  
                sequence_ = input.readInt64();
                break;
              }
              case 24: {
  
                replicaId_ = input.readInt64();
                break;
              }
              case 34: {
  
                value_ = input.readBytes();
                break;
              }
              case 42: {
  
                valueDigest_ = input.readBytes();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_PbftPrePrepare_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_PbftPrePrepare_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.PbftPrePrepare.class, Consensus.PbftPrePrepare.Builder.class);
      }
  
      public static final int VIEW_NUMBER_FIELD_NUMBER = 1;
      private long viewNumber_;
      /**
       * <code>int64 view_number = 1;</code>
       */
      public long getViewNumber() {
        return viewNumber_;
      }
  
      public static final int SEQUENCE_FIELD_NUMBER = 2;
      private long sequence_;
      /**
       * <code>int64 sequence = 2;</code>
       */
      public long getSequence() {
        return sequence_;
      }
  
      public static final int REPLICA_ID_FIELD_NUMBER = 3;
      private long replicaId_;
      /**
       * <code>int64 replica_id = 3;</code>
       */
      public long getReplicaId() {
        return replicaId_;
      }
  
      public static final int VALUE_FIELD_NUMBER = 4;
      private com.google.protobuf.ByteString value_;
      /**
       * <code>bytes value = 4;</code>
       */
      public com.google.protobuf.ByteString getValue() {
        return value_;
      }
  
      public static final int VALUE_DIGEST_FIELD_NUMBER = 5;
      private com.google.protobuf.ByteString valueDigest_;
      /**
       * <code>bytes value_digest = 5;</code>
       */
      public com.google.protobuf.ByteString getValueDigest() {
        return valueDigest_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (viewNumber_ != 0L) {
          output.writeInt64(1, viewNumber_);
        }
        if (sequence_ != 0L) {
          output.writeInt64(2, sequence_);
        }
        if (replicaId_ != 0L) {
          output.writeInt64(3, replicaId_);
        }
        if (!value_.isEmpty()) {
          output.writeBytes(4, value_);
        }
        if (!valueDigest_.isEmpty()) {
          output.writeBytes(5, valueDigest_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (viewNumber_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, viewNumber_);
        }
        if (sequence_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, sequence_);
        }
        if (replicaId_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(3, replicaId_);
        }
        if (!value_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, value_);
        }
        if (!valueDigest_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(5, valueDigest_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.PbftPrePrepare)) {
          return super.equals(obj);
        }
        Consensus.PbftPrePrepare other = (Consensus.PbftPrePrepare) obj;
  
        if (getViewNumber()
            != other.getViewNumber()) return false;
        if (getSequence()
            != other.getSequence()) return false;
        if (getReplicaId()
            != other.getReplicaId()) return false;
        if (!getValue()
            .equals(other.getValue())) return false;
        if (!getValueDigest()
            .equals(other.getValueDigest())) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + VIEW_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getViewNumber());
        hash = (37 * hash) + SEQUENCE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSequence());
        hash = (37 * hash) + REPLICA_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getReplicaId());
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
        hash = (37 * hash) + VALUE_DIGEST_FIELD_NUMBER;
        hash = (53 * hash) + getValueDigest().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.PbftPrePrepare parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftPrePrepare parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftPrePrepare parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftPrePrepare parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftPrePrepare parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftPrePrepare parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftPrePrepare parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftPrePrepare parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftPrePrepare parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.PbftPrePrepare parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftPrePrepare parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftPrePrepare parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.PbftPrePrepare prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PbftPrePrepare}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PbftPrePrepare)
          Consensus.PbftPrePrepareOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_PbftPrePrepare_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_PbftPrePrepare_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.PbftPrePrepare.class, Consensus.PbftPrePrepare.Builder.class);
        }
  
        // Construct using Consensus.PbftPrePrepare.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          viewNumber_ = 0L;
  
          sequence_ = 0L;
  
          replicaId_ = 0L;
  
          value_ = com.google.protobuf.ByteString.EMPTY;
  
          valueDigest_ = com.google.protobuf.ByteString.EMPTY;
  
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_PbftPrePrepare_descriptor;
        }
  
        @java.lang.Override
        public Consensus.PbftPrePrepare getDefaultInstanceForType() {
          return Consensus.PbftPrePrepare.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.PbftPrePrepare build() {
          Consensus.PbftPrePrepare result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.PbftPrePrepare buildPartial() {
          Consensus.PbftPrePrepare result = new Consensus.PbftPrePrepare(this);
          result.viewNumber_ = viewNumber_;
          result.sequence_ = sequence_;
          result.replicaId_ = replicaId_;
          result.value_ = value_;
          result.valueDigest_ = valueDigest_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.PbftPrePrepare) {
            return mergeFrom((Consensus.PbftPrePrepare)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.PbftPrePrepare other) {
          if (other == Consensus.PbftPrePrepare.getDefaultInstance()) return this;
          if (other.getViewNumber() != 0L) {
            setViewNumber(other.getViewNumber());
          }
          if (other.getSequence() != 0L) {
            setSequence(other.getSequence());
          }
          if (other.getReplicaId() != 0L) {
            setReplicaId(other.getReplicaId());
          }
          if (other.getValue() != com.google.protobuf.ByteString.EMPTY) {
            setValue(other.getValue());
          }
          if (other.getValueDigest() != com.google.protobuf.ByteString.EMPTY) {
            setValueDigest(other.getValueDigest());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.PbftPrePrepare parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.PbftPrePrepare) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
  
        private long viewNumber_ ;
        /**
         * <code>int64 view_number = 1;</code>
         */
        public long getViewNumber() {
          return viewNumber_;
        }
        /**
         * <code>int64 view_number = 1;</code>
         */
        public Builder setViewNumber(long value) {
          
          viewNumber_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 view_number = 1;</code>
         */
        public Builder clearViewNumber() {
          
          viewNumber_ = 0L;
          onChanged();
          return this;
        }
  
        private long sequence_ ;
        /**
         * <code>int64 sequence = 2;</code>
         */
        public long getSequence() {
          return sequence_;
        }
        /**
         * <code>int64 sequence = 2;</code>
         */
        public Builder setSequence(long value) {
          
          sequence_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 sequence = 2;</code>
         */
        public Builder clearSequence() {
          
          sequence_ = 0L;
          onChanged();
          return this;
        }
  
        private long replicaId_ ;
        /**
         * <code>int64 replica_id = 3;</code>
         */
        public long getReplicaId() {
          return replicaId_;
        }
        /**
         * <code>int64 replica_id = 3;</code>
         */
        public Builder setReplicaId(long value) {
          
          replicaId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 replica_id = 3;</code>
         */
        public Builder clearReplicaId() {
          
          replicaId_ = 0L;
          onChanged();
          return this;
        }
  
        private com.google.protobuf.ByteString value_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>bytes value = 4;</code>
         */
        public com.google.protobuf.ByteString getValue() {
          return value_;
        }
        /**
         * <code>bytes value = 4;</code>
         */
        public Builder setValue(com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>bytes value = 4;</code>
         */
        public Builder clearValue() {
          
          value_ = getDefaultInstance().getValue();
          onChanged();
          return this;
        }
  
        private com.google.protobuf.ByteString valueDigest_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>bytes value_digest = 5;</code>
         */
        public com.google.protobuf.ByteString getValueDigest() {
          return valueDigest_;
        }
        /**
         * <code>bytes value_digest = 5;</code>
         */
        public Builder setValueDigest(com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          valueDigest_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>bytes value_digest = 5;</code>
         */
        public Builder clearValueDigest() {
          
          valueDigest_ = getDefaultInstance().getValueDigest();
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PbftPrePrepare)
      }
  
      // @@protoc_insertion_point(class_scope:PbftPrePrepare)
      private static final Consensus.PbftPrePrepare DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.PbftPrePrepare();
      }
  
      public static Consensus.PbftPrePrepare getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<PbftPrePrepare>
          PARSER = new com.google.protobuf.AbstractParser<PbftPrePrepare>() {
        @java.lang.Override
        public PbftPrePrepare parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PbftPrePrepare(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<PbftPrePrepare> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<PbftPrePrepare> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.PbftPrePrepare getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PbftPrepareOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PbftPrepare)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>int64 view_number = 1;</code>
       */
      long getViewNumber();
  
      /**
       * <code>int64 sequence = 2;</code>
       */
      long getSequence();
  
      /**
       * <code>int64 replica_id = 3;</code>
       */
      long getReplicaId();
  
      /**
       * <code>bytes value_digest = 4;</code>
       */
      com.google.protobuf.ByteString getValueDigest();
    }
    /**
     * Protobuf type {@code PbftPrepare}
     */
    public  static final class PbftPrepare extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PbftPrepare)
        PbftPrepareOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PbftPrepare.newBuilder() to construct.
      private PbftPrepare(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PbftPrepare() {
        valueDigest_ = com.google.protobuf.ByteString.EMPTY;
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PbftPrepare();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private PbftPrepare(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
  
                viewNumber_ = input.readInt64();
                break;
              }
              case 16: {
  
                sequence_ = input.readInt64();
                break;
              }
              case 24: {
  
                replicaId_ = input.readInt64();
                break;
              }
              case 34: {
  
                valueDigest_ = input.readBytes();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_PbftPrepare_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_PbftPrepare_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.PbftPrepare.class, Consensus.PbftPrepare.Builder.class);
      }
  
      public static final int VIEW_NUMBER_FIELD_NUMBER = 1;
      private long viewNumber_;
      /**
       * <code>int64 view_number = 1;</code>
       */
      public long getViewNumber() {
        return viewNumber_;
      }
  
      public static final int SEQUENCE_FIELD_NUMBER = 2;
      private long sequence_;
      /**
       * <code>int64 sequence = 2;</code>
       */
      public long getSequence() {
        return sequence_;
      }
  
      public static final int REPLICA_ID_FIELD_NUMBER = 3;
      private long replicaId_;
      /**
       * <code>int64 replica_id = 3;</code>
       */
      public long getReplicaId() {
        return replicaId_;
      }
  
      public static final int VALUE_DIGEST_FIELD_NUMBER = 4;
      private com.google.protobuf.ByteString valueDigest_;
      /**
       * <code>bytes value_digest = 4;</code>
       */
      public com.google.protobuf.ByteString getValueDigest() {
        return valueDigest_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (viewNumber_ != 0L) {
          output.writeInt64(1, viewNumber_);
        }
        if (sequence_ != 0L) {
          output.writeInt64(2, sequence_);
        }
        if (replicaId_ != 0L) {
          output.writeInt64(3, replicaId_);
        }
        if (!valueDigest_.isEmpty()) {
          output.writeBytes(4, valueDigest_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (viewNumber_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, viewNumber_);
        }
        if (sequence_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, sequence_);
        }
        if (replicaId_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(3, replicaId_);
        }
        if (!valueDigest_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, valueDigest_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.PbftPrepare)) {
          return super.equals(obj);
        }
        Consensus.PbftPrepare other = (Consensus.PbftPrepare) obj;
  
        if (getViewNumber()
            != other.getViewNumber()) return false;
        if (getSequence()
            != other.getSequence()) return false;
        if (getReplicaId()
            != other.getReplicaId()) return false;
        if (!getValueDigest()
            .equals(other.getValueDigest())) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + VIEW_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getViewNumber());
        hash = (37 * hash) + SEQUENCE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSequence());
        hash = (37 * hash) + REPLICA_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getReplicaId());
        hash = (37 * hash) + VALUE_DIGEST_FIELD_NUMBER;
        hash = (53 * hash) + getValueDigest().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.PbftPrepare parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftPrepare parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftPrepare parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftPrepare parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftPrepare parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftPrepare parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftPrepare parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftPrepare parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftPrepare parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.PbftPrepare parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftPrepare parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftPrepare parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.PbftPrepare prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PbftPrepare}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PbftPrepare)
          Consensus.PbftPrepareOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_PbftPrepare_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_PbftPrepare_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.PbftPrepare.class, Consensus.PbftPrepare.Builder.class);
        }
  
        // Construct using Consensus.PbftPrepare.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          viewNumber_ = 0L;
  
          sequence_ = 0L;
  
          replicaId_ = 0L;
  
          valueDigest_ = com.google.protobuf.ByteString.EMPTY;
  
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_PbftPrepare_descriptor;
        }
  
        @java.lang.Override
        public Consensus.PbftPrepare getDefaultInstanceForType() {
          return Consensus.PbftPrepare.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.PbftPrepare build() {
          Consensus.PbftPrepare result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.PbftPrepare buildPartial() {
          Consensus.PbftPrepare result = new Consensus.PbftPrepare(this);
          result.viewNumber_ = viewNumber_;
          result.sequence_ = sequence_;
          result.replicaId_ = replicaId_;
          result.valueDigest_ = valueDigest_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.PbftPrepare) {
            return mergeFrom((Consensus.PbftPrepare)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.PbftPrepare other) {
          if (other == Consensus.PbftPrepare.getDefaultInstance()) return this;
          if (other.getViewNumber() != 0L) {
            setViewNumber(other.getViewNumber());
          }
          if (other.getSequence() != 0L) {
            setSequence(other.getSequence());
          }
          if (other.getReplicaId() != 0L) {
            setReplicaId(other.getReplicaId());
          }
          if (other.getValueDigest() != com.google.protobuf.ByteString.EMPTY) {
            setValueDigest(other.getValueDigest());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.PbftPrepare parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.PbftPrepare) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
  
        private long viewNumber_ ;
        /**
         * <code>int64 view_number = 1;</code>
         */
        public long getViewNumber() {
          return viewNumber_;
        }
        /**
         * <code>int64 view_number = 1;</code>
         */
        public Builder setViewNumber(long value) {
          
          viewNumber_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 view_number = 1;</code>
         */
        public Builder clearViewNumber() {
          
          viewNumber_ = 0L;
          onChanged();
          return this;
        }
  
        private long sequence_ ;
        /**
         * <code>int64 sequence = 2;</code>
         */
        public long getSequence() {
          return sequence_;
        }
        /**
         * <code>int64 sequence = 2;</code>
         */
        public Builder setSequence(long value) {
          
          sequence_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 sequence = 2;</code>
         */
        public Builder clearSequence() {
          
          sequence_ = 0L;
          onChanged();
          return this;
        }
  
        private long replicaId_ ;
        /**
         * <code>int64 replica_id = 3;</code>
         */
        public long getReplicaId() {
          return replicaId_;
        }
        /**
         * <code>int64 replica_id = 3;</code>
         */
        public Builder setReplicaId(long value) {
          
          replicaId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 replica_id = 3;</code>
         */
        public Builder clearReplicaId() {
          
          replicaId_ = 0L;
          onChanged();
          return this;
        }
  
        private com.google.protobuf.ByteString valueDigest_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>bytes value_digest = 4;</code>
         */
        public com.google.protobuf.ByteString getValueDigest() {
          return valueDigest_;
        }
        /**
         * <code>bytes value_digest = 4;</code>
         */
        public Builder setValueDigest(com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          valueDigest_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>bytes value_digest = 4;</code>
         */
        public Builder clearValueDigest() {
          
          valueDigest_ = getDefaultInstance().getValueDigest();
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PbftPrepare)
      }
  
      // @@protoc_insertion_point(class_scope:PbftPrepare)
      private static final Consensus.PbftPrepare DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.PbftPrepare();
      }
  
      public static Consensus.PbftPrepare getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<PbftPrepare>
          PARSER = new com.google.protobuf.AbstractParser<PbftPrepare>() {
        @java.lang.Override
        public PbftPrepare parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PbftPrepare(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<PbftPrepare> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<PbftPrepare> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.PbftPrepare getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PbftCommitOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PbftCommit)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>int64 view_number = 1;</code>
       */
      long getViewNumber();
  
      /**
       * <code>int64 sequence = 2;</code>
       */
      long getSequence();
  
      /**
       * <code>int64 replica_id = 3;</code>
       */
      long getReplicaId();
  
      /**
       * <code>bytes value_digest = 4;</code>
       */
      com.google.protobuf.ByteString getValueDigest();
    }
    /**
     * Protobuf type {@code PbftCommit}
     */
    public  static final class PbftCommit extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PbftCommit)
        PbftCommitOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PbftCommit.newBuilder() to construct.
      private PbftCommit(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PbftCommit() {
        valueDigest_ = com.google.protobuf.ByteString.EMPTY;
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PbftCommit();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private PbftCommit(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
  
                viewNumber_ = input.readInt64();
                break;
              }
              case 16: {
  
                sequence_ = input.readInt64();
                break;
              }
              case 24: {
  
                replicaId_ = input.readInt64();
                break;
              }
              case 34: {
  
                valueDigest_ = input.readBytes();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_PbftCommit_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_PbftCommit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.PbftCommit.class, Consensus.PbftCommit.Builder.class);
      }
  
      public static final int VIEW_NUMBER_FIELD_NUMBER = 1;
      private long viewNumber_;
      /**
       * <code>int64 view_number = 1;</code>
       */
      public long getViewNumber() {
        return viewNumber_;
      }
  
      public static final int SEQUENCE_FIELD_NUMBER = 2;
      private long sequence_;
      /**
       * <code>int64 sequence = 2;</code>
       */
      public long getSequence() {
        return sequence_;
      }
  
      public static final int REPLICA_ID_FIELD_NUMBER = 3;
      private long replicaId_;
      /**
       * <code>int64 replica_id = 3;</code>
       */
      public long getReplicaId() {
        return replicaId_;
      }
  
      public static final int VALUE_DIGEST_FIELD_NUMBER = 4;
      private com.google.protobuf.ByteString valueDigest_;
      /**
       * <code>bytes value_digest = 4;</code>
       */
      public com.google.protobuf.ByteString getValueDigest() {
        return valueDigest_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (viewNumber_ != 0L) {
          output.writeInt64(1, viewNumber_);
        }
        if (sequence_ != 0L) {
          output.writeInt64(2, sequence_);
        }
        if (replicaId_ != 0L) {
          output.writeInt64(3, replicaId_);
        }
        if (!valueDigest_.isEmpty()) {
          output.writeBytes(4, valueDigest_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (viewNumber_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, viewNumber_);
        }
        if (sequence_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, sequence_);
        }
        if (replicaId_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(3, replicaId_);
        }
        if (!valueDigest_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, valueDigest_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.PbftCommit)) {
          return super.equals(obj);
        }
        Consensus.PbftCommit other = (Consensus.PbftCommit) obj;
  
        if (getViewNumber()
            != other.getViewNumber()) return false;
        if (getSequence()
            != other.getSequence()) return false;
        if (getReplicaId()
            != other.getReplicaId()) return false;
        if (!getValueDigest()
            .equals(other.getValueDigest())) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + VIEW_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getViewNumber());
        hash = (37 * hash) + SEQUENCE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSequence());
        hash = (37 * hash) + REPLICA_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getReplicaId());
        hash = (37 * hash) + VALUE_DIGEST_FIELD_NUMBER;
        hash = (53 * hash) + getValueDigest().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.PbftCommit parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftCommit parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftCommit parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftCommit parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftCommit parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftCommit parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftCommit parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftCommit parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftCommit parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.PbftCommit parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftCommit parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftCommit parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.PbftCommit prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PbftCommit}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PbftCommit)
          Consensus.PbftCommitOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_PbftCommit_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_PbftCommit_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.PbftCommit.class, Consensus.PbftCommit.Builder.class);
        }
  
        // Construct using Consensus.PbftCommit.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          viewNumber_ = 0L;
  
          sequence_ = 0L;
  
          replicaId_ = 0L;
  
          valueDigest_ = com.google.protobuf.ByteString.EMPTY;
  
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_PbftCommit_descriptor;
        }
  
        @java.lang.Override
        public Consensus.PbftCommit getDefaultInstanceForType() {
          return Consensus.PbftCommit.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.PbftCommit build() {
          Consensus.PbftCommit result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.PbftCommit buildPartial() {
          Consensus.PbftCommit result = new Consensus.PbftCommit(this);
          result.viewNumber_ = viewNumber_;
          result.sequence_ = sequence_;
          result.replicaId_ = replicaId_;
          result.valueDigest_ = valueDigest_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.PbftCommit) {
            return mergeFrom((Consensus.PbftCommit)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.PbftCommit other) {
          if (other == Consensus.PbftCommit.getDefaultInstance()) return this;
          if (other.getViewNumber() != 0L) {
            setViewNumber(other.getViewNumber());
          }
          if (other.getSequence() != 0L) {
            setSequence(other.getSequence());
          }
          if (other.getReplicaId() != 0L) {
            setReplicaId(other.getReplicaId());
          }
          if (other.getValueDigest() != com.google.protobuf.ByteString.EMPTY) {
            setValueDigest(other.getValueDigest());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.PbftCommit parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.PbftCommit) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
  
        private long viewNumber_ ;
        /**
         * <code>int64 view_number = 1;</code>
         */
        public long getViewNumber() {
          return viewNumber_;
        }
        /**
         * <code>int64 view_number = 1;</code>
         */
        public Builder setViewNumber(long value) {
          
          viewNumber_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 view_number = 1;</code>
         */
        public Builder clearViewNumber() {
          
          viewNumber_ = 0L;
          onChanged();
          return this;
        }
  
        private long sequence_ ;
        /**
         * <code>int64 sequence = 2;</code>
         */
        public long getSequence() {
          return sequence_;
        }
        /**
         * <code>int64 sequence = 2;</code>
         */
        public Builder setSequence(long value) {
          
          sequence_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 sequence = 2;</code>
         */
        public Builder clearSequence() {
          
          sequence_ = 0L;
          onChanged();
          return this;
        }
  
        private long replicaId_ ;
        /**
         * <code>int64 replica_id = 3;</code>
         */
        public long getReplicaId() {
          return replicaId_;
        }
        /**
         * <code>int64 replica_id = 3;</code>
         */
        public Builder setReplicaId(long value) {
          
          replicaId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 replica_id = 3;</code>
         */
        public Builder clearReplicaId() {
          
          replicaId_ = 0L;
          onChanged();
          return this;
        }
  
        private com.google.protobuf.ByteString valueDigest_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>bytes value_digest = 4;</code>
         */
        public com.google.protobuf.ByteString getValueDigest() {
          return valueDigest_;
        }
        /**
         * <code>bytes value_digest = 4;</code>
         */
        public Builder setValueDigest(com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          valueDigest_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>bytes value_digest = 4;</code>
         */
        public Builder clearValueDigest() {
          
          valueDigest_ = getDefaultInstance().getValueDigest();
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PbftCommit)
      }
  
      // @@protoc_insertion_point(class_scope:PbftCommit)
      private static final Consensus.PbftCommit DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.PbftCommit();
      }
  
      public static Consensus.PbftCommit getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<PbftCommit>
          PARSER = new com.google.protobuf.AbstractParser<PbftCommit>() {
        @java.lang.Override
        public PbftCommit parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PbftCommit(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<PbftCommit> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<PbftCommit> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.PbftCommit getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PbftPreparedSetOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PbftPreparedSet)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>.PbftEnv pre_block = 1;</code>
       */
      boolean hasPreBlock();
      /**
       * <code>.PbftEnv pre_block = 1;</code>
       */
      Consensus.PbftEnv getPreBlock();
      /**
       * <code>.PbftEnv pre_block = 1;</code>
       */
      Consensus.PbftEnvOrBuilder getPreBlockOrBuilder();
  
      /**
       * <code>.PbftEnv pre_prepare = 2;</code>
       */
      boolean hasPrePrepare();
      /**
       * <code>.PbftEnv pre_prepare = 2;</code>
       */
      Consensus.PbftEnv getPrePrepare();
      /**
       * <code>.PbftEnv pre_prepare = 2;</code>
       */
      Consensus.PbftEnvOrBuilder getPrePrepareOrBuilder();
  
      /**
       * <code>repeated .PbftEnv prepare = 3;</code>
       */
      java.util.List<Consensus.PbftEnv> 
          getPrepareList();
      /**
       * <code>repeated .PbftEnv prepare = 3;</code>
       */
      Consensus.PbftEnv getPrepare(int index);
      /**
       * <code>repeated .PbftEnv prepare = 3;</code>
       */
      int getPrepareCount();
      /**
       * <code>repeated .PbftEnv prepare = 3;</code>
       */
      java.util.List<? extends Consensus.PbftEnvOrBuilder> 
          getPrepareOrBuilderList();
      /**
       * <code>repeated .PbftEnv prepare = 3;</code>
       */
      Consensus.PbftEnvOrBuilder getPrepareOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code PbftPreparedSet}
     */
    public  static final class PbftPreparedSet extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PbftPreparedSet)
        PbftPreparedSetOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PbftPreparedSet.newBuilder() to construct.
      private PbftPreparedSet(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PbftPreparedSet() {
        prepare_ = java.util.Collections.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PbftPreparedSet();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private PbftPreparedSet(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                Consensus.PbftEnv.Builder subBuilder = null;
                if (preBlock_ != null) {
                  subBuilder = preBlock_.toBuilder();
                }
                preBlock_ = input.readMessage(Consensus.PbftEnv.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(preBlock_);
                  preBlock_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 18: {
                Consensus.PbftEnv.Builder subBuilder = null;
                if (prePrepare_ != null) {
                  subBuilder = prePrepare_.toBuilder();
                }
                prePrepare_ = input.readMessage(Consensus.PbftEnv.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(prePrepare_);
                  prePrepare_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 26: {
                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                  prepare_ = new java.util.ArrayList<Consensus.PbftEnv>();
                  mutable_bitField0_ |= 0x00000001;
                }
                prepare_.add(
                    input.readMessage(Consensus.PbftEnv.parser(), extensionRegistry));
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000001) != 0)) {
            prepare_ = java.util.Collections.unmodifiableList(prepare_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_PbftPreparedSet_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_PbftPreparedSet_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.PbftPreparedSet.class, Consensus.PbftPreparedSet.Builder.class);
      }
  
      public static final int PRE_BLOCK_FIELD_NUMBER = 1;
      private Consensus.PbftEnv preBlock_;
      /**
       * <code>.PbftEnv pre_block = 1;</code>
       */
      public boolean hasPreBlock() {
        return preBlock_ != null;
      }
      /**
       * <code>.PbftEnv pre_block = 1;</code>
       */
      public Consensus.PbftEnv getPreBlock() {
        return preBlock_ == null ? Consensus.PbftEnv.getDefaultInstance() : preBlock_;
      }
      /**
       * <code>.PbftEnv pre_block = 1;</code>
       */
      public Consensus.PbftEnvOrBuilder getPreBlockOrBuilder() {
        return getPreBlock();
      }
  
      public static final int PRE_PREPARE_FIELD_NUMBER = 2;
      private Consensus.PbftEnv prePrepare_;
      /**
       * <code>.PbftEnv pre_prepare = 2;</code>
       */
      public boolean hasPrePrepare() {
        return prePrepare_ != null;
      }
      /**
       * <code>.PbftEnv pre_prepare = 2;</code>
       */
      public Consensus.PbftEnv getPrePrepare() {
        return prePrepare_ == null ? Consensus.PbftEnv.getDefaultInstance() : prePrepare_;
      }
      /**
       * <code>.PbftEnv pre_prepare = 2;</code>
       */
      public Consensus.PbftEnvOrBuilder getPrePrepareOrBuilder() {
        return getPrePrepare();
      }
  
      public static final int PREPARE_FIELD_NUMBER = 3;
      private java.util.List<Consensus.PbftEnv> prepare_;
      /**
       * <code>repeated .PbftEnv prepare = 3;</code>
       */
      public java.util.List<Consensus.PbftEnv> getPrepareList() {
        return prepare_;
      }
      /**
       * <code>repeated .PbftEnv prepare = 3;</code>
       */
      public java.util.List<? extends Consensus.PbftEnvOrBuilder> 
          getPrepareOrBuilderList() {
        return prepare_;
      }
      /**
       * <code>repeated .PbftEnv prepare = 3;</code>
       */
      public int getPrepareCount() {
        return prepare_.size();
      }
      /**
       * <code>repeated .PbftEnv prepare = 3;</code>
       */
      public Consensus.PbftEnv getPrepare(int index) {
        return prepare_.get(index);
      }
      /**
       * <code>repeated .PbftEnv prepare = 3;</code>
       */
      public Consensus.PbftEnvOrBuilder getPrepareOrBuilder(
          int index) {
        return prepare_.get(index);
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (preBlock_ != null) {
          output.writeMessage(1, getPreBlock());
        }
        if (prePrepare_ != null) {
          output.writeMessage(2, getPrePrepare());
        }
        for (int i = 0; i < prepare_.size(); i++) {
          output.writeMessage(3, prepare_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (preBlock_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getPreBlock());
        }
        if (prePrepare_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getPrePrepare());
        }
        for (int i = 0; i < prepare_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, prepare_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.PbftPreparedSet)) {
          return super.equals(obj);
        }
        Consensus.PbftPreparedSet other = (Consensus.PbftPreparedSet) obj;
  
        if (hasPreBlock() != other.hasPreBlock()) return false;
        if (hasPreBlock()) {
          if (!getPreBlock()
              .equals(other.getPreBlock())) return false;
        }
        if (hasPrePrepare() != other.hasPrePrepare()) return false;
        if (hasPrePrepare()) {
          if (!getPrePrepare()
              .equals(other.getPrePrepare())) return false;
        }
        if (!getPrepareList()
            .equals(other.getPrepareList())) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasPreBlock()) {
          hash = (37 * hash) + PRE_BLOCK_FIELD_NUMBER;
          hash = (53 * hash) + getPreBlock().hashCode();
        }
        if (hasPrePrepare()) {
          hash = (37 * hash) + PRE_PREPARE_FIELD_NUMBER;
          hash = (53 * hash) + getPrePrepare().hashCode();
        }
        if (getPrepareCount() > 0) {
          hash = (37 * hash) + PREPARE_FIELD_NUMBER;
          hash = (53 * hash) + getPrepareList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.PbftPreparedSet parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftPreparedSet parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftPreparedSet parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftPreparedSet parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftPreparedSet parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftPreparedSet parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftPreparedSet parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftPreparedSet parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftPreparedSet parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.PbftPreparedSet parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftPreparedSet parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftPreparedSet parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.PbftPreparedSet prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PbftPreparedSet}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PbftPreparedSet)
          Consensus.PbftPreparedSetOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_PbftPreparedSet_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_PbftPreparedSet_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.PbftPreparedSet.class, Consensus.PbftPreparedSet.Builder.class);
        }
  
        // Construct using Consensus.PbftPreparedSet.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getPrepareFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (preBlockBuilder_ == null) {
            preBlock_ = null;
          } else {
            preBlock_ = null;
            preBlockBuilder_ = null;
          }
          if (prePrepareBuilder_ == null) {
            prePrepare_ = null;
          } else {
            prePrepare_ = null;
            prePrepareBuilder_ = null;
          }
          if (prepareBuilder_ == null) {
            prepare_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            prepareBuilder_.clear();
          }
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_PbftPreparedSet_descriptor;
        }
  
        @java.lang.Override
        public Consensus.PbftPreparedSet getDefaultInstanceForType() {
          return Consensus.PbftPreparedSet.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.PbftPreparedSet build() {
          Consensus.PbftPreparedSet result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.PbftPreparedSet buildPartial() {
          Consensus.PbftPreparedSet result = new Consensus.PbftPreparedSet(this);
          int from_bitField0_ = bitField0_;
          if (preBlockBuilder_ == null) {
            result.preBlock_ = preBlock_;
          } else {
            result.preBlock_ = preBlockBuilder_.build();
          }
          if (prePrepareBuilder_ == null) {
            result.prePrepare_ = prePrepare_;
          } else {
            result.prePrepare_ = prePrepareBuilder_.build();
          }
          if (prepareBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              prepare_ = java.util.Collections.unmodifiableList(prepare_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.prepare_ = prepare_;
          } else {
            result.prepare_ = prepareBuilder_.build();
          }
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.PbftPreparedSet) {
            return mergeFrom((Consensus.PbftPreparedSet)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.PbftPreparedSet other) {
          if (other == Consensus.PbftPreparedSet.getDefaultInstance()) return this;
          if (other.hasPreBlock()) {
            mergePreBlock(other.getPreBlock());
          }
          if (other.hasPrePrepare()) {
            mergePrePrepare(other.getPrePrepare());
          }
          if (prepareBuilder_ == null) {
            if (!other.prepare_.isEmpty()) {
              if (prepare_.isEmpty()) {
                prepare_ = other.prepare_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensurePrepareIsMutable();
                prepare_.addAll(other.prepare_);
              }
              onChanged();
            }
          } else {
            if (!other.prepare_.isEmpty()) {
              if (prepareBuilder_.isEmpty()) {
                prepareBuilder_.dispose();
                prepareBuilder_ = null;
                prepare_ = other.prepare_;
                bitField0_ = (bitField0_ & ~0x00000001);
                prepareBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getPrepareFieldBuilder() : null;
              } else {
                prepareBuilder_.addAllMessages(other.prepare_);
              }
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.PbftPreparedSet parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.PbftPreparedSet) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private Consensus.PbftEnv preBlock_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> preBlockBuilder_;
        /**
         * <code>.PbftEnv pre_block = 1;</code>
         */
        public boolean hasPreBlock() {
          return preBlockBuilder_ != null || preBlock_ != null;
        }
        /**
         * <code>.PbftEnv pre_block = 1;</code>
         */
        public Consensus.PbftEnv getPreBlock() {
          if (preBlockBuilder_ == null) {
            return preBlock_ == null ? Consensus.PbftEnv.getDefaultInstance() : preBlock_;
          } else {
            return preBlockBuilder_.getMessage();
          }
        }
        /**
         * <code>.PbftEnv pre_block = 1;</code>
         */
        public Builder setPreBlock(Consensus.PbftEnv value) {
          if (preBlockBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            preBlock_ = value;
            onChanged();
          } else {
            preBlockBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv pre_block = 1;</code>
         */
        public Builder setPreBlock(
            Consensus.PbftEnv.Builder builderForValue) {
          if (preBlockBuilder_ == null) {
            preBlock_ = builderForValue.build();
            onChanged();
          } else {
            preBlockBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv pre_block = 1;</code>
         */
        public Builder mergePreBlock(Consensus.PbftEnv value) {
          if (preBlockBuilder_ == null) {
            if (preBlock_ != null) {
              preBlock_ =
                Consensus.PbftEnv.newBuilder(preBlock_).mergeFrom(value).buildPartial();
            } else {
              preBlock_ = value;
            }
            onChanged();
          } else {
            preBlockBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv pre_block = 1;</code>
         */
        public Builder clearPreBlock() {
          if (preBlockBuilder_ == null) {
            preBlock_ = null;
            onChanged();
          } else {
            preBlock_ = null;
            preBlockBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv pre_block = 1;</code>
         */
        public Consensus.PbftEnv.Builder getPreBlockBuilder() {
          
          onChanged();
          return getPreBlockFieldBuilder().getBuilder();
        }
        /**
         * <code>.PbftEnv pre_block = 1;</code>
         */
        public Consensus.PbftEnvOrBuilder getPreBlockOrBuilder() {
          if (preBlockBuilder_ != null) {
            return preBlockBuilder_.getMessageOrBuilder();
          } else {
            return preBlock_ == null ?
                Consensus.PbftEnv.getDefaultInstance() : preBlock_;
          }
        }
        /**
         * <code>.PbftEnv pre_block = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> 
            getPreBlockFieldBuilder() {
          if (preBlockBuilder_ == null) {
            preBlockBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder>(
                    getPreBlock(),
                    getParentForChildren(),
                    isClean());
            preBlock_ = null;
          }
          return preBlockBuilder_;
        }
  
        private Consensus.PbftEnv prePrepare_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> prePrepareBuilder_;
        /**
         * <code>.PbftEnv pre_prepare = 2;</code>
         */
        public boolean hasPrePrepare() {
          return prePrepareBuilder_ != null || prePrepare_ != null;
        }
        /**
         * <code>.PbftEnv pre_prepare = 2;</code>
         */
        public Consensus.PbftEnv getPrePrepare() {
          if (prePrepareBuilder_ == null) {
            return prePrepare_ == null ? Consensus.PbftEnv.getDefaultInstance() : prePrepare_;
          } else {
            return prePrepareBuilder_.getMessage();
          }
        }
        /**
         * <code>.PbftEnv pre_prepare = 2;</code>
         */
        public Builder setPrePrepare(Consensus.PbftEnv value) {
          if (prePrepareBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            prePrepare_ = value;
            onChanged();
          } else {
            prePrepareBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv pre_prepare = 2;</code>
         */
        public Builder setPrePrepare(
            Consensus.PbftEnv.Builder builderForValue) {
          if (prePrepareBuilder_ == null) {
            prePrepare_ = builderForValue.build();
            onChanged();
          } else {
            prePrepareBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv pre_prepare = 2;</code>
         */
        public Builder mergePrePrepare(Consensus.PbftEnv value) {
          if (prePrepareBuilder_ == null) {
            if (prePrepare_ != null) {
              prePrepare_ =
                Consensus.PbftEnv.newBuilder(prePrepare_).mergeFrom(value).buildPartial();
            } else {
              prePrepare_ = value;
            }
            onChanged();
          } else {
            prePrepareBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv pre_prepare = 2;</code>
         */
        public Builder clearPrePrepare() {
          if (prePrepareBuilder_ == null) {
            prePrepare_ = null;
            onChanged();
          } else {
            prePrepare_ = null;
            prePrepareBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv pre_prepare = 2;</code>
         */
        public Consensus.PbftEnv.Builder getPrePrepareBuilder() {
          
          onChanged();
          return getPrePrepareFieldBuilder().getBuilder();
        }
        /**
         * <code>.PbftEnv pre_prepare = 2;</code>
         */
        public Consensus.PbftEnvOrBuilder getPrePrepareOrBuilder() {
          if (prePrepareBuilder_ != null) {
            return prePrepareBuilder_.getMessageOrBuilder();
          } else {
            return prePrepare_ == null ?
                Consensus.PbftEnv.getDefaultInstance() : prePrepare_;
          }
        }
        /**
         * <code>.PbftEnv pre_prepare = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> 
            getPrePrepareFieldBuilder() {
          if (prePrepareBuilder_ == null) {
            prePrepareBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder>(
                    getPrePrepare(),
                    getParentForChildren(),
                    isClean());
            prePrepare_ = null;
          }
          return prePrepareBuilder_;
        }
  
        private java.util.List<Consensus.PbftEnv> prepare_ =
          java.util.Collections.emptyList();
        private void ensurePrepareIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            prepare_ = new java.util.ArrayList<Consensus.PbftEnv>(prepare_);
            bitField0_ |= 0x00000001;
           }
        }
  
        private com.google.protobuf.RepeatedFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> prepareBuilder_;
  
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public java.util.List<Consensus.PbftEnv> getPrepareList() {
          if (prepareBuilder_ == null) {
            return java.util.Collections.unmodifiableList(prepare_);
          } else {
            return prepareBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public int getPrepareCount() {
          if (prepareBuilder_ == null) {
            return prepare_.size();
          } else {
            return prepareBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Consensus.PbftEnv getPrepare(int index) {
          if (prepareBuilder_ == null) {
            return prepare_.get(index);
          } else {
            return prepareBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Builder setPrepare(
            int index, Consensus.PbftEnv value) {
          if (prepareBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePrepareIsMutable();
            prepare_.set(index, value);
            onChanged();
          } else {
            prepareBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Builder setPrepare(
            int index, Consensus.PbftEnv.Builder builderForValue) {
          if (prepareBuilder_ == null) {
            ensurePrepareIsMutable();
            prepare_.set(index, builderForValue.build());
            onChanged();
          } else {
            prepareBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Builder addPrepare(Consensus.PbftEnv value) {
          if (prepareBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePrepareIsMutable();
            prepare_.add(value);
            onChanged();
          } else {
            prepareBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Builder addPrepare(
            int index, Consensus.PbftEnv value) {
          if (prepareBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePrepareIsMutable();
            prepare_.add(index, value);
            onChanged();
          } else {
            prepareBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Builder addPrepare(
            Consensus.PbftEnv.Builder builderForValue) {
          if (prepareBuilder_ == null) {
            ensurePrepareIsMutable();
            prepare_.add(builderForValue.build());
            onChanged();
          } else {
            prepareBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Builder addPrepare(
            int index, Consensus.PbftEnv.Builder builderForValue) {
          if (prepareBuilder_ == null) {
            ensurePrepareIsMutable();
            prepare_.add(index, builderForValue.build());
            onChanged();
          } else {
            prepareBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Builder addAllPrepare(
            java.lang.Iterable<? extends Consensus.PbftEnv> values) {
          if (prepareBuilder_ == null) {
            ensurePrepareIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, prepare_);
            onChanged();
          } else {
            prepareBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Builder clearPrepare() {
          if (prepareBuilder_ == null) {
            prepare_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            prepareBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Builder removePrepare(int index) {
          if (prepareBuilder_ == null) {
            ensurePrepareIsMutable();
            prepare_.remove(index);
            onChanged();
          } else {
            prepareBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Consensus.PbftEnv.Builder getPrepareBuilder(
            int index) {
          return getPrepareFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Consensus.PbftEnvOrBuilder getPrepareOrBuilder(
            int index) {
          if (prepareBuilder_ == null) {
            return prepare_.get(index);  } else {
            return prepareBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public java.util.List<? extends Consensus.PbftEnvOrBuilder> 
             getPrepareOrBuilderList() {
          if (prepareBuilder_ != null) {
            return prepareBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(prepare_);
          }
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Consensus.PbftEnv.Builder addPrepareBuilder() {
          return getPrepareFieldBuilder().addBuilder(
              Consensus.PbftEnv.getDefaultInstance());
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public Consensus.PbftEnv.Builder addPrepareBuilder(
            int index) {
          return getPrepareFieldBuilder().addBuilder(
              index, Consensus.PbftEnv.getDefaultInstance());
        }
        /**
         * <code>repeated .PbftEnv prepare = 3;</code>
         */
        public java.util.List<Consensus.PbftEnv.Builder> 
             getPrepareBuilderList() {
          return getPrepareFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> 
            getPrepareFieldBuilder() {
          if (prepareBuilder_ == null) {
            prepareBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder>(
                    prepare_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            prepare_ = null;
          }
          return prepareBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PbftPreparedSet)
      }
  
      // @@protoc_insertion_point(class_scope:PbftPreparedSet)
      private static final Consensus.PbftPreparedSet DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.PbftPreparedSet();
      }
  
      public static Consensus.PbftPreparedSet getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<PbftPreparedSet>
          PARSER = new com.google.protobuf.AbstractParser<PbftPreparedSet>() {
        @java.lang.Override
        public PbftPreparedSet parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PbftPreparedSet(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<PbftPreparedSet> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<PbftPreparedSet> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.PbftPreparedSet getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PbftViewChangeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PbftViewChange)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <pre>
       *v+1
       * </pre>
       *
       * <code>int64 view_number = 1;</code>
       */
      long getViewNumber();
  
      /**
       * <pre>
       *last execution seq
       * </pre>
       *
       * <code>int64 sequence = 2;</code>
       */
      long getSequence();
  
      /**
       * <pre>
       *prepared value hash
       * </pre>
       *
       * <code>bytes prepred_value_digest = 3;</code>
       */
      com.google.protobuf.ByteString getPrepredValueDigest();
  
      /**
       * <code>int64 replica_id = 4;</code>
       */
      long getReplicaId();
    }
    /**
     * Protobuf type {@code PbftViewChange}
     */
    public  static final class PbftViewChange extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PbftViewChange)
        PbftViewChangeOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PbftViewChange.newBuilder() to construct.
      private PbftViewChange(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PbftViewChange() {
        prepredValueDigest_ = com.google.protobuf.ByteString.EMPTY;
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PbftViewChange();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private PbftViewChange(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
  
                viewNumber_ = input.readInt64();
                break;
              }
              case 16: {
  
                sequence_ = input.readInt64();
                break;
              }
              case 26: {
  
                prepredValueDigest_ = input.readBytes();
                break;
              }
              case 32: {
  
                replicaId_ = input.readInt64();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_PbftViewChange_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_PbftViewChange_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.PbftViewChange.class, Consensus.PbftViewChange.Builder.class);
      }
  
      public static final int VIEW_NUMBER_FIELD_NUMBER = 1;
      private long viewNumber_;
      /**
       * <pre>
       *v+1
       * </pre>
       *
       * <code>int64 view_number = 1;</code>
       */
      public long getViewNumber() {
        return viewNumber_;
      }
  
      public static final int SEQUENCE_FIELD_NUMBER = 2;
      private long sequence_;
      /**
       * <pre>
       *last execution seq
       * </pre>
       *
       * <code>int64 sequence = 2;</code>
       */
      public long getSequence() {
        return sequence_;
      }
  
      public static final int PREPRED_VALUE_DIGEST_FIELD_NUMBER = 3;
      private com.google.protobuf.ByteString prepredValueDigest_;
      /**
       * <pre>
       *prepared value hash
       * </pre>
       *
       * <code>bytes prepred_value_digest = 3;</code>
       */
      public com.google.protobuf.ByteString getPrepredValueDigest() {
        return prepredValueDigest_;
      }
  
      public static final int REPLICA_ID_FIELD_NUMBER = 4;
      private long replicaId_;
      /**
       * <code>int64 replica_id = 4;</code>
       */
      public long getReplicaId() {
        return replicaId_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (viewNumber_ != 0L) {
          output.writeInt64(1, viewNumber_);
        }
        if (sequence_ != 0L) {
          output.writeInt64(2, sequence_);
        }
        if (!prepredValueDigest_.isEmpty()) {
          output.writeBytes(3, prepredValueDigest_);
        }
        if (replicaId_ != 0L) {
          output.writeInt64(4, replicaId_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (viewNumber_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, viewNumber_);
        }
        if (sequence_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, sequence_);
        }
        if (!prepredValueDigest_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(3, prepredValueDigest_);
        }
        if (replicaId_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(4, replicaId_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.PbftViewChange)) {
          return super.equals(obj);
        }
        Consensus.PbftViewChange other = (Consensus.PbftViewChange) obj;
  
        if (getViewNumber()
            != other.getViewNumber()) return false;
        if (getSequence()
            != other.getSequence()) return false;
        if (!getPrepredValueDigest()
            .equals(other.getPrepredValueDigest())) return false;
        if (getReplicaId()
            != other.getReplicaId()) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + VIEW_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getViewNumber());
        hash = (37 * hash) + SEQUENCE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSequence());
        hash = (37 * hash) + PREPRED_VALUE_DIGEST_FIELD_NUMBER;
        hash = (53 * hash) + getPrepredValueDigest().hashCode();
        hash = (37 * hash) + REPLICA_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getReplicaId());
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.PbftViewChange parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftViewChange parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftViewChange parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftViewChange parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftViewChange parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftViewChange parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftViewChange parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftViewChange parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftViewChange parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.PbftViewChange parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftViewChange parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftViewChange parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.PbftViewChange prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PbftViewChange}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PbftViewChange)
          Consensus.PbftViewChangeOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_PbftViewChange_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_PbftViewChange_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.PbftViewChange.class, Consensus.PbftViewChange.Builder.class);
        }
  
        // Construct using Consensus.PbftViewChange.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          viewNumber_ = 0L;
  
          sequence_ = 0L;
  
          prepredValueDigest_ = com.google.protobuf.ByteString.EMPTY;
  
          replicaId_ = 0L;
  
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_PbftViewChange_descriptor;
        }
  
        @java.lang.Override
        public Consensus.PbftViewChange getDefaultInstanceForType() {
          return Consensus.PbftViewChange.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.PbftViewChange build() {
          Consensus.PbftViewChange result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.PbftViewChange buildPartial() {
          Consensus.PbftViewChange result = new Consensus.PbftViewChange(this);
          result.viewNumber_ = viewNumber_;
          result.sequence_ = sequence_;
          result.prepredValueDigest_ = prepredValueDigest_;
          result.replicaId_ = replicaId_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.PbftViewChange) {
            return mergeFrom((Consensus.PbftViewChange)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.PbftViewChange other) {
          if (other == Consensus.PbftViewChange.getDefaultInstance()) return this;
          if (other.getViewNumber() != 0L) {
            setViewNumber(other.getViewNumber());
          }
          if (other.getSequence() != 0L) {
            setSequence(other.getSequence());
          }
          if (other.getPrepredValueDigest() != com.google.protobuf.ByteString.EMPTY) {
            setPrepredValueDigest(other.getPrepredValueDigest());
          }
          if (other.getReplicaId() != 0L) {
            setReplicaId(other.getReplicaId());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.PbftViewChange parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.PbftViewChange) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
  
        private long viewNumber_ ;
        /**
         * <pre>
         *v+1
         * </pre>
         *
         * <code>int64 view_number = 1;</code>
         */
        public long getViewNumber() {
          return viewNumber_;
        }
        /**
         * <pre>
         *v+1
         * </pre>
         *
         * <code>int64 view_number = 1;</code>
         */
        public Builder setViewNumber(long value) {
          
          viewNumber_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *v+1
         * </pre>
         *
         * <code>int64 view_number = 1;</code>
         */
        public Builder clearViewNumber() {
          
          viewNumber_ = 0L;
          onChanged();
          return this;
        }
  
        private long sequence_ ;
        /**
         * <pre>
         *last execution seq
         * </pre>
         *
         * <code>int64 sequence = 2;</code>
         */
        public long getSequence() {
          return sequence_;
        }
        /**
         * <pre>
         *last execution seq
         * </pre>
         *
         * <code>int64 sequence = 2;</code>
         */
        public Builder setSequence(long value) {
          
          sequence_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *last execution seq
         * </pre>
         *
         * <code>int64 sequence = 2;</code>
         */
        public Builder clearSequence() {
          
          sequence_ = 0L;
          onChanged();
          return this;
        }
  
        private com.google.protobuf.ByteString prepredValueDigest_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <pre>
         *prepared value hash
         * </pre>
         *
         * <code>bytes prepred_value_digest = 3;</code>
         */
        public com.google.protobuf.ByteString getPrepredValueDigest() {
          return prepredValueDigest_;
        }
        /**
         * <pre>
         *prepared value hash
         * </pre>
         *
         * <code>bytes prepred_value_digest = 3;</code>
         */
        public Builder setPrepredValueDigest(com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          prepredValueDigest_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *prepared value hash
         * </pre>
         *
         * <code>bytes prepred_value_digest = 3;</code>
         */
        public Builder clearPrepredValueDigest() {
          
          prepredValueDigest_ = getDefaultInstance().getPrepredValueDigest();
          onChanged();
          return this;
        }
  
        private long replicaId_ ;
        /**
         * <code>int64 replica_id = 4;</code>
         */
        public long getReplicaId() {
          return replicaId_;
        }
        /**
         * <code>int64 replica_id = 4;</code>
         */
        public Builder setReplicaId(long value) {
          
          replicaId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 replica_id = 4;</code>
         */
        public Builder clearReplicaId() {
          
          replicaId_ = 0L;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PbftViewChange)
      }
  
      // @@protoc_insertion_point(class_scope:PbftViewChange)
      private static final Consensus.PbftViewChange DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.PbftViewChange();
      }
  
      public static Consensus.PbftViewChange getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<PbftViewChange>
          PARSER = new com.google.protobuf.AbstractParser<PbftViewChange>() {
        @java.lang.Override
        public PbftViewChange parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PbftViewChange(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<PbftViewChange> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<PbftViewChange> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.PbftViewChange getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PbftViewChangeWithRawValueOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PbftViewChangeWithRawValue)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <pre>
       * view change env
       * </pre>
       *
       * <code>.PbftEnv view_change_env = 1;</code>
       */
      boolean hasViewChangeEnv();
      /**
       * <pre>
       * view change env
       * </pre>
       *
       * <code>.PbftEnv view_change_env = 1;</code>
       */
      Consensus.PbftEnv getViewChangeEnv();
      /**
       * <pre>
       * view change env
       * </pre>
       *
       * <code>.PbftEnv view_change_env = 1;</code>
       */
      Consensus.PbftEnvOrBuilder getViewChangeEnvOrBuilder();
  
      /**
       * <pre>
       *prepared messages larger than n
       * </pre>
       *
       * <code>.PbftPreparedSet prepared_set = 2;</code>
       */
      boolean hasPreparedSet();
      /**
       * <pre>
       *prepared messages larger than n
       * </pre>
       *
       * <code>.PbftPreparedSet prepared_set = 2;</code>
       */
      Consensus.PbftPreparedSet getPreparedSet();
      /**
       * <pre>
       *prepared messages larger than n
       * </pre>
       *
       * <code>.PbftPreparedSet prepared_set = 2;</code>
       */
      Consensus.PbftPreparedSetOrBuilder getPreparedSetOrBuilder();
    }
    /**
     * Protobuf type {@code PbftViewChangeWithRawValue}
     */
    public  static final class PbftViewChangeWithRawValue extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PbftViewChangeWithRawValue)
        PbftViewChangeWithRawValueOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PbftViewChangeWithRawValue.newBuilder() to construct.
      private PbftViewChangeWithRawValue(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PbftViewChangeWithRawValue() {
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PbftViewChangeWithRawValue();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private PbftViewChangeWithRawValue(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                Consensus.PbftEnv.Builder subBuilder = null;
                if (viewChangeEnv_ != null) {
                  subBuilder = viewChangeEnv_.toBuilder();
                }
                viewChangeEnv_ = input.readMessage(Consensus.PbftEnv.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(viewChangeEnv_);
                  viewChangeEnv_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 18: {
                Consensus.PbftPreparedSet.Builder subBuilder = null;
                if (preparedSet_ != null) {
                  subBuilder = preparedSet_.toBuilder();
                }
                preparedSet_ = input.readMessage(Consensus.PbftPreparedSet.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(preparedSet_);
                  preparedSet_ = subBuilder.buildPartial();
                }
  
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_PbftViewChangeWithRawValue_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_PbftViewChangeWithRawValue_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.PbftViewChangeWithRawValue.class, Consensus.PbftViewChangeWithRawValue.Builder.class);
      }
  
      public static final int VIEW_CHANGE_ENV_FIELD_NUMBER = 1;
      private Consensus.PbftEnv viewChangeEnv_;
      /**
       * <pre>
       * view change env
       * </pre>
       *
       * <code>.PbftEnv view_change_env = 1;</code>
       */
      public boolean hasViewChangeEnv() {
        return viewChangeEnv_ != null;
      }
      /**
       * <pre>
       * view change env
       * </pre>
       *
       * <code>.PbftEnv view_change_env = 1;</code>
       */
      public Consensus.PbftEnv getViewChangeEnv() {
        return viewChangeEnv_ == null ? Consensus.PbftEnv.getDefaultInstance() : viewChangeEnv_;
      }
      /**
       * <pre>
       * view change env
       * </pre>
       *
       * <code>.PbftEnv view_change_env = 1;</code>
       */
      public Consensus.PbftEnvOrBuilder getViewChangeEnvOrBuilder() {
        return getViewChangeEnv();
      }
  
      public static final int PREPARED_SET_FIELD_NUMBER = 2;
      private Consensus.PbftPreparedSet preparedSet_;
      /**
       * <pre>
       *prepared messages larger than n
       * </pre>
       *
       * <code>.PbftPreparedSet prepared_set = 2;</code>
       */
      public boolean hasPreparedSet() {
        return preparedSet_ != null;
      }
      /**
       * <pre>
       *prepared messages larger than n
       * </pre>
       *
       * <code>.PbftPreparedSet prepared_set = 2;</code>
       */
      public Consensus.PbftPreparedSet getPreparedSet() {
        return preparedSet_ == null ? Consensus.PbftPreparedSet.getDefaultInstance() : preparedSet_;
      }
      /**
       * <pre>
       *prepared messages larger than n
       * </pre>
       *
       * <code>.PbftPreparedSet prepared_set = 2;</code>
       */
      public Consensus.PbftPreparedSetOrBuilder getPreparedSetOrBuilder() {
        return getPreparedSet();
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (viewChangeEnv_ != null) {
          output.writeMessage(1, getViewChangeEnv());
        }
        if (preparedSet_ != null) {
          output.writeMessage(2, getPreparedSet());
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (viewChangeEnv_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getViewChangeEnv());
        }
        if (preparedSet_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getPreparedSet());
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.PbftViewChangeWithRawValue)) {
          return super.equals(obj);
        }
        Consensus.PbftViewChangeWithRawValue other = (Consensus.PbftViewChangeWithRawValue) obj;
  
        if (hasViewChangeEnv() != other.hasViewChangeEnv()) return false;
        if (hasViewChangeEnv()) {
          if (!getViewChangeEnv()
              .equals(other.getViewChangeEnv())) return false;
        }
        if (hasPreparedSet() != other.hasPreparedSet()) return false;
        if (hasPreparedSet()) {
          if (!getPreparedSet()
              .equals(other.getPreparedSet())) return false;
        }
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasViewChangeEnv()) {
          hash = (37 * hash) + VIEW_CHANGE_ENV_FIELD_NUMBER;
          hash = (53 * hash) + getViewChangeEnv().hashCode();
        }
        if (hasPreparedSet()) {
          hash = (37 * hash) + PREPARED_SET_FIELD_NUMBER;
          hash = (53 * hash) + getPreparedSet().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.PbftViewChangeWithRawValue parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftViewChangeWithRawValue parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftViewChangeWithRawValue parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftViewChangeWithRawValue parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftViewChangeWithRawValue parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftViewChangeWithRawValue parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftViewChangeWithRawValue parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftViewChangeWithRawValue parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftViewChangeWithRawValue parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.PbftViewChangeWithRawValue parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftViewChangeWithRawValue parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftViewChangeWithRawValue parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.PbftViewChangeWithRawValue prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PbftViewChangeWithRawValue}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PbftViewChangeWithRawValue)
          Consensus.PbftViewChangeWithRawValueOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_PbftViewChangeWithRawValue_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_PbftViewChangeWithRawValue_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.PbftViewChangeWithRawValue.class, Consensus.PbftViewChangeWithRawValue.Builder.class);
        }
  
        // Construct using Consensus.PbftViewChangeWithRawValue.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (viewChangeEnvBuilder_ == null) {
            viewChangeEnv_ = null;
          } else {
            viewChangeEnv_ = null;
            viewChangeEnvBuilder_ = null;
          }
          if (preparedSetBuilder_ == null) {
            preparedSet_ = null;
          } else {
            preparedSet_ = null;
            preparedSetBuilder_ = null;
          }
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_PbftViewChangeWithRawValue_descriptor;
        }
  
        @java.lang.Override
        public Consensus.PbftViewChangeWithRawValue getDefaultInstanceForType() {
          return Consensus.PbftViewChangeWithRawValue.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.PbftViewChangeWithRawValue build() {
          Consensus.PbftViewChangeWithRawValue result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.PbftViewChangeWithRawValue buildPartial() {
          Consensus.PbftViewChangeWithRawValue result = new Consensus.PbftViewChangeWithRawValue(this);
          if (viewChangeEnvBuilder_ == null) {
            result.viewChangeEnv_ = viewChangeEnv_;
          } else {
            result.viewChangeEnv_ = viewChangeEnvBuilder_.build();
          }
          if (preparedSetBuilder_ == null) {
            result.preparedSet_ = preparedSet_;
          } else {
            result.preparedSet_ = preparedSetBuilder_.build();
          }
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.PbftViewChangeWithRawValue) {
            return mergeFrom((Consensus.PbftViewChangeWithRawValue)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.PbftViewChangeWithRawValue other) {
          if (other == Consensus.PbftViewChangeWithRawValue.getDefaultInstance()) return this;
          if (other.hasViewChangeEnv()) {
            mergeViewChangeEnv(other.getViewChangeEnv());
          }
          if (other.hasPreparedSet()) {
            mergePreparedSet(other.getPreparedSet());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.PbftViewChangeWithRawValue parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.PbftViewChangeWithRawValue) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
  
        private Consensus.PbftEnv viewChangeEnv_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> viewChangeEnvBuilder_;
        /**
         * <pre>
         * view change env
         * </pre>
         *
         * <code>.PbftEnv view_change_env = 1;</code>
         */
        public boolean hasViewChangeEnv() {
          return viewChangeEnvBuilder_ != null || viewChangeEnv_ != null;
        }
        /**
         * <pre>
         * view change env
         * </pre>
         *
         * <code>.PbftEnv view_change_env = 1;</code>
         */
        public Consensus.PbftEnv getViewChangeEnv() {
          if (viewChangeEnvBuilder_ == null) {
            return viewChangeEnv_ == null ? Consensus.PbftEnv.getDefaultInstance() : viewChangeEnv_;
          } else {
            return viewChangeEnvBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         * view change env
         * </pre>
         *
         * <code>.PbftEnv view_change_env = 1;</code>
         */
        public Builder setViewChangeEnv(Consensus.PbftEnv value) {
          if (viewChangeEnvBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            viewChangeEnv_ = value;
            onChanged();
          } else {
            viewChangeEnvBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <pre>
         * view change env
         * </pre>
         *
         * <code>.PbftEnv view_change_env = 1;</code>
         */
        public Builder setViewChangeEnv(
            Consensus.PbftEnv.Builder builderForValue) {
          if (viewChangeEnvBuilder_ == null) {
            viewChangeEnv_ = builderForValue.build();
            onChanged();
          } else {
            viewChangeEnvBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <pre>
         * view change env
         * </pre>
         *
         * <code>.PbftEnv view_change_env = 1;</code>
         */
        public Builder mergeViewChangeEnv(Consensus.PbftEnv value) {
          if (viewChangeEnvBuilder_ == null) {
            if (viewChangeEnv_ != null) {
              viewChangeEnv_ =
                Consensus.PbftEnv.newBuilder(viewChangeEnv_).mergeFrom(value).buildPartial();
            } else {
              viewChangeEnv_ = value;
            }
            onChanged();
          } else {
            viewChangeEnvBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <pre>
         * view change env
         * </pre>
         *
         * <code>.PbftEnv view_change_env = 1;</code>
         */
        public Builder clearViewChangeEnv() {
          if (viewChangeEnvBuilder_ == null) {
            viewChangeEnv_ = null;
            onChanged();
          } else {
            viewChangeEnv_ = null;
            viewChangeEnvBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <pre>
         * view change env
         * </pre>
         *
         * <code>.PbftEnv view_change_env = 1;</code>
         */
        public Consensus.PbftEnv.Builder getViewChangeEnvBuilder() {
          
          onChanged();
          return getViewChangeEnvFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         * view change env
         * </pre>
         *
         * <code>.PbftEnv view_change_env = 1;</code>
         */
        public Consensus.PbftEnvOrBuilder getViewChangeEnvOrBuilder() {
          if (viewChangeEnvBuilder_ != null) {
            return viewChangeEnvBuilder_.getMessageOrBuilder();
          } else {
            return viewChangeEnv_ == null ?
                Consensus.PbftEnv.getDefaultInstance() : viewChangeEnv_;
          }
        }
        /**
         * <pre>
         * view change env
         * </pre>
         *
         * <code>.PbftEnv view_change_env = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> 
            getViewChangeEnvFieldBuilder() {
          if (viewChangeEnvBuilder_ == null) {
            viewChangeEnvBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder>(
                    getViewChangeEnv(),
                    getParentForChildren(),
                    isClean());
            viewChangeEnv_ = null;
          }
          return viewChangeEnvBuilder_;
        }
  
        private Consensus.PbftPreparedSet preparedSet_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftPreparedSet, Consensus.PbftPreparedSet.Builder, Consensus.PbftPreparedSetOrBuilder> preparedSetBuilder_;
        /**
         * <pre>
         *prepared messages larger than n
         * </pre>
         *
         * <code>.PbftPreparedSet prepared_set = 2;</code>
         */
        public boolean hasPreparedSet() {
          return preparedSetBuilder_ != null || preparedSet_ != null;
        }
        /**
         * <pre>
         *prepared messages larger than n
         * </pre>
         *
         * <code>.PbftPreparedSet prepared_set = 2;</code>
         */
        public Consensus.PbftPreparedSet getPreparedSet() {
          if (preparedSetBuilder_ == null) {
            return preparedSet_ == null ? Consensus.PbftPreparedSet.getDefaultInstance() : preparedSet_;
          } else {
            return preparedSetBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         *prepared messages larger than n
         * </pre>
         *
         * <code>.PbftPreparedSet prepared_set = 2;</code>
         */
        public Builder setPreparedSet(Consensus.PbftPreparedSet value) {
          if (preparedSetBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            preparedSet_ = value;
            onChanged();
          } else {
            preparedSetBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <pre>
         *prepared messages larger than n
         * </pre>
         *
         * <code>.PbftPreparedSet prepared_set = 2;</code>
         */
        public Builder setPreparedSet(
            Consensus.PbftPreparedSet.Builder builderForValue) {
          if (preparedSetBuilder_ == null) {
            preparedSet_ = builderForValue.build();
            onChanged();
          } else {
            preparedSetBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <pre>
         *prepared messages larger than n
         * </pre>
         *
         * <code>.PbftPreparedSet prepared_set = 2;</code>
         */
        public Builder mergePreparedSet(Consensus.PbftPreparedSet value) {
          if (preparedSetBuilder_ == null) {
            if (preparedSet_ != null) {
              preparedSet_ =
                Consensus.PbftPreparedSet.newBuilder(preparedSet_).mergeFrom(value).buildPartial();
            } else {
              preparedSet_ = value;
            }
            onChanged();
          } else {
            preparedSetBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <pre>
         *prepared messages larger than n
         * </pre>
         *
         * <code>.PbftPreparedSet prepared_set = 2;</code>
         */
        public Builder clearPreparedSet() {
          if (preparedSetBuilder_ == null) {
            preparedSet_ = null;
            onChanged();
          } else {
            preparedSet_ = null;
            preparedSetBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <pre>
         *prepared messages larger than n
         * </pre>
         *
         * <code>.PbftPreparedSet prepared_set = 2;</code>
         */
        public Consensus.PbftPreparedSet.Builder getPreparedSetBuilder() {
          
          onChanged();
          return getPreparedSetFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         *prepared messages larger than n
         * </pre>
         *
         * <code>.PbftPreparedSet prepared_set = 2;</code>
         */
        public Consensus.PbftPreparedSetOrBuilder getPreparedSetOrBuilder() {
          if (preparedSetBuilder_ != null) {
            return preparedSetBuilder_.getMessageOrBuilder();
          } else {
            return preparedSet_ == null ?
                Consensus.PbftPreparedSet.getDefaultInstance() : preparedSet_;
          }
        }
        /**
         * <pre>
         *prepared messages larger than n
         * </pre>
         *
         * <code>.PbftPreparedSet prepared_set = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftPreparedSet, Consensus.PbftPreparedSet.Builder, Consensus.PbftPreparedSetOrBuilder> 
            getPreparedSetFieldBuilder() {
          if (preparedSetBuilder_ == null) {
            preparedSetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftPreparedSet, Consensus.PbftPreparedSet.Builder, Consensus.PbftPreparedSetOrBuilder>(
                    getPreparedSet(),
                    getParentForChildren(),
                    isClean());
            preparedSet_ = null;
          }
          return preparedSetBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PbftViewChangeWithRawValue)
      }
  
      // @@protoc_insertion_point(class_scope:PbftViewChangeWithRawValue)
      private static final Consensus.PbftViewChangeWithRawValue DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.PbftViewChangeWithRawValue();
      }
  
      public static Consensus.PbftViewChangeWithRawValue getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<PbftViewChangeWithRawValue>
          PARSER = new com.google.protobuf.AbstractParser<PbftViewChangeWithRawValue>() {
        @java.lang.Override
        public PbftViewChangeWithRawValue parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PbftViewChangeWithRawValue(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<PbftViewChangeWithRawValue> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<PbftViewChangeWithRawValue> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.PbftViewChangeWithRawValue getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PbftNewViewOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PbftNewView)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <pre>
       *v+1
       * </pre>
       *
       * <code>int64 view_number = 1;</code>
       */
      long getViewNumber();
  
      /**
       * <pre>
       *sequence
       * </pre>
       *
       * <code>int64 sequence = 2;</code>
       */
      long getSequence();
  
      /**
       * <code>int64 replica_id = 3;</code>
       */
      long getReplicaId();
  
      /**
       * <pre>
       *V
       * </pre>
       *
       * <code>repeated .PbftEnv view_changes = 4;</code>
       */
      java.util.List<Consensus.PbftEnv> 
          getViewChangesList();
      /**
       * <pre>
       *V
       * </pre>
       *
       * <code>repeated .PbftEnv view_changes = 4;</code>
       */
      Consensus.PbftEnv getViewChanges(int index);
      /**
       * <pre>
       *V
       * </pre>
       *
       * <code>repeated .PbftEnv view_changes = 4;</code>
       */
      int getViewChangesCount();
      /**
       * <pre>
       *V
       * </pre>
       *
       * <code>repeated .PbftEnv view_changes = 4;</code>
       */
      java.util.List<? extends Consensus.PbftEnvOrBuilder> 
          getViewChangesOrBuilderList();
      /**
       * <pre>
       *V
       * </pre>
       *
       * <code>repeated .PbftEnv view_changes = 4;</code>
       */
      Consensus.PbftEnvOrBuilder getViewChangesOrBuilder(
          int index);
  
      /**
       * <pre>
       *O
       * </pre>
       *
       * <code>.PbftEnv pre_prepare = 5;</code>
       */
      boolean hasPrePrepare();
      /**
       * <pre>
       *O
       * </pre>
       *
       * <code>.PbftEnv pre_prepare = 5;</code>
       */
      Consensus.PbftEnv getPrePrepare();
      /**
       * <pre>
       *O
       * </pre>
       *
       * <code>.PbftEnv pre_prepare = 5;</code>
       */
      Consensus.PbftEnvOrBuilder getPrePrepareOrBuilder();
  
      /**
       * <code>.PbftEnv pre_block = 6;</code>
       */
      boolean hasPreBlock();
      /**
       * <code>.PbftEnv pre_block = 6;</code>
       */
      Consensus.PbftEnv getPreBlock();
      /**
       * <code>.PbftEnv pre_block = 6;</code>
       */
      Consensus.PbftEnvOrBuilder getPreBlockOrBuilder();
    }
    /**
     * Protobuf type {@code PbftNewView}
     */
    public  static final class PbftNewView extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PbftNewView)
        PbftNewViewOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PbftNewView.newBuilder() to construct.
      private PbftNewView(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PbftNewView() {
        viewChanges_ = java.util.Collections.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PbftNewView();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private PbftNewView(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
  
                viewNumber_ = input.readInt64();
                break;
              }
              case 16: {
  
                sequence_ = input.readInt64();
                break;
              }
              case 24: {
  
                replicaId_ = input.readInt64();
                break;
              }
              case 34: {
                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                  viewChanges_ = new java.util.ArrayList<Consensus.PbftEnv>();
                  mutable_bitField0_ |= 0x00000001;
                }
                viewChanges_.add(
                    input.readMessage(Consensus.PbftEnv.parser(), extensionRegistry));
                break;
              }
              case 42: {
                Consensus.PbftEnv.Builder subBuilder = null;
                if (prePrepare_ != null) {
                  subBuilder = prePrepare_.toBuilder();
                }
                prePrepare_ = input.readMessage(Consensus.PbftEnv.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(prePrepare_);
                  prePrepare_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 50: {
                Consensus.PbftEnv.Builder subBuilder = null;
                if (preBlock_ != null) {
                  subBuilder = preBlock_.toBuilder();
                }
                preBlock_ = input.readMessage(Consensus.PbftEnv.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(preBlock_);
                  preBlock_ = subBuilder.buildPartial();
                }
  
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000001) != 0)) {
            viewChanges_ = java.util.Collections.unmodifiableList(viewChanges_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_PbftNewView_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_PbftNewView_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.PbftNewView.class, Consensus.PbftNewView.Builder.class);
      }
  
      public static final int VIEW_NUMBER_FIELD_NUMBER = 1;
      private long viewNumber_;
      /**
       * <pre>
       *v+1
       * </pre>
       *
       * <code>int64 view_number = 1;</code>
       */
      public long getViewNumber() {
        return viewNumber_;
      }
  
      public static final int SEQUENCE_FIELD_NUMBER = 2;
      private long sequence_;
      /**
       * <pre>
       *sequence
       * </pre>
       *
       * <code>int64 sequence = 2;</code>
       */
      public long getSequence() {
        return sequence_;
      }
  
      public static final int REPLICA_ID_FIELD_NUMBER = 3;
      private long replicaId_;
      /**
       * <code>int64 replica_id = 3;</code>
       */
      public long getReplicaId() {
        return replicaId_;
      }
  
      public static final int VIEW_CHANGES_FIELD_NUMBER = 4;
      private java.util.List<Consensus.PbftEnv> viewChanges_;
      /**
       * <pre>
       *V
       * </pre>
       *
       * <code>repeated .PbftEnv view_changes = 4;</code>
       */
      public java.util.List<Consensus.PbftEnv> getViewChangesList() {
        return viewChanges_;
      }
      /**
       * <pre>
       *V
       * </pre>
       *
       * <code>repeated .PbftEnv view_changes = 4;</code>
       */
      public java.util.List<? extends Consensus.PbftEnvOrBuilder> 
          getViewChangesOrBuilderList() {
        return viewChanges_;
      }
      /**
       * <pre>
       *V
       * </pre>
       *
       * <code>repeated .PbftEnv view_changes = 4;</code>
       */
      public int getViewChangesCount() {
        return viewChanges_.size();
      }
      /**
       * <pre>
       *V
       * </pre>
       *
       * <code>repeated .PbftEnv view_changes = 4;</code>
       */
      public Consensus.PbftEnv getViewChanges(int index) {
        return viewChanges_.get(index);
      }
      /**
       * <pre>
       *V
       * </pre>
       *
       * <code>repeated .PbftEnv view_changes = 4;</code>
       */
      public Consensus.PbftEnvOrBuilder getViewChangesOrBuilder(
          int index) {
        return viewChanges_.get(index);
      }
  
      public static final int PRE_PREPARE_FIELD_NUMBER = 5;
      private Consensus.PbftEnv prePrepare_;
      /**
       * <pre>
       *O
       * </pre>
       *
       * <code>.PbftEnv pre_prepare = 5;</code>
       */
      public boolean hasPrePrepare() {
        return prePrepare_ != null;
      }
      /**
       * <pre>
       *O
       * </pre>
       *
       * <code>.PbftEnv pre_prepare = 5;</code>
       */
      public Consensus.PbftEnv getPrePrepare() {
        return prePrepare_ == null ? Consensus.PbftEnv.getDefaultInstance() : prePrepare_;
      }
      /**
       * <pre>
       *O
       * </pre>
       *
       * <code>.PbftEnv pre_prepare = 5;</code>
       */
      public Consensus.PbftEnvOrBuilder getPrePrepareOrBuilder() {
        return getPrePrepare();
      }
  
      public static final int PRE_BLOCK_FIELD_NUMBER = 6;
      private Consensus.PbftEnv preBlock_;
      /**
       * <code>.PbftEnv pre_block = 6;</code>
       */
      public boolean hasPreBlock() {
        return preBlock_ != null;
      }
      /**
       * <code>.PbftEnv pre_block = 6;</code>
       */
      public Consensus.PbftEnv getPreBlock() {
        return preBlock_ == null ? Consensus.PbftEnv.getDefaultInstance() : preBlock_;
      }
      /**
       * <code>.PbftEnv pre_block = 6;</code>
       */
      public Consensus.PbftEnvOrBuilder getPreBlockOrBuilder() {
        return getPreBlock();
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (viewNumber_ != 0L) {
          output.writeInt64(1, viewNumber_);
        }
        if (sequence_ != 0L) {
          output.writeInt64(2, sequence_);
        }
        if (replicaId_ != 0L) {
          output.writeInt64(3, replicaId_);
        }
        for (int i = 0; i < viewChanges_.size(); i++) {
          output.writeMessage(4, viewChanges_.get(i));
        }
        if (prePrepare_ != null) {
          output.writeMessage(5, getPrePrepare());
        }
        if (preBlock_ != null) {
          output.writeMessage(6, getPreBlock());
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (viewNumber_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, viewNumber_);
        }
        if (sequence_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, sequence_);
        }
        if (replicaId_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(3, replicaId_);
        }
        for (int i = 0; i < viewChanges_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, viewChanges_.get(i));
        }
        if (prePrepare_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getPrePrepare());
        }
        if (preBlock_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, getPreBlock());
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.PbftNewView)) {
          return super.equals(obj);
        }
        Consensus.PbftNewView other = (Consensus.PbftNewView) obj;
  
        if (getViewNumber()
            != other.getViewNumber()) return false;
        if (getSequence()
            != other.getSequence()) return false;
        if (getReplicaId()
            != other.getReplicaId()) return false;
        if (!getViewChangesList()
            .equals(other.getViewChangesList())) return false;
        if (hasPrePrepare() != other.hasPrePrepare()) return false;
        if (hasPrePrepare()) {
          if (!getPrePrepare()
              .equals(other.getPrePrepare())) return false;
        }
        if (hasPreBlock() != other.hasPreBlock()) return false;
        if (hasPreBlock()) {
          if (!getPreBlock()
              .equals(other.getPreBlock())) return false;
        }
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + VIEW_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getViewNumber());
        hash = (37 * hash) + SEQUENCE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSequence());
        hash = (37 * hash) + REPLICA_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getReplicaId());
        if (getViewChangesCount() > 0) {
          hash = (37 * hash) + VIEW_CHANGES_FIELD_NUMBER;
          hash = (53 * hash) + getViewChangesList().hashCode();
        }
        if (hasPrePrepare()) {
          hash = (37 * hash) + PRE_PREPARE_FIELD_NUMBER;
          hash = (53 * hash) + getPrePrepare().hashCode();
        }
        if (hasPreBlock()) {
          hash = (37 * hash) + PRE_BLOCK_FIELD_NUMBER;
          hash = (53 * hash) + getPreBlock().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.PbftNewView parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftNewView parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftNewView parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftNewView parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftNewView parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftNewView parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftNewView parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftNewView parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftNewView parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.PbftNewView parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftNewView parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftNewView parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.PbftNewView prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PbftNewView}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PbftNewView)
          Consensus.PbftNewViewOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_PbftNewView_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_PbftNewView_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.PbftNewView.class, Consensus.PbftNewView.Builder.class);
        }
  
        // Construct using Consensus.PbftNewView.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getViewChangesFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          viewNumber_ = 0L;
  
          sequence_ = 0L;
  
          replicaId_ = 0L;
  
          if (viewChangesBuilder_ == null) {
            viewChanges_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            viewChangesBuilder_.clear();
          }
          if (prePrepareBuilder_ == null) {
            prePrepare_ = null;
          } else {
            prePrepare_ = null;
            prePrepareBuilder_ = null;
          }
          if (preBlockBuilder_ == null) {
            preBlock_ = null;
          } else {
            preBlock_ = null;
            preBlockBuilder_ = null;
          }
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_PbftNewView_descriptor;
        }
  
        @java.lang.Override
        public Consensus.PbftNewView getDefaultInstanceForType() {
          return Consensus.PbftNewView.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.PbftNewView build() {
          Consensus.PbftNewView result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.PbftNewView buildPartial() {
          Consensus.PbftNewView result = new Consensus.PbftNewView(this);
          int from_bitField0_ = bitField0_;
          result.viewNumber_ = viewNumber_;
          result.sequence_ = sequence_;
          result.replicaId_ = replicaId_;
          if (viewChangesBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              viewChanges_ = java.util.Collections.unmodifiableList(viewChanges_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.viewChanges_ = viewChanges_;
          } else {
            result.viewChanges_ = viewChangesBuilder_.build();
          }
          if (prePrepareBuilder_ == null) {
            result.prePrepare_ = prePrepare_;
          } else {
            result.prePrepare_ = prePrepareBuilder_.build();
          }
          if (preBlockBuilder_ == null) {
            result.preBlock_ = preBlock_;
          } else {
            result.preBlock_ = preBlockBuilder_.build();
          }
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.PbftNewView) {
            return mergeFrom((Consensus.PbftNewView)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.PbftNewView other) {
          if (other == Consensus.PbftNewView.getDefaultInstance()) return this;
          if (other.getViewNumber() != 0L) {
            setViewNumber(other.getViewNumber());
          }
          if (other.getSequence() != 0L) {
            setSequence(other.getSequence());
          }
          if (other.getReplicaId() != 0L) {
            setReplicaId(other.getReplicaId());
          }
          if (viewChangesBuilder_ == null) {
            if (!other.viewChanges_.isEmpty()) {
              if (viewChanges_.isEmpty()) {
                viewChanges_ = other.viewChanges_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureViewChangesIsMutable();
                viewChanges_.addAll(other.viewChanges_);
              }
              onChanged();
            }
          } else {
            if (!other.viewChanges_.isEmpty()) {
              if (viewChangesBuilder_.isEmpty()) {
                viewChangesBuilder_.dispose();
                viewChangesBuilder_ = null;
                viewChanges_ = other.viewChanges_;
                bitField0_ = (bitField0_ & ~0x00000001);
                viewChangesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getViewChangesFieldBuilder() : null;
              } else {
                viewChangesBuilder_.addAllMessages(other.viewChanges_);
              }
            }
          }
          if (other.hasPrePrepare()) {
            mergePrePrepare(other.getPrePrepare());
          }
          if (other.hasPreBlock()) {
            mergePreBlock(other.getPreBlock());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.PbftNewView parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.PbftNewView) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private long viewNumber_ ;
        /**
         * <pre>
         *v+1
         * </pre>
         *
         * <code>int64 view_number = 1;</code>
         */
        public long getViewNumber() {
          return viewNumber_;
        }
        /**
         * <pre>
         *v+1
         * </pre>
         *
         * <code>int64 view_number = 1;</code>
         */
        public Builder setViewNumber(long value) {
          
          viewNumber_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *v+1
         * </pre>
         *
         * <code>int64 view_number = 1;</code>
         */
        public Builder clearViewNumber() {
          
          viewNumber_ = 0L;
          onChanged();
          return this;
        }
  
        private long sequence_ ;
        /**
         * <pre>
         *sequence
         * </pre>
         *
         * <code>int64 sequence = 2;</code>
         */
        public long getSequence() {
          return sequence_;
        }
        /**
         * <pre>
         *sequence
         * </pre>
         *
         * <code>int64 sequence = 2;</code>
         */
        public Builder setSequence(long value) {
          
          sequence_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *sequence
         * </pre>
         *
         * <code>int64 sequence = 2;</code>
         */
        public Builder clearSequence() {
          
          sequence_ = 0L;
          onChanged();
          return this;
        }
  
        private long replicaId_ ;
        /**
         * <code>int64 replica_id = 3;</code>
         */
        public long getReplicaId() {
          return replicaId_;
        }
        /**
         * <code>int64 replica_id = 3;</code>
         */
        public Builder setReplicaId(long value) {
          
          replicaId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 replica_id = 3;</code>
         */
        public Builder clearReplicaId() {
          
          replicaId_ = 0L;
          onChanged();
          return this;
        }
  
        private java.util.List<Consensus.PbftEnv> viewChanges_ =
          java.util.Collections.emptyList();
        private void ensureViewChangesIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            viewChanges_ = new java.util.ArrayList<Consensus.PbftEnv>(viewChanges_);
            bitField0_ |= 0x00000001;
           }
        }
  
        private com.google.protobuf.RepeatedFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> viewChangesBuilder_;
  
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public java.util.List<Consensus.PbftEnv> getViewChangesList() {
          if (viewChangesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(viewChanges_);
          } else {
            return viewChangesBuilder_.getMessageList();
          }
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public int getViewChangesCount() {
          if (viewChangesBuilder_ == null) {
            return viewChanges_.size();
          } else {
            return viewChangesBuilder_.getCount();
          }
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Consensus.PbftEnv getViewChanges(int index) {
          if (viewChangesBuilder_ == null) {
            return viewChanges_.get(index);
          } else {
            return viewChangesBuilder_.getMessage(index);
          }
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Builder setViewChanges(
            int index, Consensus.PbftEnv value) {
          if (viewChangesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureViewChangesIsMutable();
            viewChanges_.set(index, value);
            onChanged();
          } else {
            viewChangesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Builder setViewChanges(
            int index, Consensus.PbftEnv.Builder builderForValue) {
          if (viewChangesBuilder_ == null) {
            ensureViewChangesIsMutable();
            viewChanges_.set(index, builderForValue.build());
            onChanged();
          } else {
            viewChangesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Builder addViewChanges(Consensus.PbftEnv value) {
          if (viewChangesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureViewChangesIsMutable();
            viewChanges_.add(value);
            onChanged();
          } else {
            viewChangesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Builder addViewChanges(
            int index, Consensus.PbftEnv value) {
          if (viewChangesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureViewChangesIsMutable();
            viewChanges_.add(index, value);
            onChanged();
          } else {
            viewChangesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Builder addViewChanges(
            Consensus.PbftEnv.Builder builderForValue) {
          if (viewChangesBuilder_ == null) {
            ensureViewChangesIsMutable();
            viewChanges_.add(builderForValue.build());
            onChanged();
          } else {
            viewChangesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Builder addViewChanges(
            int index, Consensus.PbftEnv.Builder builderForValue) {
          if (viewChangesBuilder_ == null) {
            ensureViewChangesIsMutable();
            viewChanges_.add(index, builderForValue.build());
            onChanged();
          } else {
            viewChangesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Builder addAllViewChanges(
            java.lang.Iterable<? extends Consensus.PbftEnv> values) {
          if (viewChangesBuilder_ == null) {
            ensureViewChangesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, viewChanges_);
            onChanged();
          } else {
            viewChangesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Builder clearViewChanges() {
          if (viewChangesBuilder_ == null) {
            viewChanges_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            viewChangesBuilder_.clear();
          }
          return this;
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Builder removeViewChanges(int index) {
          if (viewChangesBuilder_ == null) {
            ensureViewChangesIsMutable();
            viewChanges_.remove(index);
            onChanged();
          } else {
            viewChangesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Consensus.PbftEnv.Builder getViewChangesBuilder(
            int index) {
          return getViewChangesFieldBuilder().getBuilder(index);
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Consensus.PbftEnvOrBuilder getViewChangesOrBuilder(
            int index) {
          if (viewChangesBuilder_ == null) {
            return viewChanges_.get(index);  } else {
            return viewChangesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public java.util.List<? extends Consensus.PbftEnvOrBuilder> 
             getViewChangesOrBuilderList() {
          if (viewChangesBuilder_ != null) {
            return viewChangesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(viewChanges_);
          }
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Consensus.PbftEnv.Builder addViewChangesBuilder() {
          return getViewChangesFieldBuilder().addBuilder(
              Consensus.PbftEnv.getDefaultInstance());
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public Consensus.PbftEnv.Builder addViewChangesBuilder(
            int index) {
          return getViewChangesFieldBuilder().addBuilder(
              index, Consensus.PbftEnv.getDefaultInstance());
        }
        /**
         * <pre>
         *V
         * </pre>
         *
         * <code>repeated .PbftEnv view_changes = 4;</code>
         */
        public java.util.List<Consensus.PbftEnv.Builder> 
             getViewChangesBuilderList() {
          return getViewChangesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> 
            getViewChangesFieldBuilder() {
          if (viewChangesBuilder_ == null) {
            viewChangesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder>(
                    viewChanges_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            viewChanges_ = null;
          }
          return viewChangesBuilder_;
        }
  
        private Consensus.PbftEnv prePrepare_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> prePrepareBuilder_;
        /**
         * <pre>
         *O
         * </pre>
         *
         * <code>.PbftEnv pre_prepare = 5;</code>
         */
        public boolean hasPrePrepare() {
          return prePrepareBuilder_ != null || prePrepare_ != null;
        }
        /**
         * <pre>
         *O
         * </pre>
         *
         * <code>.PbftEnv pre_prepare = 5;</code>
         */
        public Consensus.PbftEnv getPrePrepare() {
          if (prePrepareBuilder_ == null) {
            return prePrepare_ == null ? Consensus.PbftEnv.getDefaultInstance() : prePrepare_;
          } else {
            return prePrepareBuilder_.getMessage();
          }
        }
        /**
         * <pre>
         *O
         * </pre>
         *
         * <code>.PbftEnv pre_prepare = 5;</code>
         */
        public Builder setPrePrepare(Consensus.PbftEnv value) {
          if (prePrepareBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            prePrepare_ = value;
            onChanged();
          } else {
            prePrepareBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <pre>
         *O
         * </pre>
         *
         * <code>.PbftEnv pre_prepare = 5;</code>
         */
        public Builder setPrePrepare(
            Consensus.PbftEnv.Builder builderForValue) {
          if (prePrepareBuilder_ == null) {
            prePrepare_ = builderForValue.build();
            onChanged();
          } else {
            prePrepareBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <pre>
         *O
         * </pre>
         *
         * <code>.PbftEnv pre_prepare = 5;</code>
         */
        public Builder mergePrePrepare(Consensus.PbftEnv value) {
          if (prePrepareBuilder_ == null) {
            if (prePrepare_ != null) {
              prePrepare_ =
                Consensus.PbftEnv.newBuilder(prePrepare_).mergeFrom(value).buildPartial();
            } else {
              prePrepare_ = value;
            }
            onChanged();
          } else {
            prePrepareBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <pre>
         *O
         * </pre>
         *
         * <code>.PbftEnv pre_prepare = 5;</code>
         */
        public Builder clearPrePrepare() {
          if (prePrepareBuilder_ == null) {
            prePrepare_ = null;
            onChanged();
          } else {
            prePrepare_ = null;
            prePrepareBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <pre>
         *O
         * </pre>
         *
         * <code>.PbftEnv pre_prepare = 5;</code>
         */
        public Consensus.PbftEnv.Builder getPrePrepareBuilder() {
          
          onChanged();
          return getPrePrepareFieldBuilder().getBuilder();
        }
        /**
         * <pre>
         *O
         * </pre>
         *
         * <code>.PbftEnv pre_prepare = 5;</code>
         */
        public Consensus.PbftEnvOrBuilder getPrePrepareOrBuilder() {
          if (prePrepareBuilder_ != null) {
            return prePrepareBuilder_.getMessageOrBuilder();
          } else {
            return prePrepare_ == null ?
                Consensus.PbftEnv.getDefaultInstance() : prePrepare_;
          }
        }
        /**
         * <pre>
         *O
         * </pre>
         *
         * <code>.PbftEnv pre_prepare = 5;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> 
            getPrePrepareFieldBuilder() {
          if (prePrepareBuilder_ == null) {
            prePrepareBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder>(
                    getPrePrepare(),
                    getParentForChildren(),
                    isClean());
            prePrepare_ = null;
          }
          return prePrepareBuilder_;
        }
  
        private Consensus.PbftEnv preBlock_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> preBlockBuilder_;
        /**
         * <code>.PbftEnv pre_block = 6;</code>
         */
        public boolean hasPreBlock() {
          return preBlockBuilder_ != null || preBlock_ != null;
        }
        /**
         * <code>.PbftEnv pre_block = 6;</code>
         */
        public Consensus.PbftEnv getPreBlock() {
          if (preBlockBuilder_ == null) {
            return preBlock_ == null ? Consensus.PbftEnv.getDefaultInstance() : preBlock_;
          } else {
            return preBlockBuilder_.getMessage();
          }
        }
        /**
         * <code>.PbftEnv pre_block = 6;</code>
         */
        public Builder setPreBlock(Consensus.PbftEnv value) {
          if (preBlockBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            preBlock_ = value;
            onChanged();
          } else {
            preBlockBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv pre_block = 6;</code>
         */
        public Builder setPreBlock(
            Consensus.PbftEnv.Builder builderForValue) {
          if (preBlockBuilder_ == null) {
            preBlock_ = builderForValue.build();
            onChanged();
          } else {
            preBlockBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv pre_block = 6;</code>
         */
        public Builder mergePreBlock(Consensus.PbftEnv value) {
          if (preBlockBuilder_ == null) {
            if (preBlock_ != null) {
              preBlock_ =
                Consensus.PbftEnv.newBuilder(preBlock_).mergeFrom(value).buildPartial();
            } else {
              preBlock_ = value;
            }
            onChanged();
          } else {
            preBlockBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv pre_block = 6;</code>
         */
        public Builder clearPreBlock() {
          if (preBlockBuilder_ == null) {
            preBlock_ = null;
            onChanged();
          } else {
            preBlock_ = null;
            preBlockBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv pre_block = 6;</code>
         */
        public Consensus.PbftEnv.Builder getPreBlockBuilder() {
          
          onChanged();
          return getPreBlockFieldBuilder().getBuilder();
        }
        /**
         * <code>.PbftEnv pre_block = 6;</code>
         */
        public Consensus.PbftEnvOrBuilder getPreBlockOrBuilder() {
          if (preBlockBuilder_ != null) {
            return preBlockBuilder_.getMessageOrBuilder();
          } else {
            return preBlock_ == null ?
                Consensus.PbftEnv.getDefaultInstance() : preBlock_;
          }
        }
        /**
         * <code>.PbftEnv pre_block = 6;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> 
            getPreBlockFieldBuilder() {
          if (preBlockBuilder_ == null) {
            preBlockBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder>(
                    getPreBlock(),
                    getParentForChildren(),
                    isClean());
            preBlock_ = null;
          }
          return preBlockBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PbftNewView)
      }
  
      // @@protoc_insertion_point(class_scope:PbftNewView)
      private static final Consensus.PbftNewView DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.PbftNewView();
      }
  
      public static Consensus.PbftNewView getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<PbftNewView>
          PARSER = new com.google.protobuf.AbstractParser<PbftNewView>() {
        @java.lang.Override
        public PbftNewView parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PbftNewView(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<PbftNewView> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<PbftNewView> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.PbftNewView getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PbftOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Pbft)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <pre>
       *for sending again
       * </pre>
       *
       * <code>int64 round_number = 1;</code>
       */
      long getRoundNumber();
  
      /**
       * <code>.PbftMessageType type = 2;</code>
       */
      int getTypeValue();
      /**
       * <code>.PbftMessageType type = 2;</code>
       */
      Consensus.PbftMessageType getType();
  
      /**
       * <code>.PbftPrePrepare pre_prepare = 3;</code>
       */
      boolean hasPrePrepare();
      /**
       * <code>.PbftPrePrepare pre_prepare = 3;</code>
       */
      Consensus.PbftPrePrepare getPrePrepare();
      /**
       * <code>.PbftPrePrepare pre_prepare = 3;</code>
       */
      Consensus.PbftPrePrepareOrBuilder getPrePrepareOrBuilder();
  
      /**
       * <code>.PbftPrepare prepare = 4;</code>
       */
      boolean hasPrepare();
      /**
       * <code>.PbftPrepare prepare = 4;</code>
       */
      Consensus.PbftPrepare getPrepare();
      /**
       * <code>.PbftPrepare prepare = 4;</code>
       */
      Consensus.PbftPrepareOrBuilder getPrepareOrBuilder();
  
      /**
       * <code>.PbftCommit commit = 5;</code>
       */
      boolean hasCommit();
      /**
       * <code>.PbftCommit commit = 5;</code>
       */
      Consensus.PbftCommit getCommit();
      /**
       * <code>.PbftCommit commit = 5;</code>
       */
      Consensus.PbftCommitOrBuilder getCommitOrBuilder();
  
      /**
       * <code>.PbftViewChange view_change = 6;</code>
       */
      boolean hasViewChange();
      /**
       * <code>.PbftViewChange view_change = 6;</code>
       */
      Consensus.PbftViewChange getViewChange();
      /**
       * <code>.PbftViewChange view_change = 6;</code>
       */
      Consensus.PbftViewChangeOrBuilder getViewChangeOrBuilder();
  
      /**
       * <code>.PbftNewView new_view = 7;</code>
       */
      boolean hasNewView();
      /**
       * <code>.PbftNewView new_view = 7;</code>
       */
      Consensus.PbftNewView getNewView();
      /**
       * <code>.PbftNewView new_view = 7;</code>
       */
      Consensus.PbftNewViewOrBuilder getNewViewOrBuilder();
  
      /**
       * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
       */
      boolean hasViewChangeWithRawvalue();
      /**
       * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
       */
      Consensus.PbftViewChangeWithRawValue getViewChangeWithRawvalue();
      /**
       * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
       */
      Consensus.PbftViewChangeWithRawValueOrBuilder getViewChangeWithRawvalueOrBuilder();
  
      /**
       * <code>int64 chain_id = 9;</code>
       */
      long getChainId();
    }
    /**
     * Protobuf type {@code Pbft}
     */
    public  static final class Pbft extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:Pbft)
        PbftOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Pbft.newBuilder() to construct.
      private Pbft(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Pbft() {
        type_ = 0;
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Pbft();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Pbft(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
  
                roundNumber_ = input.readInt64();
                break;
              }
              case 16: {
                int rawValue = input.readEnum();
  
                type_ = rawValue;
                break;
              }
              case 26: {
                Consensus.PbftPrePrepare.Builder subBuilder = null;
                if (prePrepare_ != null) {
                  subBuilder = prePrepare_.toBuilder();
                }
                prePrepare_ = input.readMessage(Consensus.PbftPrePrepare.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(prePrepare_);
                  prePrepare_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 34: {
                Consensus.PbftPrepare.Builder subBuilder = null;
                if (prepare_ != null) {
                  subBuilder = prepare_.toBuilder();
                }
                prepare_ = input.readMessage(Consensus.PbftPrepare.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(prepare_);
                  prepare_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 42: {
                Consensus.PbftCommit.Builder subBuilder = null;
                if (commit_ != null) {
                  subBuilder = commit_.toBuilder();
                }
                commit_ = input.readMessage(Consensus.PbftCommit.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(commit_);
                  commit_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 50: {
                Consensus.PbftViewChange.Builder subBuilder = null;
                if (viewChange_ != null) {
                  subBuilder = viewChange_.toBuilder();
                }
                viewChange_ = input.readMessage(Consensus.PbftViewChange.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(viewChange_);
                  viewChange_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 58: {
                Consensus.PbftNewView.Builder subBuilder = null;
                if (newView_ != null) {
                  subBuilder = newView_.toBuilder();
                }
                newView_ = input.readMessage(Consensus.PbftNewView.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(newView_);
                  newView_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 66: {
                Consensus.PbftViewChangeWithRawValue.Builder subBuilder = null;
                if (viewChangeWithRawvalue_ != null) {
                  subBuilder = viewChangeWithRawvalue_.toBuilder();
                }
                viewChangeWithRawvalue_ = input.readMessage(Consensus.PbftViewChangeWithRawValue.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(viewChangeWithRawvalue_);
                  viewChangeWithRawvalue_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 72: {
  
                chainId_ = input.readInt64();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_Pbft_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_Pbft_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.Pbft.class, Consensus.Pbft.Builder.class);
      }
  
      public static final int ROUND_NUMBER_FIELD_NUMBER = 1;
      private long roundNumber_;
      /**
       * <pre>
       *for sending again
       * </pre>
       *
       * <code>int64 round_number = 1;</code>
       */
      public long getRoundNumber() {
        return roundNumber_;
      }
  
      public static final int TYPE_FIELD_NUMBER = 2;
      private int type_;
      /**
       * <code>.PbftMessageType type = 2;</code>
       */
      public int getTypeValue() {
        return type_;
      }
      /**
       * <code>.PbftMessageType type = 2;</code>
       */
      public Consensus.PbftMessageType getType() {
        @SuppressWarnings("deprecation")
        Consensus.PbftMessageType result = Consensus.PbftMessageType.valueOf(type_);
        return result == null ? Consensus.PbftMessageType.UNRECOGNIZED : result;
      }
  
      public static final int PRE_PREPARE_FIELD_NUMBER = 3;
      private Consensus.PbftPrePrepare prePrepare_;
      /**
       * <code>.PbftPrePrepare pre_prepare = 3;</code>
       */
      public boolean hasPrePrepare() {
        return prePrepare_ != null;
      }
      /**
       * <code>.PbftPrePrepare pre_prepare = 3;</code>
       */
      public Consensus.PbftPrePrepare getPrePrepare() {
        return prePrepare_ == null ? Consensus.PbftPrePrepare.getDefaultInstance() : prePrepare_;
      }
      /**
       * <code>.PbftPrePrepare pre_prepare = 3;</code>
       */
      public Consensus.PbftPrePrepareOrBuilder getPrePrepareOrBuilder() {
        return getPrePrepare();
      }
  
      public static final int PREPARE_FIELD_NUMBER = 4;
      private Consensus.PbftPrepare prepare_;
      /**
       * <code>.PbftPrepare prepare = 4;</code>
       */
      public boolean hasPrepare() {
        return prepare_ != null;
      }
      /**
       * <code>.PbftPrepare prepare = 4;</code>
       */
      public Consensus.PbftPrepare getPrepare() {
        return prepare_ == null ? Consensus.PbftPrepare.getDefaultInstance() : prepare_;
      }
      /**
       * <code>.PbftPrepare prepare = 4;</code>
       */
      public Consensus.PbftPrepareOrBuilder getPrepareOrBuilder() {
        return getPrepare();
      }
  
      public static final int COMMIT_FIELD_NUMBER = 5;
      private Consensus.PbftCommit commit_;
      /**
       * <code>.PbftCommit commit = 5;</code>
       */
      public boolean hasCommit() {
        return commit_ != null;
      }
      /**
       * <code>.PbftCommit commit = 5;</code>
       */
      public Consensus.PbftCommit getCommit() {
        return commit_ == null ? Consensus.PbftCommit.getDefaultInstance() : commit_;
      }
      /**
       * <code>.PbftCommit commit = 5;</code>
       */
      public Consensus.PbftCommitOrBuilder getCommitOrBuilder() {
        return getCommit();
      }
  
      public static final int VIEW_CHANGE_FIELD_NUMBER = 6;
      private Consensus.PbftViewChange viewChange_;
      /**
       * <code>.PbftViewChange view_change = 6;</code>
       */
      public boolean hasViewChange() {
        return viewChange_ != null;
      }
      /**
       * <code>.PbftViewChange view_change = 6;</code>
       */
      public Consensus.PbftViewChange getViewChange() {
        return viewChange_ == null ? Consensus.PbftViewChange.getDefaultInstance() : viewChange_;
      }
      /**
       * <code>.PbftViewChange view_change = 6;</code>
       */
      public Consensus.PbftViewChangeOrBuilder getViewChangeOrBuilder() {
        return getViewChange();
      }
  
      public static final int NEW_VIEW_FIELD_NUMBER = 7;
      private Consensus.PbftNewView newView_;
      /**
       * <code>.PbftNewView new_view = 7;</code>
       */
      public boolean hasNewView() {
        return newView_ != null;
      }
      /**
       * <code>.PbftNewView new_view = 7;</code>
       */
      public Consensus.PbftNewView getNewView() {
        return newView_ == null ? Consensus.PbftNewView.getDefaultInstance() : newView_;
      }
      /**
       * <code>.PbftNewView new_view = 7;</code>
       */
      public Consensus.PbftNewViewOrBuilder getNewViewOrBuilder() {
        return getNewView();
      }
  
      public static final int VIEW_CHANGE_WITH_RAWVALUE_FIELD_NUMBER = 8;
      private Consensus.PbftViewChangeWithRawValue viewChangeWithRawvalue_;
      /**
       * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
       */
      public boolean hasViewChangeWithRawvalue() {
        return viewChangeWithRawvalue_ != null;
      }
      /**
       * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
       */
      public Consensus.PbftViewChangeWithRawValue getViewChangeWithRawvalue() {
        return viewChangeWithRawvalue_ == null ? Consensus.PbftViewChangeWithRawValue.getDefaultInstance() : viewChangeWithRawvalue_;
      }
      /**
       * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
       */
      public Consensus.PbftViewChangeWithRawValueOrBuilder getViewChangeWithRawvalueOrBuilder() {
        return getViewChangeWithRawvalue();
      }
  
      public static final int CHAIN_ID_FIELD_NUMBER = 9;
      private long chainId_;
      /**
       * <code>int64 chain_id = 9;</code>
       */
      public long getChainId() {
        return chainId_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (roundNumber_ != 0L) {
          output.writeInt64(1, roundNumber_);
        }
        if (type_ != Consensus.PbftMessageType.PBFT_TYPE_PREPREPARE.getNumber()) {
          output.writeEnum(2, type_);
        }
        if (prePrepare_ != null) {
          output.writeMessage(3, getPrePrepare());
        }
        if (prepare_ != null) {
          output.writeMessage(4, getPrepare());
        }
        if (commit_ != null) {
          output.writeMessage(5, getCommit());
        }
        if (viewChange_ != null) {
          output.writeMessage(6, getViewChange());
        }
        if (newView_ != null) {
          output.writeMessage(7, getNewView());
        }
        if (viewChangeWithRawvalue_ != null) {
          output.writeMessage(8, getViewChangeWithRawvalue());
        }
        if (chainId_ != 0L) {
          output.writeInt64(9, chainId_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (roundNumber_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, roundNumber_);
        }
        if (type_ != Consensus.PbftMessageType.PBFT_TYPE_PREPREPARE.getNumber()) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(2, type_);
        }
        if (prePrepare_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getPrePrepare());
        }
        if (prepare_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, getPrepare());
        }
        if (commit_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getCommit());
        }
        if (viewChange_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, getViewChange());
        }
        if (newView_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(7, getNewView());
        }
        if (viewChangeWithRawvalue_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(8, getViewChangeWithRawvalue());
        }
        if (chainId_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(9, chainId_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.Pbft)) {
          return super.equals(obj);
        }
        Consensus.Pbft other = (Consensus.Pbft) obj;
  
        if (getRoundNumber()
            != other.getRoundNumber()) return false;
        if (type_ != other.type_) return false;
        if (hasPrePrepare() != other.hasPrePrepare()) return false;
        if (hasPrePrepare()) {
          if (!getPrePrepare()
              .equals(other.getPrePrepare())) return false;
        }
        if (hasPrepare() != other.hasPrepare()) return false;
        if (hasPrepare()) {
          if (!getPrepare()
              .equals(other.getPrepare())) return false;
        }
        if (hasCommit() != other.hasCommit()) return false;
        if (hasCommit()) {
          if (!getCommit()
              .equals(other.getCommit())) return false;
        }
        if (hasViewChange() != other.hasViewChange()) return false;
        if (hasViewChange()) {
          if (!getViewChange()
              .equals(other.getViewChange())) return false;
        }
        if (hasNewView() != other.hasNewView()) return false;
        if (hasNewView()) {
          if (!getNewView()
              .equals(other.getNewView())) return false;
        }
        if (hasViewChangeWithRawvalue() != other.hasViewChangeWithRawvalue()) return false;
        if (hasViewChangeWithRawvalue()) {
          if (!getViewChangeWithRawvalue()
              .equals(other.getViewChangeWithRawvalue())) return false;
        }
        if (getChainId()
            != other.getChainId()) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + ROUND_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getRoundNumber());
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + type_;
        if (hasPrePrepare()) {
          hash = (37 * hash) + PRE_PREPARE_FIELD_NUMBER;
          hash = (53 * hash) + getPrePrepare().hashCode();
        }
        if (hasPrepare()) {
          hash = (37 * hash) + PREPARE_FIELD_NUMBER;
          hash = (53 * hash) + getPrepare().hashCode();
        }
        if (hasCommit()) {
          hash = (37 * hash) + COMMIT_FIELD_NUMBER;
          hash = (53 * hash) + getCommit().hashCode();
        }
        if (hasViewChange()) {
          hash = (37 * hash) + VIEW_CHANGE_FIELD_NUMBER;
          hash = (53 * hash) + getViewChange().hashCode();
        }
        if (hasNewView()) {
          hash = (37 * hash) + NEW_VIEW_FIELD_NUMBER;
          hash = (53 * hash) + getNewView().hashCode();
        }
        if (hasViewChangeWithRawvalue()) {
          hash = (37 * hash) + VIEW_CHANGE_WITH_RAWVALUE_FIELD_NUMBER;
          hash = (53 * hash) + getViewChangeWithRawvalue().hashCode();
        }
        hash = (37 * hash) + CHAIN_ID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getChainId());
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.Pbft parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.Pbft parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.Pbft parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.Pbft parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.Pbft parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.Pbft parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.Pbft parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.Pbft parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.Pbft parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.Pbft parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.Pbft parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.Pbft parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.Pbft prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code Pbft}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:Pbft)
          Consensus.PbftOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_Pbft_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_Pbft_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.Pbft.class, Consensus.Pbft.Builder.class);
        }
  
        // Construct using Consensus.Pbft.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          roundNumber_ = 0L;
  
          type_ = 0;
  
          if (prePrepareBuilder_ == null) {
            prePrepare_ = null;
          } else {
            prePrepare_ = null;
            prePrepareBuilder_ = null;
          }
          if (prepareBuilder_ == null) {
            prepare_ = null;
          } else {
            prepare_ = null;
            prepareBuilder_ = null;
          }
          if (commitBuilder_ == null) {
            commit_ = null;
          } else {
            commit_ = null;
            commitBuilder_ = null;
          }
          if (viewChangeBuilder_ == null) {
            viewChange_ = null;
          } else {
            viewChange_ = null;
            viewChangeBuilder_ = null;
          }
          if (newViewBuilder_ == null) {
            newView_ = null;
          } else {
            newView_ = null;
            newViewBuilder_ = null;
          }
          if (viewChangeWithRawvalueBuilder_ == null) {
            viewChangeWithRawvalue_ = null;
          } else {
            viewChangeWithRawvalue_ = null;
            viewChangeWithRawvalueBuilder_ = null;
          }
          chainId_ = 0L;
  
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_Pbft_descriptor;
        }
  
        @java.lang.Override
        public Consensus.Pbft getDefaultInstanceForType() {
          return Consensus.Pbft.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.Pbft build() {
          Consensus.Pbft result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.Pbft buildPartial() {
          Consensus.Pbft result = new Consensus.Pbft(this);
          result.roundNumber_ = roundNumber_;
          result.type_ = type_;
          if (prePrepareBuilder_ == null) {
            result.prePrepare_ = prePrepare_;
          } else {
            result.prePrepare_ = prePrepareBuilder_.build();
          }
          if (prepareBuilder_ == null) {
            result.prepare_ = prepare_;
          } else {
            result.prepare_ = prepareBuilder_.build();
          }
          if (commitBuilder_ == null) {
            result.commit_ = commit_;
          } else {
            result.commit_ = commitBuilder_.build();
          }
          if (viewChangeBuilder_ == null) {
            result.viewChange_ = viewChange_;
          } else {
            result.viewChange_ = viewChangeBuilder_.build();
          }
          if (newViewBuilder_ == null) {
            result.newView_ = newView_;
          } else {
            result.newView_ = newViewBuilder_.build();
          }
          if (viewChangeWithRawvalueBuilder_ == null) {
            result.viewChangeWithRawvalue_ = viewChangeWithRawvalue_;
          } else {
            result.viewChangeWithRawvalue_ = viewChangeWithRawvalueBuilder_.build();
          }
          result.chainId_ = chainId_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.Pbft) {
            return mergeFrom((Consensus.Pbft)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.Pbft other) {
          if (other == Consensus.Pbft.getDefaultInstance()) return this;
          if (other.getRoundNumber() != 0L) {
            setRoundNumber(other.getRoundNumber());
          }
          if (other.type_ != 0) {
            setTypeValue(other.getTypeValue());
          }
          if (other.hasPrePrepare()) {
            mergePrePrepare(other.getPrePrepare());
          }
          if (other.hasPrepare()) {
            mergePrepare(other.getPrepare());
          }
          if (other.hasCommit()) {
            mergeCommit(other.getCommit());
          }
          if (other.hasViewChange()) {
            mergeViewChange(other.getViewChange());
          }
          if (other.hasNewView()) {
            mergeNewView(other.getNewView());
          }
          if (other.hasViewChangeWithRawvalue()) {
            mergeViewChangeWithRawvalue(other.getViewChangeWithRawvalue());
          }
          if (other.getChainId() != 0L) {
            setChainId(other.getChainId());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.Pbft parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.Pbft) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
  
        private long roundNumber_ ;
        /**
         * <pre>
         *for sending again
         * </pre>
         *
         * <code>int64 round_number = 1;</code>
         */
        public long getRoundNumber() {
          return roundNumber_;
        }
        /**
         * <pre>
         *for sending again
         * </pre>
         *
         * <code>int64 round_number = 1;</code>
         */
        public Builder setRoundNumber(long value) {
          
          roundNumber_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *for sending again
         * </pre>
         *
         * <code>int64 round_number = 1;</code>
         */
        public Builder clearRoundNumber() {
          
          roundNumber_ = 0L;
          onChanged();
          return this;
        }
  
        private int type_ = 0;
        /**
         * <code>.PbftMessageType type = 2;</code>
         */
        public int getTypeValue() {
          return type_;
        }
        /**
         * <code>.PbftMessageType type = 2;</code>
         */
        public Builder setTypeValue(int value) {
          type_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>.PbftMessageType type = 2;</code>
         */
        public Consensus.PbftMessageType getType() {
          @SuppressWarnings("deprecation")
          Consensus.PbftMessageType result = Consensus.PbftMessageType.valueOf(type_);
          return result == null ? Consensus.PbftMessageType.UNRECOGNIZED : result;
        }
        /**
         * <code>.PbftMessageType type = 2;</code>
         */
        public Builder setType(Consensus.PbftMessageType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          
          type_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>.PbftMessageType type = 2;</code>
         */
        public Builder clearType() {
          
          type_ = 0;
          onChanged();
          return this;
        }
  
        private Consensus.PbftPrePrepare prePrepare_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftPrePrepare, Consensus.PbftPrePrepare.Builder, Consensus.PbftPrePrepareOrBuilder> prePrepareBuilder_;
        /**
         * <code>.PbftPrePrepare pre_prepare = 3;</code>
         */
        public boolean hasPrePrepare() {
          return prePrepareBuilder_ != null || prePrepare_ != null;
        }
        /**
         * <code>.PbftPrePrepare pre_prepare = 3;</code>
         */
        public Consensus.PbftPrePrepare getPrePrepare() {
          if (prePrepareBuilder_ == null) {
            return prePrepare_ == null ? Consensus.PbftPrePrepare.getDefaultInstance() : prePrepare_;
          } else {
            return prePrepareBuilder_.getMessage();
          }
        }
        /**
         * <code>.PbftPrePrepare pre_prepare = 3;</code>
         */
        public Builder setPrePrepare(Consensus.PbftPrePrepare value) {
          if (prePrepareBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            prePrepare_ = value;
            onChanged();
          } else {
            prePrepareBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftPrePrepare pre_prepare = 3;</code>
         */
        public Builder setPrePrepare(
            Consensus.PbftPrePrepare.Builder builderForValue) {
          if (prePrepareBuilder_ == null) {
            prePrepare_ = builderForValue.build();
            onChanged();
          } else {
            prePrepareBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.PbftPrePrepare pre_prepare = 3;</code>
         */
        public Builder mergePrePrepare(Consensus.PbftPrePrepare value) {
          if (prePrepareBuilder_ == null) {
            if (prePrepare_ != null) {
              prePrepare_ =
                Consensus.PbftPrePrepare.newBuilder(prePrepare_).mergeFrom(value).buildPartial();
            } else {
              prePrepare_ = value;
            }
            onChanged();
          } else {
            prePrepareBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftPrePrepare pre_prepare = 3;</code>
         */
        public Builder clearPrePrepare() {
          if (prePrepareBuilder_ == null) {
            prePrepare_ = null;
            onChanged();
          } else {
            prePrepare_ = null;
            prePrepareBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.PbftPrePrepare pre_prepare = 3;</code>
         */
        public Consensus.PbftPrePrepare.Builder getPrePrepareBuilder() {
          
          onChanged();
          return getPrePrepareFieldBuilder().getBuilder();
        }
        /**
         * <code>.PbftPrePrepare pre_prepare = 3;</code>
         */
        public Consensus.PbftPrePrepareOrBuilder getPrePrepareOrBuilder() {
          if (prePrepareBuilder_ != null) {
            return prePrepareBuilder_.getMessageOrBuilder();
          } else {
            return prePrepare_ == null ?
                Consensus.PbftPrePrepare.getDefaultInstance() : prePrepare_;
          }
        }
        /**
         * <code>.PbftPrePrepare pre_prepare = 3;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftPrePrepare, Consensus.PbftPrePrepare.Builder, Consensus.PbftPrePrepareOrBuilder> 
            getPrePrepareFieldBuilder() {
          if (prePrepareBuilder_ == null) {
            prePrepareBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftPrePrepare, Consensus.PbftPrePrepare.Builder, Consensus.PbftPrePrepareOrBuilder>(
                    getPrePrepare(),
                    getParentForChildren(),
                    isClean());
            prePrepare_ = null;
          }
          return prePrepareBuilder_;
        }
  
        private Consensus.PbftPrepare prepare_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftPrepare, Consensus.PbftPrepare.Builder, Consensus.PbftPrepareOrBuilder> prepareBuilder_;
        /**
         * <code>.PbftPrepare prepare = 4;</code>
         */
        public boolean hasPrepare() {
          return prepareBuilder_ != null || prepare_ != null;
        }
        /**
         * <code>.PbftPrepare prepare = 4;</code>
         */
        public Consensus.PbftPrepare getPrepare() {
          if (prepareBuilder_ == null) {
            return prepare_ == null ? Consensus.PbftPrepare.getDefaultInstance() : prepare_;
          } else {
            return prepareBuilder_.getMessage();
          }
        }
        /**
         * <code>.PbftPrepare prepare = 4;</code>
         */
        public Builder setPrepare(Consensus.PbftPrepare value) {
          if (prepareBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            prepare_ = value;
            onChanged();
          } else {
            prepareBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftPrepare prepare = 4;</code>
         */
        public Builder setPrepare(
            Consensus.PbftPrepare.Builder builderForValue) {
          if (prepareBuilder_ == null) {
            prepare_ = builderForValue.build();
            onChanged();
          } else {
            prepareBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.PbftPrepare prepare = 4;</code>
         */
        public Builder mergePrepare(Consensus.PbftPrepare value) {
          if (prepareBuilder_ == null) {
            if (prepare_ != null) {
              prepare_ =
                Consensus.PbftPrepare.newBuilder(prepare_).mergeFrom(value).buildPartial();
            } else {
              prepare_ = value;
            }
            onChanged();
          } else {
            prepareBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftPrepare prepare = 4;</code>
         */
        public Builder clearPrepare() {
          if (prepareBuilder_ == null) {
            prepare_ = null;
            onChanged();
          } else {
            prepare_ = null;
            prepareBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.PbftPrepare prepare = 4;</code>
         */
        public Consensus.PbftPrepare.Builder getPrepareBuilder() {
          
          onChanged();
          return getPrepareFieldBuilder().getBuilder();
        }
        /**
         * <code>.PbftPrepare prepare = 4;</code>
         */
        public Consensus.PbftPrepareOrBuilder getPrepareOrBuilder() {
          if (prepareBuilder_ != null) {
            return prepareBuilder_.getMessageOrBuilder();
          } else {
            return prepare_ == null ?
                Consensus.PbftPrepare.getDefaultInstance() : prepare_;
          }
        }
        /**
         * <code>.PbftPrepare prepare = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftPrepare, Consensus.PbftPrepare.Builder, Consensus.PbftPrepareOrBuilder> 
            getPrepareFieldBuilder() {
          if (prepareBuilder_ == null) {
            prepareBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftPrepare, Consensus.PbftPrepare.Builder, Consensus.PbftPrepareOrBuilder>(
                    getPrepare(),
                    getParentForChildren(),
                    isClean());
            prepare_ = null;
          }
          return prepareBuilder_;
        }
  
        private Consensus.PbftCommit commit_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftCommit, Consensus.PbftCommit.Builder, Consensus.PbftCommitOrBuilder> commitBuilder_;
        /**
         * <code>.PbftCommit commit = 5;</code>
         */
        public boolean hasCommit() {
          return commitBuilder_ != null || commit_ != null;
        }
        /**
         * <code>.PbftCommit commit = 5;</code>
         */
        public Consensus.PbftCommit getCommit() {
          if (commitBuilder_ == null) {
            return commit_ == null ? Consensus.PbftCommit.getDefaultInstance() : commit_;
          } else {
            return commitBuilder_.getMessage();
          }
        }
        /**
         * <code>.PbftCommit commit = 5;</code>
         */
        public Builder setCommit(Consensus.PbftCommit value) {
          if (commitBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            commit_ = value;
            onChanged();
          } else {
            commitBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftCommit commit = 5;</code>
         */
        public Builder setCommit(
            Consensus.PbftCommit.Builder builderForValue) {
          if (commitBuilder_ == null) {
            commit_ = builderForValue.build();
            onChanged();
          } else {
            commitBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.PbftCommit commit = 5;</code>
         */
        public Builder mergeCommit(Consensus.PbftCommit value) {
          if (commitBuilder_ == null) {
            if (commit_ != null) {
              commit_ =
                Consensus.PbftCommit.newBuilder(commit_).mergeFrom(value).buildPartial();
            } else {
              commit_ = value;
            }
            onChanged();
          } else {
            commitBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftCommit commit = 5;</code>
         */
        public Builder clearCommit() {
          if (commitBuilder_ == null) {
            commit_ = null;
            onChanged();
          } else {
            commit_ = null;
            commitBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.PbftCommit commit = 5;</code>
         */
        public Consensus.PbftCommit.Builder getCommitBuilder() {
          
          onChanged();
          return getCommitFieldBuilder().getBuilder();
        }
        /**
         * <code>.PbftCommit commit = 5;</code>
         */
        public Consensus.PbftCommitOrBuilder getCommitOrBuilder() {
          if (commitBuilder_ != null) {
            return commitBuilder_.getMessageOrBuilder();
          } else {
            return commit_ == null ?
                Consensus.PbftCommit.getDefaultInstance() : commit_;
          }
        }
        /**
         * <code>.PbftCommit commit = 5;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftCommit, Consensus.PbftCommit.Builder, Consensus.PbftCommitOrBuilder> 
            getCommitFieldBuilder() {
          if (commitBuilder_ == null) {
            commitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftCommit, Consensus.PbftCommit.Builder, Consensus.PbftCommitOrBuilder>(
                    getCommit(),
                    getParentForChildren(),
                    isClean());
            commit_ = null;
          }
          return commitBuilder_;
        }
  
        private Consensus.PbftViewChange viewChange_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftViewChange, Consensus.PbftViewChange.Builder, Consensus.PbftViewChangeOrBuilder> viewChangeBuilder_;
        /**
         * <code>.PbftViewChange view_change = 6;</code>
         */
        public boolean hasViewChange() {
          return viewChangeBuilder_ != null || viewChange_ != null;
        }
        /**
         * <code>.PbftViewChange view_change = 6;</code>
         */
        public Consensus.PbftViewChange getViewChange() {
          if (viewChangeBuilder_ == null) {
            return viewChange_ == null ? Consensus.PbftViewChange.getDefaultInstance() : viewChange_;
          } else {
            return viewChangeBuilder_.getMessage();
          }
        }
        /**
         * <code>.PbftViewChange view_change = 6;</code>
         */
        public Builder setViewChange(Consensus.PbftViewChange value) {
          if (viewChangeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            viewChange_ = value;
            onChanged();
          } else {
            viewChangeBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftViewChange view_change = 6;</code>
         */
        public Builder setViewChange(
            Consensus.PbftViewChange.Builder builderForValue) {
          if (viewChangeBuilder_ == null) {
            viewChange_ = builderForValue.build();
            onChanged();
          } else {
            viewChangeBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.PbftViewChange view_change = 6;</code>
         */
        public Builder mergeViewChange(Consensus.PbftViewChange value) {
          if (viewChangeBuilder_ == null) {
            if (viewChange_ != null) {
              viewChange_ =
                Consensus.PbftViewChange.newBuilder(viewChange_).mergeFrom(value).buildPartial();
            } else {
              viewChange_ = value;
            }
            onChanged();
          } else {
            viewChangeBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftViewChange view_change = 6;</code>
         */
        public Builder clearViewChange() {
          if (viewChangeBuilder_ == null) {
            viewChange_ = null;
            onChanged();
          } else {
            viewChange_ = null;
            viewChangeBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.PbftViewChange view_change = 6;</code>
         */
        public Consensus.PbftViewChange.Builder getViewChangeBuilder() {
          
          onChanged();
          return getViewChangeFieldBuilder().getBuilder();
        }
        /**
         * <code>.PbftViewChange view_change = 6;</code>
         */
        public Consensus.PbftViewChangeOrBuilder getViewChangeOrBuilder() {
          if (viewChangeBuilder_ != null) {
            return viewChangeBuilder_.getMessageOrBuilder();
          } else {
            return viewChange_ == null ?
                Consensus.PbftViewChange.getDefaultInstance() : viewChange_;
          }
        }
        /**
         * <code>.PbftViewChange view_change = 6;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftViewChange, Consensus.PbftViewChange.Builder, Consensus.PbftViewChangeOrBuilder> 
            getViewChangeFieldBuilder() {
          if (viewChangeBuilder_ == null) {
            viewChangeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftViewChange, Consensus.PbftViewChange.Builder, Consensus.PbftViewChangeOrBuilder>(
                    getViewChange(),
                    getParentForChildren(),
                    isClean());
            viewChange_ = null;
          }
          return viewChangeBuilder_;
        }
  
        private Consensus.PbftNewView newView_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftNewView, Consensus.PbftNewView.Builder, Consensus.PbftNewViewOrBuilder> newViewBuilder_;
        /**
         * <code>.PbftNewView new_view = 7;</code>
         */
        public boolean hasNewView() {
          return newViewBuilder_ != null || newView_ != null;
        }
        /**
         * <code>.PbftNewView new_view = 7;</code>
         */
        public Consensus.PbftNewView getNewView() {
          if (newViewBuilder_ == null) {
            return newView_ == null ? Consensus.PbftNewView.getDefaultInstance() : newView_;
          } else {
            return newViewBuilder_.getMessage();
          }
        }
        /**
         * <code>.PbftNewView new_view = 7;</code>
         */
        public Builder setNewView(Consensus.PbftNewView value) {
          if (newViewBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            newView_ = value;
            onChanged();
          } else {
            newViewBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftNewView new_view = 7;</code>
         */
        public Builder setNewView(
            Consensus.PbftNewView.Builder builderForValue) {
          if (newViewBuilder_ == null) {
            newView_ = builderForValue.build();
            onChanged();
          } else {
            newViewBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.PbftNewView new_view = 7;</code>
         */
        public Builder mergeNewView(Consensus.PbftNewView value) {
          if (newViewBuilder_ == null) {
            if (newView_ != null) {
              newView_ =
                Consensus.PbftNewView.newBuilder(newView_).mergeFrom(value).buildPartial();
            } else {
              newView_ = value;
            }
            onChanged();
          } else {
            newViewBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftNewView new_view = 7;</code>
         */
        public Builder clearNewView() {
          if (newViewBuilder_ == null) {
            newView_ = null;
            onChanged();
          } else {
            newView_ = null;
            newViewBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.PbftNewView new_view = 7;</code>
         */
        public Consensus.PbftNewView.Builder getNewViewBuilder() {
          
          onChanged();
          return getNewViewFieldBuilder().getBuilder();
        }
        /**
         * <code>.PbftNewView new_view = 7;</code>
         */
        public Consensus.PbftNewViewOrBuilder getNewViewOrBuilder() {
          if (newViewBuilder_ != null) {
            return newViewBuilder_.getMessageOrBuilder();
          } else {
            return newView_ == null ?
                Consensus.PbftNewView.getDefaultInstance() : newView_;
          }
        }
        /**
         * <code>.PbftNewView new_view = 7;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftNewView, Consensus.PbftNewView.Builder, Consensus.PbftNewViewOrBuilder> 
            getNewViewFieldBuilder() {
          if (newViewBuilder_ == null) {
            newViewBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftNewView, Consensus.PbftNewView.Builder, Consensus.PbftNewViewOrBuilder>(
                    getNewView(),
                    getParentForChildren(),
                    isClean());
            newView_ = null;
          }
          return newViewBuilder_;
        }
  
        private Consensus.PbftViewChangeWithRawValue viewChangeWithRawvalue_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftViewChangeWithRawValue, Consensus.PbftViewChangeWithRawValue.Builder, Consensus.PbftViewChangeWithRawValueOrBuilder> viewChangeWithRawvalueBuilder_;
        /**
         * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
         */
        public boolean hasViewChangeWithRawvalue() {
          return viewChangeWithRawvalueBuilder_ != null || viewChangeWithRawvalue_ != null;
        }
        /**
         * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
         */
        public Consensus.PbftViewChangeWithRawValue getViewChangeWithRawvalue() {
          if (viewChangeWithRawvalueBuilder_ == null) {
            return viewChangeWithRawvalue_ == null ? Consensus.PbftViewChangeWithRawValue.getDefaultInstance() : viewChangeWithRawvalue_;
          } else {
            return viewChangeWithRawvalueBuilder_.getMessage();
          }
        }
        /**
         * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
         */
        public Builder setViewChangeWithRawvalue(Consensus.PbftViewChangeWithRawValue value) {
          if (viewChangeWithRawvalueBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            viewChangeWithRawvalue_ = value;
            onChanged();
          } else {
            viewChangeWithRawvalueBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
         */
        public Builder setViewChangeWithRawvalue(
            Consensus.PbftViewChangeWithRawValue.Builder builderForValue) {
          if (viewChangeWithRawvalueBuilder_ == null) {
            viewChangeWithRawvalue_ = builderForValue.build();
            onChanged();
          } else {
            viewChangeWithRawvalueBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
         */
        public Builder mergeViewChangeWithRawvalue(Consensus.PbftViewChangeWithRawValue value) {
          if (viewChangeWithRawvalueBuilder_ == null) {
            if (viewChangeWithRawvalue_ != null) {
              viewChangeWithRawvalue_ =
                Consensus.PbftViewChangeWithRawValue.newBuilder(viewChangeWithRawvalue_).mergeFrom(value).buildPartial();
            } else {
              viewChangeWithRawvalue_ = value;
            }
            onChanged();
          } else {
            viewChangeWithRawvalueBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
         */
        public Builder clearViewChangeWithRawvalue() {
          if (viewChangeWithRawvalueBuilder_ == null) {
            viewChangeWithRawvalue_ = null;
            onChanged();
          } else {
            viewChangeWithRawvalue_ = null;
            viewChangeWithRawvalueBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
         */
        public Consensus.PbftViewChangeWithRawValue.Builder getViewChangeWithRawvalueBuilder() {
          
          onChanged();
          return getViewChangeWithRawvalueFieldBuilder().getBuilder();
        }
        /**
         * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
         */
        public Consensus.PbftViewChangeWithRawValueOrBuilder getViewChangeWithRawvalueOrBuilder() {
          if (viewChangeWithRawvalueBuilder_ != null) {
            return viewChangeWithRawvalueBuilder_.getMessageOrBuilder();
          } else {
            return viewChangeWithRawvalue_ == null ?
                Consensus.PbftViewChangeWithRawValue.getDefaultInstance() : viewChangeWithRawvalue_;
          }
        }
        /**
         * <code>.PbftViewChangeWithRawValue view_change_with_rawvalue = 8;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftViewChangeWithRawValue, Consensus.PbftViewChangeWithRawValue.Builder, Consensus.PbftViewChangeWithRawValueOrBuilder> 
            getViewChangeWithRawvalueFieldBuilder() {
          if (viewChangeWithRawvalueBuilder_ == null) {
            viewChangeWithRawvalueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftViewChangeWithRawValue, Consensus.PbftViewChangeWithRawValue.Builder, Consensus.PbftViewChangeWithRawValueOrBuilder>(
                    getViewChangeWithRawvalue(),
                    getParentForChildren(),
                    isClean());
            viewChangeWithRawvalue_ = null;
          }
          return viewChangeWithRawvalueBuilder_;
        }
  
        private long chainId_ ;
        /**
         * <code>int64 chain_id = 9;</code>
         */
        public long getChainId() {
          return chainId_;
        }
        /**
         * <code>int64 chain_id = 9;</code>
         */
        public Builder setChainId(long value) {
          
          chainId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 chain_id = 9;</code>
         */
        public Builder clearChainId() {
          
          chainId_ = 0L;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:Pbft)
      }
  
      // @@protoc_insertion_point(class_scope:Pbft)
      private static final Consensus.Pbft DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.Pbft();
      }
  
      public static Consensus.Pbft getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<Pbft>
          PARSER = new com.google.protobuf.AbstractParser<Pbft>() {
        @java.lang.Override
        public Pbft parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Pbft(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<Pbft> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<Pbft> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.Pbft getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface SignatureOrBuilder extends
        // @@protoc_insertion_point(interface_extends:Signature)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>string public_key = 1;</code>
       */
      java.lang.String getPublicKey();
      /**
       * <code>string public_key = 1;</code>
       */
      com.google.protobuf.ByteString
          getPublicKeyBytes();
  
      /**
       * <code>bytes sign_data = 2;</code>
       */
      com.google.protobuf.ByteString getSignData();
    }
    /**
     * Protobuf type {@code Signature}
     */
    public  static final class Signature extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:Signature)
        SignatureOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Signature.newBuilder() to construct.
      private Signature(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Signature() {
        publicKey_ = "";
        signData_ = com.google.protobuf.ByteString.EMPTY;
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Signature();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Signature(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
  
                publicKey_ = s;
                break;
              }
              case 18: {
  
                signData_ = input.readBytes();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_Signature_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_Signature_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.Signature.class, Consensus.Signature.Builder.class);
      }
  
      public static final int PUBLIC_KEY_FIELD_NUMBER = 1;
      private volatile java.lang.Object publicKey_;
      /**
       * <code>string public_key = 1;</code>
       */
      public java.lang.String getPublicKey() {
        java.lang.Object ref = publicKey_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          publicKey_ = s;
          return s;
        }
      }
      /**
       * <code>string public_key = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPublicKeyBytes() {
        java.lang.Object ref = publicKey_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          publicKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int SIGN_DATA_FIELD_NUMBER = 2;
      private com.google.protobuf.ByteString signData_;
      /**
       * <code>bytes sign_data = 2;</code>
       */
      public com.google.protobuf.ByteString getSignData() {
        return signData_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getPublicKeyBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, publicKey_);
        }
        if (!signData_.isEmpty()) {
          output.writeBytes(2, signData_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (!getPublicKeyBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, publicKey_);
        }
        if (!signData_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, signData_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.Signature)) {
          return super.equals(obj);
        }
        Consensus.Signature other = (Consensus.Signature) obj;
  
        if (!getPublicKey()
            .equals(other.getPublicKey())) return false;
        if (!getSignData()
            .equals(other.getSignData())) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + PUBLIC_KEY_FIELD_NUMBER;
        hash = (53 * hash) + getPublicKey().hashCode();
        hash = (37 * hash) + SIGN_DATA_FIELD_NUMBER;
        hash = (53 * hash) + getSignData().hashCode();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.Signature parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.Signature parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.Signature parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.Signature parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.Signature parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.Signature parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.Signature parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.Signature parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.Signature parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.Signature parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.Signature parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.Signature parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.Signature prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code Signature}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:Signature)
          Consensus.SignatureOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_Signature_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_Signature_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.Signature.class, Consensus.Signature.Builder.class);
        }
  
        // Construct using Consensus.Signature.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          publicKey_ = "";
  
          signData_ = com.google.protobuf.ByteString.EMPTY;
  
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_Signature_descriptor;
        }
  
        @java.lang.Override
        public Consensus.Signature getDefaultInstanceForType() {
          return Consensus.Signature.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.Signature build() {
          Consensus.Signature result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.Signature buildPartial() {
          Consensus.Signature result = new Consensus.Signature(this);
          result.publicKey_ = publicKey_;
          result.signData_ = signData_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.Signature) {
            return mergeFrom((Consensus.Signature)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.Signature other) {
          if (other == Consensus.Signature.getDefaultInstance()) return this;
          if (!other.getPublicKey().isEmpty()) {
            publicKey_ = other.publicKey_;
            onChanged();
          }
          if (other.getSignData() != com.google.protobuf.ByteString.EMPTY) {
            setSignData(other.getSignData());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.Signature parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.Signature) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
  
        private java.lang.Object publicKey_ = "";
        /**
         * <code>string public_key = 1;</code>
         */
        public java.lang.String getPublicKey() {
          java.lang.Object ref = publicKey_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            publicKey_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string public_key = 1;</code>
         */
        public com.google.protobuf.ByteString
            getPublicKeyBytes() {
          java.lang.Object ref = publicKey_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            publicKey_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string public_key = 1;</code>
         */
        public Builder setPublicKey(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          publicKey_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string public_key = 1;</code>
         */
        public Builder clearPublicKey() {
          
          publicKey_ = getDefaultInstance().getPublicKey();
          onChanged();
          return this;
        }
        /**
         * <code>string public_key = 1;</code>
         */
        public Builder setPublicKeyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          publicKey_ = value;
          onChanged();
          return this;
        }
  
        private com.google.protobuf.ByteString signData_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>bytes sign_data = 2;</code>
         */
        public com.google.protobuf.ByteString getSignData() {
          return signData_;
        }
        /**
         * <code>bytes sign_data = 2;</code>
         */
        public Builder setSignData(com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          signData_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>bytes sign_data = 2;</code>
         */
        public Builder clearSignData() {
          
          signData_ = getDefaultInstance().getSignData();
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:Signature)
      }
  
      // @@protoc_insertion_point(class_scope:Signature)
      private static final Consensus.Signature DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.Signature();
      }
  
      public static Consensus.Signature getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<Signature>
          PARSER = new com.google.protobuf.AbstractParser<Signature>() {
        @java.lang.Override
        public Signature parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Signature(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<Signature> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<Signature> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.Signature getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PbftEnvOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PbftEnv)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>.Pbft pbft = 1;</code>
       */
      boolean hasPbft();
      /**
       * <code>.Pbft pbft = 1;</code>
       */
      Consensus.Pbft getPbft();
      /**
       * <code>.Pbft pbft = 1;</code>
       */
      Consensus.PbftOrBuilder getPbftOrBuilder();
  
      /**
       * <code>.Signature signature = 2;</code>
       */
      boolean hasSignature();
      /**
       * <code>.Signature signature = 2;</code>
       */
      Consensus.Signature getSignature();
      /**
       * <code>.Signature signature = 2;</code>
       */
      Consensus.SignatureOrBuilder getSignatureOrBuilder();
    }
    /**
     * Protobuf type {@code PbftEnv}
     */
    public  static final class PbftEnv extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PbftEnv)
        PbftEnvOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PbftEnv.newBuilder() to construct.
      private PbftEnv(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PbftEnv() {
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PbftEnv();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private PbftEnv(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                Consensus.Pbft.Builder subBuilder = null;
                if (pbft_ != null) {
                  subBuilder = pbft_.toBuilder();
                }
                pbft_ = input.readMessage(Consensus.Pbft.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(pbft_);
                  pbft_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 18: {
                Consensus.Signature.Builder subBuilder = null;
                if (signature_ != null) {
                  subBuilder = signature_.toBuilder();
                }
                signature_ = input.readMessage(Consensus.Signature.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(signature_);
                  signature_ = subBuilder.buildPartial();
                }
  
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_PbftEnv_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_PbftEnv_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.PbftEnv.class, Consensus.PbftEnv.Builder.class);
      }
  
      public static final int PBFT_FIELD_NUMBER = 1;
      private Consensus.Pbft pbft_;
      /**
       * <code>.Pbft pbft = 1;</code>
       */
      public boolean hasPbft() {
        return pbft_ != null;
      }
      /**
       * <code>.Pbft pbft = 1;</code>
       */
      public Consensus.Pbft getPbft() {
        return pbft_ == null ? Consensus.Pbft.getDefaultInstance() : pbft_;
      }
      /**
       * <code>.Pbft pbft = 1;</code>
       */
      public Consensus.PbftOrBuilder getPbftOrBuilder() {
        return getPbft();
      }
  
      public static final int SIGNATURE_FIELD_NUMBER = 2;
      private Consensus.Signature signature_;
      /**
       * <code>.Signature signature = 2;</code>
       */
      public boolean hasSignature() {
        return signature_ != null;
      }
      /**
       * <code>.Signature signature = 2;</code>
       */
      public Consensus.Signature getSignature() {
        return signature_ == null ? Consensus.Signature.getDefaultInstance() : signature_;
      }
      /**
       * <code>.Signature signature = 2;</code>
       */
      public Consensus.SignatureOrBuilder getSignatureOrBuilder() {
        return getSignature();
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (pbft_ != null) {
          output.writeMessage(1, getPbft());
        }
        if (signature_ != null) {
          output.writeMessage(2, getSignature());
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (pbft_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getPbft());
        }
        if (signature_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, getSignature());
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.PbftEnv)) {
          return super.equals(obj);
        }
        Consensus.PbftEnv other = (Consensus.PbftEnv) obj;
  
        if (hasPbft() != other.hasPbft()) return false;
        if (hasPbft()) {
          if (!getPbft()
              .equals(other.getPbft())) return false;
        }
        if (hasSignature() != other.hasSignature()) return false;
        if (hasSignature()) {
          if (!getSignature()
              .equals(other.getSignature())) return false;
        }
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasPbft()) {
          hash = (37 * hash) + PBFT_FIELD_NUMBER;
          hash = (53 * hash) + getPbft().hashCode();
        }
        if (hasSignature()) {
          hash = (37 * hash) + SIGNATURE_FIELD_NUMBER;
          hash = (53 * hash) + getSignature().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.PbftEnv parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftEnv parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftEnv parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftEnv parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftEnv parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftEnv parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftEnv parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftEnv parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftEnv parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.PbftEnv parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftEnv parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftEnv parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.PbftEnv prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PbftEnv}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PbftEnv)
          Consensus.PbftEnvOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_PbftEnv_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_PbftEnv_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.PbftEnv.class, Consensus.PbftEnv.Builder.class);
        }
  
        // Construct using Consensus.PbftEnv.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (pbftBuilder_ == null) {
            pbft_ = null;
          } else {
            pbft_ = null;
            pbftBuilder_ = null;
          }
          if (signatureBuilder_ == null) {
            signature_ = null;
          } else {
            signature_ = null;
            signatureBuilder_ = null;
          }
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_PbftEnv_descriptor;
        }
  
        @java.lang.Override
        public Consensus.PbftEnv getDefaultInstanceForType() {
          return Consensus.PbftEnv.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.PbftEnv build() {
          Consensus.PbftEnv result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.PbftEnv buildPartial() {
          Consensus.PbftEnv result = new Consensus.PbftEnv(this);
          if (pbftBuilder_ == null) {
            result.pbft_ = pbft_;
          } else {
            result.pbft_ = pbftBuilder_.build();
          }
          if (signatureBuilder_ == null) {
            result.signature_ = signature_;
          } else {
            result.signature_ = signatureBuilder_.build();
          }
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.PbftEnv) {
            return mergeFrom((Consensus.PbftEnv)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.PbftEnv other) {
          if (other == Consensus.PbftEnv.getDefaultInstance()) return this;
          if (other.hasPbft()) {
            mergePbft(other.getPbft());
          }
          if (other.hasSignature()) {
            mergeSignature(other.getSignature());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.PbftEnv parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.PbftEnv) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
  
        private Consensus.Pbft pbft_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.Pbft, Consensus.Pbft.Builder, Consensus.PbftOrBuilder> pbftBuilder_;
        /**
         * <code>.Pbft pbft = 1;</code>
         */
        public boolean hasPbft() {
          return pbftBuilder_ != null || pbft_ != null;
        }
        /**
         * <code>.Pbft pbft = 1;</code>
         */
        public Consensus.Pbft getPbft() {
          if (pbftBuilder_ == null) {
            return pbft_ == null ? Consensus.Pbft.getDefaultInstance() : pbft_;
          } else {
            return pbftBuilder_.getMessage();
          }
        }
        /**
         * <code>.Pbft pbft = 1;</code>
         */
        public Builder setPbft(Consensus.Pbft value) {
          if (pbftBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            pbft_ = value;
            onChanged();
          } else {
            pbftBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.Pbft pbft = 1;</code>
         */
        public Builder setPbft(
            Consensus.Pbft.Builder builderForValue) {
          if (pbftBuilder_ == null) {
            pbft_ = builderForValue.build();
            onChanged();
          } else {
            pbftBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.Pbft pbft = 1;</code>
         */
        public Builder mergePbft(Consensus.Pbft value) {
          if (pbftBuilder_ == null) {
            if (pbft_ != null) {
              pbft_ =
                Consensus.Pbft.newBuilder(pbft_).mergeFrom(value).buildPartial();
            } else {
              pbft_ = value;
            }
            onChanged();
          } else {
            pbftBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.Pbft pbft = 1;</code>
         */
        public Builder clearPbft() {
          if (pbftBuilder_ == null) {
            pbft_ = null;
            onChanged();
          } else {
            pbft_ = null;
            pbftBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.Pbft pbft = 1;</code>
         */
        public Consensus.Pbft.Builder getPbftBuilder() {
          
          onChanged();
          return getPbftFieldBuilder().getBuilder();
        }
        /**
         * <code>.Pbft pbft = 1;</code>
         */
        public Consensus.PbftOrBuilder getPbftOrBuilder() {
          if (pbftBuilder_ != null) {
            return pbftBuilder_.getMessageOrBuilder();
          } else {
            return pbft_ == null ?
                Consensus.Pbft.getDefaultInstance() : pbft_;
          }
        }
        /**
         * <code>.Pbft pbft = 1;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.Pbft, Consensus.Pbft.Builder, Consensus.PbftOrBuilder> 
            getPbftFieldBuilder() {
          if (pbftBuilder_ == null) {
            pbftBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.Pbft, Consensus.Pbft.Builder, Consensus.PbftOrBuilder>(
                    getPbft(),
                    getParentForChildren(),
                    isClean());
            pbft_ = null;
          }
          return pbftBuilder_;
        }
  
        private Consensus.Signature signature_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.Signature, Consensus.Signature.Builder, Consensus.SignatureOrBuilder> signatureBuilder_;
        /**
         * <code>.Signature signature = 2;</code>
         */
        public boolean hasSignature() {
          return signatureBuilder_ != null || signature_ != null;
        }
        /**
         * <code>.Signature signature = 2;</code>
         */
        public Consensus.Signature getSignature() {
          if (signatureBuilder_ == null) {
            return signature_ == null ? Consensus.Signature.getDefaultInstance() : signature_;
          } else {
            return signatureBuilder_.getMessage();
          }
        }
        /**
         * <code>.Signature signature = 2;</code>
         */
        public Builder setSignature(Consensus.Signature value) {
          if (signatureBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            signature_ = value;
            onChanged();
          } else {
            signatureBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.Signature signature = 2;</code>
         */
        public Builder setSignature(
            Consensus.Signature.Builder builderForValue) {
          if (signatureBuilder_ == null) {
            signature_ = builderForValue.build();
            onChanged();
          } else {
            signatureBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.Signature signature = 2;</code>
         */
        public Builder mergeSignature(Consensus.Signature value) {
          if (signatureBuilder_ == null) {
            if (signature_ != null) {
              signature_ =
                Consensus.Signature.newBuilder(signature_).mergeFrom(value).buildPartial();
            } else {
              signature_ = value;
            }
            onChanged();
          } else {
            signatureBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.Signature signature = 2;</code>
         */
        public Builder clearSignature() {
          if (signatureBuilder_ == null) {
            signature_ = null;
            onChanged();
          } else {
            signature_ = null;
            signatureBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.Signature signature = 2;</code>
         */
        public Consensus.Signature.Builder getSignatureBuilder() {
          
          onChanged();
          return getSignatureFieldBuilder().getBuilder();
        }
        /**
         * <code>.Signature signature = 2;</code>
         */
        public Consensus.SignatureOrBuilder getSignatureOrBuilder() {
          if (signatureBuilder_ != null) {
            return signatureBuilder_.getMessageOrBuilder();
          } else {
            return signature_ == null ?
                Consensus.Signature.getDefaultInstance() : signature_;
          }
        }
        /**
         * <code>.Signature signature = 2;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.Signature, Consensus.Signature.Builder, Consensus.SignatureOrBuilder> 
            getSignatureFieldBuilder() {
          if (signatureBuilder_ == null) {
            signatureBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.Signature, Consensus.Signature.Builder, Consensus.SignatureOrBuilder>(
                    getSignature(),
                    getParentForChildren(),
                    isClean());
            signature_ = null;
          }
          return signatureBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PbftEnv)
      }
  
      // @@protoc_insertion_point(class_scope:PbftEnv)
      private static final Consensus.PbftEnv DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.PbftEnv();
      }
  
      public static Consensus.PbftEnv getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<PbftEnv>
          PARSER = new com.google.protobuf.AbstractParser<PbftEnv>() {
        @java.lang.Override
        public PbftEnv parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PbftEnv(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<PbftEnv> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<PbftEnv> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.PbftEnv getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface ValidatorSetV3OrBuilder extends
        // @@protoc_insertion_point(interface_extends:ValidatorSetV3)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>repeated string validators = 1;</code>
       */
      java.util.List<java.lang.String>
          getValidatorsList();
      /**
       * <code>repeated string validators = 1;</code>
       */
      int getValidatorsCount();
      /**
       * <code>repeated string validators = 1;</code>
       */
      java.lang.String getValidators(int index);
      /**
       * <code>repeated string validators = 1;</code>
       */
      com.google.protobuf.ByteString
          getValidatorsBytes(int index);
    }
    /**
     * Protobuf type {@code ValidatorSetV3}
     */
    public  static final class ValidatorSetV3 extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:ValidatorSetV3)
        ValidatorSetV3OrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ValidatorSetV3.newBuilder() to construct.
      private ValidatorSetV3(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ValidatorSetV3() {
        validators_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new ValidatorSetV3();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private ValidatorSetV3(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                  validators_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                validators_.add(s);
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000001) != 0)) {
            validators_ = validators_.getUnmodifiableView();
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_ValidatorSetV3_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_ValidatorSetV3_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.ValidatorSetV3.class, Consensus.ValidatorSetV3.Builder.class);
      }
  
      public static final int VALIDATORS_FIELD_NUMBER = 1;
      private com.google.protobuf.LazyStringList validators_;
      /**
       * <code>repeated string validators = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList
          getValidatorsList() {
        return validators_;
      }
      /**
       * <code>repeated string validators = 1;</code>
       */
      public int getValidatorsCount() {
        return validators_.size();
      }
      /**
       * <code>repeated string validators = 1;</code>
       */
      public java.lang.String getValidators(int index) {
        return validators_.get(index);
      }
      /**
       * <code>repeated string validators = 1;</code>
       */
      public com.google.protobuf.ByteString
          getValidatorsBytes(int index) {
        return validators_.getByteString(index);
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < validators_.size(); i++) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, validators_.getRaw(i));
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        {
          int dataSize = 0;
          for (int i = 0; i < validators_.size(); i++) {
            dataSize += computeStringSizeNoTag(validators_.getRaw(i));
          }
          size += dataSize;
          size += 1 * getValidatorsList().size();
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.ValidatorSetV3)) {
          return super.equals(obj);
        }
        Consensus.ValidatorSetV3 other = (Consensus.ValidatorSetV3) obj;
  
        if (!getValidatorsList()
            .equals(other.getValidatorsList())) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getValidatorsCount() > 0) {
          hash = (37 * hash) + VALIDATORS_FIELD_NUMBER;
          hash = (53 * hash) + getValidatorsList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.ValidatorSetV3 parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.ValidatorSetV3 parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.ValidatorSetV3 parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.ValidatorSetV3 parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.ValidatorSetV3 parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.ValidatorSetV3 parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.ValidatorSetV3 parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.ValidatorSetV3 parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.ValidatorSetV3 parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.ValidatorSetV3 parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.ValidatorSetV3 parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.ValidatorSetV3 parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.ValidatorSetV3 prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code ValidatorSetV3}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:ValidatorSetV3)
          Consensus.ValidatorSetV3OrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_ValidatorSetV3_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_ValidatorSetV3_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.ValidatorSetV3.class, Consensus.ValidatorSetV3.Builder.class);
        }
  
        // Construct using Consensus.ValidatorSetV3.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          validators_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_ValidatorSetV3_descriptor;
        }
  
        @java.lang.Override
        public Consensus.ValidatorSetV3 getDefaultInstanceForType() {
          return Consensus.ValidatorSetV3.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.ValidatorSetV3 build() {
          Consensus.ValidatorSetV3 result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.ValidatorSetV3 buildPartial() {
          Consensus.ValidatorSetV3 result = new Consensus.ValidatorSetV3(this);
          int from_bitField0_ = bitField0_;
          if (((bitField0_ & 0x00000001) != 0)) {
            validators_ = validators_.getUnmodifiableView();
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.validators_ = validators_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.ValidatorSetV3) {
            return mergeFrom((Consensus.ValidatorSetV3)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.ValidatorSetV3 other) {
          if (other == Consensus.ValidatorSetV3.getDefaultInstance()) return this;
          if (!other.validators_.isEmpty()) {
            if (validators_.isEmpty()) {
              validators_ = other.validators_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureValidatorsIsMutable();
              validators_.addAll(other.validators_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.ValidatorSetV3 parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.ValidatorSetV3) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private com.google.protobuf.LazyStringList validators_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        private void ensureValidatorsIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            validators_ = new com.google.protobuf.LazyStringArrayList(validators_);
            bitField0_ |= 0x00000001;
           }
        }
        /**
         * <code>repeated string validators = 1;</code>
         */
        public com.google.protobuf.ProtocolStringList
            getValidatorsList() {
          return validators_.getUnmodifiableView();
        }
        /**
         * <code>repeated string validators = 1;</code>
         */
        public int getValidatorsCount() {
          return validators_.size();
        }
        /**
         * <code>repeated string validators = 1;</code>
         */
        public java.lang.String getValidators(int index) {
          return validators_.get(index);
        }
        /**
         * <code>repeated string validators = 1;</code>
         */
        public com.google.protobuf.ByteString
            getValidatorsBytes(int index) {
          return validators_.getByteString(index);
        }
        /**
         * <code>repeated string validators = 1;</code>
         */
        public Builder setValidators(
            int index, java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    ensureValidatorsIsMutable();
          validators_.set(index, value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string validators = 1;</code>
         */
        public Builder addValidators(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    ensureValidatorsIsMutable();
          validators_.add(value);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string validators = 1;</code>
         */
        public Builder addAllValidators(
            java.lang.Iterable<java.lang.String> values) {
          ensureValidatorsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, validators_);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string validators = 1;</code>
         */
        public Builder clearValidators() {
          validators_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * <code>repeated string validators = 1;</code>
         */
        public Builder addValidatorsBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          ensureValidatorsIsMutable();
          validators_.add(value);
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:ValidatorSetV3)
      }
  
      // @@protoc_insertion_point(class_scope:ValidatorSetV3)
      private static final Consensus.ValidatorSetV3 DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.ValidatorSetV3();
      }
  
      public static Consensus.ValidatorSetV3 getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<ValidatorSetV3>
          PARSER = new com.google.protobuf.AbstractParser<ValidatorSetV3>() {
        @java.lang.Override
        public ValidatorSetV3 parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ValidatorSetV3(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<ValidatorSetV3> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<ValidatorSetV3> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.ValidatorSetV3 getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PbftProofOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PbftProof)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>repeated .PbftEnv commits = 1;</code>
       */
      java.util.List<Consensus.PbftEnv> 
          getCommitsList();
      /**
       * <code>repeated .PbftEnv commits = 1;</code>
       */
      Consensus.PbftEnv getCommits(int index);
      /**
       * <code>repeated .PbftEnv commits = 1;</code>
       */
      int getCommitsCount();
      /**
       * <code>repeated .PbftEnv commits = 1;</code>
       */
      java.util.List<? extends Consensus.PbftEnvOrBuilder> 
          getCommitsOrBuilderList();
      /**
       * <code>repeated .PbftEnv commits = 1;</code>
       */
      Consensus.PbftEnvOrBuilder getCommitsOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code PbftProof}
     */
    public  static final class PbftProof extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PbftProof)
        PbftProofOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PbftProof.newBuilder() to construct.
      private PbftProof(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PbftProof() {
        commits_ = java.util.Collections.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PbftProof();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private PbftProof(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                  commits_ = new java.util.ArrayList<Consensus.PbftEnv>();
                  mutable_bitField0_ |= 0x00000001;
                }
                commits_.add(
                    input.readMessage(Consensus.PbftEnv.parser(), extensionRegistry));
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000001) != 0)) {
            commits_ = java.util.Collections.unmodifiableList(commits_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_PbftProof_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_PbftProof_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.PbftProof.class, Consensus.PbftProof.Builder.class);
      }
  
      public static final int COMMITS_FIELD_NUMBER = 1;
      private java.util.List<Consensus.PbftEnv> commits_;
      /**
       * <code>repeated .PbftEnv commits = 1;</code>
       */
      public java.util.List<Consensus.PbftEnv> getCommitsList() {
        return commits_;
      }
      /**
       * <code>repeated .PbftEnv commits = 1;</code>
       */
      public java.util.List<? extends Consensus.PbftEnvOrBuilder> 
          getCommitsOrBuilderList() {
        return commits_;
      }
      /**
       * <code>repeated .PbftEnv commits = 1;</code>
       */
      public int getCommitsCount() {
        return commits_.size();
      }
      /**
       * <code>repeated .PbftEnv commits = 1;</code>
       */
      public Consensus.PbftEnv getCommits(int index) {
        return commits_.get(index);
      }
      /**
       * <code>repeated .PbftEnv commits = 1;</code>
       */
      public Consensus.PbftEnvOrBuilder getCommitsOrBuilder(
          int index) {
        return commits_.get(index);
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < commits_.size(); i++) {
          output.writeMessage(1, commits_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        for (int i = 0; i < commits_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, commits_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.PbftProof)) {
          return super.equals(obj);
        }
        Consensus.PbftProof other = (Consensus.PbftProof) obj;
  
        if (!getCommitsList()
            .equals(other.getCommitsList())) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getCommitsCount() > 0) {
          hash = (37 * hash) + COMMITS_FIELD_NUMBER;
          hash = (53 * hash) + getCommitsList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.PbftProof parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftProof parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftProof parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftProof parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftProof parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftProof parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftProof parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftProof parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftProof parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.PbftProof parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftProof parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftProof parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.PbftProof prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PbftProof}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PbftProof)
          Consensus.PbftProofOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_PbftProof_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_PbftProof_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.PbftProof.class, Consensus.PbftProof.Builder.class);
        }
  
        // Construct using Consensus.PbftProof.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getCommitsFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (commitsBuilder_ == null) {
            commits_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            commitsBuilder_.clear();
          }
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_PbftProof_descriptor;
        }
  
        @java.lang.Override
        public Consensus.PbftProof getDefaultInstanceForType() {
          return Consensus.PbftProof.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.PbftProof build() {
          Consensus.PbftProof result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.PbftProof buildPartial() {
          Consensus.PbftProof result = new Consensus.PbftProof(this);
          int from_bitField0_ = bitField0_;
          if (commitsBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              commits_ = java.util.Collections.unmodifiableList(commits_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.commits_ = commits_;
          } else {
            result.commits_ = commitsBuilder_.build();
          }
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.PbftProof) {
            return mergeFrom((Consensus.PbftProof)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.PbftProof other) {
          if (other == Consensus.PbftProof.getDefaultInstance()) return this;
          if (commitsBuilder_ == null) {
            if (!other.commits_.isEmpty()) {
              if (commits_.isEmpty()) {
                commits_ = other.commits_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureCommitsIsMutable();
                commits_.addAll(other.commits_);
              }
              onChanged();
            }
          } else {
            if (!other.commits_.isEmpty()) {
              if (commitsBuilder_.isEmpty()) {
                commitsBuilder_.dispose();
                commitsBuilder_ = null;
                commits_ = other.commits_;
                bitField0_ = (bitField0_ & ~0x00000001);
                commitsBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getCommitsFieldBuilder() : null;
              } else {
                commitsBuilder_.addAllMessages(other.commits_);
              }
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.PbftProof parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.PbftProof) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private java.util.List<Consensus.PbftEnv> commits_ =
          java.util.Collections.emptyList();
        private void ensureCommitsIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            commits_ = new java.util.ArrayList<Consensus.PbftEnv>(commits_);
            bitField0_ |= 0x00000001;
           }
        }
  
        private com.google.protobuf.RepeatedFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> commitsBuilder_;
  
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public java.util.List<Consensus.PbftEnv> getCommitsList() {
          if (commitsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(commits_);
          } else {
            return commitsBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public int getCommitsCount() {
          if (commitsBuilder_ == null) {
            return commits_.size();
          } else {
            return commitsBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Consensus.PbftEnv getCommits(int index) {
          if (commitsBuilder_ == null) {
            return commits_.get(index);
          } else {
            return commitsBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Builder setCommits(
            int index, Consensus.PbftEnv value) {
          if (commitsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureCommitsIsMutable();
            commits_.set(index, value);
            onChanged();
          } else {
            commitsBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Builder setCommits(
            int index, Consensus.PbftEnv.Builder builderForValue) {
          if (commitsBuilder_ == null) {
            ensureCommitsIsMutable();
            commits_.set(index, builderForValue.build());
            onChanged();
          } else {
            commitsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Builder addCommits(Consensus.PbftEnv value) {
          if (commitsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureCommitsIsMutable();
            commits_.add(value);
            onChanged();
          } else {
            commitsBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Builder addCommits(
            int index, Consensus.PbftEnv value) {
          if (commitsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureCommitsIsMutable();
            commits_.add(index, value);
            onChanged();
          } else {
            commitsBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Builder addCommits(
            Consensus.PbftEnv.Builder builderForValue) {
          if (commitsBuilder_ == null) {
            ensureCommitsIsMutable();
            commits_.add(builderForValue.build());
            onChanged();
          } else {
            commitsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Builder addCommits(
            int index, Consensus.PbftEnv.Builder builderForValue) {
          if (commitsBuilder_ == null) {
            ensureCommitsIsMutable();
            commits_.add(index, builderForValue.build());
            onChanged();
          } else {
            commitsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Builder addAllCommits(
            java.lang.Iterable<? extends Consensus.PbftEnv> values) {
          if (commitsBuilder_ == null) {
            ensureCommitsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, commits_);
            onChanged();
          } else {
            commitsBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Builder clearCommits() {
          if (commitsBuilder_ == null) {
            commits_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            commitsBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Builder removeCommits(int index) {
          if (commitsBuilder_ == null) {
            ensureCommitsIsMutable();
            commits_.remove(index);
            onChanged();
          } else {
            commitsBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Consensus.PbftEnv.Builder getCommitsBuilder(
            int index) {
          return getCommitsFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Consensus.PbftEnvOrBuilder getCommitsOrBuilder(
            int index) {
          if (commitsBuilder_ == null) {
            return commits_.get(index);  } else {
            return commitsBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public java.util.List<? extends Consensus.PbftEnvOrBuilder> 
             getCommitsOrBuilderList() {
          if (commitsBuilder_ != null) {
            return commitsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(commits_);
          }
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Consensus.PbftEnv.Builder addCommitsBuilder() {
          return getCommitsFieldBuilder().addBuilder(
              Consensus.PbftEnv.getDefaultInstance());
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public Consensus.PbftEnv.Builder addCommitsBuilder(
            int index) {
          return getCommitsFieldBuilder().addBuilder(
              index, Consensus.PbftEnv.getDefaultInstance());
        }
        /**
         * <code>repeated .PbftEnv commits = 1;</code>
         */
        public java.util.List<Consensus.PbftEnv.Builder> 
             getCommitsBuilderList() {
          return getCommitsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> 
            getCommitsFieldBuilder() {
          if (commitsBuilder_ == null) {
            commitsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder>(
                    commits_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            commits_ = null;
          }
          return commitsBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PbftProof)
      }
  
      // @@protoc_insertion_point(class_scope:PbftProof)
      private static final Consensus.PbftProof DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.PbftProof();
      }
  
      public static Consensus.PbftProof getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<PbftProof>
          PARSER = new com.google.protobuf.AbstractParser<PbftProof>() {
        @java.lang.Override
        public PbftProof parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PbftProof(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<PbftProof> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<PbftProof> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.PbftProof getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PbftViewChangeStoreOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PbftViewChangeStore)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>int64 sequence = 1;</code>
       */
      long getSequence();
  
      /**
       * <code>int64 view_number = 2;</code>
       */
      long getViewNumber();
  
      /**
       * <code>int32 view_change_round = 3;</code>
       */
      int getViewChangeRound();
  
      /**
       * <code>int64 start_time = 4;</code>
       */
      long getStartTime();
  
      /**
       * <code>int64 end_time = 5;</code>
       */
      long getEndTime();
  
      /**
       * <code>int64 last_propose_time = 6;</code>
       */
      long getLastProposeTime();
  
      /**
       * <code>int64 last_newview_time = 7;</code>
       */
      long getLastNewviewTime();
  
      /**
       * <code>int32 new_view_round = 8;</code>
       */
      int getNewViewRound();
  
      /**
       * <code>bytes view_change_msg = 9;</code>
       */
      com.google.protobuf.ByteString getViewChangeMsg();
  
      /**
       * <code>.PbftEnv new_view = 10;</code>
       */
      boolean hasNewView();
      /**
       * <code>.PbftEnv new_view = 10;</code>
       */
      Consensus.PbftEnv getNewView();
      /**
       * <code>.PbftEnv new_view = 10;</code>
       */
      Consensus.PbftEnvOrBuilder getNewViewOrBuilder();
  
      /**
       * <code>bytes msg_buffer = 11;</code>
       */
      com.google.protobuf.ByteString getMsgBuffer();
  
      /**
       * <code>repeated .PbftViewChange view_changes = 12;</code>
       */
      java.util.List<Consensus.PbftViewChange> 
          getViewChangesList();
      /**
       * <code>repeated .PbftViewChange view_changes = 12;</code>
       */
      Consensus.PbftViewChange getViewChanges(int index);
      /**
       * <code>repeated .PbftViewChange view_changes = 12;</code>
       */
      int getViewChangesCount();
      /**
       * <code>repeated .PbftViewChange view_changes = 12;</code>
       */
      java.util.List<? extends Consensus.PbftViewChangeOrBuilder> 
          getViewChangesOrBuilderList();
      /**
       * <code>repeated .PbftViewChange view_changes = 12;</code>
       */
      Consensus.PbftViewChangeOrBuilder getViewChangesOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code PbftViewChangeStore}
     */
    public  static final class PbftViewChangeStore extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PbftViewChangeStore)
        PbftViewChangeStoreOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PbftViewChangeStore.newBuilder() to construct.
      private PbftViewChangeStore(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PbftViewChangeStore() {
        viewChangeMsg_ = com.google.protobuf.ByteString.EMPTY;
        msgBuffer_ = com.google.protobuf.ByteString.EMPTY;
        viewChanges_ = java.util.Collections.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new PbftViewChangeStore();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private PbftViewChangeStore(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
  
                sequence_ = input.readInt64();
                break;
              }
              case 16: {
  
                viewNumber_ = input.readInt64();
                break;
              }
              case 24: {
  
                viewChangeRound_ = input.readInt32();
                break;
              }
              case 32: {
  
                startTime_ = input.readInt64();
                break;
              }
              case 40: {
  
                endTime_ = input.readInt64();
                break;
              }
              case 48: {
  
                lastProposeTime_ = input.readInt64();
                break;
              }
              case 56: {
  
                lastNewviewTime_ = input.readInt64();
                break;
              }
              case 64: {
  
                newViewRound_ = input.readInt32();
                break;
              }
              case 74: {
  
                viewChangeMsg_ = input.readBytes();
                break;
              }
              case 82: {
                Consensus.PbftEnv.Builder subBuilder = null;
                if (newView_ != null) {
                  subBuilder = newView_.toBuilder();
                }
                newView_ = input.readMessage(Consensus.PbftEnv.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(newView_);
                  newView_ = subBuilder.buildPartial();
                }
  
                break;
              }
              case 90: {
  
                msgBuffer_ = input.readBytes();
                break;
              }
              case 98: {
                if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                  viewChanges_ = new java.util.ArrayList<Consensus.PbftViewChange>();
                  mutable_bitField0_ |= 0x00000001;
                }
                viewChanges_.add(
                    input.readMessage(Consensus.PbftViewChange.parser(), extensionRegistry));
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000001) != 0)) {
            viewChanges_ = java.util.Collections.unmodifiableList(viewChanges_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return Consensus.internal_static_protocol_PbftViewChangeStore_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return Consensus.internal_static_protocol_PbftViewChangeStore_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                Consensus.PbftViewChangeStore.class, Consensus.PbftViewChangeStore.Builder.class);
      }
  
      public static final int SEQUENCE_FIELD_NUMBER = 1;
      private long sequence_;
      /**
       * <code>int64 sequence = 1;</code>
       */
      public long getSequence() {
        return sequence_;
      }
  
      public static final int VIEW_NUMBER_FIELD_NUMBER = 2;
      private long viewNumber_;
      /**
       * <code>int64 view_number = 2;</code>
       */
      public long getViewNumber() {
        return viewNumber_;
      }
  
      public static final int VIEW_CHANGE_ROUND_FIELD_NUMBER = 3;
      private int viewChangeRound_;
      /**
       * <code>int32 view_change_round = 3;</code>
       */
      public int getViewChangeRound() {
        return viewChangeRound_;
      }
  
      public static final int START_TIME_FIELD_NUMBER = 4;
      private long startTime_;
      /**
       * <code>int64 start_time = 4;</code>
       */
      public long getStartTime() {
        return startTime_;
      }
  
      public static final int END_TIME_FIELD_NUMBER = 5;
      private long endTime_;
      /**
       * <code>int64 end_time = 5;</code>
       */
      public long getEndTime() {
        return endTime_;
      }
  
      public static final int LAST_PROPOSE_TIME_FIELD_NUMBER = 6;
      private long lastProposeTime_;
      /**
       * <code>int64 last_propose_time = 6;</code>
       */
      public long getLastProposeTime() {
        return lastProposeTime_;
      }
  
      public static final int LAST_NEWVIEW_TIME_FIELD_NUMBER = 7;
      private long lastNewviewTime_;
      /**
       * <code>int64 last_newview_time = 7;</code>
       */
      public long getLastNewviewTime() {
        return lastNewviewTime_;
      }
  
      public static final int NEW_VIEW_ROUND_FIELD_NUMBER = 8;
      private int newViewRound_;
      /**
       * <code>int32 new_view_round = 8;</code>
       */
      public int getNewViewRound() {
        return newViewRound_;
      }
  
      public static final int VIEW_CHANGE_MSG_FIELD_NUMBER = 9;
      private com.google.protobuf.ByteString viewChangeMsg_;
      /**
       * <code>bytes view_change_msg = 9;</code>
       */
      public com.google.protobuf.ByteString getViewChangeMsg() {
        return viewChangeMsg_;
      }
  
      public static final int NEW_VIEW_FIELD_NUMBER = 10;
      private Consensus.PbftEnv newView_;
      /**
       * <code>.PbftEnv new_view = 10;</code>
       */
      public boolean hasNewView() {
        return newView_ != null;
      }
      /**
       * <code>.PbftEnv new_view = 10;</code>
       */
      public Consensus.PbftEnv getNewView() {
        return newView_ == null ? Consensus.PbftEnv.getDefaultInstance() : newView_;
      }
      /**
       * <code>.PbftEnv new_view = 10;</code>
       */
      public Consensus.PbftEnvOrBuilder getNewViewOrBuilder() {
        return getNewView();
      }
  
      public static final int MSG_BUFFER_FIELD_NUMBER = 11;
      private com.google.protobuf.ByteString msgBuffer_;
      /**
       * <code>bytes msg_buffer = 11;</code>
       */
      public com.google.protobuf.ByteString getMsgBuffer() {
        return msgBuffer_;
      }
  
      public static final int VIEW_CHANGES_FIELD_NUMBER = 12;
      private java.util.List<Consensus.PbftViewChange> viewChanges_;
      /**
       * <code>repeated .PbftViewChange view_changes = 12;</code>
       */
      public java.util.List<Consensus.PbftViewChange> getViewChangesList() {
        return viewChanges_;
      }
      /**
       * <code>repeated .PbftViewChange view_changes = 12;</code>
       */
      public java.util.List<? extends Consensus.PbftViewChangeOrBuilder> 
          getViewChangesOrBuilderList() {
        return viewChanges_;
      }
      /**
       * <code>repeated .PbftViewChange view_changes = 12;</code>
       */
      public int getViewChangesCount() {
        return viewChanges_.size();
      }
      /**
       * <code>repeated .PbftViewChange view_changes = 12;</code>
       */
      public Consensus.PbftViewChange getViewChanges(int index) {
        return viewChanges_.get(index);
      }
      /**
       * <code>repeated .PbftViewChange view_changes = 12;</code>
       */
      public Consensus.PbftViewChangeOrBuilder getViewChangesOrBuilder(
          int index) {
        return viewChanges_.get(index);
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (sequence_ != 0L) {
          output.writeInt64(1, sequence_);
        }
        if (viewNumber_ != 0L) {
          output.writeInt64(2, viewNumber_);
        }
        if (viewChangeRound_ != 0) {
          output.writeInt32(3, viewChangeRound_);
        }
        if (startTime_ != 0L) {
          output.writeInt64(4, startTime_);
        }
        if (endTime_ != 0L) {
          output.writeInt64(5, endTime_);
        }
        if (lastProposeTime_ != 0L) {
          output.writeInt64(6, lastProposeTime_);
        }
        if (lastNewviewTime_ != 0L) {
          output.writeInt64(7, lastNewviewTime_);
        }
        if (newViewRound_ != 0) {
          output.writeInt32(8, newViewRound_);
        }
        if (!viewChangeMsg_.isEmpty()) {
          output.writeBytes(9, viewChangeMsg_);
        }
        if (newView_ != null) {
          output.writeMessage(10, getNewView());
        }
        if (!msgBuffer_.isEmpty()) {
          output.writeBytes(11, msgBuffer_);
        }
        for (int i = 0; i < viewChanges_.size(); i++) {
          output.writeMessage(12, viewChanges_.get(i));
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (sequence_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(1, sequence_);
        }
        if (viewNumber_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, viewNumber_);
        }
        if (viewChangeRound_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, viewChangeRound_);
        }
        if (startTime_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(4, startTime_);
        }
        if (endTime_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(5, endTime_);
        }
        if (lastProposeTime_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(6, lastProposeTime_);
        }
        if (lastNewviewTime_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(7, lastNewviewTime_);
        }
        if (newViewRound_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(8, newViewRound_);
        }
        if (!viewChangeMsg_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(9, viewChangeMsg_);
        }
        if (newView_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(10, getNewView());
        }
        if (!msgBuffer_.isEmpty()) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(11, msgBuffer_);
        }
        for (int i = 0; i < viewChanges_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(12, viewChanges_.get(i));
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof Consensus.PbftViewChangeStore)) {
          return super.equals(obj);
        }
        Consensus.PbftViewChangeStore other = (Consensus.PbftViewChangeStore) obj;
  
        if (getSequence()
            != other.getSequence()) return false;
        if (getViewNumber()
            != other.getViewNumber()) return false;
        if (getViewChangeRound()
            != other.getViewChangeRound()) return false;
        if (getStartTime()
            != other.getStartTime()) return false;
        if (getEndTime()
            != other.getEndTime()) return false;
        if (getLastProposeTime()
            != other.getLastProposeTime()) return false;
        if (getLastNewviewTime()
            != other.getLastNewviewTime()) return false;
        if (getNewViewRound()
            != other.getNewViewRound()) return false;
        if (!getViewChangeMsg()
            .equals(other.getViewChangeMsg())) return false;
        if (hasNewView() != other.hasNewView()) return false;
        if (hasNewView()) {
          if (!getNewView()
              .equals(other.getNewView())) return false;
        }
        if (!getMsgBuffer()
            .equals(other.getMsgBuffer())) return false;
        if (!getViewChangesList()
            .equals(other.getViewChangesList())) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + SEQUENCE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSequence());
        hash = (37 * hash) + VIEW_NUMBER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getViewNumber());
        hash = (37 * hash) + VIEW_CHANGE_ROUND_FIELD_NUMBER;
        hash = (53 * hash) + getViewChangeRound();
        hash = (37 * hash) + START_TIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getStartTime());
        hash = (37 * hash) + END_TIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getEndTime());
        hash = (37 * hash) + LAST_PROPOSE_TIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLastProposeTime());
        hash = (37 * hash) + LAST_NEWVIEW_TIME_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getLastNewviewTime());
        hash = (37 * hash) + NEW_VIEW_ROUND_FIELD_NUMBER;
        hash = (53 * hash) + getNewViewRound();
        hash = (37 * hash) + VIEW_CHANGE_MSG_FIELD_NUMBER;
        hash = (53 * hash) + getViewChangeMsg().hashCode();
        if (hasNewView()) {
          hash = (37 * hash) + NEW_VIEW_FIELD_NUMBER;
          hash = (53 * hash) + getNewView().hashCode();
        }
        hash = (37 * hash) + MSG_BUFFER_FIELD_NUMBER;
        hash = (53 * hash) + getMsgBuffer().hashCode();
        if (getViewChangesCount() > 0) {
          hash = (37 * hash) + VIEW_CHANGES_FIELD_NUMBER;
          hash = (53 * hash) + getViewChangesList().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static Consensus.PbftViewChangeStore parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftViewChangeStore parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftViewChangeStore parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftViewChangeStore parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftViewChangeStore parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static Consensus.PbftViewChangeStore parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static Consensus.PbftViewChangeStore parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftViewChangeStore parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftViewChangeStore parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static Consensus.PbftViewChangeStore parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static Consensus.PbftViewChangeStore parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static Consensus.PbftViewChangeStore parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(Consensus.PbftViewChangeStore prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PbftViewChangeStore}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PbftViewChangeStore)
          Consensus.PbftViewChangeStoreOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return Consensus.internal_static_protocol_PbftViewChangeStore_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return Consensus.internal_static_protocol_PbftViewChangeStore_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  Consensus.PbftViewChangeStore.class, Consensus.PbftViewChangeStore.Builder.class);
        }
  
        // Construct using Consensus.PbftViewChangeStore.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getViewChangesFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          sequence_ = 0L;
  
          viewNumber_ = 0L;
  
          viewChangeRound_ = 0;
  
          startTime_ = 0L;
  
          endTime_ = 0L;
  
          lastProposeTime_ = 0L;
  
          lastNewviewTime_ = 0L;
  
          newViewRound_ = 0;
  
          viewChangeMsg_ = com.google.protobuf.ByteString.EMPTY;
  
          if (newViewBuilder_ == null) {
            newView_ = null;
          } else {
            newView_ = null;
            newViewBuilder_ = null;
          }
          msgBuffer_ = com.google.protobuf.ByteString.EMPTY;
  
          if (viewChangesBuilder_ == null) {
            viewChanges_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            viewChangesBuilder_.clear();
          }
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return Consensus.internal_static_protocol_PbftViewChangeStore_descriptor;
        }
  
        @java.lang.Override
        public Consensus.PbftViewChangeStore getDefaultInstanceForType() {
          return Consensus.PbftViewChangeStore.getDefaultInstance();
        }
  
        @java.lang.Override
        public Consensus.PbftViewChangeStore build() {
          Consensus.PbftViewChangeStore result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public Consensus.PbftViewChangeStore buildPartial() {
          Consensus.PbftViewChangeStore result = new Consensus.PbftViewChangeStore(this);
          int from_bitField0_ = bitField0_;
          result.sequence_ = sequence_;
          result.viewNumber_ = viewNumber_;
          result.viewChangeRound_ = viewChangeRound_;
          result.startTime_ = startTime_;
          result.endTime_ = endTime_;
          result.lastProposeTime_ = lastProposeTime_;
          result.lastNewviewTime_ = lastNewviewTime_;
          result.newViewRound_ = newViewRound_;
          result.viewChangeMsg_ = viewChangeMsg_;
          if (newViewBuilder_ == null) {
            result.newView_ = newView_;
          } else {
            result.newView_ = newViewBuilder_.build();
          }
          result.msgBuffer_ = msgBuffer_;
          if (viewChangesBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              viewChanges_ = java.util.Collections.unmodifiableList(viewChanges_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.viewChanges_ = viewChanges_;
          } else {
            result.viewChanges_ = viewChangesBuilder_.build();
          }
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof Consensus.PbftViewChangeStore) {
            return mergeFrom((Consensus.PbftViewChangeStore)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(Consensus.PbftViewChangeStore other) {
          if (other == Consensus.PbftViewChangeStore.getDefaultInstance()) return this;
          if (other.getSequence() != 0L) {
            setSequence(other.getSequence());
          }
          if (other.getViewNumber() != 0L) {
            setViewNumber(other.getViewNumber());
          }
          if (other.getViewChangeRound() != 0) {
            setViewChangeRound(other.getViewChangeRound());
          }
          if (other.getStartTime() != 0L) {
            setStartTime(other.getStartTime());
          }
          if (other.getEndTime() != 0L) {
            setEndTime(other.getEndTime());
          }
          if (other.getLastProposeTime() != 0L) {
            setLastProposeTime(other.getLastProposeTime());
          }
          if (other.getLastNewviewTime() != 0L) {
            setLastNewviewTime(other.getLastNewviewTime());
          }
          if (other.getNewViewRound() != 0) {
            setNewViewRound(other.getNewViewRound());
          }
          if (other.getViewChangeMsg() != com.google.protobuf.ByteString.EMPTY) {
            setViewChangeMsg(other.getViewChangeMsg());
          }
          if (other.hasNewView()) {
            mergeNewView(other.getNewView());
          }
          if (other.getMsgBuffer() != com.google.protobuf.ByteString.EMPTY) {
            setMsgBuffer(other.getMsgBuffer());
          }
          if (viewChangesBuilder_ == null) {
            if (!other.viewChanges_.isEmpty()) {
              if (viewChanges_.isEmpty()) {
                viewChanges_ = other.viewChanges_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureViewChangesIsMutable();
                viewChanges_.addAll(other.viewChanges_);
              }
              onChanged();
            }
          } else {
            if (!other.viewChanges_.isEmpty()) {
              if (viewChangesBuilder_.isEmpty()) {
                viewChangesBuilder_.dispose();
                viewChangesBuilder_ = null;
                viewChanges_ = other.viewChanges_;
                bitField0_ = (bitField0_ & ~0x00000001);
                viewChangesBuilder_ = 
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getViewChangesFieldBuilder() : null;
              } else {
                viewChangesBuilder_.addAllMessages(other.viewChanges_);
              }
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          Consensus.PbftViewChangeStore parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (Consensus.PbftViewChangeStore) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;
  
        private long sequence_ ;
        /**
         * <code>int64 sequence = 1;</code>
         */
        public long getSequence() {
          return sequence_;
        }
        /**
         * <code>int64 sequence = 1;</code>
         */
        public Builder setSequence(long value) {
          
          sequence_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 sequence = 1;</code>
         */
        public Builder clearSequence() {
          
          sequence_ = 0L;
          onChanged();
          return this;
        }
  
        private long viewNumber_ ;
        /**
         * <code>int64 view_number = 2;</code>
         */
        public long getViewNumber() {
          return viewNumber_;
        }
        /**
         * <code>int64 view_number = 2;</code>
         */
        public Builder setViewNumber(long value) {
          
          viewNumber_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 view_number = 2;</code>
         */
        public Builder clearViewNumber() {
          
          viewNumber_ = 0L;
          onChanged();
          return this;
        }
  
        private int viewChangeRound_ ;
        /**
         * <code>int32 view_change_round = 3;</code>
         */
        public int getViewChangeRound() {
          return viewChangeRound_;
        }
        /**
         * <code>int32 view_change_round = 3;</code>
         */
        public Builder setViewChangeRound(int value) {
          
          viewChangeRound_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 view_change_round = 3;</code>
         */
        public Builder clearViewChangeRound() {
          
          viewChangeRound_ = 0;
          onChanged();
          return this;
        }
  
        private long startTime_ ;
        /**
         * <code>int64 start_time = 4;</code>
         */
        public long getStartTime() {
          return startTime_;
        }
        /**
         * <code>int64 start_time = 4;</code>
         */
        public Builder setStartTime(long value) {
          
          startTime_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 start_time = 4;</code>
         */
        public Builder clearStartTime() {
          
          startTime_ = 0L;
          onChanged();
          return this;
        }
  
        private long endTime_ ;
        /**
         * <code>int64 end_time = 5;</code>
         */
        public long getEndTime() {
          return endTime_;
        }
        /**
         * <code>int64 end_time = 5;</code>
         */
        public Builder setEndTime(long value) {
          
          endTime_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 end_time = 5;</code>
         */
        public Builder clearEndTime() {
          
          endTime_ = 0L;
          onChanged();
          return this;
        }
  
        private long lastProposeTime_ ;
        /**
         * <code>int64 last_propose_time = 6;</code>
         */
        public long getLastProposeTime() {
          return lastProposeTime_;
        }
        /**
         * <code>int64 last_propose_time = 6;</code>
         */
        public Builder setLastProposeTime(long value) {
          
          lastProposeTime_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 last_propose_time = 6;</code>
         */
        public Builder clearLastProposeTime() {
          
          lastProposeTime_ = 0L;
          onChanged();
          return this;
        }
  
        private long lastNewviewTime_ ;
        /**
         * <code>int64 last_newview_time = 7;</code>
         */
        public long getLastNewviewTime() {
          return lastNewviewTime_;
        }
        /**
         * <code>int64 last_newview_time = 7;</code>
         */
        public Builder setLastNewviewTime(long value) {
          
          lastNewviewTime_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int64 last_newview_time = 7;</code>
         */
        public Builder clearLastNewviewTime() {
          
          lastNewviewTime_ = 0L;
          onChanged();
          return this;
        }
  
        private int newViewRound_ ;
        /**
         * <code>int32 new_view_round = 8;</code>
         */
        public int getNewViewRound() {
          return newViewRound_;
        }
        /**
         * <code>int32 new_view_round = 8;</code>
         */
        public Builder setNewViewRound(int value) {
          
          newViewRound_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 new_view_round = 8;</code>
         */
        public Builder clearNewViewRound() {
          
          newViewRound_ = 0;
          onChanged();
          return this;
        }
  
        private com.google.protobuf.ByteString viewChangeMsg_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>bytes view_change_msg = 9;</code>
         */
        public com.google.protobuf.ByteString getViewChangeMsg() {
          return viewChangeMsg_;
        }
        /**
         * <code>bytes view_change_msg = 9;</code>
         */
        public Builder setViewChangeMsg(com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          viewChangeMsg_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>bytes view_change_msg = 9;</code>
         */
        public Builder clearViewChangeMsg() {
          
          viewChangeMsg_ = getDefaultInstance().getViewChangeMsg();
          onChanged();
          return this;
        }
  
        private Consensus.PbftEnv newView_;
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> newViewBuilder_;
        /**
         * <code>.PbftEnv new_view = 10;</code>
         */
        public boolean hasNewView() {
          return newViewBuilder_ != null || newView_ != null;
        }
        /**
         * <code>.PbftEnv new_view = 10;</code>
         */
        public Consensus.PbftEnv getNewView() {
          if (newViewBuilder_ == null) {
            return newView_ == null ? Consensus.PbftEnv.getDefaultInstance() : newView_;
          } else {
            return newViewBuilder_.getMessage();
          }
        }
        /**
         * <code>.PbftEnv new_view = 10;</code>
         */
        public Builder setNewView(Consensus.PbftEnv value) {
          if (newViewBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            newView_ = value;
            onChanged();
          } else {
            newViewBuilder_.setMessage(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv new_view = 10;</code>
         */
        public Builder setNewView(
            Consensus.PbftEnv.Builder builderForValue) {
          if (newViewBuilder_ == null) {
            newView_ = builderForValue.build();
            onChanged();
          } else {
            newViewBuilder_.setMessage(builderForValue.build());
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv new_view = 10;</code>
         */
        public Builder mergeNewView(Consensus.PbftEnv value) {
          if (newViewBuilder_ == null) {
            if (newView_ != null) {
              newView_ =
                Consensus.PbftEnv.newBuilder(newView_).mergeFrom(value).buildPartial();
            } else {
              newView_ = value;
            }
            onChanged();
          } else {
            newViewBuilder_.mergeFrom(value);
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv new_view = 10;</code>
         */
        public Builder clearNewView() {
          if (newViewBuilder_ == null) {
            newView_ = null;
            onChanged();
          } else {
            newView_ = null;
            newViewBuilder_ = null;
          }
  
          return this;
        }
        /**
         * <code>.PbftEnv new_view = 10;</code>
         */
        public Consensus.PbftEnv.Builder getNewViewBuilder() {
          
          onChanged();
          return getNewViewFieldBuilder().getBuilder();
        }
        /**
         * <code>.PbftEnv new_view = 10;</code>
         */
        public Consensus.PbftEnvOrBuilder getNewViewOrBuilder() {
          if (newViewBuilder_ != null) {
            return newViewBuilder_.getMessageOrBuilder();
          } else {
            return newView_ == null ?
                Consensus.PbftEnv.getDefaultInstance() : newView_;
          }
        }
        /**
         * <code>.PbftEnv new_view = 10;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder> 
            getNewViewFieldBuilder() {
          if (newViewBuilder_ == null) {
            newViewBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                Consensus.PbftEnv, Consensus.PbftEnv.Builder, Consensus.PbftEnvOrBuilder>(
                    getNewView(),
                    getParentForChildren(),
                    isClean());
            newView_ = null;
          }
          return newViewBuilder_;
        }
  
        private com.google.protobuf.ByteString msgBuffer_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>bytes msg_buffer = 11;</code>
         */
        public com.google.protobuf.ByteString getMsgBuffer() {
          return msgBuffer_;
        }
        /**
         * <code>bytes msg_buffer = 11;</code>
         */
        public Builder setMsgBuffer(com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          msgBuffer_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>bytes msg_buffer = 11;</code>
         */
        public Builder clearMsgBuffer() {
          
          msgBuffer_ = getDefaultInstance().getMsgBuffer();
          onChanged();
          return this;
        }
  
        private java.util.List<Consensus.PbftViewChange> viewChanges_ =
          java.util.Collections.emptyList();
        private void ensureViewChangesIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            viewChanges_ = new java.util.ArrayList<Consensus.PbftViewChange>(viewChanges_);
            bitField0_ |= 0x00000001;
           }
        }
  
        private com.google.protobuf.RepeatedFieldBuilderV3<
            Consensus.PbftViewChange, Consensus.PbftViewChange.Builder, Consensus.PbftViewChangeOrBuilder> viewChangesBuilder_;
  
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public java.util.List<Consensus.PbftViewChange> getViewChangesList() {
          if (viewChangesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(viewChanges_);
          } else {
            return viewChangesBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public int getViewChangesCount() {
          if (viewChangesBuilder_ == null) {
            return viewChanges_.size();
          } else {
            return viewChangesBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Consensus.PbftViewChange getViewChanges(int index) {
          if (viewChangesBuilder_ == null) {
            return viewChanges_.get(index);
          } else {
            return viewChangesBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Builder setViewChanges(
            int index, Consensus.PbftViewChange value) {
          if (viewChangesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureViewChangesIsMutable();
            viewChanges_.set(index, value);
            onChanged();
          } else {
            viewChangesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Builder setViewChanges(
            int index, Consensus.PbftViewChange.Builder builderForValue) {
          if (viewChangesBuilder_ == null) {
            ensureViewChangesIsMutable();
            viewChanges_.set(index, builderForValue.build());
            onChanged();
          } else {
            viewChangesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Builder addViewChanges(Consensus.PbftViewChange value) {
          if (viewChangesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureViewChangesIsMutable();
            viewChanges_.add(value);
            onChanged();
          } else {
            viewChangesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Builder addViewChanges(
            int index, Consensus.PbftViewChange value) {
          if (viewChangesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureViewChangesIsMutable();
            viewChanges_.add(index, value);
            onChanged();
          } else {
            viewChangesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Builder addViewChanges(
            Consensus.PbftViewChange.Builder builderForValue) {
          if (viewChangesBuilder_ == null) {
            ensureViewChangesIsMutable();
            viewChanges_.add(builderForValue.build());
            onChanged();
          } else {
            viewChangesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Builder addViewChanges(
            int index, Consensus.PbftViewChange.Builder builderForValue) {
          if (viewChangesBuilder_ == null) {
            ensureViewChangesIsMutable();
            viewChanges_.add(index, builderForValue.build());
            onChanged();
          } else {
            viewChangesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Builder addAllViewChanges(
            java.lang.Iterable<? extends Consensus.PbftViewChange> values) {
          if (viewChangesBuilder_ == null) {
            ensureViewChangesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, viewChanges_);
            onChanged();
          } else {
            viewChangesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Builder clearViewChanges() {
          if (viewChangesBuilder_ == null) {
            viewChanges_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            viewChangesBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Builder removeViewChanges(int index) {
          if (viewChangesBuilder_ == null) {
            ensureViewChangesIsMutable();
            viewChanges_.remove(index);
            onChanged();
          } else {
            viewChangesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Consensus.PbftViewChange.Builder getViewChangesBuilder(
            int index) {
          return getViewChangesFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Consensus.PbftViewChangeOrBuilder getViewChangesOrBuilder(
            int index) {
          if (viewChangesBuilder_ == null) {
            return viewChanges_.get(index);  } else {
            return viewChangesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public java.util.List<? extends Consensus.PbftViewChangeOrBuilder> 
             getViewChangesOrBuilderList() {
          if (viewChangesBuilder_ != null) {
            return viewChangesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(viewChanges_);
          }
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Consensus.PbftViewChange.Builder addViewChangesBuilder() {
          return getViewChangesFieldBuilder().addBuilder(
              Consensus.PbftViewChange.getDefaultInstance());
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public Consensus.PbftViewChange.Builder addViewChangesBuilder(
            int index) {
          return getViewChangesFieldBuilder().addBuilder(
              index, Consensus.PbftViewChange.getDefaultInstance());
        }
        /**
         * <code>repeated .PbftViewChange view_changes = 12;</code>
         */
        public java.util.List<Consensus.PbftViewChange.Builder> 
             getViewChangesBuilderList() {
          return getViewChangesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilderV3<
            Consensus.PbftViewChange, Consensus.PbftViewChange.Builder, Consensus.PbftViewChangeOrBuilder> 
            getViewChangesFieldBuilder() {
          if (viewChangesBuilder_ == null) {
            viewChangesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                Consensus.PbftViewChange, Consensus.PbftViewChange.Builder, Consensus.PbftViewChangeOrBuilder>(
                    viewChanges_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            viewChanges_ = null;
          }
          return viewChangesBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PbftViewChangeStore)
      }
  
      // @@protoc_insertion_point(class_scope:PbftViewChangeStore)
      private static final Consensus.PbftViewChangeStore DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new Consensus.PbftViewChangeStore();
      }
  
      public static Consensus.PbftViewChangeStore getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<PbftViewChangeStore>
          PARSER = new com.google.protobuf.AbstractParser<PbftViewChangeStore>() {
        @java.lang.Override
        public PbftViewChangeStore parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PbftViewChangeStore(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<PbftViewChangeStore> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<PbftViewChangeStore> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public Consensus.PbftViewChangeStore getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_PbftPrePrepare_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_PbftPrePrepare_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_PbftPrepare_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_PbftPrepare_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_PbftCommit_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_PbftCommit_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_PbftPreparedSet_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_PbftPreparedSet_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_PbftViewChange_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_PbftViewChange_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_PbftViewChangeWithRawValue_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_PbftViewChangeWithRawValue_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_PbftNewView_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_PbftNewView_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_Pbft_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_Pbft_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_Signature_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_Signature_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_PbftEnv_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_PbftEnv_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_ValidatorSetV3_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_ValidatorSetV3_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_PbftProof_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_PbftProof_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_protocol_PbftViewChangeStore_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_protocol_PbftViewChangeStore_fieldAccessorTable;
  
    public static com.google.protobuf.Descriptors.FileDescriptor
        getDescriptor() {
      return descriptor;
    }
    private static  com.google.protobuf.Descriptors.FileDescriptor
        descriptor;
    static {
      java.lang.String[] descriptorData = {
        "\n\017consensus.proto\022\010protocol\"p\n\016PbftPrePr" +
        "epare\022\023\n\013view_number\030\001 \001(\003\022\020\n\010sequence\030\002" +
        " \001(\003\022\022\n\nreplica_id\030\003 \001(\003\022\r\n\005value\030\004 \001(\014\022" +
        "\024\n\014value_digest\030\005 \001(\014\"^\n\013PbftPrepare\022\023\n\013" +
        "view_number\030\001 \001(\003\022\020\n\010sequence\030\002 \001(\003\022\022\n\nr" +
        "eplica_id\030\003 \001(\003\022\024\n\014value_digest\030\004 \001(\014\"]\n" +
        "\nPbftCommit\022\023\n\013view_number\030\001 \001(\003\022\020\n\010sequ" +
        "ence\030\002 \001(\003\022\022\n\nreplica_id\030\003 \001(\003\022\024\n\014value_" +
        "digest\030\004 \001(\014\"\203\001\n\017PbftPreparedSet\022$\n\tpre_" +
        "block\030\001 \001(\0132\021.PbftEnv\022&\n\013pre_pr" +
        "epare\030\002 \001(\0132\021.PbftEnv\022\"\n\007prepar" +
        "e\030\003 \003(\0132\021.PbftEnv\"i\n\016PbftViewCh" +
        "ange\022\023\n\013view_number\030\001 \001(\003\022\020\n\010sequence\030\002 " +
        "\001(\003\022\034\n\024prepred_value_digest\030\003 \001(\014\022\022\n\nrep" +
        "lica_id\030\004 \001(\003\"y\n\032PbftViewChangeWithRawVa" +
        "lue\022*\n\017view_change_env\030\001 \001(\0132\021." +
        "PbftEnv\022/\n\014prepared_set\030\002 \001(\0132\031.protocol" +
        ".PbftPreparedSet\"\277\001\n\013PbftNewView\022\023\n\013view" +
        "_number\030\001 \001(\003\022\020\n\010sequence\030\002 \001(\003\022\022\n\nrepli" +
        "ca_id\030\003 \001(\003\022\'\n\014view_changes\030\004 \003(\0132\021.prot" +
        "ocol.PbftEnv\022&\n\013pre_prepare\030\005 \001(\0132\021.prot" +
        "ocol.PbftEnv\022$\n\tpre_block\030\006 \001(\0132\021.protoc" +
        "ol.PbftEnv\"\365\002\n\004Pbft\022\024\n\014round_number\030\001 \001(" +
        "\003\022\'\n\004type\030\002 \001(\0162\031.PbftMessageTy" +
        "pe\022-\n\013pre_prepare\030\003 \001(\0132\030.PbftP" +
        "rePrepare\022&\n\007prepare\030\004 \001(\0132\025.Pb" +
        "ftPrepare\022$\n\006commit\030\005 \001(\0132\024.Pbf" +
        "tCommit\022-\n\013view_change\030\006 \001(\0132\030." +
        "PbftViewChange\022\'\n\010new_view\030\007 \001(\0132\025.proto" +
        "col.PbftNewView\022G\n\031view_change_with_rawv" +
        "alue\030\010 \001(\0132$.PbftViewChangeWith" +
        "RawValue\022\020\n\010chain_id\030\t \001(\003\"2\n\tSignature\022" +
        "\022\n\npublic_key\030\001 \001(\t\022\021\n\tsign_data\030\002 \001(\014\"O" +
        "\n\007PbftEnv\022\034\n\004pbft\030\001 \001(\0132\016.Pbft\022" +
        "&\n\tsignature\030\002 \001(\0132\023.Signature\"" +
        "$\n\016ValidatorSetV3\022\022\n\nvalidators\030\001 \003(\t\"/\n" +
        "\tPbftProof\022\"\n\007commits\030\001 \003(\0132\021.P" +
        "bftEnv\"\315\002\n\023PbftViewChangeStore\022\020\n\010sequen" +
        "ce\030\001 \001(\003\022\023\n\013view_number\030\002 \001(\003\022\031\n\021view_ch" +
        "ange_round\030\003 \001(\005\022\022\n\nstart_time\030\004 \001(\003\022\020\n\010" +
        "end_time\030\005 \001(\003\022\031\n\021last_propose_time\030\006 \001(" +
        "\003\022\031\n\021last_newview_time\030\007 \001(\003\022\026\n\016new_view" +
        "_round\030\010 \001(\005\022\027\n\017view_change_msg\030\t \001(\014\022#\n" +
        "\010new_view\030\n \001(\0132\021.PbftEnv\022\022\n\nms" +
        "g_buffer\030\013 \001(\014\022.\n\014view_changes\030\014 \003(\0132\030.p" +
        "rotocol.PbftViewChange*\310\001\n\017PbftMessageTy" +
        "pe\022\030\n\024PBFT_TYPE_PREPREPARE\020\000\022\025\n\021PBFT_TYP" +
        "E_PREPARE\020\001\022\024\n\020PBFT_TYPE_COMMIT\020\002\022\030\n\024PBF" +
        "T_TYPE_VIEWCHANGE\020\003\022\025\n\021PBFT_TYPE_NEWVIEW" +
        "\020\004\022%\n!PBFT_TYPE_VIEWCHANG_WITH_RAWVALUE\020" +
        "\005\022\026\n\022PBFT_TYPE_PREBLOCK\020\006*8\n\rPbftValueTy" +
        "pe\022\021\n\rPBFT_VALUE_TX\020\000\022\024\n\020PBFT_VALUE_TXSE" +
        "T\020\001b\006proto3"
      };
      descriptor = com.google.protobuf.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
          new com.google.protobuf.Descriptors.FileDescriptor[] {
          });
      internal_static_protocol_PbftPrePrepare_descriptor =
        getDescriptor().getMessageTypes().get(0);
      internal_static_protocol_PbftPrePrepare_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_PbftPrePrepare_descriptor,
          new java.lang.String[] { "ViewNumber", "Sequence", "ReplicaId", "Value", "ValueDigest", });
      internal_static_protocol_PbftPrepare_descriptor =
        getDescriptor().getMessageTypes().get(1);
      internal_static_protocol_PbftPrepare_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_PbftPrepare_descriptor,
          new java.lang.String[] { "ViewNumber", "Sequence", "ReplicaId", "ValueDigest", });
      internal_static_protocol_PbftCommit_descriptor =
        getDescriptor().getMessageTypes().get(2);
      internal_static_protocol_PbftCommit_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_PbftCommit_descriptor,
          new java.lang.String[] { "ViewNumber", "Sequence", "ReplicaId", "ValueDigest", });
      internal_static_protocol_PbftPreparedSet_descriptor =
        getDescriptor().getMessageTypes().get(3);
      internal_static_protocol_PbftPreparedSet_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_PbftPreparedSet_descriptor,
          new java.lang.String[] { "PreBlock", "PrePrepare", "Prepare", });
      internal_static_protocol_PbftViewChange_descriptor =
        getDescriptor().getMessageTypes().get(4);
      internal_static_protocol_PbftViewChange_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_PbftViewChange_descriptor,
          new java.lang.String[] { "ViewNumber", "Sequence", "PrepredValueDigest", "ReplicaId", });
      internal_static_protocol_PbftViewChangeWithRawValue_descriptor =
        getDescriptor().getMessageTypes().get(5);
      internal_static_protocol_PbftViewChangeWithRawValue_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_PbftViewChangeWithRawValue_descriptor,
          new java.lang.String[] { "ViewChangeEnv", "PreparedSet", });
      internal_static_protocol_PbftNewView_descriptor =
        getDescriptor().getMessageTypes().get(6);
      internal_static_protocol_PbftNewView_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_PbftNewView_descriptor,
          new java.lang.String[] { "ViewNumber", "Sequence", "ReplicaId", "ViewChanges", "PrePrepare", "PreBlock", });
      internal_static_protocol_Pbft_descriptor =
        getDescriptor().getMessageTypes().get(7);
      internal_static_protocol_Pbft_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_Pbft_descriptor,
          new java.lang.String[] { "RoundNumber", "Type", "PrePrepare", "Prepare", "Commit", "ViewChange", "NewView", "ViewChangeWithRawvalue", "ChainId", });
      internal_static_protocol_Signature_descriptor =
        getDescriptor().getMessageTypes().get(8);
      internal_static_protocol_Signature_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_Signature_descriptor,
          new java.lang.String[] { "PublicKey", "SignData", });
      internal_static_protocol_PbftEnv_descriptor =
        getDescriptor().getMessageTypes().get(9);
      internal_static_protocol_PbftEnv_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_PbftEnv_descriptor,
          new java.lang.String[] { "Pbft", "Signature", });
      internal_static_protocol_ValidatorSetV3_descriptor =
        getDescriptor().getMessageTypes().get(10);
      internal_static_protocol_ValidatorSetV3_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_ValidatorSetV3_descriptor,
          new java.lang.String[] { "Validators", });
      internal_static_protocol_PbftProof_descriptor =
        getDescriptor().getMessageTypes().get(11);
      internal_static_protocol_PbftProof_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_PbftProof_descriptor,
          new java.lang.String[] { "Commits", });
      internal_static_protocol_PbftViewChangeStore_descriptor =
        getDescriptor().getMessageTypes().get(12);
      internal_static_protocol_PbftViewChangeStore_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_protocol_PbftViewChangeStore_descriptor,
          new java.lang.String[] { "Sequence", "ViewNumber", "ViewChangeRound", "StartTime", "EndTime", "LastProposeTime", "LastNewviewTime", "NewViewRound", "ViewChangeMsg", "NewView", "MsgBuffer", "ViewChanges", });
    }
  
    // @@protoc_insertion_point(outer_class_scope)
  }
  