Class FilteredBlock


  • public class FilteredBlock
    extends Message

    A FilteredBlock is used to relay a block with its transactions filtered using a BloomFilter. It consists of the block header and a PartialMerkleTree which contains the transactions which matched the filter.

    Instances of this class are not safe for use by multiple threads.

    • Method Detail

      • bitcoinSerializeToStream

        public void bitcoinSerializeToStream​(java.io.OutputStream stream)
                                      throws java.io.IOException
        Description copied from class: Message
        Serializes this message to the provided stream. If you just want the raw bytes use bitcoinSerialize().
        Overrides:
        bitcoinSerializeToStream in class Message
        Throws:
        java.io.IOException
      • getTransactionHashes

        public java.util.List<Sha256Hash> getTransactionHashes()
                                                        throws VerificationException
        Gets a list of leaf hashes which are contained in the partial merkle tree in this filtered block
        Throws:
        ProtocolException - If the partial merkle block is invalid or the merkle root of the partial merkle block doesn't match the block header
        VerificationException
      • getBlockHeader

        public Block getBlockHeader()
        Gets a copy of the block header
      • getHash

        public Sha256Hash getHash()
        Gets the hash of the block represented in this Filtered Block
        Overrides:
        getHash in class Message
      • provideTransaction

        public boolean provideTransaction​(Transaction tx)
                                   throws VerificationException
        Provide this FilteredBlock with a transaction which is in its Merkle tree.
        Returns:
        false if the tx is not relevant to this FilteredBlock
        Throws:
        VerificationException
      • getPartialMerkleTree

        public PartialMerkleTree getPartialMerkleTree()
        Returns the PartialMerkleTree object that provides the mathematical proof of transaction inclusion in the block.
      • getAssociatedTransactions

        public java.util.Map<Sha256Hash,​Transaction> getAssociatedTransactions()
        Gets the set of transactions which were provided using provideTransaction() which match in getTransactionHashes()
      • getTransactionCount

        public int getTransactionCount()
        Number of transactions in this block, before it was filtered
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object