Class NodeCreateTransactionBody

java.lang.Object
com.google.protobuf.AbstractMessageLite<NodeCreateTransactionBody,NodeCreateTransactionBody.Builder>
com.google.protobuf.GeneratedMessageLite<NodeCreateTransactionBody,NodeCreateTransactionBody.Builder>
com.hedera.hashgraph.sdk.proto.NodeCreateTransactionBody
All Implemented Interfaces:
com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, NodeCreateTransactionBodyOrBuilder

@Generated public final class NodeCreateTransactionBody extends com.google.protobuf.GeneratedMessageLite<NodeCreateTransactionBody,NodeCreateTransactionBody.Builder> implements NodeCreateTransactionBodyOrBuilder
 *
 A transaction body to add a new consensus node to the network address book.

 This transaction body SHALL be considered a "privileged transaction".

 This message supports a transaction to create a new node in the network
 address book. The transaction, once complete, enables a new consensus node
 to join the network, and requires governing council authorization.

 - A `NodeCreateTransactionBody` MUST be signed by the `Key` assigned to the
 `admin_key` field and one of those keys: treasure account (2) key,
 systemAdmin(50) key, or addressBookAdmin(55) key.
 - The newly created node information SHALL be added to the network address
 book information in the network state.
 - The new entry SHALL be created in "state" but SHALL NOT participate in
 network consensus and SHALL NOT be present in network "configuration"
 until the next "upgrade" transaction (as noted below).
 - All new address book entries SHALL be added to the active network
 configuration during the next `freeze` transaction with the field
 `freeze_type` set to `PREPARE_UPGRADE`.

 ### Block Stream Effects
 Upon completion the newly assigned `node_id` SHALL be recorded in
 the transaction receipt.<br/>
 This value SHALL be the next available node identifier.<br/>
 Node identifiers SHALL NOT be reused.
 
Protobuf type com.hedera.hapi.node.addressbook.NodeCreateTransactionBody
  • Field Details

    • ACCOUNT_ID_FIELD_NUMBER

      public static final int ACCOUNT_ID_FIELD_NUMBER
      See Also:
    • DESCRIPTION_FIELD_NUMBER

      public static final int DESCRIPTION_FIELD_NUMBER
      See Also:
    • GOSSIP_ENDPOINT_FIELD_NUMBER

      public static final int GOSSIP_ENDPOINT_FIELD_NUMBER
      See Also:
    • SERVICE_ENDPOINT_FIELD_NUMBER

      public static final int SERVICE_ENDPOINT_FIELD_NUMBER
      See Also:
    • GOSSIP_CA_CERTIFICATE_FIELD_NUMBER

      public static final int GOSSIP_CA_CERTIFICATE_FIELD_NUMBER
      See Also:
    • GRPC_CERTIFICATE_HASH_FIELD_NUMBER

      public static final int GRPC_CERTIFICATE_HASH_FIELD_NUMBER
      See Also:
    • ADMIN_KEY_FIELD_NUMBER

      public static final int ADMIN_KEY_FIELD_NUMBER
      See Also:
    • DECLINE_REWARD_FIELD_NUMBER

      public static final int DECLINE_REWARD_FIELD_NUMBER
      See Also:
    • GRPC_PROXY_ENDPOINT_FIELD_NUMBER

      public static final int GRPC_PROXY_ENDPOINT_FIELD_NUMBER
      See Also:
    • ASSOCIATED_REGISTERED_NODE_FIELD_NUMBER

      public static final int ASSOCIATED_REGISTERED_NODE_FIELD_NUMBER
      See Also:
  • Method Details

    • hasAccountId

      public boolean hasAccountId()
       *
       A Node account identifier.
       <p>
       This account identifier MUST be in the "account number" form.<br/>
       This account identifier MUST NOT use the alias field.<br/>
       If the identified account does not exist, this transaction SHALL fail.<br/>
       Multiple nodes MAY share the same node account.<br/>
       This field is REQUIRED.
       
      .proto.AccountID account_id = 1;
      Specified by:
      hasAccountId in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      Whether the accountId field is set.
    • getAccountId

      public AccountID getAccountId()
       *
       A Node account identifier.
       <p>
       This account identifier MUST be in the "account number" form.<br/>
       This account identifier MUST NOT use the alias field.<br/>
       If the identified account does not exist, this transaction SHALL fail.<br/>
       Multiple nodes MAY share the same node account.<br/>
       This field is REQUIRED.
       
      .proto.AccountID account_id = 1;
      Specified by:
      getAccountId in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      The accountId.
    • getDescription

      public String getDescription()
       *
       A short description of the node.
       <p>
       This value, if set, MUST NOT exceed `transaction.maxMemoUtf8Bytes`
       (default 100) bytes when encoded as UTF-8.<br/>
       This field is OPTIONAL.
       
      string description = 2;
      Specified by:
      getDescription in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      The description.
    • getDescriptionBytes

      public com.google.protobuf.ByteString getDescriptionBytes()
       *
       A short description of the node.
       <p>
       This value, if set, MUST NOT exceed `transaction.maxMemoUtf8Bytes`
       (default 100) bytes when encoded as UTF-8.<br/>
       This field is OPTIONAL.
       
      string description = 2;
      Specified by:
      getDescriptionBytes in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      The bytes for description.
    • getGossipEndpointList

      public List<ServiceEndpoint> getGossipEndpointList()
       *
       A list of service endpoints for gossip.
       <p>
       These endpoints SHALL represent the published endpoints to which other
       consensus nodes may _gossip_ transactions.<br/>
       These endpoints MUST specify a port.<br/>
       This list MUST NOT be empty.<br/>
       This list MUST NOT contain more than `10` entries.<br/>
       The first two entries in this list SHALL be the endpoints published to
       all consensus nodes.<br/>
       All other entries SHALL be reserved for future use.
       <p>
       Each network may have additional requirements for these endpoints.
       A client MUST check network-specific documentation for those
       details.<br/>
       If the network configuration value `gossipFqdnRestricted` is set, then
       all endpoints in this list MUST supply only IP address.<br/>
       If the network configuration value `gossipFqdnRestricted` is _not_ set,
       then endpoints in this list MAY supply either IP address or FQDN, but
       MUST NOT supply both values for the same endpoint.
       
      repeated .proto.ServiceEndpoint gossip_endpoint = 3;
      Specified by:
      getGossipEndpointList in interface NodeCreateTransactionBodyOrBuilder
    • getGossipEndpointOrBuilderList

      public List<? extends ServiceEndpointOrBuilder> getGossipEndpointOrBuilderList()
       *
       A list of service endpoints for gossip.
       <p>
       These endpoints SHALL represent the published endpoints to which other
       consensus nodes may _gossip_ transactions.<br/>
       These endpoints MUST specify a port.<br/>
       This list MUST NOT be empty.<br/>
       This list MUST NOT contain more than `10` entries.<br/>
       The first two entries in this list SHALL be the endpoints published to
       all consensus nodes.<br/>
       All other entries SHALL be reserved for future use.
       <p>
       Each network may have additional requirements for these endpoints.
       A client MUST check network-specific documentation for those
       details.<br/>
       If the network configuration value `gossipFqdnRestricted` is set, then
       all endpoints in this list MUST supply only IP address.<br/>
       If the network configuration value `gossipFqdnRestricted` is _not_ set,
       then endpoints in this list MAY supply either IP address or FQDN, but
       MUST NOT supply both values for the same endpoint.
       
      repeated .proto.ServiceEndpoint gossip_endpoint = 3;
    • getGossipEndpointCount

      public int getGossipEndpointCount()
       *
       A list of service endpoints for gossip.
       <p>
       These endpoints SHALL represent the published endpoints to which other
       consensus nodes may _gossip_ transactions.<br/>
       These endpoints MUST specify a port.<br/>
       This list MUST NOT be empty.<br/>
       This list MUST NOT contain more than `10` entries.<br/>
       The first two entries in this list SHALL be the endpoints published to
       all consensus nodes.<br/>
       All other entries SHALL be reserved for future use.
       <p>
       Each network may have additional requirements for these endpoints.
       A client MUST check network-specific documentation for those
       details.<br/>
       If the network configuration value `gossipFqdnRestricted` is set, then
       all endpoints in this list MUST supply only IP address.<br/>
       If the network configuration value `gossipFqdnRestricted` is _not_ set,
       then endpoints in this list MAY supply either IP address or FQDN, but
       MUST NOT supply both values for the same endpoint.
       
      repeated .proto.ServiceEndpoint gossip_endpoint = 3;
      Specified by:
      getGossipEndpointCount in interface NodeCreateTransactionBodyOrBuilder
    • getGossipEndpoint

      public ServiceEndpoint getGossipEndpoint(int index)
       *
       A list of service endpoints for gossip.
       <p>
       These endpoints SHALL represent the published endpoints to which other
       consensus nodes may _gossip_ transactions.<br/>
       These endpoints MUST specify a port.<br/>
       This list MUST NOT be empty.<br/>
       This list MUST NOT contain more than `10` entries.<br/>
       The first two entries in this list SHALL be the endpoints published to
       all consensus nodes.<br/>
       All other entries SHALL be reserved for future use.
       <p>
       Each network may have additional requirements for these endpoints.
       A client MUST check network-specific documentation for those
       details.<br/>
       If the network configuration value `gossipFqdnRestricted` is set, then
       all endpoints in this list MUST supply only IP address.<br/>
       If the network configuration value `gossipFqdnRestricted` is _not_ set,
       then endpoints in this list MAY supply either IP address or FQDN, but
       MUST NOT supply both values for the same endpoint.
       
      repeated .proto.ServiceEndpoint gossip_endpoint = 3;
      Specified by:
      getGossipEndpoint in interface NodeCreateTransactionBodyOrBuilder
    • getGossipEndpointOrBuilder

      public ServiceEndpointOrBuilder getGossipEndpointOrBuilder(int index)
       *
       A list of service endpoints for gossip.
       <p>
       These endpoints SHALL represent the published endpoints to which other
       consensus nodes may _gossip_ transactions.<br/>
       These endpoints MUST specify a port.<br/>
       This list MUST NOT be empty.<br/>
       This list MUST NOT contain more than `10` entries.<br/>
       The first two entries in this list SHALL be the endpoints published to
       all consensus nodes.<br/>
       All other entries SHALL be reserved for future use.
       <p>
       Each network may have additional requirements for these endpoints.
       A client MUST check network-specific documentation for those
       details.<br/>
       If the network configuration value `gossipFqdnRestricted` is set, then
       all endpoints in this list MUST supply only IP address.<br/>
       If the network configuration value `gossipFqdnRestricted` is _not_ set,
       then endpoints in this list MAY supply either IP address or FQDN, but
       MUST NOT supply both values for the same endpoint.
       
      repeated .proto.ServiceEndpoint gossip_endpoint = 3;
    • getServiceEndpointList

      public List<ServiceEndpoint> getServiceEndpointList()
       *
       A list of service endpoints for gRPC calls.
       <p>
       These endpoints SHALL represent the published gRPC endpoints to which
       clients may submit transactions.<br/>
       These endpoints MUST specify a port.<br/>
       Endpoints in this list MAY supply either IP address or FQDN, but MUST
       NOT supply both values for the same endpoint.<br/>
       This list MUST NOT be empty.<br/>
       This list MUST NOT contain more than `8` entries.
       
      repeated .proto.ServiceEndpoint service_endpoint = 4;
      Specified by:
      getServiceEndpointList in interface NodeCreateTransactionBodyOrBuilder
    • getServiceEndpointOrBuilderList

      public List<? extends ServiceEndpointOrBuilder> getServiceEndpointOrBuilderList()
       *
       A list of service endpoints for gRPC calls.
       <p>
       These endpoints SHALL represent the published gRPC endpoints to which
       clients may submit transactions.<br/>
       These endpoints MUST specify a port.<br/>
       Endpoints in this list MAY supply either IP address or FQDN, but MUST
       NOT supply both values for the same endpoint.<br/>
       This list MUST NOT be empty.<br/>
       This list MUST NOT contain more than `8` entries.
       
      repeated .proto.ServiceEndpoint service_endpoint = 4;
    • getServiceEndpointCount

      public int getServiceEndpointCount()
       *
       A list of service endpoints for gRPC calls.
       <p>
       These endpoints SHALL represent the published gRPC endpoints to which
       clients may submit transactions.<br/>
       These endpoints MUST specify a port.<br/>
       Endpoints in this list MAY supply either IP address or FQDN, but MUST
       NOT supply both values for the same endpoint.<br/>
       This list MUST NOT be empty.<br/>
       This list MUST NOT contain more than `8` entries.
       
      repeated .proto.ServiceEndpoint service_endpoint = 4;
      Specified by:
      getServiceEndpointCount in interface NodeCreateTransactionBodyOrBuilder
    • getServiceEndpoint

      public ServiceEndpoint getServiceEndpoint(int index)
       *
       A list of service endpoints for gRPC calls.
       <p>
       These endpoints SHALL represent the published gRPC endpoints to which
       clients may submit transactions.<br/>
       These endpoints MUST specify a port.<br/>
       Endpoints in this list MAY supply either IP address or FQDN, but MUST
       NOT supply both values for the same endpoint.<br/>
       This list MUST NOT be empty.<br/>
       This list MUST NOT contain more than `8` entries.
       
      repeated .proto.ServiceEndpoint service_endpoint = 4;
      Specified by:
      getServiceEndpoint in interface NodeCreateTransactionBodyOrBuilder
    • getServiceEndpointOrBuilder

      public ServiceEndpointOrBuilder getServiceEndpointOrBuilder(int index)
       *
       A list of service endpoints for gRPC calls.
       <p>
       These endpoints SHALL represent the published gRPC endpoints to which
       clients may submit transactions.<br/>
       These endpoints MUST specify a port.<br/>
       Endpoints in this list MAY supply either IP address or FQDN, but MUST
       NOT supply both values for the same endpoint.<br/>
       This list MUST NOT be empty.<br/>
       This list MUST NOT contain more than `8` entries.
       
      repeated .proto.ServiceEndpoint service_endpoint = 4;
    • getGossipCaCertificate

      public com.google.protobuf.ByteString getGossipCaCertificate()
       *
       A certificate used to sign gossip events.
       <p>
       This value MUST be a certificate of a type permitted for gossip
       signatures.<br/>
       This value MUST be the DER encoding of the certificate presented.<br/>
       This field is REQUIRED and MUST NOT be empty.
       
      bytes gossip_ca_certificate = 5;
      Specified by:
      getGossipCaCertificate in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      The gossipCaCertificate.
    • getGrpcCertificateHash

      public com.google.protobuf.ByteString getGrpcCertificateHash()
       *
       A hash of the node gRPC TLS certificate.
       <p>
       This value MAY be used to verify the certificate presented by the node
       during TLS negotiation for gRPC.<br/>
       This value MUST be a SHA-384 hash.<br/>
       The TLS certificate to be hashed MUST first be in PEM format and MUST be
       encoded with UTF-8 NFKD encoding to a stream of bytes provided to
       the hash algorithm.<br/>
       This field is OPTIONAL.
       
      bytes grpc_certificate_hash = 6;
      Specified by:
      getGrpcCertificateHash in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      The grpcCertificateHash.
    • hasAdminKey

      public boolean hasAdminKey()
       *
       An administrative key controlled by the node operator.
       <p>
       This key MUST sign this transaction.<br/>
       This key MUST sign each transaction to update this node.<br/>
       This field MUST contain a valid `Key` value.<br/>
       This field is REQUIRED and MUST NOT be set to an empty `KeyList`.
       
      .proto.Key admin_key = 7;
      Specified by:
      hasAdminKey in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      Whether the adminKey field is set.
    • getAdminKey

      public Key getAdminKey()
       *
       An administrative key controlled by the node operator.
       <p>
       This key MUST sign this transaction.<br/>
       This key MUST sign each transaction to update this node.<br/>
       This field MUST contain a valid `Key` value.<br/>
       This field is REQUIRED and MUST NOT be set to an empty `KeyList`.
       
      .proto.Key admin_key = 7;
      Specified by:
      getAdminKey in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      The adminKey.
    • getDeclineReward

      public boolean getDeclineReward()
       *
       A boolean flag indicating whether the node operator declines to receive
       node rewards.
       <p>
       If this flag is set to `true`, the node operator declines to receive
       node rewards.<br/>
       
      bool decline_reward = 8;
      Specified by:
      getDeclineReward in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      The declineReward.
    • hasGrpcProxyEndpoint

      public boolean hasGrpcProxyEndpoint()
       *
       A web proxy for gRPC from non-gRPC clients.
       <p>
       This endpoint SHALL be a Fully Qualified Domain Name (FQDN) using the HTTPS
       protocol, and SHALL support gRPC-Web for use by browser-based clients.<br/>
       This endpoint MUST be signed by a trusted certificate authority.<br/>
       This endpoint MUST use a valid port and SHALL be reachable over TLS.<br/>
       This field MAY be omitted if the node does not support gRPC-Web access.<br/>
       This field MUST be updated if the gRPC-Web endpoint changes.<br/>
       This field SHALL enable frontend clients to avoid hard-coded proxy endpoints.
       
      .proto.ServiceEndpoint grpc_proxy_endpoint = 9;
      Specified by:
      hasGrpcProxyEndpoint in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      Whether the grpcProxyEndpoint field is set.
    • getGrpcProxyEndpoint

      public ServiceEndpoint getGrpcProxyEndpoint()
       *
       A web proxy for gRPC from non-gRPC clients.
       <p>
       This endpoint SHALL be a Fully Qualified Domain Name (FQDN) using the HTTPS
       protocol, and SHALL support gRPC-Web for use by browser-based clients.<br/>
       This endpoint MUST be signed by a trusted certificate authority.<br/>
       This endpoint MUST use a valid port and SHALL be reachable over TLS.<br/>
       This field MAY be omitted if the node does not support gRPC-Web access.<br/>
       This field MUST be updated if the gRPC-Web endpoint changes.<br/>
       This field SHALL enable frontend clients to avoid hard-coded proxy endpoints.
       
      .proto.ServiceEndpoint grpc_proxy_endpoint = 9;
      Specified by:
      getGrpcProxyEndpoint in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      The grpcProxyEndpoint.
    • getAssociatedRegisteredNodeList

      public List<Long> getAssociatedRegisteredNodeList()
       *
       A list of registered nodes operated by the same entity as this node.<br/>
       This value may contain a list of "registered nodes" (as described in
       HIP-1137) that are operated by the same entity that operates this
       consensus node.
       <p>
       This field is OPTIONAL and MAY be empty.<br/>
       This field MUST NOT contain more than twenty(20) entries.<br/>
       Every entry in this list MUST be a valid `registered_node_id` for a
       current registered node.
       
      repeated uint64 associated_registered_node = 10;
      Specified by:
      getAssociatedRegisteredNodeList in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      A list containing the associatedRegisteredNode.
    • getAssociatedRegisteredNodeCount

      public int getAssociatedRegisteredNodeCount()
       *
       A list of registered nodes operated by the same entity as this node.<br/>
       This value may contain a list of "registered nodes" (as described in
       HIP-1137) that are operated by the same entity that operates this
       consensus node.
       <p>
       This field is OPTIONAL and MAY be empty.<br/>
       This field MUST NOT contain more than twenty(20) entries.<br/>
       Every entry in this list MUST be a valid `registered_node_id` for a
       current registered node.
       
      repeated uint64 associated_registered_node = 10;
      Specified by:
      getAssociatedRegisteredNodeCount in interface NodeCreateTransactionBodyOrBuilder
      Returns:
      The count of associatedRegisteredNode.
    • getAssociatedRegisteredNode

      public long getAssociatedRegisteredNode(int index)
       *
       A list of registered nodes operated by the same entity as this node.<br/>
       This value may contain a list of "registered nodes" (as described in
       HIP-1137) that are operated by the same entity that operates this
       consensus node.
       <p>
       This field is OPTIONAL and MAY be empty.<br/>
       This field MUST NOT contain more than twenty(20) entries.<br/>
       Every entry in this list MUST be a valid `registered_node_id` for a
       current registered node.
       
      repeated uint64 associated_registered_node = 10;
      Specified by:
      getAssociatedRegisteredNode in interface NodeCreateTransactionBodyOrBuilder
      Parameters:
      index - The index of the element to return.
      Returns:
      The associatedRegisteredNode at the given index.
    • parseFrom

      public static NodeCreateTransactionBody parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static NodeCreateTransactionBody parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static NodeCreateTransactionBody parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static NodeCreateTransactionBody parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static NodeCreateTransactionBody parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static NodeCreateTransactionBody parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static NodeCreateTransactionBody parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static NodeCreateTransactionBody parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static NodeCreateTransactionBody parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static NodeCreateTransactionBody parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static NodeCreateTransactionBody parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static NodeCreateTransactionBody parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • newBuilder

      public static NodeCreateTransactionBody.Builder newBuilder()
    • newBuilder

      public static NodeCreateTransactionBody.Builder newBuilder(NodeCreateTransactionBody prototype)
    • dynamicMethod

      protected final Object dynamicMethod(com.google.protobuf.GeneratedMessageLite.MethodToInvoke method, Object arg0, Object arg1)
      Specified by:
      dynamicMethod in class com.google.protobuf.GeneratedMessageLite<NodeCreateTransactionBody,NodeCreateTransactionBody.Builder>
    • getDefaultInstance

      public static NodeCreateTransactionBody getDefaultInstance()
    • parser

      public static com.google.protobuf.Parser<NodeCreateTransactionBody> parser()