All Projects → davebryson → bftdb

davebryson / bftdb

Licence: other
Tendermint + Sqlite3 = BFT Database Replication

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to bftdb

slock
High-performance distributed sync service and atomic DB
Stars: ✭ 50 (+42.86%)
Mutual labels:  replication
etiquette
WIP tag-based file organizer & search
Stars: ✭ 27 (-22.86%)
Mutual labels:  sqlite3
sommelier
Sommelier Chain
Stars: ✭ 64 (+82.86%)
Mutual labels:  tendermint
electron-vite-boilerplate
📚 A Electron + Vite boilerplate of the nature of learning(source-code of vite-plugin-electron) / 学习性的样板工程(vite-plugin-electron源码)
Stars: ✭ 157 (+348.57%)
Mutual labels:  sqlite3
Clerk
Personal finance application based on double entry system.
Stars: ✭ 12 (-65.71%)
Mutual labels:  sqlite3
cosmospy
Python tools for Cosmos wallet management and offline transaction signing
Stars: ✭ 57 (+62.86%)
Mutual labels:  tendermint
cross-cluster-replication
Synchronize your data across multiple clusters for lower latencies and higher availability
Stars: ✭ 22 (-37.14%)
Mutual labels:  replication
watchdb
Keeping SQLite databases in sync
Stars: ✭ 72 (+105.71%)
Mutual labels:  sqlite3
Python-Course
🐍 This is the most complete course in Python, completely practical and all the lessons are explained with examples, so that they can be easily understood. 🍫
Stars: ✭ 18 (-48.57%)
Mutual labels:  sqlite3
mintscan-binance-dex-frontend
Mintscan Frontend for Binance DEX
Stars: ✭ 21 (-40%)
Mutual labels:  tendermint
index shotgun
duplicate index checker 🔥 🔫 👮
Stars: ✭ 35 (+0%)
Mutual labels:  sqlite3
sqxx
Lightweight C++ 11 library for SQLite
Stars: ✭ 33 (-5.71%)
Mutual labels:  sqlite3
embedio-extras
Additional Modules showing how to extend EmbedIO.
Stars: ✭ 43 (+22.86%)
Mutual labels:  sqlite3
datastation
App to easily query, script, and visualize data from every database, file, and API.
Stars: ✭ 2,519 (+7097.14%)
Mutual labels:  sqlite3
migration
Simple library writen in PHP without framework dependancy for database version control. Supports Sqlite, MySql, Sql Server and Postgres
Stars: ✭ 142 (+305.71%)
Mutual labels:  sqlite3
awesome-storage
A curated list of storage open source tools. Backups, redundancy, sharing, distribution, encryption, etc.
Stars: ✭ 324 (+825.71%)
Mutual labels:  replication
TIWAP
Totally Insecure Web Application Project (TIWAP)
Stars: ✭ 137 (+291.43%)
Mutual labels:  sqlite3
roundup
un-official mirror of http://hg.code.sf.net/p/roundup/code -- used for CI. Please visit https://issues.roundup-tracker.org for finding starter issues or log new issues.
Stars: ✭ 20 (-42.86%)
Mutual labels:  sqlite3
doclite
PHP NoSQL database and document store
Stars: ✭ 57 (+62.86%)
Mutual labels:  sqlite3
sqlite3
pure-Go sqlite3 file reader
Stars: ✭ 120 (+242.86%)
Mutual labels:  sqlite3

BFT-SQLITE

Tendermint + Sqlite3 = BFT Database Replication.

Inspired by rqlite and some others, this is an example of using a blockchain to replicate a SQL database. All SQL statements are recorded on the blockchain and inserted into the local sqlite3 database. Every node has a local copy of the db replicated by the transactions on the blockchain. If a node goes offline, it will automatically re-sync with the network.

This example uses an in-memory sql db. So it's very difficult for anyone to locally change/alter the db - and DROP statements are rejected. You can only submit SQL statements through the blockchain, you can not directly interact with the database. However, our simple REST service allows arbitrary queries against the db.

The command line includes 2 options:

  • Start a node (with the embedded database)
  • And and interactive console to send SQL statements to the blockchain (and db)
  1. In one terminal, fire up the blockchain bftdb start
  2. In another terminal, fire up the interactive console bftdb console

For demo purposes, the blockchain creates a table called sample with a single field name which is a string (TEXT).

Example use of the console:

> insert into sample(name) values('dave')
response Status : 200 OK
response Body   : {"check_tx":{"fee":{}},"deliver_tx":{"fee":{}},"hash":"01B60399F645DD59C5CA257C9346D5E96502B1AF","height":39}

> select * from sample
response Status : 200 OK
response Body   : {"columns":["id","name"],"values":[[1,"dave"]]}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].