libbolt/README.md

72 lines
2.0 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
2018-08-13 21:14:02 -07:00
The libbolt library is a proof of concept implementation that relies on experimental libraries and dependencies at the moment. It is not suitable for production software yet.
2018-07-23 23:40:13 -07:00
# Dependencies
* secp256k1
2018-04-02 07:48:01 -07:00
* libsodium
2018-07-23 23:40:13 -07:00
* bn
* bulletproofs
2018-08-14 05:28:01 -07:00
# Installation
Please ensure you have installed the libsodium library for your platform. See install instructions [here](https://download.libsodium.org/doc/installation/index.html).
2018-07-23 23:40:13 -07:00
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:
2018-08-13 21:14:02 -07:00
* unidirectional payment channels (*work in progress*)
2018-07-23 23:40:13 -07:00
* bidirectional payment channels (done)
2018-08-13 20:57:23 -07:00
* third-party payments (done)
2018-07-23 23:40:13 -07:00
2018-08-14 05:28:01 -07:00
**TODO**
# Documentation
Build the api documentation by simply running `make doc`. Documentation will be generated in your local `target/doc` directory.
For the libbolt design documentation, see the `docs/bolt_design.pdf`.
# Contributions
To contribute code improvements, please checkout the repository as follows:
git clone https://github.com/yeletech/libbolt.git
# License
2018-07-23 23:40:13 -07:00
2018-08-14 05:28:01 -07:00
Licensed under MIT (LICENSE-MIT or http://opensource.org/licenses/MIT)