Initial version for the OneLedger Protocol, focusing on cross-chain transactions and identity management for the two different chains, Ethereum and Bitcoin.
The main part of the system is the blockchain full-node, which is currently an ABCi app based on low-level parts of the Tendermint consensus library. As development continues we will replace the Tendermint components with our own multi-level consensus engine, in order to achieve the advanced functionality we have outlined in our Whitepaper.
These instructions will get a copy of the OneLedger Protocol up and running on your local machine.
The OneLedger Protocol can be started as a Docker container. This is the easiest way to set up the OneLedger Protocol on your computer. You'll need to install Docker CE on your computer to use this method.
Build the protocol image:
$ git clone https://github.com/Oneledger/protocol.git && cd protocol
$ docker build -t oneledger/protocol .
Start the protocol container (runs through your shell interactively):
$ docker run -it oneledger/protocol
See Make Targets to see a list of make
commands you can run to interact with the OneLedger Protocol.
Ensure your system meets the following requirements:
- Operating System must be one of the following:
- macOS
- Ensure Xcode Developer Tools is installed
- A Debian-based Linux distribution
- Ubuntu is recommended for the smoothest install, otherwise you will have to set up your distribution for installing PPAs
- macOS
- Go version 1.7 or higher
- Need an explicit GOPATH environment variable set
- git
Before running any install scripts, ensure your GOPATH is set up explicitly on your user account. Visit the Setting up the GOPATH page on the wiki for more help.
First clone the repository for the OneLedger Protocol with go get
:
$ go get github.com/Oneledger/protocol
Before running any scripts, you'll need to set up the required environment variables properly.
Install the required dependencies:
$ cd "$OLROOT/protocol/node"
$ make setup
General scripts for running the OneLedger Protocol are inside node/scripts.
If everything is set up properly, you can begin testing the OneLedger Protocol with the make
targets provided. Run the following scripts from inside the $OLREPO/node
directory:
Target | Description |
---|---|
make test |
Tests system initialization, brings up everything |
make swaptest |
Test swap mechanics between BTC and ETH |
make fulltest |
Does a full test, makes use of test scripts in the /tests folder |
make status |
Lists all running nodes |
make monitor |
Start tmux session |
make stopmon |
Stops tmux session |
- Implements a fullnode with Tendermint consensus PoS (Proof-of-Stake)
- Supports cross-chain transactions (as synchronized swaps on Hashed Timelocks)
- Etheruem
- Bitcoin
- Supports Identity Management for OneLedger, Ethereum and Bitcoin
- See the
node
README at node/README.md for more details
- Preliminary PoS consensus engine, single-layer
- Post-MVP core development
- Simple chain and protocol for internal testing
- Implements a miner with Satoshi consensus PoW (Proof-of-Work)
The OneLedger Protocol is released under the terms of the Apache 2.0 license. See LICENSE.md for more details or visit https://www.apache.org/licenses/LICENSE-2.0.html.