BigchainDB - golemfactory/golem-rd GitHub Wiki

BigchainDB is a scalable blockchain database. Creators want to achieve 1 milion writes per seconds and petabytes of capacity. It is build on top of the enterprise-grade distirubuted DB with added blockchain characteristic.

Website

White paper

Characteristic: decentralized control, immutability, creation and movement of digital assets, linear scaling in throughput and capacity with number of nodes, full-feature NoSQL query language, efficient querying and permissioning.

Security:

  • Benign faults - nodes communicate through a dabase with usesw a fault-tolerant consensus protocol.
  • Byzantine faults - mechanism for voting upon transaction and block validation.
  • Sybil attack - high barrier of entry based on trust and reputation.

It's a super-peer P2P network. There is a DNS-federation of nodes with voting permissions. Other nodes can cread and propse transactions. Voting operates at a layer abover DB's built in consensus. Quorum is a majority of votes, votes are done a posteriori. Each block has a list of votes and each vote has a pointer to the id of a previous block. There are two databases. Backlog database and block chain database connected by BigchainDB Consensus Algorithm (BCA). BCA run only on super-peers. Each database is running its own Paxos-like consensus algorithm. In backlog database transaction are kept in unorder set. In blockchain database they are grouped in ordered blocks which then are evaluated as valid, in-valid or undecided.

Current implementation is based on RethinkDB, a JSON (NoSQL) database with flexible query language.