From ad79ead93d2d7016b6471fc1b3ef18f9967324f1 Mon Sep 17 00:00:00 2001 From: Zach Ramsay Date: Mon, 18 Sep 2017 11:52:47 -0400 Subject: [PATCH] docs: add and re-format the ecosystem from website --- docs/ecosystem.rst | 276 +++++++++++++++--------------------------- docs/index.rst | 8 ++ docs/introduction.rst | 12 +- 3 files changed, 116 insertions(+), 180 deletions(-) diff --git a/docs/ecosystem.rst b/docs/ecosystem.rst index 7c8fc1346..5f5ba644f 100644 --- a/docs/ecosystem.rst +++ b/docs/ecosystem.rst @@ -1,177 +1,99 @@ -{ - "abciApps": [ - { - "name": "Cosmos SDK", - "url": "https://github.com/cosmos/cosmos-sdk", - "language": "Go", - "author": "Cosmos", - "description": "A prototypical account based crypto currency state machine supporting plugins" - }, - { - "name": "cb-ledger", - "url": "https://github.com/block-finance/cpp-abci", - "language": "C++", - "author": "Block Finance", - "description": "Custodian Bank Ledger, integrating central banking with the blockchains of tomorrow." - }, - { - "name": "Clearchain", - "url": "https://github.com/tendermint/clearchain", - "language": "Go", - "author": "Alessio Treglia", - "description": "Application to manage a distributed ledger for money transfers that support multi-currency accounts." - }, - { - "name": "Ethermint", - "url": "https://github.com/tendermint/ethermint", - "language": "Go", - "author": "Tendermint", - "description": "The go-ethereum state machine run as a ABCI app" - }, - { - "name": "Merkle AVL Tree", - "url": "https://github.com/tendermint/merkleeyes", - "language": "Go", - "author": "Tendermint", - "description": "Tendermint IAVL tree implemented as an abci app" - }, - { - "name": "Burrow", - "url": "https://github.com/hyperledger/burrow", - "language": "Go", - "author": "Monax Industries", - "description": "Ethereum Virtual Machine augmented with native permissioning scheme and global key-value store" - }, - { - "name": "Merkle AVL Tree", - "url": "https://github.com/jTMSP/MerkleTree", - "language": "Java", - "author": "jTMSP", - "description": "Tendermint IAVL tree implemented as an abci app" - }, - { - "name": "TMChat", - "url": "https://github.com/wolfposd/TMChat", - "language": "Java", - "author": "jTMSP", - "description": "P2P chat using Tendermint" - }, - { - "name": "Comit", - "url": "https://github.com/zballs/comit", - "language": "Go", - "author": "Zach Balder", - "description": "Public service reporting and tracking" - }, - { - "name": "Passwerk", - "url": "https://github.com/rigelrozanski/passwerk", - "language": "Go", - "author": "Rigel Rozanski", - "description": "Encrypted storage web-utility backed by Tendermint" - } - ], - "abciServers": [ - { - "name": "abci", - "url": "https://github.com/tendermint/abci", - "language": "Go", - "author": "Tendermint" - }, - { - "name": "js-abci", - "url": "https://github.com/tendermint/js-abci", - "language": "Javascript", - "author": "Tendermint" - }, - { - "name": "cpp-tmsp", - "url": "https://github.com/mdyring/cpp-tmsp", - "language": "C++", - "author": "Martin Dyring" - }, - { - "name": "jabci", - "url": "https://github.com/jTendermint/jabci", - "language": "Java", - "author": "jTendermint" - }, - { - "name": "Spearmint", - "url": "https://github.com/dennismckinnon/spearmint", - "language": "Javascript", - "author": "Dennis McKinnon" - }, - { - "name": "ocaml-tmsp", - "url": "https://github.com/zballs/ocaml-tmsp", - "language": "Ocaml", - "author": "Zach Balder" - }, - { - "name": "abci_server", - "url": "https://github.com/KrzysiekJ/abci_server", - "language": "Erlang", - "author": "Krzysztof Jurewicz" - } - ], - "deploymentTools": [ - { - "name": "mintnet-kubernetes", - "url": "https://github.com/tendermint/tools", - "technology": "Docker and Kubernetes", - "author": "Tendermint", - "description": "Deploy a Tendermint test network using Google's kubernetes" - }, - { - "name": "terraforce", - "url": "https://github.com/tendermint/tools", - "technology": "Terraform", - "author": "Tendermint", - "description": "Terraform + our custom terraforce tool; deploy a production Tendermint network with load balancing over multiple AWS availability zones" - }, { - "name": "ansible-tendermint", - "url": "https://github.com/tendermint/tools", - "technology": "Ansible", - "author": "Tendermint", - "description": "Ansible playbooks + Tendermint" - }, - { - "name": "brooklyn-tendermint", - "url": "https://github.com/cloudsoft/brooklyn-tendermint", - "technology": "Clocker for Apache Brooklyn ", - "author": "Cloudsoft", - "description": "Deploy a tendermint test network in docker containers " - } - ], - "competitors": [ - { - "name": "Hyperledger", - "url": "https://github.com/hyperledger/fabric", - "language": "Go", - "author": "Linux Foundation", - "description": "PBFT state machine replication for dynamic set of simple dockerized applications" - }, - { - "name": "Hydrachain", - "url": "https://github.com/HydraChain/hydrachain", - "language": "Python", - "author": "HydraChain", - "description": "Pyethereum adapted to a non-BFT consensus algorithm modelled on Tendermint." - }, - { - "name": "Juno", - "url": "https://github.com/kadena-io/juno", - "language": "Haskell", - "author": "Kadena", - "description": "Variant of Tangaroa, a BFT version of Raft" - }, - { - "name": "HoneyBadgerBFT", - "url": "https://github.com/amiller/HoneyBadgerBFT", - "language": "Python", - "author": "Andrew Miller", - "description": "Fully asynchronous and highly optimized BFT using secret-sharing" - } - ] -} +Tendermint Ecosystem +==================== + +Below are the many applications built using various pieces of the Tendermint stack. We thank the community for their contributions thus far and welcome the addition of new projects. Feel free to submit a pull request to add your project! + +ABCI Applications +----------------- + +Burrow +^^^^^^ + +Ethereum Virtual Machine augmented with native permissioning scheme and global key-value store, written in Go, authored by Monax Industries, and incubated `by Hyperledger `__. + +cb-ledger +^^^^^^^^^ + +Custodian Bank Ledger, integrating central banking with the blockchains of tomorrow, written in C++, and `authored by Block Finance `__. + +Clearchain +^^^^^^^^^^ + +Application to manage a distributed ledger for money transfers that support multi-currency accounts, written in Go, and `authored by Allession Treglia `__. + +Comit +^^^^^ + +Public service reporting and tracking, written in Go, and `authored by Zach Balder `__. + +Cosmos SDK +^^^^^^^^^^ + +A prototypical account based crypto currency state machine supporting plugins, written in Go, and `authored by Cosmos `__. + +Ethermint +^^^^^^^^^ + +The go-ethereum state machine run as a ABCI app, written in Go, `authored by Tendermint `__. + + +Merkle AVL Tree +^^^^^^^^^^^^^^^ + +The following are implementations of the Tendermint IAVL tree as an ABCI application + +Merkleeyes +~~~~~~~~~~ + +Written in Go, `authored by Tendermint `__. + +MerkleTree +~~~~~~~~~~ + +Written in Java, `authored by jTendermint `__. + + +TMChat +^^^^^^ + +P2P chat using Tendermint, written in Java, `authored by woldposd `__. + +Passwerk +^^^^^^^^ + +Encrypted storage web-utility backed by Tendermint, written in Go, `authored by Rigel Rozanski `__. + +ABCI Servers +------------ + + ++-------------------------------------------------------------+--------------------+--------------+ +| **Name** | **Author** | **Language** | +| | | | ++-------------------------------------------------------------+--------------------+--------------+ +| `abci `__ | Tendermint | Go | ++-------------------------------------------------------------+--------------------+--------------+ +| `js abci `__ | Tendermint | Javascript | ++-------------------------------------------------------------+--------------------+--------------+ +| `cpp-tmsp `__ | Martin Dyring | C++ | ++-------------------------------------------------------------+--------------------+--------------+ +| `jabci `__ | jTendermint | Java | ++-------------------------------------------------------------+--------------------+--------------+ +| `Spearmint `__ | Dennis Mckinnon | Javascript | ++-------------------------------------------------------------+--------------------+--------------+ +| `ocaml-tmsp `__ | Zach Balder | Ocaml | ++-------------------------------------------------------------+--------------------+--------------+ +| `abci_server `__ | Krzysztof Jurewicz | Erlang | ++-------------------------------------------------------------+--------------------+--------------+ + +Deployment Tools +---------------- + +See `deploy testnets <./deploy-testnets.html>`__ for information about all the tools built by Tendermint. We have Kubernetes, Ansible, and Terraform integrations. + +Cloudsoft built `brooklyn-tendermint `__ for deploying a tendermint testnet in docker continers. It used Clocker for Apache Brooklyn. + +Competitors (Collaborators?) +---------------------------- + +See `the introduction <./introduction.html>`__ for a comparison of software similar to Tendermint built by members of the blockchain community. diff --git a/docs/index.rst b/docs/index.rst index 56b1163c7..18d83b4f0 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -33,6 +33,14 @@ Tendermint Tools deploy-testnets.rst +Tendermint Ecosystem +-------------------- + +.. toctree:: + :maxdepth: 2 + + ecosystem.rst + Tendermint 102 -------------- diff --git a/docs/introduction.rst b/docs/introduction.rst index cc56b1bdc..ec0350aaa 100644 --- a/docs/introduction.rst +++ b/docs/introduction.rst @@ -86,10 +86,10 @@ And we plan to do the same for Bitcoin, ZCash, and various other deterministic a Another example of a cryptocurrency application built on Tendermint is `the Cosmos network `__. -Fabric, Burrow -~~~~~~~~~~~~~~ +Other Blockchain Projects +~~~~~~~~~~~~~~~~~~~~~~~~~ -`Fabric `__, takes a similar approach to Tendermint, but is more opinionated about how the state is managed, +`Fabric `__ takes a similar approach to Tendermint, but is more opinionated about how the state is managed, and requires that all application behaviour runs in potentially many docker containers, modules it calls "chaincode". It uses an implementation of `PBFT `__. from a team at IBM that is @@ -101,6 +101,12 @@ though extending Tendermint to handle non-determinism remains for future work. with additional features for a name-registry, permissions, and native contracts, and an alternative blockchain API. It uses Tendermint as its consensus engine, and provides a particular application state. +`Hydrachain `__ is a Pyethereum adapted to a non-BFT consensus algorithm modelled on Tendermint. + +`Juno `__ is written in Haskell by Kadena and is a variant of Tangaroa, a BFT version of Raft. + +`HoneyBadgerBFT `__ is written in Python by Andrew Miller and is a fully asynchronous and highly optimized BFT using secret-sharing. + ABCI Overview -------------