53 releases

0.11.0-beta.3 Dec 30, 2023
0.11.0-beta.1 Nov 1, 2023
0.10.5 Jul 24, 2023
0.10.0 Mar 28, 2023
0.5.2 Jul 4, 2021

#998 in Magic Beans

Download history 550/week @ 2023-10-28 1207/week @ 2023-11-04 861/week @ 2023-11-11 1359/week @ 2023-11-18 502/week @ 2023-11-25 423/week @ 2023-12-02 645/week @ 2023-12-09 976/week @ 2023-12-16 1327/week @ 2023-12-23 660/week @ 2023-12-30 519/week @ 2024-01-06 499/week @ 2024-01-13 645/week @ 2024-01-20 809/week @ 2024-01-27 635/week @ 2024-02-03 680/week @ 2024-02-10

2,975 downloads per month
Used in 49 crates (23 directly)

Apache-2.0

130KB
2.5K SLoC

Client-side-validation commit-verify library

Build Tests Lints codecov

crates.io Docs unsafe forbidden Apache-2 licensed

This is an implementation of LNPBP-4 multi-commitment standard, LNPBP-9 standard, defining to cryptographic commitment schemes used in client-side-validation, and [LNPBP-81] tagged merkle tree standard. It is a part of more generic client_side_validation library covering other client-side-validation standards.

Client-side-validation is a paradigm for distributed computing, based on top of proof-of-publication/commitment medium layer, which may be a bitcoin blockchain or other type of distributed consensus system.

The development of the library is supported by LNP/BP Standards Association and is performed on its GitHub page.

Minimum supported rust version for the library (MSRV) is 1.66 and 2021 rust edition.

Documentation

Detailed developer & API documentation for the library can be accessed at https://docs.rs/commit_verify/

To learn about the technologies enabled by the library please check slides from our tech presentations and LNP/BP tech talks videos

Usage

To use the library, you just need to reference a latest version, in [dependencies] section of your project Cargo.toml.

commit_verify = "1"

If you are using other client-side-validation libraries, consider importing just a single client_side_validation library which re-exports all of them, including the current one.

The library has just a two feature flags, both of which are not used by default:

  • rand, providing support for generating random 32-byte sequences of Slice32 type, used in many LNP/BP applications (for instance as hash-lock preimages or during LNPBP-4 multi-commitments)
  • serde, providing support for data structure serialization with serde across the library

Contributing

Contribution guidelines can be found in CONTRIBUTING

Licensing

The libraries are distributed on the terms of Apache 2.0 opensource license. See LICENCE file for the license details.

[LNPBP-81]" https://github.com/LNP-BP/LNPBPs/blob/master/lnpbp-0081.md

Dependencies

~2.5–3.5MB
~81K SLoC