14 个版本
0.3.0-alpha.2 | 2021 年 1 月 17 日 |
---|---|
0.3.0-alpha.1 | 2021 年 1 月 16 日 |
0.2.0 | 2020 年 12 月 9 日 |
0.2.0-beta.3 | 2020 年 11 月 30 日 |
0.1.0 | 2020 年 10 月 21 日 |
在 #lnp-bp 中排名 47
每月下载量 48 次
在 2 个 crate 中使用(通过 lnpbp_services)
39KB
940 行
LNP/BP 核心库
这是 LNP/BP 核心库:一个实现 LNP/BP 规范的 Rust 库 https://github.com/LNP-BP/LNPBPs。它可以用于简化在 Lightning 网络和比特币区块链上开发 2 & 3 层解决方案。
基于该库的项目当前列表包括
- RGB:比特币和 Lightning 的保密且可扩展的智能合约
- 通用闪电网络及其参考实现 LNP 节点,它支持
- RGB 扩展
- DLC 扩展
- Lightspeed 付款
- 多对多通道
- 更快的闪电实验(更快地采用 eltoo、Taproot 等)
- LNP:用于隐私保护和反审查应用的网络协议,可在 P2P 和 RPC 模式下运行(目前作为闪电网络的一部分使用,但我们致力于使其更加通用和可用,甚至在没有 LN 的情况下)。所有由 LNP/BP 标准协会开发的服务都是使用 LNP 开发的。
- BP 节点:比特币区块链索引服务;更高效、更通用的 Electrum 服务器替代品。展望未来 - 验证比特币网络节点(使用 libbitcoinconsus)
计划中的项目
- 闪电网络的去中心化交易所
- Bifrost 节点:运行 P2P LNP/BP 网络基础设施节点的节点
- 去中心化交易所信息工作流程
- 瞭望塔(RGB 启用)
- DLC 预言机提供者
- 用于客户端验证数据的匿名中间存储(如 RGB 货物)
- Storm 存储提供商(见下文)
- Storm:激励性的无信任存储和消息协议
- Prometheus:去中心化无信任计算
使用 LNP/BP 核心库,您可以简化以下开发
- 离散对数合约
- 实现实验性的闪电功能
- 进行复杂的多线程或弹性/dockerized 客户端-服务微服务架构
要了解更多关于由库支持的技术,请查看
图书馆项目的开发得到了LNP/BP标准协会的支持。
库功能
该库提供以下代码:
- RGB:具有客户端验证的保密智能合约,支持闪电网络
- 对比特币协议的改进和实用工具
- 可以嵌入到比特币交易和公钥中的确定性承诺(DBC)
- 一次性印章
- 客户端验证
- 闪电网络协议(LNP)
- 广义闪电网络
此代码支持比特币区块链和闪电网络。
项目结构
该库是一个单独的Rust crate,具有以下顶级模块
- 范式:通用的范式(API最佳实践),不是针对比特币特定的
- bp:Bitcoin协议扩展,在Bitcoin Core功能和现有的BIPs之外。这些也可能包括LNPBP标准,这些标准不是针对其他层特定的。
- lnp:闪电网络协议扩展:网络、广义闪电通道和BOLT规范的更好分层
- rgb:基于比特币和闪电网络的智能合约,基于客户端验证、确定性比特币承诺和一次性印章。
- 标准:其他LNPBPs标准实现,不适合上述任何类别
该库基于其他项目
- rust-bitcoin
- bitcoin_hashes
- rust-secp256k1
- rust-secp256k1-zkp,用于RGB协议内部保密状态中的Pedersen承诺和Bulletproofs
- rust-miniscript
安装
获取依赖项
在Debian上运行
sudo apt-get install cargo libssl-dev libzmq3-dev pkg-config g++ cmake
在Mac OS上运行
brew cargo pkg-config zmq
克隆并编译库
最低支持的Rust编译器版本(MSRV):1.45(如果使用tokio功能)和1.41.1(如果不使用tokio)
git clone https://github.com/lnp-bp/rust-lnpbp
cd rust-lnpbp
cargo build --release --all-features
库可以在target/release
目录中找到。
您可以使用以下命令运行完整的测试套件
./contrib/test.sh
有关更详细的说明,请参阅cargo
文档
在其他项目中使用库
将以下行添加到您的Cargo.toml
文件中,在[dependencies]
部分的最后
lnpbp = "~0.2.0"
lnpbp_derive = "~0.2.0"
lnpbp_services = "~0.2.0"
贡献
贡献指南可以在单独的CONTRIBUTING文件中找到
更多信息
关于代币/侧链的政策
不支持也不计划支持除比特币区块链/比特币协议之外的代币和“区块链”;针对它们的pull请求将被拒绝。
许可
请参阅LICENCE文件。
依赖项
~1.5MB
~41K SLoC