{"id":42499377,"url":"https://github.com/davebryson/bftdb","last_synced_at":"2026-01-28T13:02:50.287Z","repository":{"id":57576954,"uuid":"129684670","full_name":"davebryson/bftdb","owner":"davebryson","description":"Tendermint + Sqlite3 = BFT Database Replication","archived":false,"fork":false,"pushed_at":"2018-04-16T12:15:10.000Z","size":11,"stargazers_count":38,"open_issues_count":3,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-20T06:29:29.123Z","etag":null,"topics":["blockchain","byzantine-fault-tolerance","replication","sqlite3","tendermint"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davebryson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-16T04:28:27.000Z","updated_at":"2023-12-14T04:28:56.000Z","dependencies_parsed_at":"2022-09-11T22:50:24.347Z","dependency_job_id":null,"html_url":"https://github.com/davebryson/bftdb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/davebryson/bftdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davebryson%2Fbftdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davebryson%2Fbftdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davebryson%2Fbftdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davebryson%2Fbftdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davebryson","download_url":"https://codeload.github.com/davebryson/bftdb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davebryson%2Fbftdb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28845769,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T13:02:32.985Z","status":"ssl_error","status_checked_at":"2026-01-28T13:02:04.945Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","byzantine-fault-tolerance","replication","sqlite3","tendermint"],"created_at":"2026-01-28T13:02:50.177Z","updated_at":"2026-01-28T13:02:50.278Z","avatar_url":"https://github.com/davebryson.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## BFT-SQLITE\n\nTendermint + Sqlite3 = BFT Database Replication.\n\nInspired by rqlite and some others, this is an example of using a blockchain to\nreplicate a SQL database. All SQL statements are recorded on the blockchain and inserted\ninto the local sqlite3 database.  Every node has a local copy of the db replicated\nby the transactions on the blockchain.  If a node goes offline, it will automatically\nre-sync with the network.\n\nThis example uses an in-memory sql db.  So it's very difficult for anyone to locally\nchange/alter the db -  and `DROP` statements are rejected. You can only submit SQL statements\nthrough the blockchain, you can not directly interact with the database.  However, our simple\nREST service allows arbitrary queries against the db.\n\nThe command line includes 2 options:\n- Start a node (with the embedded database)\n- And and interactive console to send SQL statements to the blockchain (and db)\n\n1. In one terminal, fire up the blockchain `bftdb start`\n2. In another terminal, fire up the interactive console `bftdb console`\n\nFor demo purposes, the blockchain creates a table called `sample` with a single field `name` which is a string (TEXT).\n\nExample use of the console:\n```\n\u003e insert into sample(name) values('dave')\nresponse Status : 200 OK\nresponse Body   : {\"check_tx\":{\"fee\":{}},\"deliver_tx\":{\"fee\":{}},\"hash\":\"01B60399F645DD59C5CA257C9346D5E96502B1AF\",\"height\":39}\n\n\u003e select * from sample\nresponse Status : 200 OK\nresponse Body   : {\"columns\":[\"id\",\"name\"],\"values\":[[1,\"dave\"]]}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavebryson%2Fbftdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavebryson%2Fbftdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavebryson%2Fbftdb/lists"}