#闪电网络 #接口 #同步 #确认 #同步中 #ldk #异步

lightning-transaction-sync

通过基于事务的 Confirm 接口同步 LDK 的实用工具

19 个版本

0.0.124-beta 2024 年 8 月 20 日
0.0.123 2024 年 5 月 9 日
0.0.123-beta2024 年 4 月 19 日
0.0.121 2024 年 1 月 23 日
0.0.114 2023 年 3 月 4 日

#485 in 神奇豆子

Download history 348/week @ 2024-05-04 1252/week @ 2024-05-11 1072/week @ 2024-05-18 1305/week @ 2024-05-25 625/week @ 2024-06-01 1331/week @ 2024-06-08 1224/week @ 2024-06-15 1020/week @ 2024-06-22 205/week @ 2024-06-29 751/week @ 2024-07-06 700/week @ 2024-07-13 897/week @ 2024-07-20 630/week @ 2024-07-27 676/week @ 2024-08-03 1054/week @ 2024-08-10 768/week @ 2024-08-17

3,244 每月下载量
用于 2 crates

MIT/Apache

7MB
114K SLoC

提供通过基于事务的 Confirm 接口同步 LDK 的实用工具。

提供的同步客户端需要通过 ChainMonitorFilter 接口进行注册。然后,需要调用相应的 fn sync 函数,并传入要同步的 Confirm 实现方式,通常是 ChannelManagerChainMonitor 的实例。

功能和后端支持

  • esplora-blocking 允许基于阻塞客户端与 Esplora 后端同步。
  • esplora-async 允许基于异步客户端与 Esplora 后端同步。
  • esplora-async-https 允许异步 Esplora 客户端支持 HTTPS。

版本兼容性

目前这个 crate 与 LDK 版本 0.0.114 及以上兼容,使用的是在 LDK 版本 0.0.113 及以上创建的通道。

使用示例

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();

依赖

~8–20MB
~251K SLoC