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

org.tron.p2p.protos.Discover Maven / Gradle / Ivy

The newest version!
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: Discover.proto

package org.tron.p2p.protos;

public final class Discover {
  private Discover() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface EndpointOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Endpoint)
      com.google.protobuf.MessageOrBuilder {

    /**
     * bytes address = 1;
     */
    com.google.protobuf.ByteString getAddress();

    /**
     * int32 port = 2;
     */
    int getPort();

    /**
     * bytes nodeId = 3;
     */
    com.google.protobuf.ByteString getNodeId();
  }
  /**
   * Protobuf type {@code Endpoint}
   */
  public  static final class Endpoint extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Endpoint)
      EndpointOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Endpoint.newBuilder() to construct.
    private Endpoint(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Endpoint() {
      address_ = com.google.protobuf.ByteString.EMPTY;
      port_ = 0;
      nodeId_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Endpoint(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {

              address_ = input.readBytes();
              break;
            }
            case 16: {

              port_ = input.readInt32();
              break;
            }
            case 26: {

              nodeId_ = input.readBytes();
              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 org.tron.p2p.protos.Discover.internal_static_Endpoint_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.tron.p2p.protos.Discover.internal_static_Endpoint_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.tron.p2p.protos.Discover.Endpoint.class, org.tron.p2p.protos.Discover.Endpoint.Builder.class);
    }

    public static final int ADDRESS_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString address_;
    /**
     * bytes address = 1;
     */
    public com.google.protobuf.ByteString getAddress() {
      return address_;
    }

    public static final int PORT_FIELD_NUMBER = 2;
    private int port_;
    /**
     * int32 port = 2;
     */
    public int getPort() {
      return port_;
    }

    public static final int NODEID_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString nodeId_;
    /**
     * bytes nodeId = 3;
     */
    public com.google.protobuf.ByteString getNodeId() {
      return nodeId_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!address_.isEmpty()) {
        output.writeBytes(1, address_);
      }
      if (port_ != 0) {
        output.writeInt32(2, port_);
      }
      if (!nodeId_.isEmpty()) {
        output.writeBytes(3, nodeId_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!address_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, address_);
      }
      if (port_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, port_);
      }
      if (!nodeId_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, nodeId_);
      }
      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 org.tron.p2p.protos.Discover.Endpoint)) {
        return super.equals(obj);
      }
      org.tron.p2p.protos.Discover.Endpoint other = (org.tron.p2p.protos.Discover.Endpoint) obj;

      boolean result = true;
      result = result && getAddress()
          .equals(other.getAddress());
      result = result && (getPort()
          == other.getPort());
      result = result && getNodeId()
          .equals(other.getNodeId());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ADDRESS_FIELD_NUMBER;
      hash = (53 * hash) + getAddress().hashCode();
      hash = (37 * hash) + PORT_FIELD_NUMBER;
      hash = (53 * hash) + getPort();
      hash = (37 * hash) + NODEID_FIELD_NUMBER;
      hash = (53 * hash) + getNodeId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.tron.p2p.protos.Discover.Endpoint parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.Endpoint parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.Endpoint parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.Endpoint parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.Endpoint parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.Endpoint parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.Endpoint parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.Endpoint 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 org.tron.p2p.protos.Discover.Endpoint parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.Endpoint 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 org.tron.p2p.protos.Discover.Endpoint parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.Endpoint parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.tron.p2p.protos.Discover.Endpoint prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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 Endpoint}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:Endpoint)
        org.tron.p2p.protos.Discover.EndpointOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.tron.p2p.protos.Discover.internal_static_Endpoint_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.tron.p2p.protos.Discover.internal_static_Endpoint_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.tron.p2p.protos.Discover.Endpoint.class, org.tron.p2p.protos.Discover.Endpoint.Builder.class);
      }

      // Construct using org.tron.p2p.protos.Discover.Endpoint.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        address_ = com.google.protobuf.ByteString.EMPTY;

        port_ = 0;

        nodeId_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.tron.p2p.protos.Discover.internal_static_Endpoint_descriptor;
      }

      public org.tron.p2p.protos.Discover.Endpoint getDefaultInstanceForType() {
        return org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance();
      }

      public org.tron.p2p.protos.Discover.Endpoint build() {
        org.tron.p2p.protos.Discover.Endpoint result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.tron.p2p.protos.Discover.Endpoint buildPartial() {
        org.tron.p2p.protos.Discover.Endpoint result = new org.tron.p2p.protos.Discover.Endpoint(this);
        result.address_ = address_;
        result.port_ = port_;
        result.nodeId_ = nodeId_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.tron.p2p.protos.Discover.Endpoint) {
          return mergeFrom((org.tron.p2p.protos.Discover.Endpoint)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.tron.p2p.protos.Discover.Endpoint other) {
        if (other == org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance()) return this;
        if (other.getAddress() != com.google.protobuf.ByteString.EMPTY) {
          setAddress(other.getAddress());
        }
        if (other.getPort() != 0) {
          setPort(other.getPort());
        }
        if (other.getNodeId() != com.google.protobuf.ByteString.EMPTY) {
          setNodeId(other.getNodeId());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.tron.p2p.protos.Discover.Endpoint parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.tron.p2p.protos.Discover.Endpoint) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.google.protobuf.ByteString address_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes address = 1;
       */
      public com.google.protobuf.ByteString getAddress() {
        return address_;
      }
      /**
       * bytes address = 1;
       */
      public Builder setAddress(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        address_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes address = 1;
       */
      public Builder clearAddress() {
        
        address_ = getDefaultInstance().getAddress();
        onChanged();
        return this;
      }

      private int port_ ;
      /**
       * int32 port = 2;
       */
      public int getPort() {
        return port_;
      }
      /**
       * int32 port = 2;
       */
      public Builder setPort(int value) {
        
        port_ = value;
        onChanged();
        return this;
      }
      /**
       * int32 port = 2;
       */
      public Builder clearPort() {
        
        port_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString nodeId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes nodeId = 3;
       */
      public com.google.protobuf.ByteString getNodeId() {
        return nodeId_;
      }
      /**
       * bytes nodeId = 3;
       */
      public Builder setNodeId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        nodeId_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes nodeId = 3;
       */
      public Builder clearNodeId() {
        
        nodeId_ = getDefaultInstance().getNodeId();
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Endpoint)
    }

    // @@protoc_insertion_point(class_scope:Endpoint)
    private static final org.tron.p2p.protos.Discover.Endpoint DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.tron.p2p.protos.Discover.Endpoint();
    }

    public static org.tron.p2p.protos.Discover.Endpoint getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public Endpoint parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Endpoint(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public org.tron.p2p.protos.Discover.Endpoint getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PingMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PingMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .Endpoint from = 1;
     */
    boolean hasFrom();
    /**
     * .Endpoint from = 1;
     */
    org.tron.p2p.protos.Discover.Endpoint getFrom();
    /**
     * .Endpoint from = 1;
     */
    org.tron.p2p.protos.Discover.EndpointOrBuilder getFromOrBuilder();

    /**
     * .Endpoint to = 2;
     */
    boolean hasTo();
    /**
     * .Endpoint to = 2;
     */
    org.tron.p2p.protos.Discover.Endpoint getTo();
    /**
     * .Endpoint to = 2;
     */
    org.tron.p2p.protos.Discover.EndpointOrBuilder getToOrBuilder();

    /**
     * int32 version = 3;
     */
    int getVersion();

    /**
     * int64 timestamp = 4;
     */
    long getTimestamp();
  }
  /**
   * Protobuf type {@code PingMessage}
   */
  public  static final class PingMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PingMessage)
      PingMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PingMessage.newBuilder() to construct.
    private PingMessage(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PingMessage() {
      version_ = 0;
      timestamp_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PingMessage(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.tron.p2p.protos.Discover.Endpoint.Builder subBuilder = null;
              if (from_ != null) {
                subBuilder = from_.toBuilder();
              }
              from_ = input.readMessage(org.tron.p2p.protos.Discover.Endpoint.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(from_);
                from_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              org.tron.p2p.protos.Discover.Endpoint.Builder subBuilder = null;
              if (to_ != null) {
                subBuilder = to_.toBuilder();
              }
              to_ = input.readMessage(org.tron.p2p.protos.Discover.Endpoint.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(to_);
                to_ = subBuilder.buildPartial();
              }

              break;
            }
            case 24: {

              version_ = input.readInt32();
              break;
            }
            case 32: {

              timestamp_ = input.readInt64();
              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 org.tron.p2p.protos.Discover.internal_static_PingMessage_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.tron.p2p.protos.Discover.internal_static_PingMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.tron.p2p.protos.Discover.PingMessage.class, org.tron.p2p.protos.Discover.PingMessage.Builder.class);
    }

    public static final int FROM_FIELD_NUMBER = 1;
    private org.tron.p2p.protos.Discover.Endpoint from_;
    /**
     * .Endpoint from = 1;
     */
    public boolean hasFrom() {
      return from_ != null;
    }
    /**
     * .Endpoint from = 1;
     */
    public org.tron.p2p.protos.Discover.Endpoint getFrom() {
      return from_ == null ? org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : from_;
    }
    /**
     * .Endpoint from = 1;
     */
    public org.tron.p2p.protos.Discover.EndpointOrBuilder getFromOrBuilder() {
      return getFrom();
    }

    public static final int TO_FIELD_NUMBER = 2;
    private org.tron.p2p.protos.Discover.Endpoint to_;
    /**
     * .Endpoint to = 2;
     */
    public boolean hasTo() {
      return to_ != null;
    }
    /**
     * .Endpoint to = 2;
     */
    public org.tron.p2p.protos.Discover.Endpoint getTo() {
      return to_ == null ? org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : to_;
    }
    /**
     * .Endpoint to = 2;
     */
    public org.tron.p2p.protos.Discover.EndpointOrBuilder getToOrBuilder() {
      return getTo();
    }

    public static final int VERSION_FIELD_NUMBER = 3;
    private int version_;
    /**
     * int32 version = 3;
     */
    public int getVersion() {
      return version_;
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 4;
    private long timestamp_;
    /**
     * int64 timestamp = 4;
     */
    public long getTimestamp() {
      return timestamp_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (from_ != null) {
        output.writeMessage(1, getFrom());
      }
      if (to_ != null) {
        output.writeMessage(2, getTo());
      }
      if (version_ != 0) {
        output.writeInt32(3, version_);
      }
      if (timestamp_ != 0L) {
        output.writeInt64(4, timestamp_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (from_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getFrom());
      }
      if (to_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getTo());
      }
      if (version_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, version_);
      }
      if (timestamp_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, timestamp_);
      }
      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 org.tron.p2p.protos.Discover.PingMessage)) {
        return super.equals(obj);
      }
      org.tron.p2p.protos.Discover.PingMessage other = (org.tron.p2p.protos.Discover.PingMessage) obj;

      boolean result = true;
      result = result && (hasFrom() == other.hasFrom());
      if (hasFrom()) {
        result = result && getFrom()
            .equals(other.getFrom());
      }
      result = result && (hasTo() == other.hasTo());
      if (hasTo()) {
        result = result && getTo()
            .equals(other.getTo());
      }
      result = result && (getVersion()
          == other.getVersion());
      result = result && (getTimestamp()
          == other.getTimestamp());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasFrom()) {
        hash = (37 * hash) + FROM_FIELD_NUMBER;
        hash = (53 * hash) + getFrom().hashCode();
      }
      if (hasTo()) {
        hash = (37 * hash) + TO_FIELD_NUMBER;
        hash = (53 * hash) + getTo().hashCode();
      }
      hash = (37 * hash) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getVersion();
      hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTimestamp());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.tron.p2p.protos.Discover.PingMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.PingMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.PingMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.PingMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.PingMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.PingMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.PingMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.PingMessage 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 org.tron.p2p.protos.Discover.PingMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.PingMessage 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 org.tron.p2p.protos.Discover.PingMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.PingMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.tron.p2p.protos.Discover.PingMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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 PingMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:PingMessage)
        org.tron.p2p.protos.Discover.PingMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.tron.p2p.protos.Discover.internal_static_PingMessage_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.tron.p2p.protos.Discover.internal_static_PingMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.tron.p2p.protos.Discover.PingMessage.class, org.tron.p2p.protos.Discover.PingMessage.Builder.class);
      }

      // Construct using org.tron.p2p.protos.Discover.PingMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        if (fromBuilder_ == null) {
          from_ = null;
        } else {
          from_ = null;
          fromBuilder_ = null;
        }
        if (toBuilder_ == null) {
          to_ = null;
        } else {
          to_ = null;
          toBuilder_ = null;
        }
        version_ = 0;

        timestamp_ = 0L;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.tron.p2p.protos.Discover.internal_static_PingMessage_descriptor;
      }

      public org.tron.p2p.protos.Discover.PingMessage getDefaultInstanceForType() {
        return org.tron.p2p.protos.Discover.PingMessage.getDefaultInstance();
      }

      public org.tron.p2p.protos.Discover.PingMessage build() {
        org.tron.p2p.protos.Discover.PingMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.tron.p2p.protos.Discover.PingMessage buildPartial() {
        org.tron.p2p.protos.Discover.PingMessage result = new org.tron.p2p.protos.Discover.PingMessage(this);
        if (fromBuilder_ == null) {
          result.from_ = from_;
        } else {
          result.from_ = fromBuilder_.build();
        }
        if (toBuilder_ == null) {
          result.to_ = to_;
        } else {
          result.to_ = toBuilder_.build();
        }
        result.version_ = version_;
        result.timestamp_ = timestamp_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.tron.p2p.protos.Discover.PingMessage) {
          return mergeFrom((org.tron.p2p.protos.Discover.PingMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.tron.p2p.protos.Discover.PingMessage other) {
        if (other == org.tron.p2p.protos.Discover.PingMessage.getDefaultInstance()) return this;
        if (other.hasFrom()) {
          mergeFrom(other.getFrom());
        }
        if (other.hasTo()) {
          mergeTo(other.getTo());
        }
        if (other.getVersion() != 0) {
          setVersion(other.getVersion());
        }
        if (other.getTimestamp() != 0L) {
          setTimestamp(other.getTimestamp());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.tron.p2p.protos.Discover.PingMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.tron.p2p.protos.Discover.PingMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private org.tron.p2p.protos.Discover.Endpoint from_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder> fromBuilder_;
      /**
       * .Endpoint from = 1;
       */
      public boolean hasFrom() {
        return fromBuilder_ != null || from_ != null;
      }
      /**
       * .Endpoint from = 1;
       */
      public org.tron.p2p.protos.Discover.Endpoint getFrom() {
        if (fromBuilder_ == null) {
          return from_ == null ? org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : from_;
        } else {
          return fromBuilder_.getMessage();
        }
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder setFrom(org.tron.p2p.protos.Discover.Endpoint value) {
        if (fromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          from_ = value;
          onChanged();
        } else {
          fromBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder setFrom(
          org.tron.p2p.protos.Discover.Endpoint.Builder builderForValue) {
        if (fromBuilder_ == null) {
          from_ = builderForValue.build();
          onChanged();
        } else {
          fromBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder mergeFrom(org.tron.p2p.protos.Discover.Endpoint value) {
        if (fromBuilder_ == null) {
          if (from_ != null) {
            from_ =
              org.tron.p2p.protos.Discover.Endpoint.newBuilder(from_).mergeFrom(value).buildPartial();
          } else {
            from_ = value;
          }
          onChanged();
        } else {
          fromBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder clearFrom() {
        if (fromBuilder_ == null) {
          from_ = null;
          onChanged();
        } else {
          from_ = null;
          fromBuilder_ = null;
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public org.tron.p2p.protos.Discover.Endpoint.Builder getFromBuilder() {
        
        onChanged();
        return getFromFieldBuilder().getBuilder();
      }
      /**
       * .Endpoint from = 1;
       */
      public org.tron.p2p.protos.Discover.EndpointOrBuilder getFromOrBuilder() {
        if (fromBuilder_ != null) {
          return fromBuilder_.getMessageOrBuilder();
        } else {
          return from_ == null ?
              org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : from_;
        }
      }
      /**
       * .Endpoint from = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder> 
          getFromFieldBuilder() {
        if (fromBuilder_ == null) {
          fromBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder>(
                  getFrom(),
                  getParentForChildren(),
                  isClean());
          from_ = null;
        }
        return fromBuilder_;
      }

      private org.tron.p2p.protos.Discover.Endpoint to_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder> toBuilder_;
      /**
       * .Endpoint to = 2;
       */
      public boolean hasTo() {
        return toBuilder_ != null || to_ != null;
      }
      /**
       * .Endpoint to = 2;
       */
      public org.tron.p2p.protos.Discover.Endpoint getTo() {
        if (toBuilder_ == null) {
          return to_ == null ? org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : to_;
        } else {
          return toBuilder_.getMessage();
        }
      }
      /**
       * .Endpoint to = 2;
       */
      public Builder setTo(org.tron.p2p.protos.Discover.Endpoint value) {
        if (toBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          to_ = value;
          onChanged();
        } else {
          toBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .Endpoint to = 2;
       */
      public Builder setTo(
          org.tron.p2p.protos.Discover.Endpoint.Builder builderForValue) {
        if (toBuilder_ == null) {
          to_ = builderForValue.build();
          onChanged();
        } else {
          toBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .Endpoint to = 2;
       */
      public Builder mergeTo(org.tron.p2p.protos.Discover.Endpoint value) {
        if (toBuilder_ == null) {
          if (to_ != null) {
            to_ =
              org.tron.p2p.protos.Discover.Endpoint.newBuilder(to_).mergeFrom(value).buildPartial();
          } else {
            to_ = value;
          }
          onChanged();
        } else {
          toBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .Endpoint to = 2;
       */
      public Builder clearTo() {
        if (toBuilder_ == null) {
          to_ = null;
          onChanged();
        } else {
          to_ = null;
          toBuilder_ = null;
        }

        return this;
      }
      /**
       * .Endpoint to = 2;
       */
      public org.tron.p2p.protos.Discover.Endpoint.Builder getToBuilder() {
        
        onChanged();
        return getToFieldBuilder().getBuilder();
      }
      /**
       * .Endpoint to = 2;
       */
      public org.tron.p2p.protos.Discover.EndpointOrBuilder getToOrBuilder() {
        if (toBuilder_ != null) {
          return toBuilder_.getMessageOrBuilder();
        } else {
          return to_ == null ?
              org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : to_;
        }
      }
      /**
       * .Endpoint to = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder> 
          getToFieldBuilder() {
        if (toBuilder_ == null) {
          toBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder>(
                  getTo(),
                  getParentForChildren(),
                  isClean());
          to_ = null;
        }
        return toBuilder_;
      }

      private int version_ ;
      /**
       * int32 version = 3;
       */
      public int getVersion() {
        return version_;
      }
      /**
       * int32 version = 3;
       */
      public Builder setVersion(int value) {
        
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * int32 version = 3;
       */
      public Builder clearVersion() {
        
        version_ = 0;
        onChanged();
        return this;
      }

      private long timestamp_ ;
      /**
       * int64 timestamp = 4;
       */
      public long getTimestamp() {
        return timestamp_;
      }
      /**
       * int64 timestamp = 4;
       */
      public Builder setTimestamp(long value) {
        
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 timestamp = 4;
       */
      public Builder clearTimestamp() {
        
        timestamp_ = 0L;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:PingMessage)
    }

    // @@protoc_insertion_point(class_scope:PingMessage)
    private static final org.tron.p2p.protos.Discover.PingMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.tron.p2p.protos.Discover.PingMessage();
    }

    public static org.tron.p2p.protos.Discover.PingMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public PingMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PingMessage(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public org.tron.p2p.protos.Discover.PingMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PongMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:PongMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .Endpoint from = 1;
     */
    boolean hasFrom();
    /**
     * .Endpoint from = 1;
     */
    org.tron.p2p.protos.Discover.Endpoint getFrom();
    /**
     * .Endpoint from = 1;
     */
    org.tron.p2p.protos.Discover.EndpointOrBuilder getFromOrBuilder();

    /**
     * int32 echo = 2;
     */
    int getEcho();

    /**
     * int64 timestamp = 3;
     */
    long getTimestamp();
  }
  /**
   * Protobuf type {@code PongMessage}
   */
  public  static final class PongMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PongMessage)
      PongMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PongMessage.newBuilder() to construct.
    private PongMessage(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PongMessage() {
      echo_ = 0;
      timestamp_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PongMessage(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.tron.p2p.protos.Discover.Endpoint.Builder subBuilder = null;
              if (from_ != null) {
                subBuilder = from_.toBuilder();
              }
              from_ = input.readMessage(org.tron.p2p.protos.Discover.Endpoint.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(from_);
                from_ = subBuilder.buildPartial();
              }

              break;
            }
            case 16: {

              echo_ = input.readInt32();
              break;
            }
            case 24: {

              timestamp_ = input.readInt64();
              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 org.tron.p2p.protos.Discover.internal_static_PongMessage_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.tron.p2p.protos.Discover.internal_static_PongMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.tron.p2p.protos.Discover.PongMessage.class, org.tron.p2p.protos.Discover.PongMessage.Builder.class);
    }

    public static final int FROM_FIELD_NUMBER = 1;
    private org.tron.p2p.protos.Discover.Endpoint from_;
    /**
     * .Endpoint from = 1;
     */
    public boolean hasFrom() {
      return from_ != null;
    }
    /**
     * .Endpoint from = 1;
     */
    public org.tron.p2p.protos.Discover.Endpoint getFrom() {
      return from_ == null ? org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : from_;
    }
    /**
     * .Endpoint from = 1;
     */
    public org.tron.p2p.protos.Discover.EndpointOrBuilder getFromOrBuilder() {
      return getFrom();
    }

    public static final int ECHO_FIELD_NUMBER = 2;
    private int echo_;
    /**
     * int32 echo = 2;
     */
    public int getEcho() {
      return echo_;
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 3;
    private long timestamp_;
    /**
     * int64 timestamp = 3;
     */
    public long getTimestamp() {
      return timestamp_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (from_ != null) {
        output.writeMessage(1, getFrom());
      }
      if (echo_ != 0) {
        output.writeInt32(2, echo_);
      }
      if (timestamp_ != 0L) {
        output.writeInt64(3, timestamp_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (from_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getFrom());
      }
      if (echo_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, echo_);
      }
      if (timestamp_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, timestamp_);
      }
      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 org.tron.p2p.protos.Discover.PongMessage)) {
        return super.equals(obj);
      }
      org.tron.p2p.protos.Discover.PongMessage other = (org.tron.p2p.protos.Discover.PongMessage) obj;

      boolean result = true;
      result = result && (hasFrom() == other.hasFrom());
      if (hasFrom()) {
        result = result && getFrom()
            .equals(other.getFrom());
      }
      result = result && (getEcho()
          == other.getEcho());
      result = result && (getTimestamp()
          == other.getTimestamp());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasFrom()) {
        hash = (37 * hash) + FROM_FIELD_NUMBER;
        hash = (53 * hash) + getFrom().hashCode();
      }
      hash = (37 * hash) + ECHO_FIELD_NUMBER;
      hash = (53 * hash) + getEcho();
      hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTimestamp());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.tron.p2p.protos.Discover.PongMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.PongMessage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.PongMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.PongMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.PongMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.PongMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.PongMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.PongMessage 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 org.tron.p2p.protos.Discover.PongMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.PongMessage 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 org.tron.p2p.protos.Discover.PongMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.PongMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.tron.p2p.protos.Discover.PongMessage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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 PongMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:PongMessage)
        org.tron.p2p.protos.Discover.PongMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.tron.p2p.protos.Discover.internal_static_PongMessage_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.tron.p2p.protos.Discover.internal_static_PongMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.tron.p2p.protos.Discover.PongMessage.class, org.tron.p2p.protos.Discover.PongMessage.Builder.class);
      }

      // Construct using org.tron.p2p.protos.Discover.PongMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        if (fromBuilder_ == null) {
          from_ = null;
        } else {
          from_ = null;
          fromBuilder_ = null;
        }
        echo_ = 0;

        timestamp_ = 0L;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.tron.p2p.protos.Discover.internal_static_PongMessage_descriptor;
      }

      public org.tron.p2p.protos.Discover.PongMessage getDefaultInstanceForType() {
        return org.tron.p2p.protos.Discover.PongMessage.getDefaultInstance();
      }

      public org.tron.p2p.protos.Discover.PongMessage build() {
        org.tron.p2p.protos.Discover.PongMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.tron.p2p.protos.Discover.PongMessage buildPartial() {
        org.tron.p2p.protos.Discover.PongMessage result = new org.tron.p2p.protos.Discover.PongMessage(this);
        if (fromBuilder_ == null) {
          result.from_ = from_;
        } else {
          result.from_ = fromBuilder_.build();
        }
        result.echo_ = echo_;
        result.timestamp_ = timestamp_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.tron.p2p.protos.Discover.PongMessage) {
          return mergeFrom((org.tron.p2p.protos.Discover.PongMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.tron.p2p.protos.Discover.PongMessage other) {
        if (other == org.tron.p2p.protos.Discover.PongMessage.getDefaultInstance()) return this;
        if (other.hasFrom()) {
          mergeFrom(other.getFrom());
        }
        if (other.getEcho() != 0) {
          setEcho(other.getEcho());
        }
        if (other.getTimestamp() != 0L) {
          setTimestamp(other.getTimestamp());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.tron.p2p.protos.Discover.PongMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.tron.p2p.protos.Discover.PongMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private org.tron.p2p.protos.Discover.Endpoint from_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder> fromBuilder_;
      /**
       * .Endpoint from = 1;
       */
      public boolean hasFrom() {
        return fromBuilder_ != null || from_ != null;
      }
      /**
       * .Endpoint from = 1;
       */
      public org.tron.p2p.protos.Discover.Endpoint getFrom() {
        if (fromBuilder_ == null) {
          return from_ == null ? org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : from_;
        } else {
          return fromBuilder_.getMessage();
        }
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder setFrom(org.tron.p2p.protos.Discover.Endpoint value) {
        if (fromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          from_ = value;
          onChanged();
        } else {
          fromBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder setFrom(
          org.tron.p2p.protos.Discover.Endpoint.Builder builderForValue) {
        if (fromBuilder_ == null) {
          from_ = builderForValue.build();
          onChanged();
        } else {
          fromBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder mergeFrom(org.tron.p2p.protos.Discover.Endpoint value) {
        if (fromBuilder_ == null) {
          if (from_ != null) {
            from_ =
              org.tron.p2p.protos.Discover.Endpoint.newBuilder(from_).mergeFrom(value).buildPartial();
          } else {
            from_ = value;
          }
          onChanged();
        } else {
          fromBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder clearFrom() {
        if (fromBuilder_ == null) {
          from_ = null;
          onChanged();
        } else {
          from_ = null;
          fromBuilder_ = null;
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public org.tron.p2p.protos.Discover.Endpoint.Builder getFromBuilder() {
        
        onChanged();
        return getFromFieldBuilder().getBuilder();
      }
      /**
       * .Endpoint from = 1;
       */
      public org.tron.p2p.protos.Discover.EndpointOrBuilder getFromOrBuilder() {
        if (fromBuilder_ != null) {
          return fromBuilder_.getMessageOrBuilder();
        } else {
          return from_ == null ?
              org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : from_;
        }
      }
      /**
       * .Endpoint from = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder> 
          getFromFieldBuilder() {
        if (fromBuilder_ == null) {
          fromBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder>(
                  getFrom(),
                  getParentForChildren(),
                  isClean());
          from_ = null;
        }
        return fromBuilder_;
      }

      private int echo_ ;
      /**
       * int32 echo = 2;
       */
      public int getEcho() {
        return echo_;
      }
      /**
       * int32 echo = 2;
       */
      public Builder setEcho(int value) {
        
        echo_ = value;
        onChanged();
        return this;
      }
      /**
       * int32 echo = 2;
       */
      public Builder clearEcho() {
        
        echo_ = 0;
        onChanged();
        return this;
      }

      private long timestamp_ ;
      /**
       * int64 timestamp = 3;
       */
      public long getTimestamp() {
        return timestamp_;
      }
      /**
       * int64 timestamp = 3;
       */
      public Builder setTimestamp(long value) {
        
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 timestamp = 3;
       */
      public Builder clearTimestamp() {
        
        timestamp_ = 0L;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:PongMessage)
    }

    // @@protoc_insertion_point(class_scope:PongMessage)
    private static final org.tron.p2p.protos.Discover.PongMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.tron.p2p.protos.Discover.PongMessage();
    }

    public static org.tron.p2p.protos.Discover.PongMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public PongMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PongMessage(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public org.tron.p2p.protos.Discover.PongMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface FindNeighboursOrBuilder extends
      // @@protoc_insertion_point(interface_extends:FindNeighbours)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .Endpoint from = 1;
     */
    boolean hasFrom();
    /**
     * .Endpoint from = 1;
     */
    org.tron.p2p.protos.Discover.Endpoint getFrom();
    /**
     * .Endpoint from = 1;
     */
    org.tron.p2p.protos.Discover.EndpointOrBuilder getFromOrBuilder();

    /**
     * bytes targetId = 2;
     */
    com.google.protobuf.ByteString getTargetId();

    /**
     * int64 timestamp = 3;
     */
    long getTimestamp();
  }
  /**
   * Protobuf type {@code FindNeighbours}
   */
  public  static final class FindNeighbours extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:FindNeighbours)
      FindNeighboursOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FindNeighbours.newBuilder() to construct.
    private FindNeighbours(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private FindNeighbours() {
      targetId_ = com.google.protobuf.ByteString.EMPTY;
      timestamp_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private FindNeighbours(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.tron.p2p.protos.Discover.Endpoint.Builder subBuilder = null;
              if (from_ != null) {
                subBuilder = from_.toBuilder();
              }
              from_ = input.readMessage(org.tron.p2p.protos.Discover.Endpoint.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(from_);
                from_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {

              targetId_ = input.readBytes();
              break;
            }
            case 24: {

              timestamp_ = input.readInt64();
              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 org.tron.p2p.protos.Discover.internal_static_FindNeighbours_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.tron.p2p.protos.Discover.internal_static_FindNeighbours_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.tron.p2p.protos.Discover.FindNeighbours.class, org.tron.p2p.protos.Discover.FindNeighbours.Builder.class);
    }

    public static final int FROM_FIELD_NUMBER = 1;
    private org.tron.p2p.protos.Discover.Endpoint from_;
    /**
     * .Endpoint from = 1;
     */
    public boolean hasFrom() {
      return from_ != null;
    }
    /**
     * .Endpoint from = 1;
     */
    public org.tron.p2p.protos.Discover.Endpoint getFrom() {
      return from_ == null ? org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : from_;
    }
    /**
     * .Endpoint from = 1;
     */
    public org.tron.p2p.protos.Discover.EndpointOrBuilder getFromOrBuilder() {
      return getFrom();
    }

    public static final int TARGETID_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString targetId_;
    /**
     * bytes targetId = 2;
     */
    public com.google.protobuf.ByteString getTargetId() {
      return targetId_;
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 3;
    private long timestamp_;
    /**
     * int64 timestamp = 3;
     */
    public long getTimestamp() {
      return timestamp_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (from_ != null) {
        output.writeMessage(1, getFrom());
      }
      if (!targetId_.isEmpty()) {
        output.writeBytes(2, targetId_);
      }
      if (timestamp_ != 0L) {
        output.writeInt64(3, timestamp_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (from_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getFrom());
      }
      if (!targetId_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, targetId_);
      }
      if (timestamp_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, timestamp_);
      }
      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 org.tron.p2p.protos.Discover.FindNeighbours)) {
        return super.equals(obj);
      }
      org.tron.p2p.protos.Discover.FindNeighbours other = (org.tron.p2p.protos.Discover.FindNeighbours) obj;

      boolean result = true;
      result = result && (hasFrom() == other.hasFrom());
      if (hasFrom()) {
        result = result && getFrom()
            .equals(other.getFrom());
      }
      result = result && getTargetId()
          .equals(other.getTargetId());
      result = result && (getTimestamp()
          == other.getTimestamp());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasFrom()) {
        hash = (37 * hash) + FROM_FIELD_NUMBER;
        hash = (53 * hash) + getFrom().hashCode();
      }
      hash = (37 * hash) + TARGETID_FIELD_NUMBER;
      hash = (53 * hash) + getTargetId().hashCode();
      hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTimestamp());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.tron.p2p.protos.Discover.FindNeighbours parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.FindNeighbours parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.FindNeighbours parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.FindNeighbours parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.FindNeighbours parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.FindNeighbours parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.FindNeighbours parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.FindNeighbours 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 org.tron.p2p.protos.Discover.FindNeighbours parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.FindNeighbours 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 org.tron.p2p.protos.Discover.FindNeighbours parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.FindNeighbours parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.tron.p2p.protos.Discover.FindNeighbours prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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 FindNeighbours}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:FindNeighbours)
        org.tron.p2p.protos.Discover.FindNeighboursOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.tron.p2p.protos.Discover.internal_static_FindNeighbours_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.tron.p2p.protos.Discover.internal_static_FindNeighbours_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.tron.p2p.protos.Discover.FindNeighbours.class, org.tron.p2p.protos.Discover.FindNeighbours.Builder.class);
      }

      // Construct using org.tron.p2p.protos.Discover.FindNeighbours.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        if (fromBuilder_ == null) {
          from_ = null;
        } else {
          from_ = null;
          fromBuilder_ = null;
        }
        targetId_ = com.google.protobuf.ByteString.EMPTY;

        timestamp_ = 0L;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.tron.p2p.protos.Discover.internal_static_FindNeighbours_descriptor;
      }

      public org.tron.p2p.protos.Discover.FindNeighbours getDefaultInstanceForType() {
        return org.tron.p2p.protos.Discover.FindNeighbours.getDefaultInstance();
      }

      public org.tron.p2p.protos.Discover.FindNeighbours build() {
        org.tron.p2p.protos.Discover.FindNeighbours result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.tron.p2p.protos.Discover.FindNeighbours buildPartial() {
        org.tron.p2p.protos.Discover.FindNeighbours result = new org.tron.p2p.protos.Discover.FindNeighbours(this);
        if (fromBuilder_ == null) {
          result.from_ = from_;
        } else {
          result.from_ = fromBuilder_.build();
        }
        result.targetId_ = targetId_;
        result.timestamp_ = timestamp_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.tron.p2p.protos.Discover.FindNeighbours) {
          return mergeFrom((org.tron.p2p.protos.Discover.FindNeighbours)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.tron.p2p.protos.Discover.FindNeighbours other) {
        if (other == org.tron.p2p.protos.Discover.FindNeighbours.getDefaultInstance()) return this;
        if (other.hasFrom()) {
          mergeFrom(other.getFrom());
        }
        if (other.getTargetId() != com.google.protobuf.ByteString.EMPTY) {
          setTargetId(other.getTargetId());
        }
        if (other.getTimestamp() != 0L) {
          setTimestamp(other.getTimestamp());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.tron.p2p.protos.Discover.FindNeighbours parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.tron.p2p.protos.Discover.FindNeighbours) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private org.tron.p2p.protos.Discover.Endpoint from_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder> fromBuilder_;
      /**
       * .Endpoint from = 1;
       */
      public boolean hasFrom() {
        return fromBuilder_ != null || from_ != null;
      }
      /**
       * .Endpoint from = 1;
       */
      public org.tron.p2p.protos.Discover.Endpoint getFrom() {
        if (fromBuilder_ == null) {
          return from_ == null ? org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : from_;
        } else {
          return fromBuilder_.getMessage();
        }
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder setFrom(org.tron.p2p.protos.Discover.Endpoint value) {
        if (fromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          from_ = value;
          onChanged();
        } else {
          fromBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder setFrom(
          org.tron.p2p.protos.Discover.Endpoint.Builder builderForValue) {
        if (fromBuilder_ == null) {
          from_ = builderForValue.build();
          onChanged();
        } else {
          fromBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder mergeFrom(org.tron.p2p.protos.Discover.Endpoint value) {
        if (fromBuilder_ == null) {
          if (from_ != null) {
            from_ =
              org.tron.p2p.protos.Discover.Endpoint.newBuilder(from_).mergeFrom(value).buildPartial();
          } else {
            from_ = value;
          }
          onChanged();
        } else {
          fromBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder clearFrom() {
        if (fromBuilder_ == null) {
          from_ = null;
          onChanged();
        } else {
          from_ = null;
          fromBuilder_ = null;
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public org.tron.p2p.protos.Discover.Endpoint.Builder getFromBuilder() {
        
        onChanged();
        return getFromFieldBuilder().getBuilder();
      }
      /**
       * .Endpoint from = 1;
       */
      public org.tron.p2p.protos.Discover.EndpointOrBuilder getFromOrBuilder() {
        if (fromBuilder_ != null) {
          return fromBuilder_.getMessageOrBuilder();
        } else {
          return from_ == null ?
              org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : from_;
        }
      }
      /**
       * .Endpoint from = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder> 
          getFromFieldBuilder() {
        if (fromBuilder_ == null) {
          fromBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder>(
                  getFrom(),
                  getParentForChildren(),
                  isClean());
          from_ = null;
        }
        return fromBuilder_;
      }

      private com.google.protobuf.ByteString targetId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes targetId = 2;
       */
      public com.google.protobuf.ByteString getTargetId() {
        return targetId_;
      }
      /**
       * bytes targetId = 2;
       */
      public Builder setTargetId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        targetId_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes targetId = 2;
       */
      public Builder clearTargetId() {
        
        targetId_ = getDefaultInstance().getTargetId();
        onChanged();
        return this;
      }

      private long timestamp_ ;
      /**
       * int64 timestamp = 3;
       */
      public long getTimestamp() {
        return timestamp_;
      }
      /**
       * int64 timestamp = 3;
       */
      public Builder setTimestamp(long value) {
        
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 timestamp = 3;
       */
      public Builder clearTimestamp() {
        
        timestamp_ = 0L;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:FindNeighbours)
    }

    // @@protoc_insertion_point(class_scope:FindNeighbours)
    private static final org.tron.p2p.protos.Discover.FindNeighbours DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.tron.p2p.protos.Discover.FindNeighbours();
    }

    public static org.tron.p2p.protos.Discover.FindNeighbours getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public FindNeighbours parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new FindNeighbours(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public org.tron.p2p.protos.Discover.FindNeighbours getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface NeighboursOrBuilder extends
      // @@protoc_insertion_point(interface_extends:Neighbours)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .Endpoint from = 1;
     */
    boolean hasFrom();
    /**
     * .Endpoint from = 1;
     */
    org.tron.p2p.protos.Discover.Endpoint getFrom();
    /**
     * .Endpoint from = 1;
     */
    org.tron.p2p.protos.Discover.EndpointOrBuilder getFromOrBuilder();

    /**
     * repeated .Endpoint neighbours = 2;
     */
    java.util.List 
        getNeighboursList();
    /**
     * repeated .Endpoint neighbours = 2;
     */
    org.tron.p2p.protos.Discover.Endpoint getNeighbours(int index);
    /**
     * repeated .Endpoint neighbours = 2;
     */
    int getNeighboursCount();
    /**
     * repeated .Endpoint neighbours = 2;
     */
    java.util.List 
        getNeighboursOrBuilderList();
    /**
     * repeated .Endpoint neighbours = 2;
     */
    org.tron.p2p.protos.Discover.EndpointOrBuilder getNeighboursOrBuilder(
        int index);

    /**
     * int64 timestamp = 3;
     */
    long getTimestamp();
  }
  /**
   * Protobuf type {@code Neighbours}
   */
  public  static final class Neighbours extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:Neighbours)
      NeighboursOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Neighbours.newBuilder() to construct.
    private Neighbours(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Neighbours() {
      neighbours_ = java.util.Collections.emptyList();
      timestamp_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Neighbours(
        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;
            default: {
              if (!parseUnknownFieldProto3(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              org.tron.p2p.protos.Discover.Endpoint.Builder subBuilder = null;
              if (from_ != null) {
                subBuilder = from_.toBuilder();
              }
              from_ = input.readMessage(org.tron.p2p.protos.Discover.Endpoint.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(from_);
                from_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                neighbours_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              neighbours_.add(
                  input.readMessage(org.tron.p2p.protos.Discover.Endpoint.parser(), extensionRegistry));
              break;
            }
            case 24: {

              timestamp_ = input.readInt64();
              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_ & 0x00000002) == 0x00000002)) {
          neighbours_ = java.util.Collections.unmodifiableList(neighbours_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return org.tron.p2p.protos.Discover.internal_static_Neighbours_descriptor;
    }

    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return org.tron.p2p.protos.Discover.internal_static_Neighbours_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              org.tron.p2p.protos.Discover.Neighbours.class, org.tron.p2p.protos.Discover.Neighbours.Builder.class);
    }

    private int bitField0_;
    public static final int FROM_FIELD_NUMBER = 1;
    private org.tron.p2p.protos.Discover.Endpoint from_;
    /**
     * .Endpoint from = 1;
     */
    public boolean hasFrom() {
      return from_ != null;
    }
    /**
     * .Endpoint from = 1;
     */
    public org.tron.p2p.protos.Discover.Endpoint getFrom() {
      return from_ == null ? org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : from_;
    }
    /**
     * .Endpoint from = 1;
     */
    public org.tron.p2p.protos.Discover.EndpointOrBuilder getFromOrBuilder() {
      return getFrom();
    }

    public static final int NEIGHBOURS_FIELD_NUMBER = 2;
    private java.util.List neighbours_;
    /**
     * repeated .Endpoint neighbours = 2;
     */
    public java.util.List getNeighboursList() {
      return neighbours_;
    }
    /**
     * repeated .Endpoint neighbours = 2;
     */
    public java.util.List 
        getNeighboursOrBuilderList() {
      return neighbours_;
    }
    /**
     * repeated .Endpoint neighbours = 2;
     */
    public int getNeighboursCount() {
      return neighbours_.size();
    }
    /**
     * repeated .Endpoint neighbours = 2;
     */
    public org.tron.p2p.protos.Discover.Endpoint getNeighbours(int index) {
      return neighbours_.get(index);
    }
    /**
     * repeated .Endpoint neighbours = 2;
     */
    public org.tron.p2p.protos.Discover.EndpointOrBuilder getNeighboursOrBuilder(
        int index) {
      return neighbours_.get(index);
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 3;
    private long timestamp_;
    /**
     * int64 timestamp = 3;
     */
    public long getTimestamp() {
      return timestamp_;
    }

    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (from_ != null) {
        output.writeMessage(1, getFrom());
      }
      for (int i = 0; i < neighbours_.size(); i++) {
        output.writeMessage(2, neighbours_.get(i));
      }
      if (timestamp_ != 0L) {
        output.writeInt64(3, timestamp_);
      }
      unknownFields.writeTo(output);
    }

    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (from_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getFrom());
      }
      for (int i = 0; i < neighbours_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, neighbours_.get(i));
      }
      if (timestamp_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, timestamp_);
      }
      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 org.tron.p2p.protos.Discover.Neighbours)) {
        return super.equals(obj);
      }
      org.tron.p2p.protos.Discover.Neighbours other = (org.tron.p2p.protos.Discover.Neighbours) obj;

      boolean result = true;
      result = result && (hasFrom() == other.hasFrom());
      if (hasFrom()) {
        result = result && getFrom()
            .equals(other.getFrom());
      }
      result = result && getNeighboursList()
          .equals(other.getNeighboursList());
      result = result && (getTimestamp()
          == other.getTimestamp());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasFrom()) {
        hash = (37 * hash) + FROM_FIELD_NUMBER;
        hash = (53 * hash) + getFrom().hashCode();
      }
      if (getNeighboursCount() > 0) {
        hash = (37 * hash) + NEIGHBOURS_FIELD_NUMBER;
        hash = (53 * hash) + getNeighboursList().hashCode();
      }
      hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTimestamp());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static org.tron.p2p.protos.Discover.Neighbours parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.Neighbours parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.Neighbours parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.Neighbours parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.Neighbours parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static org.tron.p2p.protos.Discover.Neighbours parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static org.tron.p2p.protos.Discover.Neighbours parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.Neighbours 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 org.tron.p2p.protos.Discover.Neighbours parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.Neighbours 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 org.tron.p2p.protos.Discover.Neighbours parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static org.tron.p2p.protos.Discover.Neighbours parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(org.tron.p2p.protos.Discover.Neighbours prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    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 Neighbours}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:Neighbours)
        org.tron.p2p.protos.Discover.NeighboursOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return org.tron.p2p.protos.Discover.internal_static_Neighbours_descriptor;
      }

      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return org.tron.p2p.protos.Discover.internal_static_Neighbours_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                org.tron.p2p.protos.Discover.Neighbours.class, org.tron.p2p.protos.Discover.Neighbours.Builder.class);
      }

      // Construct using org.tron.p2p.protos.Discover.Neighbours.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getNeighboursFieldBuilder();
        }
      }
      public Builder clear() {
        super.clear();
        if (fromBuilder_ == null) {
          from_ = null;
        } else {
          from_ = null;
          fromBuilder_ = null;
        }
        if (neighboursBuilder_ == null) {
          neighbours_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          neighboursBuilder_.clear();
        }
        timestamp_ = 0L;

        return this;
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return org.tron.p2p.protos.Discover.internal_static_Neighbours_descriptor;
      }

      public org.tron.p2p.protos.Discover.Neighbours getDefaultInstanceForType() {
        return org.tron.p2p.protos.Discover.Neighbours.getDefaultInstance();
      }

      public org.tron.p2p.protos.Discover.Neighbours build() {
        org.tron.p2p.protos.Discover.Neighbours result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public org.tron.p2p.protos.Discover.Neighbours buildPartial() {
        org.tron.p2p.protos.Discover.Neighbours result = new org.tron.p2p.protos.Discover.Neighbours(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (fromBuilder_ == null) {
          result.from_ = from_;
        } else {
          result.from_ = fromBuilder_.build();
        }
        if (neighboursBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            neighbours_ = java.util.Collections.unmodifiableList(neighbours_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.neighbours_ = neighbours_;
        } else {
          result.neighbours_ = neighboursBuilder_.build();
        }
        result.timestamp_ = timestamp_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof org.tron.p2p.protos.Discover.Neighbours) {
          return mergeFrom((org.tron.p2p.protos.Discover.Neighbours)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(org.tron.p2p.protos.Discover.Neighbours other) {
        if (other == org.tron.p2p.protos.Discover.Neighbours.getDefaultInstance()) return this;
        if (other.hasFrom()) {
          mergeFrom(other.getFrom());
        }
        if (neighboursBuilder_ == null) {
          if (!other.neighbours_.isEmpty()) {
            if (neighbours_.isEmpty()) {
              neighbours_ = other.neighbours_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureNeighboursIsMutable();
              neighbours_.addAll(other.neighbours_);
            }
            onChanged();
          }
        } else {
          if (!other.neighbours_.isEmpty()) {
            if (neighboursBuilder_.isEmpty()) {
              neighboursBuilder_.dispose();
              neighboursBuilder_ = null;
              neighbours_ = other.neighbours_;
              bitField0_ = (bitField0_ & ~0x00000002);
              neighboursBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getNeighboursFieldBuilder() : null;
            } else {
              neighboursBuilder_.addAllMessages(other.neighbours_);
            }
          }
        }
        if (other.getTimestamp() != 0L) {
          setTimestamp(other.getTimestamp());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        org.tron.p2p.protos.Discover.Neighbours parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (org.tron.p2p.protos.Discover.Neighbours) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private org.tron.p2p.protos.Discover.Endpoint from_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder> fromBuilder_;
      /**
       * .Endpoint from = 1;
       */
      public boolean hasFrom() {
        return fromBuilder_ != null || from_ != null;
      }
      /**
       * .Endpoint from = 1;
       */
      public org.tron.p2p.protos.Discover.Endpoint getFrom() {
        if (fromBuilder_ == null) {
          return from_ == null ? org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : from_;
        } else {
          return fromBuilder_.getMessage();
        }
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder setFrom(org.tron.p2p.protos.Discover.Endpoint value) {
        if (fromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          from_ = value;
          onChanged();
        } else {
          fromBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder setFrom(
          org.tron.p2p.protos.Discover.Endpoint.Builder builderForValue) {
        if (fromBuilder_ == null) {
          from_ = builderForValue.build();
          onChanged();
        } else {
          fromBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder mergeFrom(org.tron.p2p.protos.Discover.Endpoint value) {
        if (fromBuilder_ == null) {
          if (from_ != null) {
            from_ =
              org.tron.p2p.protos.Discover.Endpoint.newBuilder(from_).mergeFrom(value).buildPartial();
          } else {
            from_ = value;
          }
          onChanged();
        } else {
          fromBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public Builder clearFrom() {
        if (fromBuilder_ == null) {
          from_ = null;
          onChanged();
        } else {
          from_ = null;
          fromBuilder_ = null;
        }

        return this;
      }
      /**
       * .Endpoint from = 1;
       */
      public org.tron.p2p.protos.Discover.Endpoint.Builder getFromBuilder() {
        
        onChanged();
        return getFromFieldBuilder().getBuilder();
      }
      /**
       * .Endpoint from = 1;
       */
      public org.tron.p2p.protos.Discover.EndpointOrBuilder getFromOrBuilder() {
        if (fromBuilder_ != null) {
          return fromBuilder_.getMessageOrBuilder();
        } else {
          return from_ == null ?
              org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance() : from_;
        }
      }
      /**
       * .Endpoint from = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder> 
          getFromFieldBuilder() {
        if (fromBuilder_ == null) {
          fromBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder>(
                  getFrom(),
                  getParentForChildren(),
                  isClean());
          from_ = null;
        }
        return fromBuilder_;
      }

      private java.util.List neighbours_ =
        java.util.Collections.emptyList();
      private void ensureNeighboursIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          neighbours_ = new java.util.ArrayList(neighbours_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder> neighboursBuilder_;

      /**
       * repeated .Endpoint neighbours = 2;
       */
      public java.util.List getNeighboursList() {
        if (neighboursBuilder_ == null) {
          return java.util.Collections.unmodifiableList(neighbours_);
        } else {
          return neighboursBuilder_.getMessageList();
        }
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public int getNeighboursCount() {
        if (neighboursBuilder_ == null) {
          return neighbours_.size();
        } else {
          return neighboursBuilder_.getCount();
        }
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public org.tron.p2p.protos.Discover.Endpoint getNeighbours(int index) {
        if (neighboursBuilder_ == null) {
          return neighbours_.get(index);
        } else {
          return neighboursBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public Builder setNeighbours(
          int index, org.tron.p2p.protos.Discover.Endpoint value) {
        if (neighboursBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNeighboursIsMutable();
          neighbours_.set(index, value);
          onChanged();
        } else {
          neighboursBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public Builder setNeighbours(
          int index, org.tron.p2p.protos.Discover.Endpoint.Builder builderForValue) {
        if (neighboursBuilder_ == null) {
          ensureNeighboursIsMutable();
          neighbours_.set(index, builderForValue.build());
          onChanged();
        } else {
          neighboursBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public Builder addNeighbours(org.tron.p2p.protos.Discover.Endpoint value) {
        if (neighboursBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNeighboursIsMutable();
          neighbours_.add(value);
          onChanged();
        } else {
          neighboursBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public Builder addNeighbours(
          int index, org.tron.p2p.protos.Discover.Endpoint value) {
        if (neighboursBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNeighboursIsMutable();
          neighbours_.add(index, value);
          onChanged();
        } else {
          neighboursBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public Builder addNeighbours(
          org.tron.p2p.protos.Discover.Endpoint.Builder builderForValue) {
        if (neighboursBuilder_ == null) {
          ensureNeighboursIsMutable();
          neighbours_.add(builderForValue.build());
          onChanged();
        } else {
          neighboursBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public Builder addNeighbours(
          int index, org.tron.p2p.protos.Discover.Endpoint.Builder builderForValue) {
        if (neighboursBuilder_ == null) {
          ensureNeighboursIsMutable();
          neighbours_.add(index, builderForValue.build());
          onChanged();
        } else {
          neighboursBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public Builder addAllNeighbours(
          java.lang.Iterable values) {
        if (neighboursBuilder_ == null) {
          ensureNeighboursIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, neighbours_);
          onChanged();
        } else {
          neighboursBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public Builder clearNeighbours() {
        if (neighboursBuilder_ == null) {
          neighbours_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          neighboursBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public Builder removeNeighbours(int index) {
        if (neighboursBuilder_ == null) {
          ensureNeighboursIsMutable();
          neighbours_.remove(index);
          onChanged();
        } else {
          neighboursBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public org.tron.p2p.protos.Discover.Endpoint.Builder getNeighboursBuilder(
          int index) {
        return getNeighboursFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public org.tron.p2p.protos.Discover.EndpointOrBuilder getNeighboursOrBuilder(
          int index) {
        if (neighboursBuilder_ == null) {
          return neighbours_.get(index);  } else {
          return neighboursBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public java.util.List 
           getNeighboursOrBuilderList() {
        if (neighboursBuilder_ != null) {
          return neighboursBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(neighbours_);
        }
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public org.tron.p2p.protos.Discover.Endpoint.Builder addNeighboursBuilder() {
        return getNeighboursFieldBuilder().addBuilder(
            org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance());
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public org.tron.p2p.protos.Discover.Endpoint.Builder addNeighboursBuilder(
          int index) {
        return getNeighboursFieldBuilder().addBuilder(
            index, org.tron.p2p.protos.Discover.Endpoint.getDefaultInstance());
      }
      /**
       * repeated .Endpoint neighbours = 2;
       */
      public java.util.List 
           getNeighboursBuilderList() {
        return getNeighboursFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder> 
          getNeighboursFieldBuilder() {
        if (neighboursBuilder_ == null) {
          neighboursBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              org.tron.p2p.protos.Discover.Endpoint, org.tron.p2p.protos.Discover.Endpoint.Builder, org.tron.p2p.protos.Discover.EndpointOrBuilder>(
                  neighbours_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          neighbours_ = null;
        }
        return neighboursBuilder_;
      }

      private long timestamp_ ;
      /**
       * int64 timestamp = 3;
       */
      public long getTimestamp() {
        return timestamp_;
      }
      /**
       * int64 timestamp = 3;
       */
      public Builder setTimestamp(long value) {
        
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 timestamp = 3;
       */
      public Builder clearTimestamp() {
        
        timestamp_ = 0L;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFieldsProto3(unknownFields);
      }

      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:Neighbours)
    }

    // @@protoc_insertion_point(class_scope:Neighbours)
    private static final org.tron.p2p.protos.Discover.Neighbours DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new org.tron.p2p.protos.Discover.Neighbours();
    }

    public static org.tron.p2p.protos.Discover.Neighbours getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      public Neighbours parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Neighbours(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public org.tron.p2p.protos.Discover.Neighbours getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Endpoint_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Endpoint_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PingMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PingMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_PongMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_PongMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_FindNeighbours_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_FindNeighbours_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_Neighbours_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_Neighbours_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\016Discover.proto\"9\n\010Endpoint\022\017\n\007address\030" +
      "\001 \001(\014\022\014\n\004port\030\002 \001(\005\022\016\n\006nodeId\030\003 \001(\014\"a\n\013P" +
      "ingMessage\022\027\n\004from\030\001 \001(\0132\t.Endpoint\022\025\n\002t" +
      "o\030\002 \001(\0132\t.Endpoint\022\017\n\007version\030\003 \001(\005\022\021\n\tt" +
      "imestamp\030\004 \001(\003\"G\n\013PongMessage\022\027\n\004from\030\001 " +
      "\001(\0132\t.Endpoint\022\014\n\004echo\030\002 \001(\005\022\021\n\ttimestam" +
      "p\030\003 \001(\003\"N\n\016FindNeighbours\022\027\n\004from\030\001 \001(\0132" +
      "\t.Endpoint\022\020\n\010targetId\030\002 \001(\014\022\021\n\ttimestam" +
      "p\030\003 \001(\003\"W\n\nNeighbours\022\027\n\004from\030\001 \001(\0132\t.En" +
      "dpoint\022\035\n\nneighbours\030\002 \003(\0132\t.Endpoint\022\021\n" +
      "\ttimestamp\030\003 \001(\003B\037\n\023org.tron.p2p.protosB" +
      "\010Discoverb\006proto3"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
    internal_static_Endpoint_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_Endpoint_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Endpoint_descriptor,
        new java.lang.String[] { "Address", "Port", "NodeId", });
    internal_static_PingMessage_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_PingMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PingMessage_descriptor,
        new java.lang.String[] { "From", "To", "Version", "Timestamp", });
    internal_static_PongMessage_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_PongMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_PongMessage_descriptor,
        new java.lang.String[] { "From", "Echo", "Timestamp", });
    internal_static_FindNeighbours_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_FindNeighbours_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_FindNeighbours_descriptor,
        new java.lang.String[] { "From", "TargetId", "Timestamp", });
    internal_static_Neighbours_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_Neighbours_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_Neighbours_descriptor,
        new java.lang.String[] { "From", "Neighbours", "Timestamp", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy