Go to file
J. Ayo Akinyele 054e646965 clean up 2018-08-13 23:57:23 -04:00
bin add third-party payment option 2018-08-13 18:16:02 -04:00
docs add check to make sure balance update differs by payment increment 2018-08-10 03:01:50 -04:00
src clean up 2018-08-13 23:57:23 -04:00
.gitignore ignore file 2018-02-25 02:47:38 -05:00
.travis.yml add travis config 2018-07-24 21:44:16 -04:00
Cargo.toml more clean up 2018-08-13 18:19:58 -04:00
LICENSE Initial commit 2018-02-16 00:00:07 -05:00
Makefile adding more tests for libbolt 2018-07-25 22:19:03 -04:00
README.md clean up 2018-08-13 23:57:23 -04:00

README.md

libbolt

A pure-Rust library implementation of BOLT: Blind Off-chain Lightweight Transactions.

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
  • libsodium
  • 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:

[dependencies]
libbolt = "0.1.0"

Then add an extern declaration at the root of your crate as follows:

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)
  • third-party payments (done)

Crypto Design

To build the design docs, run make doc.