Class Block


  • public abstract class Block
    extends Object
    Exonum block header data structure.

    A block is essentially a list of transactions, which is a result of the consensus algorithm (thus authenticated by the supermajority of validators) and is applied atomically to the blockchain state.

    This structure only contains the amount of transactions and the transactions root hash as well as other information, but not the transactions themselves.

    See Also:
    Blockchain
    • Constructor Detail

      • Block

        public Block()
    • Method Detail

      • getBlockHash

        public abstract HashCode getBlockHash()
        Returns the SHA-256 hash of this block.
      • getProposerId

        public abstract int getProposerId()
        Identifier of the leader node which has proposed the block.
      • getHeight

        public abstract long getHeight()
        Returns the height of this block which is a distance between the last block and the "genesis" block. Genesis block has 0 height. Therefore, the blockchain height is equal to the number of blocks plus one.

        The height also identifies each block in the blockchain.

      • isEmpty

        public final boolean isEmpty()
        Returns true if this block is empty: contains no transactions.
      • getNumTransactions

        public abstract int getNumTransactions()
        Number of transactions in this block.
      • getPreviousBlockHash

        public abstract HashCode getPreviousBlockHash()
        Hash link to the previous block in the blockchain.
      • getStateHash

        public abstract HashCode getStateHash()
        Hash of the blockchain state after applying transactions in the block.
        See Also:
        Schema.getStateHashes()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • typeAdapter

        public static com.google.gson.TypeAdapter<Block> typeAdapter​(com.google.gson.Gson gson)
        Provides a Gson type adapter for this class.
        See Also:
        CoreTypeAdapterFactory
      • builder

        public static Block.Builder builder()
        Creates a new block builder.