Module blockchain

Source
Expand description

Blockchain backends

This module provides the implementation of a few commonly-used backends like Electrum, Esplora and Compact Filters/Neutrino, along with a generalized trait Blockchain that can be implemented to build customized backends.

Re-exports§

pub use any::AnyBlockchain;
pub use any::AnyBlockchainConfig;
pub use self::electrum::ElectrumBlockchain;
pub use self::electrum::ElectrumBlockchainConfig;
pub use self::rpc::RpcBlockchain;
pub use self::rpc::RpcConfig;
pub use self::esplora::EsploraBlockchain;
pub use self::compact_filters::CompactFiltersBlockchain;

Modules§

any
Runtime-checked blockchain types
compact_filterscompact_filters
Compact Filters
electrumelectrum
Electrum
esploraesplora
Esplora
rpcrpc
Rpc Blockchain

Structs§

LogProgress
Type that implements Progress and logs at level INFO every update received
NoopProgress
Type that implements Progress and drops every update received

Enums§

Capability
Capabilities that can be supported by a Blockchain backend

Traits§

Blockchain
Trait that defines the actions that must be supported by a blockchain backend
BlockchainFactory
Trait for a factory of blockchains that share the underlying connection or configuration
ConfigurableBlockchain
Trait for Blockchain types that can be created given a configuration
GetBlockHash
Trait for getting block hash by block height
GetHeight
Trait for getting the current height of the blockchain.
GetTx
Trait for getting a transaction by txid
Progress
Trait for types that can receive and process progress updates during WalletSync::wallet_sync and WalletSync::wallet_setup
StatelessBlockchain
Trait for blockchains that don’t contain any state
WalletSync
Trait for blockchains that can sync by updating the database directly.

Functions§

log_progress
Create a new instance of LogProgress
noop_progress
Create a new instance of NoopProgress
progress
Shortcut to create a channel (pair of Sender and Receiver) that can transport ProgressData

Type Aliases§

ProgressData
Data sent with a progress update over a channel