[−][src]Module bitcoin::util::bip158
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 |