Packages

sealed abstract class BloomFilter extends NetworkElement with BitcoinSLogger

Implements a bloom filter that abides by the semantics of BIP37

See also

BIP37.

Bitcoin Core bloom.h

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BloomFilter
  2. BitcoinSLogger
  3. Logging
  4. NetworkElement
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def data: ByteVector

    The bits that are set inside of the bloom filter

  2. abstract def filterSize: CompactSizeUInt

    How large the bloom filter is, in Bytes

  3. abstract def flags: BloomFlag

    A set of flags that control how outpoints corresponding to a matched pubkey script are added to the filter.

    A set of flags that control how outpoints corresponding to a matched pubkey script are added to the filter. See the 'Comparing Transaction Elements to a Bloom Filter' section in this

    See also

    link

  4. abstract def hashFuncs: UInt32

    The number of hash functions used in the bloom filter

  5. abstract def tweak: UInt32

    An arbitrary value to add to the seed value in the hash function used by the bloom filter.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def byteSize: Long

    The size of the NetworkElement in bytes.

    The size of the NetworkElement in bytes.

    Definition Classes
    NetworkElement
  6. def bytes: ByteVector

    The byte representation of the NetworkElement

    The byte representation of the NetworkElement

    Definition Classes
    BloomFilterNetworkElement
  7. def bytesLE: ByteVector

    The byte representation of the NetworkElement in little endian

    The byte representation of the NetworkElement in little endian

    Definition Classes
    NetworkElement
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  9. def contains(hash: Sha256Hash160Digest): Boolean

    Checks if data contains a Sha256Hash160Digest

  10. def contains(outPoint: TransactionOutPoint): Boolean

    Checks if data contains a TransactionOutPoint

  11. def contains(hash: DoubleSha256Digest): Boolean

    Checks if data contains a DoubleSha256Digest

  12. def contains(bytes: ByteVector): Boolean

    Checks if the filter contains the given bytes

  13. def contains(pubkey: ECPublicKey): Boolean

    Checks if the filter contains the given public key

  14. def debug(mkr: Marker, msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  15. def debug(msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  16. def debug(msg: => Any): Unit
    Attributes
    protected
    Definition Classes
    Logging
  17. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  19. def error(mkr: Marker, msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  20. def error(msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  21. def error(msg: => Any): Unit
    Attributes
    protected
    Definition Classes
    Logging
  22. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  23. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  24. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  25. def hex: String

    The hexadecimal representation of the NetworkElement

    The hexadecimal representation of the NetworkElement

    Definition Classes
    NetworkElement
  26. def hexLE: String

    The hexadecimal representation of the NetworkElement in little endian

    The hexadecimal representation of the NetworkElement in little endian

    Definition Classes
    NetworkElement
  27. def info(mkr: Marker, msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  28. def info(msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  29. def info(msg: => Any): Unit
    Attributes
    protected
    Definition Classes
    Logging
  30. def insert(pubkey: ECPublicKey): BloomFilter

    Inserts a public key and it's corresponding hash into the bloom filter

    Inserts a public key and it's corresponding hash into the bloom filter

    Note

    The rationale for inserting both the pubkey and its hash is that in most cases where you have an "interesting pubkey" that you want to track on the P2P network what you really need to do is insert the hash of the public key, as that is what appears on the blockchain and that nodes you query with bloom filters will see.

    See also

    The BitcoinJ implementation of this function

  31. def insert(outPoint: TransactionOutPoint): BloomFilter

    Inserts a transaction outpoint into the filter

  32. def insert(hash: HashDigest): BloomFilter

    Inserts a hash into the filter

  33. def insert(bytes: ByteVector): BloomFilter

    Inserts a sequence of bytes into the BloomFilter

  34. def insertByteVectors(bytes: Seq[ByteVector]): BloomFilter

    Adds a sequence of byte vectors to our bloom filter then returns that new filter

  35. def insertHashes(hashes: Seq[HashDigest]): BloomFilter

    Inserts a sequence of hashes into the filter

  36. def isDebugEnabled: Boolean
    Attributes
    protected
    Definition Classes
    Logging
  37. def isErrorEnabled: Boolean
    Attributes
    protected
    Definition Classes
    Logging
  38. def isInfoEnabled: Boolean
    Attributes
    protected
    Definition Classes
    Logging
  39. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  40. def isRelevant(transaction: Transaction): Boolean

    Checks if the transaction's txid, or any of the constants in it's scriptPubKeys/scriptSigs match our BloomFilter

    Checks if the transaction's txid, or any of the constants in it's scriptPubKeys/scriptSigs match our BloomFilter

    See also

    BIP37 for exact details on what is relevant to a bloom filter and what is not relevant

  41. def isTraceEnabled: Boolean
    Attributes
    protected
    Definition Classes
    Logging
  42. def isWarnEnabled: Boolean
    Attributes
    protected
    Definition Classes
    Logging
  43. def logger: Logger
    Attributes
    protected
    Definition Classes
    Logging
  44. def loggerName: String
    Attributes
    protected
    Definition Classes
    Logging
  45. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  46. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  47. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  48. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  49. def toString(): String
    Definition Classes
    AnyRef → Any
  50. def trace(mkr: Marker, msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  51. def trace(msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  52. def trace(msg: => Any): Unit
    Attributes
    protected
    Definition Classes
    Logging
  53. def update(transaction: Transaction): BloomFilter

    Updates this bloom filter to contain the relevant information for the given Transaction

    Updates this bloom filter to contain the relevant information for the given Transaction

    See also

    BIP37 for the exact details on what parts of a transaction is added to the bloom filter

  54. def updateP2PKOnly(scriptPubKeysWithIndex: Seq[(ScriptPubKey, Int)], txId: DoubleSha256Digest): BloomFilter

    Updates a bloom filter according to the rules specified by the BloomUpdateP2PKOnly flag

    Updates a bloom filter according to the rules specified by the BloomUpdateP2PKOnly flag

    See also

    BIP37 for the exact rules on updating a bloom filter with this flag set

  55. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  56. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  57. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  58. def warn(mkr: Marker, msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  59. def warn(msg: => Any, t: => Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  60. def warn(msg: => Any): Unit
    Attributes
    protected
    Definition Classes
    Logging

Inherited from BitcoinSLogger

Inherited from Logging

Inherited from NetworkElement

Inherited from AnyRef

Inherited from Any

Ungrouped