libbolt/README.md

55 lines
1.4 KiB
Markdown
Raw Normal View History

2018-02-15 21:00:07 -08:00
# libbolt
2018-04-02 07:48:01 -07:00
2018-07-23 23:40:13 -07:00
A pure-Rust library implementation of BOLT: Blind Off-chain Lightweight Transactions.
2018-04-02 07:48:01 -07:00
2018-07-23 23:40:13 -07:00
BOLT is a system for conducting privacy-preserving off-chain payments between pairs of individual parties. BOLT is designed to provide a Layer 2 payment protocol for privacy-preserving cryptocurrencies such as Zcash, by allowing individuals to establish and use payment channels for instantaneous payments that do not require an on-chain transaction.
# WARNING
The libbolt library relies on experimental libraries and dependencies at the moment. It should not be deployed in production software yet and has not undergone a security review.
# Dependencies
* secp256k1
2018-04-02 07:48:01 -07:00
* libsodium
2018-07-23 23:40:13 -07:00
* bn
* bulletproofs
# Compile and Install
To compile the library, run `make`
# Tests
To run libbolt tests, run `cargo test` or `make test`
# Benchmarks
To run libbolt benchmarks, run `cargo bench` or `make bench`
# Usage
To use the libbolt library, add the `libbolt` crate to your dependency file in `Cargo.toml` as follows:
```toml
[dependencies]
libbolt = "0.1.0"
```
Then add an extern declaration at the root of your crate as follows:
```rust
extern crate libbolt;
```
# API
The libbolt library provides APIs for three types of privacy-preserving payment channels:
* unidirectional payment channels (not done)
* bidirectional payment channels (done)
2018-08-13 20:57:23 -07:00
* third-party payments (done)
2018-07-23 23:40:13 -07:00
# Crypto Design
To build the design docs, run `make doc`.