filterdb

package
v0.16.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2023 License: MIT Imports: 7 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// ErrFilterNotFound is returned when a filter for a target block hash
	// is unable to be located.
	ErrFilterNotFound = fmt.Errorf("unable to find filter")
)

Functions

func DisableLog added in v0.16.0

func DisableLog()

DisableLog disables all library log output. Logging output is disabled by default until either UseLogger or SetLogWriter are called.

func UseLogger added in v0.16.0

func UseLogger(logger btclog.Logger)

UseLogger uses a specified Logger to output package logging info. This should be used in preference to SetLogWriter if the caller is also using btclog.

Types

type FilterData added in v0.16.0

type FilterData struct {
	// Filter is the actual filter to be stored.
	Filter *gcs.Filter

	// BlockHash is the block header hash of the block associated with the
	// Filter.
	BlockHash *chainhash.Hash

	// Type is the filter type.
	Type FilterType
}

FilterData holds all the info about a filter required to store it.

type FilterDatabase

type FilterDatabase interface {
	// PutFilters stores a set of filters to persistent storage.
	PutFilters(...*FilterData) error

	// FetchFilter attempts to fetch a filter with the given hash and type
	// from persistent storage. In the case that a filter matching the
	// target block hash cannot be found, then ErrFilterNotFound is to be
	// returned.
	FetchFilter(*chainhash.Hash, FilterType) (*gcs.Filter, error)

	// PurgeFilters purge all filters with a given type from persistent
	// storage.
	PurgeFilters(FilterType) error
}

FilterDatabase is an interface which represents an object that is capable of storing and retrieving filters according to their corresponding block hash and also their filter type.

TODO(roasbeef): similar interface for headerfs?

type FilterStore

type FilterStore struct {
	// contains filtered or unexported fields
}

FilterStore is an implementation of the FilterDatabase interface which is backed by boltdb.

func New

func New(db walletdb.DB, params chaincfg.Params) (*FilterStore, error)

New creates a new instance of the FilterStore given an already open database, and the target chain parameters.

func (*FilterStore) FetchFilter

func (f *FilterStore) FetchFilter(blockHash *chainhash.Hash,
	filterType FilterType) (*gcs.Filter, error)

FetchFilter attempts to fetch a filter with the given hash and type from persistent storage.

NOTE: This method is a part of the FilterDatabase interface.

func (*FilterStore) PurgeFilters added in v0.12.0

func (f *FilterStore) PurgeFilters(fType FilterType) error

PurgeFilters purge all filters with a given type from persistent storage.

NOTE: This method is a part of the FilterDatabase interface.

func (*FilterStore) PutFilters added in v0.16.0

func (f *FilterStore) PutFilters(filterList ...*FilterData) error

PutFilters stores a set of filters to persistent storage.

NOTE: This method is a part of the FilterDatabase interface.

type FilterType

type FilterType uint8

FilterType is an enum-like type that represents the various filter types currently defined.

const (
	// RegularFilter is the filter type of regular filters which contain
	// outputs and pkScript data pushes.
	RegularFilter FilterType = iota
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL