Module bip158

Module bip158 

Source
Expand description

§BIP158 Compact Block Filters for Light Clients

Implements a structure for compact filters on block data, for use in the BIP 157 light client protocol. The filter construction proposed is an alternative to Bloom filters, as used in BIP 37, that minimizes filter size by using Golomb-Rice coding for compression.

USE : // create a block filter for a block (server side)

fn get_script_for_coin (coin: &OutPoint) -> Result<Script, BlockFilterError> { // get utxo … }

let filter = BlockFilter::new_script_filter (&block, get_script_for_coin)?;

// or create a filter from known raw data let filter = BlockFilter::new(content);

// read and evaluate a filter

let query: Iterator<Item=Script> = // .. some scripts you care about if filter.match_any (&block_hash, &mut query.map(|s| s.as_bytes())) { // get this block }

Structs§

BitStreamReader
Bitwise stream reader
BitStreamWriter
Bitwise stream writer
BlockFilter
a computed or read block filter
BlockFilterReader
Reads and interpret a block filter
BlockFilterWriter
Compiles and writes a block filter
GCSFilterReader
Golomb-Rice encoded filter reader
GCSFilterWriter
Colomb-Rice encoded filter writer

Enums§

Error
Errors for blockfilter