Crate lightning_transaction_sync
source ·Expand description
Provides utilities for syncing LDK via the transaction-based Confirm interface.
The provided synchronization clients need to be registered with a ChainMonitor via the
Filter interface. Then, the respective fn sync needs to be called with the Confirm
implementations to be synchronized, i.e., usually instances of ChannelManager and
ChainMonitor.
§Features and Backend Support
esplora-blockingenables syncing against an Esplora backend based on a blocking client.esplora-asyncenables syncing against an Esplora backend based on an async client.esplora-async-httpsenables the async Esplora client with support for HTTPS.
§Version Compatibility
Currently this crate is compatible with LDK version 0.0.114 and above using channels which were created on LDK version 0.0.113 and above.
§Usage Example:
ⓘ
let tx_sync = Arc::new(EsploraSyncClient::new(
esplora_server_url,
Arc::clone(&some_logger),
));
let chain_monitor = Arc::new(ChainMonitor::new(
Some(Arc::clone(&tx_sync)),
Arc::clone(&some_broadcaster),
Arc::clone(&some_logger),
Arc::clone(&some_fee_estimator),
Arc::clone(&some_persister),
));
let channel_manager = Arc::new(ChannelManager::new(
Arc::clone(&some_fee_estimator),
Arc::clone(&chain_monitor),
Arc::clone(&some_broadcaster),
Arc::clone(&some_router),
Arc::clone(&some_logger),
Arc::clone(&some_entropy_source),
Arc::clone(&some_node_signer),
Arc::clone(&some_signer_provider),
user_config,
chain_params,
));
let confirmables = vec![
&*channel_manager as &(dyn Confirm + Sync + Send),
&*chain_monitor as &(dyn Confirm + Sync + Send),
];
tx_sync.sync(confirmables).unwrap();Structs§
- ElectrumSyncClient
electrumSynchronizes LDK with a given Electrum server. - EsploraSyncClient
esplora-blockingoresplora-asyncSynchronizes LDK with a givenEsploraserver.
Enums§
- TxSyncError
esplora-blockingoresplora-asyncorelectrumAn error that possibly needs to be handled by the user.