Note |
---|
Hyperledger Burrow was moved to dormant EOL status by the request of the maintainers on 06-JAN-2022TSC on 12 May 2022. You are welcome to use and contribute to this code, although the maintainers may or may not be responsive to any questions you have. You would also be welcome to help reactivate this project if you are interested in continuing development of this code. |
Hyperledger Burrow Documentation
Page properties | ||||||||
---|---|---|---|---|---|---|---|---|
|
Burrow is a permissively licensed (Apache 2.0) EVM smart contract machine and Byzantine Fault Tolerant permissioned ledger that uses Tendermint consensus and implements some novel extensions to the EVM whilst remaining EVM-compliant. It provides EVM execution within the Ethereum account model and an internal token to meter computation in the permissioned setting with transactions finality. Burrow is named after the trans-dimensional intergalactic tubules used by marmots to communicate.
Key Characteristics
Burrow has three primary aims:
To be a good compliant and simple EVM library friendly towards integrators (see for example https://github.com/hyperledger/sawtooth-seth and https://github.com/hyperledger/fabric-chaincode-evm)
To be a fast, light, lean single-process full Tendermint/EVM permissioned ledger with transaction finality
To provide a practical base for EVM extensions in a many-chain world
Burrow is not trying to be:
Highly pluggable (see Sawtooth or Fabric)
Hard to deploy
Notable features:
- Single pure go binary including all tooling
- GRPC API interfaces (see: https://github.com/hyperledger/burrow/tree/develop/protobuf) - use from any supported GRPC https://grpc.io/docs/quickstart/)
- Javascript client library: https://github.com/hyperledger/burrow/tree/develop/js with smart contract function mapping layer
- Go client library (via GRPC codegen): https://github.com/hyperledger/burrow/blob/develop/rpc/rpctransact/rpctransact.pb.go
- Vent SQL mapping and projections layer (https://github.com/hyperledger/burrow/blob/develop/vent/README.md)
- Permissioned EVM (see: https://github.com/hyperledger/burrow/blob/develop/permission/perm_flag.go)
- On-chain EVM ABIs (function and contract definitions) and contract metadata)
- Streaming execution events service (https://github.com/hyperledger/burrow/blob/develop/protobuf/rpcevents.proto)
- Experimental WASM contract support
- Governance mechanism capable of atomically upgrading systems of contracts based on quorum voting
- Chain-global DNS-like name registry (https://github.com/hyperledger/burrow/blob/develop/protobuf/names.proto)
- Validator bonding for proof-of-stake networks (https://hyperledger.github.io/burrow/#/tutorials/5-bonding-validators)
- Solidity compilation, contract deployment, and testing tool `burrow deploy`
- Scriptable transaction tool `burrow tx`
- Forensics tool `burrow examine`
- Chain generation and genesis tool `burrow spec` and `burrow configure`
- Dump/restore functionality `burrow dump` and `burrow restore` (ship state between versions or chains) - also allows state serialisation
- Keys signing service command-line wallet and server `burrow keys`
- Kubernetes Helm charts: https://hyperledger.github.io/burrow/#/tutorials/5-bonding-validators
Hyperledger Burrow Documentation
- Godoc: https://godoc.org/github.com/hyperledger/burrow
- See also: https://github.com/hyperledger/burrow/tree/develop/docs for documentation source, architecture decision records, and further historical and design documentation
Companies building on Burrow
Please add
Company | Project | Description |
---|---|---|
Project Management
Burrow is being heavily tested as the core of the Agreements Network. It sits at the intersections of a number of emerging technologies:
- EVM contracts and host-native code contracts - Public permissioned networks - permissioned Ethereum and public Tendermint/Cosmos - Layer 2 scaling - acting as a side-chain or state channel
We aim to provide a robust blockchain node for running multiple interconnected chains in a many-chain world. As well as blurring the public/private chain divide.
Roadmaps
Repositories
Burrow's repository is on github here: https://github.com/hyperledger/burrow
The Burrow binary contains everything you need to specify, configure, run, and deploy smart contracts to a chain.
burrow spec
- for describing template genesis stateburrow configure
- for realising a specific configuration (including key generation)burrow keys
- both a standalone key signing daemon and key generation toolburrow deploy
- a declarative Solidity compilation, chain management, testing, and smart contract deployment toolburrow dump
- a forensics, auditing, and data extraction toolburrow snatives
- a tool for interacting with Burrow's 'secure natives' - host code that is callable as if it were an EVM contractburrow start
- for starting a blockchain node
For deploying contracts you will need a local installation of Solidity.
For previous versions of standalone Burrow you can find:
docker images: https://hub.docker.com/r/hyperledger/burrow
Deployment
Burrow can be deployed in any environment but we have focussed on deploying related sets of validators (or validator pools) using Kubernetes/Helm and you can find helm charts here: https://github.com/helm/charts/tree/master/incubator/burrow.
Contributing
Please fork, branch, and make pull requests to the develop branch.
Our build, CI, and testing process is executed via our Makefile, see the comments there for details.
Communication
Mailing List
Chat (for questions and ephemeral discussions)
#burrow - General usage questions
#burrow-contributors - Contributor discussions
Meeting
Quarterly updates
2019
2018
2017
History
Burrow was approved for incubation on the 6th of April 2017 by the Hyperledger TSC.
Recent space activity
Recently Updated | ||||||||
---|---|---|---|---|---|---|---|---|
|
Space contributors
Contributors | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|