#lightning #newtype #networking

no-std ln-types

与闪电网络相关的常用类型

7 个版本

0.2.1 2024年8月19日
0.2.0 2024年7月3日
0.1.5 2022年1月3日
0.1.4 2021年12月17日
0.1.2 2021年11月21日

#8 in 魔法豆

MITNFA 许可证

98KB
2K SLoC

常用的 Rust 闪电网络类型

警告:虽然目前状态良好,但仍被视为预览版本!有一些计划中的更改。

这个库旨在提供 Rust 语言风格、易于使用且性能合理的 Lightning Network 应用程序中使用的原语实现。这意味着,它们不仅仅是用于实现 LN 的类型,它们应该对任何与 LN 实现通信的应用程序都有用。当然,它们仍然应该对 LN 实现本身有用。

重要类型

目前可用的最重要的类型

  • Amount - 与 bitcoin::Amount 类似,但具有毫比特精度
  • P2PAddress - 节点的地址,通常以文本形式表示为 node_id_hex@host:port
  • NodeId - 节点公钥的字节表示(不进行加密操作)
  • NodePubkey - 基于 secp256k1::PublicKey 的新类型,以区分节点公钥和其他密钥。需要 secp256k1 功能。

注意:发票不在此处,也没有计划,因为它已经存在于一个单独的 crate 中。

特性

这个 crate 是 no_std 和无分配,但有限制

  • P2PAddress 由于 ip_in_core 需要 nightly Rust,请通过 nightly 功能显式激活。
  • 在无 alloc(在 nightly 中)的情况下,P2PAddress 不能解析/存储主机名。尝试这样做将返回错误。

集成

这个 crate 旨在通过可选依赖与其他 crate 互操作。目前可用的集成(使用同名功能激活)

  • bitcoin - 类型之间的转换
  • serde - 类型序列化和反序列化
  • postgres-types - 从 SQL 存储和检索
  • parse_arg - 将参数解析为 crate 中的类型
  • secp256k1 - 提供了 NodePubkey
  • slog - 提供了 slog::Value 以及(在适用的情况下)为类型提供 slog::KV 实现

欢迎您贡献自己的代码!

免责声明:此处包含的任何crate均不代表对其安全性、诚信、未植入后门或功能的认可或保证!您需要自行审查任何外部crate。

添加新集成的基本规则较为宽松:依赖项必须是可选的,不能 明显有缺陷或令人惊讶,并且 不能 以令人惊讶的方式与其他实现交互。

MSRV

最低支持的Rust版本是1.56,并将很快增加到1.63。一般来说,目标是至少支持最新的Debian稳定版。但是,如果Rust版本低于1.77,则没有 std 的情况下,P2PAddress 不可用。

请注意,外部库可能具有更高的MSRV - 这不被视为是错误。

许可证

MITNFA

依赖项

~0–1.6MB
~27K SLoC