filterdb

package
v0.0.0-...-475fa39 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2021 License: MIT Imports: 6 Imported by: 0

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

This section is empty.

Types

type FilterDatabase

type FilterDatabase interface {
	// PutFilter stores a filter with the given hash and type to persistent
	// storage.
	PutFilter(*chainhash.Hash, *gcs.Filter, FilterType) 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

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) PutFilter

func (f *FilterStore) PutFilter(hash *chainhash.Hash,
	filter *gcs.Filter, fType FilterType) error

PutFilter stores a filter with the given hash and type to persistent storage.

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

type FilterType

type FilterType uint8

FilterType is a 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