github.com/eris-ltd/erisdb@v0.25.0/README.md (about)

     1  # Hyperledger Burrow
     2  
     3  [![version](https://img.shields.io/github/tag/hyperledger/burrow.svg)](https://github.com/hyperledger/burrow/releases/latest)
     4  [![GoDoc](https://godoc.org/github.com/burrow?status.png)](https://godoc.org/github.com/hyperledger/burrow)
     5  [![license](https://img.shields.io/github/license/hyperledger/burrow.svg)](LICENSE.md)
     6  [![LoC](https://tokei.rs/b1/github/hyperledger/burrow?category=lines)](https://github.com/hyperledger/burrow)
     7  
     8  Branch    | Linux
     9  ----------|------
    10  | Master | [![Circle CI](https://circleci.com/gh/hyperledger/burrow/tree/master.svg?style=svg)](https://circleci.com/gh/hyperledger/burrow/tree/master) |
    11  | Develop | [![Circle CI (develop)](https://circleci.com/gh/hyperledger/burrow/tree/develop.svg?style=svg)](https://circleci.com/gh/hyperledger/burrow/tree/develop) |
    12  
    13  Hyperledger Burrow is a permissioned Ethereum smart-contract blockchain node. It executes Ethereum EVM smart contract code (usually written in [Solidity](https://solidity.readthedocs.io)) on a permissioned virtual machine. Burrow provides transaction finality and high transaction throughput on a proof-of-stake [Tendermint](https://tendermint.com) consensus engine.
    14  
    15  ![burrow logo](docs/assets/images/burrow.png)
    16  
    17  ## What is Burrow
    18  
    19  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:
    20  
    21  - **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.
    22  - **Application Blockchain Interface (ABCI):** The smart contract application interfaces with the consensus engine over the [ABCI](https://github.com/tendermint/tendermint/abci). The ABCI allows for the consensus engine to remain agnostic from the smart contract application.
    23  - **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.
    24  - **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”.
    25  - **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.
    26  - **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.
    27  
    28  ## Project Roadmap
    29  
    30  Project information generally updated on a quarterly basis can be found on the [Hyperledger Burrow Wiki](https://wiki.hyperledger.org/display/burrow).
    31  
    32  ## Minimum requirements
    33  
    34  Requirement|Notes
    35  ---|---
    36  Go version | Go1.11 or higher
    37  
    38  ## Installation
    39  
    40  See the [install instructions](docs/INSTALL.md).
    41  
    42  ## Quick Start
    43  1. [Single full node](docs/quickstart/single-full-node.md) - start your first chain
    44  1. [Send transactions](docs/quickstart/send-transactions.md) - how to communicate with your Burrow chain
    45  1. [Deploy contracts](docs/quickstart/deploy-contracts.md) - interact with the Ethereum Virtual Machine
    46  1. [Multiple validators](docs/quickstart/multiple-validators.md) - advanced consensus setup
    47  1. [Add validators](docs/quickstart/add-validators.md) - bonding a new party
    48  1. [Seed nodes](docs/quickstart/seed-nodes.md) - add new node dynamically
    49  1. [Kubernetes](https://github.com/helm/charts/tree/master/stable/burrow) - bootstraps a burrow network on a Kubernetes cluster
    50  
    51  ## Project documentation
    52  Burrow getting started documentation is available in the [docs](docs/README.md) directory and in [GoDocs](https://godoc.org/github.com/hyperledger/burrow).
    53  
    54  ## Contribute
    55  
    56  We welcome any and all contributions. Read the [contributing file](.github/CONTRIBUTING.md) for more information on making your first Pull Request to Burrow!
    57  
    58  You can find us on:
    59  - [Hyperledger Chat](https://chat.hyperledger.org)
    60  - [Hyperledger Mailing List](https://lists.hyperledger.org/mailman/listinfo)
    61  - [here on Github](https://github.com/hyperledger/burrow/issues)
    62  
    63  ## Future work
    64  
    65  For some (slightly outdated) ideas on future work, see the [proposals document](docs/PROPOSALS.md).
    66  
    67  ## License
    68  
    69  [Apache 2.0](LICENSE.md)