DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

BigchainDB


BigchainDB is an open-source blockchain database. It is a NoSQL database that has blockchain properties such as immutability, decentralization and owner-controlled asset.[04]

Source Code
https://github.com/bigchaindb/bigchaindb[02]
Developer
Country of Origin
DE
Start Year
2015 [06]
Project Types
Commercial, Open Source
Written in
Python
Supported Languages
JavaScript, Python
License
Apache v2

Immutability is the property that once the data is stored in BigchainDB, it can’t be modified or erased. Decentralization means there is no single point of failure in the control and storage process of the data. The owner-controlled asset is the property that only the owner of the asset can transfer the asset. The database provides the user with Byzantine Fault Tolerance (BFT) with no more than one-third arbitrary node failures. There are two main layers in BigchainDB, the consensus layer based on Tendermint the and storage layer based on MongoDB.

Database Entry

BigchainDB


BigchainDB is an open-source blockchain database. It is a NoSQL database that has blockchain properties such as immutability, decentralization and owner-controlled asset. Immutability is the property that once the data is stored in BigchainDB, it can’t be modified or erased. Decentralization means there is no single point of failure in the control and storage process of the data. The owner-controlled asset is the property that only the owner of the asset can transfer the asset. The database provides the user with Byzantine Fault Tolerance (BFT) with no more than one-third arbitrary node failures. There are two main layers in BigchainDB, the consensus layer based on Tendermint the and storage layer based on MongoDB.[04]

History[04]


The first version of BigchainDB was published in February 2016. However, there were many issues with the initial version. For example, the system was not Byzantine Fault tolerant, and there was a single point of failure in the underlying storage database and the system supported only one logical database, which means once got the control of the database the adversary could delete the whole database. BigchainDB 2.0 was published in 2018 and solved all the issues above.

Checkpoints[04][05]


The consensus layer is based on Tendermint. Tendermint uses LevelDB as blockchain storage. LevelDB builds checkpoints in a blocking manner, see LevelDB for more details. The storage layer is based on MongoDB. MongoDB builds consisten checkpoints, see MongoDB for more details.

Concurrency Control[04][05]


The consensus layer is based on Tendermint. Tendermint uses LevelDB as blockchain storage. LevelDB uses Two-Phase Locking with Deadlock Prevention, see LevelDB for more details. The storage layer on each node is based on MongoDB. MongoDB uses Two-Phase Locking with Deadlock Prevention and Optimistic Concurrency Control, see MongoDB for more details.

Data Model


The consensus layer is based on LevelDB, see LevelDB for more details. The storage layer is based on MongoDB, see MongoDB for more details. The main data model is Document/XML.

Indexes


The consensus layer is based on LevelDB, see LevelDB for more details. The storage layer is based on MongoDB, see MongoDB for more details. The B+Tree is the index for main storage.

Isolation Levels


The consensus layer is based on LevelDB, see LevelDB for more details. The storage layer is based on MongoDB, see MongoDB for more details. LevelDB guarantees snapshot isolation for blockchain storage. MongoDB guarantees read uncommitted isolation level for main storage.

Joins


Logging


The consensus layer is based on LevelDB, see LevelDB for more details. The storage layer is based on MongoDB, see MongoDB for more details. MongoDB uses physiological logging, LevelDB uses logical logging.

Query Compilation


The consensus layer is based on LevelDB, see LevelDB for more details. The storage layer is based on MongoDB, see MongoDB for more details. MongoDB supports JIT Compilation, but there is not enough information about LevelDB.

Query Execution


The consensus layer is based on LevelDB, see LevelDB for more details. The storage layer is based on MongoDB, see MongoDB for more details.

Query Interface


BigchainDB officially provides the users with multiple programming languages including Python, JavaScript/Node.js, and Java. And there are also many community driven libraries and tools available including Haskell transaction builder, Golang and Ruby driver.

Storage Architecture


The consensus layer is based on LevelDB, see LevelDB for more details. The storage layer is based on MongoDB, see MongoDB for more details. MongoDB supports both in-memory and disk-oriented storage, while LevelDB only supports disk-oriented storage.

Storage Model


The consensus layer is based on LevelDB, see LevelDB for more details. The storage layer is based on MongoDB, see MongoDB for more details. MongoDB supports custom storage model. LevelDB uses N-ary Storage Model.

Storage Organization


The consensus layer is based on LevelDB, see LevelDB for more details. The storage layer is based on MongoDB, see MongoDB for more details. There is not enough information about MongoDB. LevelDB uses log-structured storage organization.

Stored Procedures


System Architecture


Views


The consensus layer is based on LevelDB, see LevelDB for more details. The storage layer is based on MongoDB, see MongoDB for more details. MongoDB supports virtual views. LevelDB does not support views.

Citations

6 sources
  1. https://www.bigchaindb.com bigchaindb.com Dead — Check Archive
  2. GitHub - bigchaindb/bigchaindb: Meet BigchainDB. The blockchain database. · GitHub github.com
  3. BigchainDB Documentation — BigchainDB 2.2.2 documentation bigchaindb.com
  4. https://www.bigchaindb.com/whitepaper/bigchaindb-whitepaper.pdf bigchaindb.com Dead — Check Archive
  5. Tendermint Core Documentation | Tendermint Core tendermint.com
  6. About BigchainDB • • BigchainDB bigchaindb.com
Revision #16 Last Updated: