1
0
mirror of https://github.com/bigchaindb/bigchaindb.git synced 2024-06-30 13:42:00 +02:00
bigchaindb/bigchaindb
2017-11-23 16:22:16 +01:00
..
backend add double spend test, fix double spend validation 2017-11-16 11:53:14 +01:00
commands Flat UTXO collection and first integration with Tendermint™ (#1822) 2017-11-10 17:53:57 +01:00
common Added docstrings 2017-11-02 18:02:11 +05:30
log Modified log port config checks. 2017-10-23 21:08:44 +05:30
pipelines Plugins can subscribe to specific events 2017-08-08 11:28:35 +02:00
tendermint Use env var to start or not, tendermint 2017-11-23 16:22:16 +01:00
web Add GET and POST transaction (#1823) 2017-11-11 02:26:50 +01:00
__init__.py Flat UTXO collection and first integration with Tendermint™ (#1822) 2017-11-10 17:53:57 +01:00
config_utils.py Plugins can subscribe to specific events 2017-08-08 11:28:35 +02:00
consensus.py move voting logic out of block_election_status 2017-02-23 21:53:12 +01:00
core.py Rename validity to blocks_validity_status 2017-07-09 12:22:39 +05:30
events.py Fix typo 2017-08-09 16:35:12 +02:00
exceptions.py voting module raises CriticalDuplicateVote if there's a duplicate vote 2017-03-20 17:30:02 +01:00
fastquery.py Remove unnecessary output_has_owner method. 2017-07-03 14:30:19 +02:00
models.py Flat UTXO collection and first integration with Tendermint™ (#1822) 2017-11-10 17:53:57 +01:00
processes.py Provide log server port as config paramter 2017-10-23 09:17:58 +05:30
README.md Server docs: Removed the old 'Topic Guides' section 2017-03-07 11:43:49 +01:00
utils.py Remove unnecessary output_has_owner method. 2017-07-03 14:30:19 +02:00
version.py Update version.py version to 1.2.0.dev for docs 2017-09-26 11:39:47 +02:00
voting.py voting module raises CriticalDuplicateVote if there's a duplicate vote 2017-03-20 17:30:02 +01:00

Overview

A high-level description of the files and subdirectories of BigchainDB.

There are three database tables which underpin BigchainDB: backlog, where incoming transactions are held temporarily until they can be consumed; bigchain, where blocks of transactions are written permanently; and votes, where votes are written permanently. It is the votes in the votes table which must be queried to determine block validity and order. For more in-depth explanation, see the whitepaper.

Files

core.py

The Bigchain class is defined here. Most operations outlined in the whitepaper as well as database interactions are found in this file. This is the place to start if you are interested in implementing a server API, since many of these class methods concern BigchainDB interacting with the outside world.

models.py

Block, Transaction, and Asset classes are defined here. The classes mirror the block and transaction structure from the documentation, but also include methods for validation and signing.

consensus.py

Base class for consensus methods (verification of votes, blocks, and transactions). The actual logic is mostly found in transaction and block models, defined in models.py.

processes.py

Entry point for the BigchainDB process, after initialization. All subprocesses are started here: processes to handle new blocks, votes, etc.

config_utils.py

Methods for managing the configuration, including loading configuration files, automatically generating the configuration, and keeping the configuration consistent across BigchainDB instances.

Folders

pipelines

Structure and implementation of various subprocesses started in processes.py.

commands

Contains code for the CLI for BigchainDB.

db

Code for building the database connection, creating indexes, and other database setup tasks.