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

com.hedera.hapi.block.stream.output.protoc.BlockHeaderOrBuilder Maven / Gradle / Ivy

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

package com.hedera.hapi.block.stream.output.protoc;

public interface BlockHeaderOrBuilder extends
    // @@protoc_insertion_point(interface_extends:com.hedera.hapi.block.stream.output.BlockHeader)
    com.google.protobuf.MessageOrBuilder {

  /**
   * 
   **
   * A version of the HAPI specification.<br/>
   * This is the API version that was used to serialize the block.
   * 
* * .proto.SemanticVersion hapi_proto_version = 1; * @return Whether the hapiProtoVersion field is set. */ boolean hasHapiProtoVersion(); /** *
   **
   * A version of the HAPI specification.<br/>
   * This is the API version that was used to serialize the block.
   * 
* * .proto.SemanticVersion hapi_proto_version = 1; * @return The hapiProtoVersion. */ com.hederahashgraph.api.proto.java.SemanticVersion getHapiProtoVersion(); /** *
   **
   * A version of the HAPI specification.<br/>
   * This is the API version that was used to serialize the block.
   * 
* * .proto.SemanticVersion hapi_proto_version = 1; */ com.hederahashgraph.api.proto.java.SemanticVersionOrBuilder getHapiProtoVersionOrBuilder(); /** *
   **
   * A version of the consensus node software.<br/>
   * This is the software version that executed the transactions
   * within this block.
   * 
* * .proto.SemanticVersion software_version = 2; * @return Whether the softwareVersion field is set. */ boolean hasSoftwareVersion(); /** *
   **
   * A version of the consensus node software.<br/>
   * This is the software version that executed the transactions
   * within this block.
   * 
* * .proto.SemanticVersion software_version = 2; * @return The softwareVersion. */ com.hederahashgraph.api.proto.java.SemanticVersion getSoftwareVersion(); /** *
   **
   * A version of the consensus node software.<br/>
   * This is the software version that executed the transactions
   * within this block.
   * 
* * .proto.SemanticVersion software_version = 2; */ com.hederahashgraph.api.proto.java.SemanticVersionOrBuilder getSoftwareVersionOrBuilder(); /** *
   **
   * A block number for this block.
   * <p>
   * This value MUST be exactly `1` more than the previous block.<br/>
   * Client systems SHOULD optimistically reject any block with a gap or
   * reverse in `number` sequence, and MAY assume the block stream has
   * encountered data loss, data corruption, or unauthorized modification.
   * 
* * uint64 number = 3; * @return The number. */ long getNumber(); /** *
   **
   * A block root hash for the previous block.
   * <p>
   * This value MUST match the block merkle tree root hash of the previous
   * block in the block stream.<br/>
   * This value SHALL be empty for the genesis block, and SHALL NOT be empty
   * for any other block.<br/>
   * Client systems SHOULD optimistically reject any block with a
   * `previous_block_proof_hash` that does not match the block hash of the
   * previous block and MAY assume the block stream has encountered data
   * loss, data corruption, or unauthorized modification.
   * <p>
   * The process for computing a block hash is somewhat complex, and involves
   * creating a "virtual" merkle tree to obtain the root merkle hash of
   * that virtual tree.<br/>
   * The merkle tree SHALL have a 4 part structure with 2 internal nodes,
   * structured in a strictly binary tree.
   * <ul>
   *   <li>The merkle tree root SHALL be the parent of both
   *       internal nodes.
   *     <ol>
   *       <li>The first "internal" node SHALL be the parent of the
   *           two "left-most" nodes.
   *         <ol>
   *           <li>The first leaf MUST be the previous block hash, and is a
   *               single 48-byte value.</li>
   *           <li>The second leaf MUST be the root of a, strictly binary,
   *               merkle tree composed of all "input" block items in
   *               the block.<br/>
   *               Input items SHALL be transactions, system transactions,
   *               and events.<br/>
   *               Leaf nodes in this subtree SHALL be ordered in the
   *               same order that the block items are encountered
   *               in the stream.</li>
   *         </ol>
   *       </li>
   *       <li>The second "internal" node SHALL be the parent of the
   *           two "right-most" nodes.
   *         <ol>
   *           <li>The third leaf MUST be the root of a, strictly binary,
   *               merkle tree composed of all "output" block items in
   *               the block.<br/>
   *               Output items SHALL be transaction result, transaction
   *               output, and state changes.<br/>
   *               Leaf nodes in this subtree SHALL be ordered in the
   *               same order that the block items are encountered
   *               in the stream.</li>
   *           <li>The fourth leaf MUST be the merkle tree root hash for
   *               network state at the end of the block, and is a single
   *               48-byte value.</li>
   *         </ol>
   *       </li>
   *     </ol>
   *   </li>
   *   <li>The block hash SHALL be the SHA-384 hash calculated for the root
   *       of this merkle tree.</li>
   * </ul>
   * 
* * bytes previous_block_hash = 4; * @return The previousBlockHash. */ com.google.protobuf.ByteString getPreviousBlockHash(); /** *
   **
   * A consensus timestamp for the start of this block.
   * <p>
   * This SHALL be the timestamp assigned by the hashgraph consensus
   * algorithm to the first transaction of this block.
   * 
* * .proto.Timestamp first_transaction_consensus_time = 5; * @return Whether the firstTransactionConsensusTime field is set. */ boolean hasFirstTransactionConsensusTime(); /** *
   **
   * A consensus timestamp for the start of this block.
   * <p>
   * This SHALL be the timestamp assigned by the hashgraph consensus
   * algorithm to the first transaction of this block.
   * 
* * .proto.Timestamp first_transaction_consensus_time = 5; * @return The firstTransactionConsensusTime. */ com.hederahashgraph.api.proto.java.Timestamp getFirstTransactionConsensusTime(); /** *
   **
   * A consensus timestamp for the start of this block.
   * <p>
   * This SHALL be the timestamp assigned by the hashgraph consensus
   * algorithm to the first transaction of this block.
   * 
* * .proto.Timestamp first_transaction_consensus_time = 5; */ com.hederahashgraph.api.proto.java.TimestampOrBuilder getFirstTransactionConsensusTimeOrBuilder(); /** *
   **
   * A hash algorithm used for this block, including the block proof.
   * <p>
   * This SHOULD always be `SHA2_384`, currently.
   * 
* * .proto.BlockHashAlgorithm hash_algorithm = 6; * @return The enum numeric value on the wire for hashAlgorithm. */ int getHashAlgorithmValue(); /** *
   **
   * A hash algorithm used for this block, including the block proof.
   * <p>
   * This SHOULD always be `SHA2_384`, currently.
   * 
* * .proto.BlockHashAlgorithm hash_algorithm = 6; * @return The hashAlgorithm. */ com.hederahashgraph.api.proto.java.BlockHashAlgorithm getHashAlgorithm(); /** *
   **
   * A version for the network address book.<br/>
   * The address book version is needed to determine the correct public
   * key(s) to use to validate block signatures and state proofs.
   * <p>
   * This MUST be the version of the address book that signed this
   * block.
   * 
* * .proto.SemanticVersion address_book_version = 7; * @return Whether the addressBookVersion field is set. */ boolean hasAddressBookVersion(); /** *
   **
   * A version for the network address book.<br/>
   * The address book version is needed to determine the correct public
   * key(s) to use to validate block signatures and state proofs.
   * <p>
   * This MUST be the version of the address book that signed this
   * block.
   * 
* * .proto.SemanticVersion address_book_version = 7; * @return The addressBookVersion. */ com.hederahashgraph.api.proto.java.SemanticVersion getAddressBookVersion(); /** *
   **
   * A version for the network address book.<br/>
   * The address book version is needed to determine the correct public
   * key(s) to use to validate block signatures and state proofs.
   * <p>
   * This MUST be the version of the address book that signed this
   * block.
   * 
* * .proto.SemanticVersion address_book_version = 7; */ com.hederahashgraph.api.proto.java.SemanticVersionOrBuilder getAddressBookVersionOrBuilder(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy