Skip to content
Branch: develop
Clone or download
silasdavis Merge pull request #1109 from seanyoung/chain-id
Store ChainID in vent tables
Latest commit cf3ac67 May 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Switch to modules and upgrade all the deps Apr 23, 2019
.github Rename to Burrow Apr 4, 2017
acm Switch to modules and upgrade all the deps Apr 23, 2019
bcm Switch to modules and upgrade all the deps Apr 23, 2019
binary Fix checkpointing with RWTree Dec 18, 2018
cmd/burrow update release notes for 0.25.1 and fix silent flag May 3, 2019
config Fix NoConsensus simulated call. Refactor tests to be indpendent of bu… Apr 4, 2019
consensus Switch to modules and upgrade all the deps Apr 23, 2019
core always build keyStore regardless of keyClient backend May 2, 2019
crypto Switch to modules and upgrade all the deps Apr 23, 2019
deploy Check number of arguments to constructor Apr 30, 2019
deployment Rationalise GRPC, protobuf, integration testing Jul 18, 2018
docs Switch to modules and upgrade all the deps Apr 23, 2019
dump Switch to modules and upgrade all the deps Apr 23, 2019
event Fix NoConsensus simulated call. Refactor tests to be indpendent of bu… Apr 4, 2019
execution Switch to modules and upgrade all the deps Apr 23, 2019
forensics Fix log event name actualy table name. Apr 23, 2019
genesis Switch to modules and upgrade all the deps Apr 23, 2019
governance Fix NoConsensus simulated call. Refactor tests to be indpendent of bu… Apr 4, 2019
integration Switch to modules and upgrade all the deps Apr 23, 2019
keys always build keyStore regardless of keyClient backend May 2, 2019
logging Fix NoConsensus simulated call. Refactor tests to be indpendent of bu… Apr 4, 2019
permission Switch to modules and upgrade all the deps Apr 23, 2019
process separate host/port, silent restore fail option, fix state restore mes… Apr 12, 2019
project update release notes for 0.25.1 and fix silent flag May 3, 2019
protobuf Refactor metrics, don't swallow errors, fix broken use of histograms Mar 14, 2019
rpc
scripts Switch to modules and upgrade all the deps Apr 23, 2019
storage Upgrade to tendermint 0.31.2 Apr 1, 2019
sync Release lock earlier in BroadcastTxSync and support mempool signing in Jul 25, 2018
tests Check number of arguments to constructor Apr 30, 2019
txs Switch to modules and upgrade all the deps Apr 23, 2019
util Make sure we display shutdown errors Apr 5, 2019
vent Do not store chain id in SQLConnection May 15, 2019
.dockerignore Sort out docker and release builds Aug 20, 2018
.gitignore refactor kernel Mar 21, 2019
.goreleaser.yml Introuduce single error transmission mechanism Nov 8, 2018
CHANGELOG.md update release notes for 0.25.1 and fix silent flag May 3, 2019
Dockerfile Switch to modules and upgrade all the deps Apr 23, 2019
LICENSE.md strings.ToUpper(the-license-filename-prefix) Mar 4, 2017
Makefile Switch to modules and upgrade all the deps Apr 23, 2019
NOTES.md update release notes for 0.25.1 and fix silent flag May 3, 2019
README.md Fix NoConsensus simulated call. Refactor tests to be indpendent of bu… Apr 4, 2019
docker-compose.yml Switch to modules and upgrade all the deps Apr 23, 2019
go.mod Switch to modules and upgrade all the deps Apr 23, 2019
go.sum Switch to modules and upgrade all the deps Apr 23, 2019

README.md

Hyperledger Burrow

version GoDoc license LoC

Branch Linux
Master Circle CI
Develop Circle CI (develop)

Hyperledger Burrow is a permissioned Ethereum smart-contract blockchain node. It executes Ethereum EVM smart contract code (usually written in Solidity) on a permissioned virtual machine. Burrow provides transaction finality and high transaction throughput on a proof-of-stake Tendermint consensus engine.

burrow logo

What is Burrow

Hyperledger Burrow is a permissioned blockchain node that executes smart contract code following the Ethereum specification. Burrow is built for a multi-chain universe with application specific optimization in mind. Burrow as a node is constructed out of three main components: the consensus engine, the permissioned Ethereum virtual machine and the rpc gateway. More specifically Burrow consists of the following:

  • Consensus Engine: Transactions are ordered and finalised with the Byzantine fault-tolerant Tendermint protocol. The Tendermint protocol provides high transaction throughput over a set of known validators and prevents the blockchain from forking.
  • Application Blockchain Interface (ABCI): The smart contract application interfaces with the consensus engine over the ABCI. The ABCI allows for the consensus engine to remain agnostic from the smart contract application.
  • Smart Contract Application: Transactions are validated and applied to the application state in the order that the consensus engine has finalised them. The application state consists of all accounts, the validator set and the name registry. Accounts in Burrow have permissions and either contain smart contract code or correspond to a public-private key pair. A transaction that calls on the smart contract code in a given account will activate the execution of that account’s code in a permissioned virtual machine.
  • Permissioned Ethereum Virtual Machine: This virtual machine is built to observe the Ethereum operation code specification and additionally asserts the correct permissions have been granted. Permissioning is enforced through secure native functions and underlies all smart contract code. An arbitrary but finite amount of gas is handed out for every execution to ensure a finite execution duration - “You don’t need money to play, when you have permission to play”.
  • Application Binary Interface (ABI): Transactions need to be formulated in a binary format that can be processed by the blockchain node. Current tooling provides functionality to compile, deploy and link solidity smart contracts and formulate transactions to call smart contracts on the chain.
  • API Gateway: Burrow exposes REST and JSON-RPC endpoints to interact with the blockchain network and the application state through broadcasting transactions, or querying the current state of the application. Websockets allow subscribing to events, which is particularly valuable as the consensus engine and smart contract application can give unambiguously finalised results to transactions within one blocktime of about one second.

Project Roadmap

Project information generally updated on a quarterly basis can be found on the Hyperledger Burrow Wiki.

Minimum requirements

Requirement Notes
Go version Go1.11 or higher

Installation

See the install instructions.

Quick Start

  1. Single full node - start your first chain
  2. Send transactions - how to communicate with your Burrow chain
  3. Deploy contracts - interact with the Ethereum Virtual Machine
  4. Multiple validators - advanced consensus setup
  5. Add validators - bonding a new party
  6. Seed nodes - add new node dynamically
  7. Kubernetes - bootstraps a burrow network on a Kubernetes cluster

Project documentation

Burrow getting started documentation is available in the docs directory and in GoDocs.

Contribute

We welcome any and all contributions. Read the contributing file for more information on making your first Pull Request to Burrow!

You can find us on:

Future work

For some (slightly outdated) ideas on future work, see the proposals document.

License

Apache 2.0

You can’t perform that action at this time.