# Functions

BadgerTrain creates a zstd dictionary for a given BadgerStorage DB namespace.
DefaultBadgerOptions are the default options used to initialized a new BadgerDB.
Err takes an error as an argument and returns whether or not the error is one thrown by the storage along with the specific source of the error.
GetAccountKey returns a deterministic hash of a types.Account + types.Currency.
GetHistoricalBalanceKey returns a deterministic hash of a types.Account + types.Currency + block index.
GetHistoricalBalancePrefix returns a deterministic hash of a types.Account + types.Currency to limit scan results.
NewBadgerStorage creates a new BadgerStorage.
NewBalanceStorage returns a new BalanceStorage.
NewBlockStorage returns a new BlockStorage.
NewBroadcastStorage returns a new BroadcastStorage.
NewBufferPool returns a new *BufferPool.
NewCoinStorage returns a new CoinStorage.
NewCounterStorage returns a new CounterStorage.
NewEncoder returns a new *Encoder.
NewJobStorage returns a new instance of *JobStorage.
NewKeyStorage returns a new KeyStorage.
PerformanceBadgerOptions are performance geared BadgerDB options that use much more RAM than the default settings.
WithCompressorEntries provides zstd dictionaries for given namespaces.
WithCustomSettings allows for overriding all default BadgerDB options with custom settings.
WithIndexCacheSize override the DefaultIndexCacheSize setting for the BadgerDB.
WithoutCompression disables zstd compression.
WithWriterShards overrides the default shards used in the writer utils.MutexMap.

# Constants

ActiveReconciliationCounter is the number of active reconciliations performed.
AddressesCreatedCounter is the number of created addresses.
BlockCounter is the number of added blocks.
DefaultBlockCacheSize is 0 MB.
DefaultCompressionMode is the default block compression setting.
DefaultIndexCacheSize is 2 GB.
DefaultLogValueSize is 64 MB.
DefaultMaxTableSize is 256 MB.
ExemptReconciliationCounter is the number of reconciliation failures that were exempt.
FailedBroadcastsCounter is the number of transaction broadcasts that never made it on-chain after retries.
FailedReconciliationCounter is the number of reconciliation failures that were not exempt.
InactiveReconciliationCounter is the number of inactive reconciliations performed.
OperationCounter is the number of processed operations.
OrphanCounter is the number of orphaned blocks.
SkippedReconciliationsCounter is the number of reconciliation attempts that were skipped.
StaleBroadcastsCounter is the number of transaction broadcasts that never appeared on-chain.
TinyIndexCacheSize is 10 MB.
TransactionCounter is the number of processed transactions.
TransactionsConfirmedCounter is the number of confirmed transactions.
TransactionsCreatedCounter is the number of created transactions.

# Variables

Badger Storage Errors.
Balance Storage Errors.
Block Storage Errors.
Broadcast Storage Errors.
Coin Storage Errors.
Compressor Errors.
Coin Storage Errors.
Coin Storage Errors.
Coin Storage Errors.
ErrAccountMissing is returned when a fetched account does not exist.
Key Storage Errors.
ErrAddrExists is returned when key storage already contains an address.
Key Storage Errors.
Key Storage Errors.
Key Storage Errors.
Key Storage Errors.
ErrBalancePruned is returned when the caller attempts to retrieve a pruned balance.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
ErrBlockNil is returned when the block to lookup a balance at is nil.
ErrBlockNotFound is returned when a block is not found in BlockStorage.
Block Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Broadcast Storage Errors.
Compressor Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Coin Storage Errors.
Coin Storage Errors.
Coin Storage Errors.
Coin Storage Errors.
Coin Storage Errors.
Coin Storage Errors.
Coin Storage Errors.
ErrCoinNotFound is returned when a coin is not found in CoinStorage.
Coin Storage Errors.
Coin Storage Errors.
Coin Storage Errors.
Coin Storage Errors.
Badger Storage Errors.
Key Storage Errors.
Badger Storage Errors.
Badger Storage Errors.
Badger Storage Errors.
Compressor Errors.
Badger Storage Errors.
Coin Storage Errors.
Badger Storage Errors.
Badger Storage Errors.
Badger Storage Errors.
Badger Storage Errors.
Badger Storage Errors.
Badger Storage Errors.
Key Storage Errors.
Coin Storage Errors.
ErrDuplicateKey is returned when a key cannot be stored because it is a duplicate.
ErrDuplicateTransactionHash is returned when a transaction hash cannot be stored because it is a duplicate.
Block Storage Errors.
Block Storage Errors.
ErrHeadBlockNotFound is returned when there is no head block found in BlockStorage.
ErrInvalidLiveBalance is returned when an account's live balance varies in a way that is inconsistent with any balance exemption.
Badger Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Job Storage Errors.
Key Storage Errors.
Key Storage Errors.
Block Storage Errors.
Compressor Errors.
Badger Storage Errors.
Badger Storage Errors.
ErrNegativeBalance is returned when an account balance goes negative as the result of an operation.
Key Storage Errors.
Badger Storage Errors.
Block Storage Errors.
Compressor Errors.
Compressor Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Coin Storage Errors.
Key Storage Errors.
Key Storage Errors.
Key Storage Errors.
Block Storage Errors.
Compressor Errors.
Compressor Errors.
Compressor Errors.
Compressor Errors.
Badger Storage Errors.
Coin Storage Errors.
Badger Storage Errors.
Badger Storage Errors.
Badger Storage Errors.
Key Storage Errors.
Key Storage Errors.
Key Storage Errors.
Key Storage Errors.
Badger Storage Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Block Storage Errors.
Coin Storage Errors.
Coin Storage Errors.
Badger Storage Errors.
Compressor Errors.
Job Storage Errors.
Key Storage Errors.

# Structs

AccountCoin contains an AccountIdentifier and a Coin that it owns.
BadgerStorage is a wrapper around Badger DB that implements the Database interface.
BadgerTransaction is a wrapper around a Badger DB transaction that implements the DatabaseTransaction interface.
BalanceStorage implements block specific storage methods on top of a Database and DatabaseTransaction interface.
BlockStorage implements block specific storage methods on top of a Database and DatabaseTransaction interface.
BootstrapBalance represents a balance of a *types.AccountIdentifier and a *types.Currency in the genesis block.
Broadcast is persisted to the db to track transaction broadcast.
BroadcastStorage implements storage methods for managing transaction broadcast.
BufferPool contains a sync.Pool of *bytes.Buffer.
CoinStorage implements storage methods for storing UTXOs.
CompressorEntry is used to initialize a dictionary compression.
CounterStorage implements counter-specific storage methods on top of a Database and DatabaseTransaction interface.
Encoder handles the encoding/decoding of structs and the compression/decompression of data using zstd.
JobStorage implements storage methods for managing jobs.
Key is the struct stored in key storage.
KeyStorage implements key storage methods on top of a Database and DatabaseTransaction interface.
PrefundedAccount is used to load prefunded addresses into key storage.

# Interfaces

BalanceStorageHandler is invoked after balance changes are committed to the database.
BalanceStorageHelper functions are used by BalanceStorage to process balances.
BlockWorker is an interface that allows for work to be done while a block is added/removed from storage in the same database transaction as the change.
BroadcastStorageHandler is invoked when a transaction is confirmed on-chain or when a transaction is considered stale.
BroadcastStorageHelper is used by BroadcastStorage to submit transactions and find said transaction in blocks on-chain.
CoinStorageHelper is used by CoinStorage to determine at which block a Coin set is valid.
Database is an interface that provides transactional access to a KV store.
DatabaseTransaction is an interface that provides access to a KV store within some transaction context provided by a Database.

# Type aliases

BadgerOption is used to overwrite default values in BadgerStorage construction.
CommitWorker is returned by a BlockWorker to be called after changes have been committed.