{"id":29677164,"url":"https://github.com/andrecronje/go-txflow","last_synced_at":"2025-07-23T00:11:21.590Z","repository":{"id":47800084,"uuid":"198854878","full_name":"andrecronje/go-txflow","owner":"andrecronje","description":"aBFT txFlow consensus","archived":false,"fork":false,"pushed_at":"2019-07-25T15:16:40.000Z","size":501,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-01T14:27:02.940Z","etag":null,"topics":["abft","byzantine-fault-tolerance","consensus","cosmos","distributed-ledger-technology","golang","tendermint","txflow"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andrecronje.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-25T15:15:34.000Z","updated_at":"2022-10-16T06:22:06.000Z","dependencies_parsed_at":"2022-08-30T09:01:10.040Z","dependency_job_id":null,"html_url":"https://github.com/andrecronje/go-txflow","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/andrecronje/go-txflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrecronje%2Fgo-txflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrecronje%2Fgo-txflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrecronje%2Fgo-txflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrecronje%2Fgo-txflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrecronje","download_url":"https://codeload.github.com/andrecronje/go-txflow/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrecronje%2Fgo-txflow/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266592315,"owners_count":23953109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"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":["abft","byzantine-fault-tolerance","consensus","cosmos","distributed-ledger-technology","golang","tendermint","txflow"],"created_at":"2025-07-23T00:11:17.948Z","updated_at":"2025-07-23T00:11:21.581Z","avatar_url":"https://github.com/andrecronje.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TxFlow\n\n[Byzantine-Fault Tolerant](https://en.wikipedia.org/wiki/Byzantine_fault_tolerance)\n[State Machines](https://en.wikipedia.org/wiki/State_machine_replication).\nOr [Blockchain](https://en.wikipedia.org/wiki/Blockchain_(database)), for short.\n\nTxFlow Core is asynchronous Byzantine Fault Tolerant (aBFT) middleware that takes a state transition machine - written in any programming language -\nand securely replicates it on many machines.\n\nTxFlow is designed for responsiveness. Instead of blocks, transactions are confirmed in realtime asynchronously. When a transaction is received, validators sign and create a TxVote. These are again asynchronously broadcasted out. There are no view changes.\n\nThe process flow is as follows\n\n- Transaction payload received via client RPC\n  - Transactions are broadcast via p2p (no synchrony)\n- Validator signs transaction \n  - Voted Transactions are broadcast via p2p (no synchrony)\n- When 2n/3 stake from votes are collected the transaction is committed to the state\n\nThe above allows for transactional responsiveness\n\nBlocks are still produced as a ticker to allow for a time based ordering (similar to BFT lamport timestamps)\n\nTransactions potentially not confirmed within a block proposal are included in the block proposal to allow a fallback for responsiveness\n\n## Releases\n\nNOTE: The master branch is now an active development branch (starting with `v0.1.0`). Please, do not depend on it and\nuse [releases](https://github.com/Fantom-foundation/go-txflow/releases) instead.\n\nIn any case, if you intend to run TxFlow in production,\nplease [contact us](mailto:contact@fantom.foundation).\n\n## Minimum requirements\n\nRequirement|Notes\n---|---\nGo version | Go1.11.4 or higher\n\n## Contributing\n\nPlease abide by the [Code of Conduct](CODE_OF_CONDUCT.md) in all interactions,\nand the [contributing guidelines](CONTRIBUTING.md) when submitting code.\n\n## Versioning\n\n### Semantic Versioning\n\nTxFlow uses [Semantic Versioning](http://semver.org/) to determine when and how the version changes.\nAccording to SemVer, anything in the public API can change at any time before version 1.0.0\n\nTo provide some stability to Tendermint users in these 0.X.X days, the MINOR version is used\nto signal breaking changes across a subset of the total public API. This subset includes all\ninterfaces exposed to other processes (cli, rpc, p2p, etc.), but does not\ninclude the in-process Go APIs.\n\nThat said, breaking changes in the following packages will be documented in the\nCHANGELOG even if they don't lead to MINOR version bumps:\n\n- crypto\n- types\n- rpc/client\n- config\n- node\n- libs\n  - bech32\n  - common\n  - db\n  - errors\n  - log\n\nExported objects in these packages that are not covered by the versioning scheme\nare explicitly marked by `// UNSTABLE` in their go doc comment and may change at any\ntime without notice. Functions, types, and values in any other package may also change at any time.\n\n### Upgrades\n\nIn an effort to avoid accumulating technical debt prior to 1.0.0,\nwe do not guarantee that breaking changes (ie. bumps in the MINOR version)\nwill work with existing tendermint blockchains. In these cases you will\nhave to start a new blockchain, or write something custom to get the old\ndata into the new chain.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrecronje%2Fgo-txflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrecronje%2Fgo-txflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrecronje%2Fgo-txflow/lists"}