Class Block.Builder

  • Enclosing class:
    Block

    public abstract static class Block.Builder
    extends java.lang.Object
    • Constructor Summary

      Constructors 
      Constructor Description
      Builder()  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      abstract Block.Builder blockHash​(com.exonum.binding.common.hash.HashCode hash)
      Sets the hash of the block binary representation.
      Block build()
      Creates a new block with the set arguments.
      abstract Block.Builder height​(long height)
      Sets the block height, which is the distance between the block and the genesis block, which has zero height.
      abstract Block.Builder numTransactions​(int numTransactions)
      Sets the number of transactions in this block.
      abstract Block.Builder previousBlockHash​(com.exonum.binding.common.hash.HashCode previousBlockHash)
      Sets the hash of the previous block in the hash chain.
      abstract Block.Builder proposerId​(int proposerId)
      Sets the identifier of the leader node which has proposed the block.
      abstract Block.Builder stateHash​(com.exonum.binding.common.hash.HashCode blockchainStateHash)
      Sets the blockchain state hash at the moment this block was committed.
      abstract Block.Builder txRootHash​(com.exonum.binding.common.hash.HashCode txRootHash)
      Sets the Merkle root hash of the collection holding all transactions in this block.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Builder

        public Builder()
    • Method Detail

      • blockHash

        public abstract Block.Builder blockHash​(com.exonum.binding.common.hash.HashCode hash)
        Sets the hash of the block binary representation.
      • proposerId

        public abstract Block.Builder proposerId​(int proposerId)
        Sets the identifier of the leader node which has proposed the block.
      • height

        public abstract Block.Builder height​(long height)
        Sets the block height, which is the distance between the block and the genesis block, which has zero height. Must be non-negative.
      • numTransactions

        public abstract Block.Builder numTransactions​(int numTransactions)
        Sets the number of transactions in this block. Must be non-negative.
      • previousBlockHash

        public abstract Block.Builder previousBlockHash​(com.exonum.binding.common.hash.HashCode previousBlockHash)
        Sets the hash of the previous block in the hash chain. The previous block is the block with the height, that is equal to this minus one. Genesis block has a previous hash of zeroes.
      • txRootHash

        public abstract Block.Builder txRootHash​(com.exonum.binding.common.hash.HashCode txRootHash)
        Sets the Merkle root hash of the collection holding all transactions in this block. This collection and transactions can be accessed with Blockchain.getBlockTransactions(Block).
      • stateHash

        public abstract Block.Builder stateHash​(com.exonum.binding.common.hash.HashCode blockchainStateHash)
        Sets the blockchain state hash at the moment this block was committed. The blockchain state hash reflects the state of each service in the database.
        See Also:
        Schema.getStateHashes()
      • build

        public Block build()
        Creates a new block with the set arguments.
        Throws:
        java.lang.IllegalStateException - if some of the arguments were not set or aren't valid