13 C
Manchester
October 22, 2019
Image default
Blockchain

Burrow – The Boring Blockchain

Blockchains are too exciting. Burrow wants
to be boring. Then we want to be simple. Then we want to be fast. Even more
boring than Git is stupid. The kind of boring that lets you sleep well at
night. Burrow gives you just enough blockchain to build a strongly
decentralised public permissioned network. Enough but no more.

Burrow philosophy

Burrow aims to be simple, complete,
opinionated, and lightweight. We want to be ‘the Redis of blockchain.’ Our
guiding principles are:

  1. Provide single pure Go binary
    running as a single process with (almost) everything included
  2. Support public permissioned
    networks as first-class citizens
  3. Prefer introspection and tight
    coupling of components over configurability
  4. Provide a single Byzantine Fault
    Tolerant (BFT) consensus algorithm
  5. Provide a clean and simple
    developer experience that gets you closer to the metal

Boring deeper

Burrow is a fully fledged blockchain and smart contract framework. That is, you ought to be able to service the same use cases as with Hyperledger Sawtooth, Fabric, and Besu (whereas Iroha takes a slightly different approach to smart contracts).

The core of Burrow is a custom, fully
compliant,
Ethereum Virtual Machine (EVM) implementation with an authenticated state
(Merkle tree) based on Tendermint consensus (A PBFT consensus variant which we
embed as a library). Burrow has a coarse-grain Unix-style model of
permissioning baked directly into its EVM implementation. Permissions are for
things like SEND, CREATE (a contract), and BOND (become a validator).

There are many other features wrought from
our use of Burrow in the wild, both to run the Agreements Network and from
years of working on use cases when it was still called eris-db.

It is an explicit focus of Burrow to support
running permissioned networks that are, in some sense ‘open to the public.’
There are many shades of grey in terms of network participation with Burrow’s
permissions model; validators may be established on an invite-only basis,
contract creation may be limited to autonomous contracts rather than human
participants, or Burrow could be configured much like permissionless public
Ethereum. We are particularly interested in modes of operation that bridge the
gap between private chains and public permissionless ones. This bridge is why
we value BFT consensus so highly, and why we include quorum-based governance
primitives.

Burrow avoids relying on container
orchestration and virtual machines as part of its basic setup. These
technologies are powerful and can also hide a multitude of sins. Burrow
provides an ergonomic developer experience on bare metal — on your laptop or
server without needing docker or container orchestration in the first instance.
We still have high-quality Kubernetes
support
for use in production, but you can also spin up a multiple node
network directly on your laptop. We aim to give a streamlined developer UX and
to help build developer intuition with our tools such as burrow examine, our JSON debug output or our curl-able HTTP info endpoint.

You can use our composable command line tools to spin up a simple chain: burrow spec -v1 | burrow configure -s- | burrow start -c-

We provide statically linked cross-compiled
binaries for Linux, macOS, and Windows.

We run over a Tendermint BFT consensus that
prioritises correctness and finality and provides good throughput for networks
with several validators in the low 100s. We only expose additional
configuration where it is necessary and try to provide higher level
configuration and sane default to reduce the numbers of levers you need to pull
on.

We provide a smart contract model
exclusively in the Ethereum world view (state lives in buckets called
‘accounts’) and assume the structure provided by the EVM ABI.

Our entire state is modelled in Google’s
Protocol Buffers, which is used in our GRPC layer down to our underlying state
storage.

Three faces of Burrow

Within the Hyperledger family Burrow can be seen to occupy three different niches:

1) The Hyperledger bridge to the Tendermint/Cosmos ecosystem

Burrow is tightly integrated with
Tendermint via its ABCI interface for consensus. This integration means Burrow
serves as an excellent way into the emerging Cosmos
Network
as that network and protocol emerge, Burrow will be amongst the
first frameworks to join it. If you are interested in running smart contracts
on Cosmos and their inter-blockchain proposals then the Burrow project has
built most of what you need. We intend to continue to push the envelope on what
can run on top of Tendermint/Cosmos.2. An Ethereum side-chain and compatibility project with support for advanced smart contract languages via WASM and experimental economic systems

2) An Ethereum side-chain and compatibility project with support for advanced smart contract languages via WASM and experimental economic systems

Since Burrow shares a smart contract language and ABI with Ethereum we have an impedance match with public Ethereum. We have plans to provide a two-way peg and support for staking on public Ethereum, which makes us a viable option for acting as an Ethereum side-chain. Since we are not pinned down by consensus, p2p, or low-level state compatibility with Ethereum mainnet, we have an excellent opportunity to innovate side-chain architectures and to help influence emerging standards in this direction.

3) A lightweight hackable EVM/Solidity execution library

Having entered Hyperledger as an
independently developed Apache 2.0 licensed EVM implementation, we are most
well-known for our EVM library. We successfully integrated into Fabric and
Sawtooth, which helped us refine our internal interfaces and modularity. Our
implementation is straightforward to read and understand and is not complicated
by legacy support required for mainnet. In this respect we provide an excellent
base for experimenting with the EVM – by extending it or making it run in other
contexts (for example there has been recent discussion about running Burrow’s
EVM within processor enclaves (e.g. Intel SGX) as part of the newly established
Hyperledger Trusted Compute Framework.

Plea for help

Join us for Hacktoberfest – see Burrow Issues here

If you are looking to get involved in Hyperledger, then you will find in Burrow a small and uncrowded community with much to do. We have interesting features for newcomers to work on, and we are in search of contributors and maintainers. Come and help us build! I or another Burrow maintainer will be happy to help you to get going with any of Burrow’s features if you swing by Burrow chat. If you are willing to spend a little time sequestering that knowledge by contributing to our documentation, I am willing to devote special attention to your learning and the needs of your use case, including by making changes to the Burrow roadmap or fixing bugs on the spot.

References

About
the Author

Silas Davis is the Burrow maintainer and
CTO at Monax.io.
An outdoor adventurer, dad, math fan, and local political advocate, Silas looks
forward to collaborating on Hyperledger  Burrow.

The post Burrow – The Boring Blockchain appeared first on Hyperledger.

Related posts

Bahrain: Government Official Hails Blockchain as ‘True Mark Of Progress’

Linda

Community Spotlight: Meet Richard Bloch, Hyperledger Healthcare SIG Chair

Blockchain reporter

WEF — Blockchain Could Improve Multiple Spheres of Global Economy

Linda