#bitcoin #lnp-bp #lightning-network #notification-service #notifications #bitcoin-node

bin+lib bp_node

BP Node:比特币区块链索引和通知服务

2 个版本

0.8.0-alpha.22022年7月14日
0.8.0-alpha.12022年6月21日

#lightning-network 中排名第 10


lnpbp_nodes 中使用

MIT 许可证

38KB
602

BP Node

比特币区块链索引和通知节点。它可以被认为是 Electrum 服务器的替代品,速度更快,提供现代 API(支持钱包描述符和 miniscript,特定于 LN 的查询,客户端验证技术如 RGB,现代 RPC 订阅接口和 ZMQ 等)。未来计划通过使用 libbitcoinconsensus 库来验证区块,将节点升级为完全验证的比特币节点。

该节点最初由 Dr Maxim Orlovsky 设计和实现,作为 LNP/BP 标准协会 努力为 LNP/BP 层 2 和 3 比特币应用程序生态系统奠定基础的一部分。它基于其他 LNP/BP 项目,例如 BP Core LibDescriptor WalletStorm Storage,并且可以轻松集成到 LNP/BP 的其他节点中,如 LNP NodeRGB NodeStorm Node

节点服务

该节点组织成一组守护程序或线程,通过基于 ZMQ 的 API 互相交互,并与 RPC 客户端交互。它利用来自 microservices 包的微服务架构。

该节点提供以下服务集

  • bpd:主要服务,为客户端提供 RPC 请求/回复 API 并管理节点其余服务的生命周期(启动、终止、处理服务间通信)。
  • blockd:服务解析比特币区块(未来将使用 libbitcoinconsensus 进行验证),将它们存储在数据库中(由 stored 服务提供,该服务来自 Storm Storage 库)。它还连接到比特币核心节点以监控传入的新区块,并在解析到新有效区块时通过 bpd 节点客户端进行通知。
  • mempoold:管理内存池交易。
  • walletd:为每个钱包客户端实例化的服务。它了解钱包描述符,监控新的内存池和挖矿交易,并通知订阅客户端有关其变化的任何更新。
  • watchd:闪电网络和RGB的观察塔服务。
  • signd:用于签名比特币交易和与PSBTs工作的服务。由钱包、闪电节点等使用。

除了这些服务外,未来计划通过LNP Node使用闪电网络(Bifrost 子网络)来通过加密形式传播比特币区块到其他 BP 节点(而不是使用传统的比特币网络协议)。

RPC 和客户端工具

仓库还包含 BP 节点 RPC 库(位于 rpc 目录中的 bp_rpc crate)和命令行工具(位于 cli 目录中的 bp-cli crate),用于查询/与节点交互。

依赖项

~17–28MB
~376K SLoC