Documentation ¶
Overview ¶
Package blockcf provides functions for building committed filters for blocks using Golomb-coded sets in a way that is useful for light clients such as SPV wallets.
Committed filters are a reversal of how bloom filters are typically used by a light client: a consensus-validating full node commits to filters for every block with a predetermined collision probability and light clients match against the filters locally rather than uploading personal data to other nodes. If a filter matches, the light client should fetch the entire block and further inspect it for relevant transactions.
Index ¶
Constants ¶
const (
// P is the collision probability used for block committed filters (2^-20)
P = 20
)
Variables ¶
This section is empty.
Functions ¶
func Extended ¶
Extended builds an extended GCS filter from a block. An extended filter supplements a regular basic filter by including all transaction hashes of regular and stake transactions, and adding the witness data (a.k.a. the signature script) found within every non-coinbase regular transaction.
Types ¶
type Entries ¶
type Entries [][]byte
Entries describes all of the filter entries used to create a GCS filter and provides methods for appending data structures found in blocks.
func (*Entries) AddOutPoint ¶
AddOutPoint adds a serialized outpoint to an entries slice.
func (*Entries) AddRegularPkScript ¶
AddRegularPkScript adds the regular tx output script to an entries slice.
func (*Entries) AddSigScript ¶
AddSigScript adds any data pushes of a signature script to an entries slice.
func (*Entries) AddStakePkScript ¶
AddStakePkScript adds the output script without the stake opcode tag to an entries slice.