The library implements components necessary for client-side-validation in bitcoin protocol, specifically
- deterministic bitcoin commitments API (LNPBP-14, 6 standards)
- bitcoin-based single-use-seal API (LNPBP-10 and LNPBP-39 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.
To use libraries, you just need latest version of libraries, published to
crates.io into [dependencies]
section of your project
Cargo.toml
. Here is the full list of available libraries from this repository:
bp-dbc = "0.5" # Deterministic bitcoin commitments crate
bp-seals = "0.5" # Bitcoin single-use-seals crate
bp-core = "0.5" # Library including both of the previous crates
bp-core
crate is an "umbrella" library containing both deterministic bitcoin
commitments and bitcoin seals crates inside.
One may install command-line utilities with the following command (requires
rust compiler and rustup
tools to be already installed on a system):
$ rustup default stable
$ rustup update
$ git clone https://github.com/BP-WG/bp-core
$ cd bp-core
$ cargo install --path . --bins --locked --all-features
This will add seals
and dbc
commands to the system.
Clone the repository and checkout to the desired version (here v0.8.0
):
$ git clone https://github.com/BP-WG/bp-core
$ cd bp-core
$ git checkout v0.8.0
Build and tag the Docker image:
$ docker build -t bp-core:v0.8.0 .
$ docker run bp-core:v0.8.0 seals --help
$ docker run bp-core:v0.8.0 dbc --help
The current list of the projects based on the library include:
- RGB: Confidential & scalable smart contracts for Bitcoin & Lightning
- Bitcoin-based decentralized identity proposal uses single-use-seals
Contribution guidelines can be found in CONTRIBUTING
This library requires minimum rust compiler version (MSRV) 1.41.1.
Altcoins and "blockchains" other than Bitcoin blockchain/Bitcoin protocols are not supported and not planned to be supported; pull requests targeting them will be declined.
See LICENCE file.