Library implementing LNPBP standards related to client-side-validation paradigm
LNP/BP Library
The repository represents a set of libraries implementing LNP/BP specifications
Currently, the repository contains the following crates:
lnpbp_bech32: library implementing LNPBP-14 standard of Bech32 encoding for
lnpbp_chain: library providing chain parameters for bitcoin-related
lnpbp_elgamal: library implementing LNPBP-31 standard for ElGamal encryption
- LNPBP umbrella crate containing all aforementioned libraries.
- Client-side-validation foundation libraries
clientside_validation) - Bitcoin protocol core library
bp-core) - Lightning network protocol core library
lnp-core) - RGB core library implementing confidential & scalable smart contracts for
rgb-core) The current list of the projects based on these libraries include: - RGB extensions - DLC extensions - Lightspeed payments - Multi-peer channels - Faster lightning experiments (quicker adoption of eltoo, Taproot etc) - BP Node: Indexing service for bitcoin
Potentially, with LNP/BP libraries you can simplify the development of
- Discreet log contracts
- Implement experimental lightning features
- Do complex multi-threaded or elastic/dockerized client-service microservice
The development of the libraries is supported by LNP/BP Standards Association.
Install
Clone and compile library
Minimum supported rust compiler version (MSRV): 1.59.0.
script
git clone https://github.com/lnp-bp/rust-lnpbp
cd rust-lnpbp
cargo build --release --all-features
The library can be found in target/release directory.
You can run full test suite with:
cargo test --workspace --all-features
Please refer to the cargo documentation for more detailed instructions.
Use library in other projects
Add these lines to your Cargo.toml file at the very end of the [dependecies] section:
lnpbp = "~0.5.0"
lnpbp_bech32 = "~0.5.0"
lnpbp_chain = "~0.5.0"
lnpbp_elgamal = "~0.5.0"
Contributing
Contribution guidelines can be found in a separate CONTRIBUTING file
More information
Policy on Altcoins/Altchains
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.
Licensing
See LICENCE file.