11 unstable releases (3 breaking)
|0.11.0-rc.1||Nov 29, 2023|
|0.10.0||Aug 17, 2023|
|0.9.1||Jun 21, 2023|
|0.9.0-rc.1||May 29, 2023|
|0.2.0||Mar 14, 2023|
403 downloads per month
Used in 3 crates (2 directly)
Validating Lightning Signer
The following remain to be implemented:
vlsd2 --recover-tocan only handle a simple force-close by us. It cannot sweep a force-close or a breach by the peer. It also cannot sweep HTLC outputs.
- there is no facility to recover from loss of signer state.
- on-chain tracking is not fully implemented, so a malicious node can steal funds by failing to remedy a breach (for example)
no_stdVLS wire protocol encoder/decoder - in ./vls-protocol
no_stdprotocol handler for VLS - in ./vls-protocol-signer
- a replacement for the UNIX CLN
hsmdbinary, implemented in Rust in ./vls-proxy.
Enable formatting precommit hooks:
For some reason, the
ignore configuration for rustfmt is only available on the nightly channel,
even though it's documented as stable.
rustup install nightly cargo +nightly fmt
Building Validating Lightning Signer
Build VLS and related crates:
Running Unit Tests
To enable logging for a failing test (adjust log level to preference):
RUST_LOG=trace cargo test
Using llvm-cov for Code Coverage
cargo +stable install cargo-llvm-cov --locked
cargo bench -p vls-core --bench secp_bench
Note that you might need to add
--features=test_utils if you want to run all benches in vls-core.
cargo bench -p vls-core --bench secp_bench --profile=dev
Expect something like:
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)
i.e. around 30 microseconds per secp256k1 crypto operation. We also see that creating a secp context is expensive, but not prohibitively so.