LNP/BP Library

Build Tests Lints codecov

crates.io Docs unsafe forbidden MIT licensed

The repository represents a set of libraries implementing LNP/BP specifications https://github.com/LNP-BP/LNPBPs not fitting into a scope of other existing LNP/BP core libraries (client-side-validation, BP, LNP, RGB, invoicing). It can be used to simplify development of layer 2 & 3 solutions on top of Lightning Network and Bitcoin blockchain.

Currently, the repository contains the following crates: - lnpbp_bech32: library implementing LNPBP-14 standard of Bech32 encoding for client-side-validated data. - lnpbp_chain: library providing chain parameters for bitcoin-related blockchains; - lnpbp_elgamal: library implementing LNPBP-31 standard for ElGamal encryption using Secp256k1 curve; - LNPBP umbrella crate containing all aforementioned libraries.

Other libraries, implementing LNP/BP specifications, not included in this crate: - Client-side-validation foundation libraries (client_side_validation) - Bitcoin protocol core library (bp-core) - Lightning network protocol core library (lnp-core) - RGB core library implementing confidential & scalable smart contracts for Bitcoin & Lightning (rgb-core) - Universal invoicing library

The current list of the projects based on these libraries include: * RGB Node * LNP Node enabling: - RGB extensions - DLC extensions - Lightspeed payments - Multi-peer channels - Faster lightning experiments (quicker adoption of eltoo, Taproot etc) * BP Node: Indexing service for bitcoin blockchain; more efficient & universal Electrum server replacement. In perspective - validating Bitcoin network node (using libbitcoinconsus)

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 architectures

The development of the libraries is supported by LNP/BP Standards Association.

Install

Clone and compile library

Minimum supported rust compiler version (MSRV): 1.51.0 (if command-line tool is not used) and 1.54.0 (otherwise).

shell 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:

shell 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:

toml 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.