21 个版本
新增 0.12.0 | 2024 年 8 月 9 日 |
---|---|
0.12.0-rc.2 | 2024 年 6 月 26 日 |
0.11.0 | 2024 年 2 月 29 日 |
0.11.0-rc.1 | 2023 年 11 月 29 日 |
0.2.1 | 2023 年 3 月 20 日 |
933 在 魔法豆 中
1,973 每月下载量
在 11 个 仓库(直接使用 8 个)中使用
1MB
27K SLoC
验证 Lightning 签署者
限制
以下尚未实现
vlsd2 --recover-to
只能处理我们简单强制关闭。它不能处理对方强制关闭或违约。它也不能处理 HTLC 输出。- 没有从签署者状态丢失中恢复的设施。
- 链上跟踪尚未完全实现,因此恶意节点可以通过未能补救违约(例如)来窃取资金。
附加仓库
- 一个无 std 的 VLS 线协议编码/解码器 - 在 ./vls-protocol
- 一个无 std 的 VLS 协议处理程序 - 在 ./vls-protocol-signer
- 一个 UNIX CLN
hsmd
二进制的替代品,用 Rust 实现,位于 ./vls-proxy。
开发信息
推荐的Rust版本
我们仅在特定情况下推荐使用Rust的nightly版本,例如用于cargo fmt
和no-std
。否则,我们明确推荐使用稳定版本。
代码格式化
启用格式化预提交钩子
./scripts/enable-githooks
由于某种原因,即使rustfmt的ignore
配置在文档中标注为稳定,但它仅在nightly通道上可用。
rustup install nightly
cargo +nightly fmt
构建验证闪电签名者
构建VLS和相关crate
cargo build
运行单元测试
cargo test
要启用失败测试的日志记录(调整日志级别到偏好设置)
RUST_LOG=trace cargo test
使用llvm-cov进行代码覆盖率
依赖项
cargo +stable install cargo-llvm-cov --locked
运行覆盖率
./scripts/run-llvm-cov
将链接器改为mold
而不是ld
cp .cargo/config.sample.toml .cargo/config.toml
基准测试
运行基准测试
cargo bench -p vls-core --bench secp_bench
请注意,如果您想在vls-core中运行所有基准测试,可能需要添加--features=test_utils
。
无优化
cargo bench -p vls-core --bench secp_bench --profile=dev
预期如下
test fib1_bench ... bench: 1 ns/iter (+/- 0)
test fib_bench ... bench: 17,247 ns/iter (+/- 198)
test hash_bench ... bench: 258 ns/iter (+/- 2)
test secp_create_bench ... bench: 49,981 ns/iter (+/- 642)
test sign_bench ... bench: 25,692 ns/iter (+/- 391)
test verify_bench ... bench: 31,705 ns/iter (+/- 1,445)
即每个secp256k1加密操作大约需要30微秒。我们还看到创建secp上下文成本高昂,但不是过分昂贵。
依赖项
~19–33MB
~466K SLoC