From 2d6bc8d7d781d9ac05fdc8a8b493ccc6d304d1b3 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Mon, 25 Sep 2017 18:53:17 +0300 Subject: [PATCH 01/17] bump up Golang version to 1.9.0 --- Vagrantfile | 6 +++--- scripts/tendermint-builder/Dockerfile | 2 +- test/docker/Dockerfile | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index c465ed73..0f69feed 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -17,11 +17,11 @@ Vagrant.configure("2") do |config| usermod -a -G docker vagrant apt-get autoremove -y - curl -O https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz - tar -xvf go1.8.linux-amd64.tar.gz + curl -O https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz + tar -xvf go1.9.linux-amd64.tar.gz rm -rf /usr/local/go mv go /usr/local - rm -f go1.8.linux-amd64.tar.gz + rm -f go1.9.linux-amd64.tar.gz mkdir -p /home/vagrant/go/bin echo 'export PATH=$PATH:/usr/local/go/bin:/home/vagrant/go/bin' >> /home/vagrant/.bash_profile echo 'export GOPATH=/home/vagrant/go' >> /home/vagrant/.bash_profile diff --git a/scripts/tendermint-builder/Dockerfile b/scripts/tendermint-builder/Dockerfile index daf93171..0c5130c5 100644 --- a/scripts/tendermint-builder/Dockerfile +++ b/scripts/tendermint-builder/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.8.3 +FROM golang:1.9.0 RUN apt-get update && apt-get install -y --no-install-recommends \ zip \ diff --git a/test/docker/Dockerfile b/test/docker/Dockerfile index 8a2702fc..7e5cecef 100644 --- a/test/docker/Dockerfile +++ b/test/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.8.3 +FROM golang:1.9.0 # Add testing deps for curl RUN echo 'deb http://httpredir.debian.org/debian testing main non-free contrib' >> /etc/apt/sources.list From 17238360141420b0e9f51ca0b6f97dfdbacaf7c3 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Mon, 25 Sep 2017 18:57:18 +0300 Subject: [PATCH 02/17] update Dockerfile [ci skip] --- DOCKER/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DOCKER/Dockerfile b/DOCKER/Dockerfile index 55f2e14a..019e1f30 100644 --- a/DOCKER/Dockerfile +++ b/DOCKER/Dockerfile @@ -1,8 +1,8 @@ FROM alpine:3.6 # This is the release of tendermint to pull in. -ENV TM_VERSION 0.10.0 -ENV TM_SHA256SUM a29852b8d51c00db93c87c3d148fa419a047abd38f32b2507a905805131acc19 +ENV TM_VERSION 0.11.0 +ENV TM_SHA256SUM 7e443bac4d42f12e7beaf9cee63b4a565dad8c58895291fdedde8057088b70c5 # Tendermint will be looking for genesis file in /tendermint (unless you change # `genesis_file` in config.toml). You can put your config.toml and private From c8789492dc5181b9fb01b59ea90515ff29d43b34 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Mon, 25 Sep 2017 20:06:49 +0300 Subject: [PATCH 03/17] update docker readme [ci skip] --- DOCKER/README.md | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/DOCKER/README.md b/DOCKER/README.md index e191abc3..e5c6fee3 100644 --- a/DOCKER/README.md +++ b/DOCKER/README.md @@ -1,6 +1,7 @@ # Supported tags and respective `Dockerfile` links -- `0.10.0`, `latest` [(Dockerfile)](https://github.com/tendermint/tendermint/blob/e5342f4054ab784b2cd6150e14f01053d7c8deb2/DOCKER/Dockerfile) +- `0.11.0`, `latest` [(Dockerfile)](https://github.com/tendermint/tendermint/blob/9177cc1f64ca88a4a0243c5d1773d10fba67e201/DOCKER/Dockerfile) +- `0.10.0` [(Dockerfile)](https://github.com/tendermint/tendermint/blob/e5342f4054ab784b2cd6150e14f01053d7c8deb2/DOCKER/Dockerfile) - `0.9.1`, `0.9`, [(Dockerfile)](https://github.com/tendermint/tendermint/blob/809e0e8c5933604ba8b2d096803ada7c5ec4dfd3/DOCKER/Dockerfile) - `0.9.0` [(Dockerfile)](https://github.com/tendermint/tendermint/blob/d474baeeea6c22b289e7402449572f7c89ee21da/DOCKER/Dockerfile) - `0.8.0`, `0.8` [(Dockerfile)](https://github.com/tendermint/tendermint/blob/bf64dd21fdb193e54d8addaaaa2ecf7ac371de8c/DOCKER/Dockerfile) @@ -8,13 +9,24 @@ `develop` tag points to the [develop](https://github.com/tendermint/tendermint/tree/develop) branch. +# Quick reference + +* **Where to get help:** + [Chat on Rocket](https://cosmos.rocket.chat/) + +* **Where to file issues:** + https://github.com/tendermint/tendermint/issues + +* **Supported Docker versions:** + [the latest release](https://github.com/moby/moby/releases) (down to 1.6 on a best-effort basis) + # Tendermint Tendermint Core is Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine, written in any programming language, and securely replicates it on many machines. -For more background, see the [introduction](https://tendermint.com/intro). +For more background, see the [introduction](https://tendermint.readthedocs.io/en/master/introduction.html). -To get started developing applications, see the [application developers guide](https://tendermint.com/docs/guides/app-development). +To get started developing applications, see the [application developers guide](https://tendermint.readthedocs.io/en/master/getting-started.html). # How to use this image @@ -31,26 +43,12 @@ docker run -it --rm -v "/tmp:/tendermint" tendermint/tendermint node --proxy_app If you want to see many containers talking to each other, consider using [mintnet-kubernetes](https://github.com/tendermint/tools/tree/master/mintnet-kubernetes), which is a tool for running Tendermint-based applications on a Kubernetes cluster. -# Supported Docker versions - -This image is officially supported on Docker version 1.13.1. - -Support for older versions (down to 1.6) is provided on a best-effort basis. - -Please see [the Docker installation documentation](https://docs.docker.com/installation/) for details on how to upgrade your Docker daemon. - # License View [license information](https://raw.githubusercontent.com/tendermint/tendermint/master/LICENSE) for the software contained in this image. # User Feedback -## Issues - -If you have any problems with or questions about this image, please contact us through a [GitHub](https://github.com/tendermint/tendermint/issues) issue. If the issue is related to a CVE, please check for [a `cve-tracker` issue on the `official-images` repository](https://github.com/docker-library/official-images/issues?q=label%3Acve-tracker) first. - -You can also reach the image maintainers via [Slack](http://forum.tendermint.com:3000/). - ## Contributing You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can. From 498ff803db6e16227e104e0c04c8fe41258992c2 Mon Sep 17 00:00:00 2001 From: Tino Rusch Date: Mon, 25 Sep 2017 19:38:33 +0200 Subject: [PATCH 04/17] [README] added passchain to application list; This adds passchain to the 'applications' part of the toplevel README.md file. Passchain is a distributed password sharing system built on top of tendermint. --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 42005797..b703fd43 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ https://camo.githubusercontent.com/915b7be44ada53c290eb157634330494ebe3e30a/6874 [![](https://tokei.rs/b1/github/tendermint/tendermint?category=lines)](https://github.com/tendermint/tendermint) -Branch | Tests | Coverage +Branch | Tests | Coverage ----------|-------|---------- master | [![CircleCI](https://circleci.com/gh/tendermint/tendermint/tree/master.svg?style=shield)](https://circleci.com/gh/tendermint/tendermint/tree/master) | [![codecov](https://codecov.io/gh/tendermint/tendermint/branch/master/graph/badge.svg)](https://codecov.io/gh/tendermint/tendermint) develop | [![CircleCI](https://circleci.com/gh/tendermint/tendermint/tree/develop.svg?style=shield)](https://circleci.com/gh/tendermint/tendermint/tree/develop) | [![codecov](https://codecov.io/gh/tendermint/tendermint/branch/develop/graph/badge.svg)](https://codecov.io/gh/tendermint/tendermint) @@ -56,6 +56,7 @@ All resources involving the use of, building application on, or developing for, * [Ethermint](http://github.com/tendermint/ethermint); Ethereum on Tendermint * [Cosmos SDK](http://github.com/cosmos/cosmos-sdk); a cryptocurrency application framework +* [Passchain](http://github.com/trusch/passchain); a secret sharing system for teams ### More From bfdad916a2f16b71f4e5bebd40b35dbc655f4e45 Mon Sep 17 00:00:00 2001 From: Adrian Brink Date: Mon, 25 Sep 2017 20:19:27 +0200 Subject: [PATCH 05/17] Update ecosystem.rst --- docs/ecosystem.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/ecosystem.rst b/docs/ecosystem.rst index 188f5009..66646fea 100644 --- a/docs/ecosystem.rst +++ b/docs/ecosystem.rst @@ -85,6 +85,8 @@ ABCI Servers +-------------------------------------------------------------+--------------------+--------------+ | `abci_server `__ | Krzysztof Jurewicz | Erlang | +-------------------------------------------------------------+--------------------+--------------+ +| `abci_server `__   | Adrian Brink | Rust       | ++-------------------------------------------------------------+--------------------+--------------+ Deployment Tools ---------------- From 60a2867af21f330e71f7b66fa2eeae008bb02b55 Mon Sep 17 00:00:00 2001 From: Zach Ramsay Date: Mon, 25 Sep 2017 14:50:18 -0400 Subject: [PATCH 06/17] docs/ecosystem: add ABCI implementations --- docs/ecosystem.rst | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/docs/ecosystem.rst b/docs/ecosystem.rst index 66646fea..b71ac18d 100644 --- a/docs/ecosystem.rst +++ b/docs/ecosystem.rst @@ -63,10 +63,14 @@ Passwerk Encrypted storage web-utility backed by Tendermint, written in Go, `authored by Rigel Rozanski `__. +Py-Tendermint +^^^^^^^^^^^^^ + +A Python microframework for building blockchain applications with Tendermint, written in Python, `authored by Dave Bryson `__. + ABCI Servers ------------ - +-------------------------------------------------------------+--------------------+--------------+ | **Name** | **Author** | **Language** | | | | | @@ -75,7 +79,9 @@ ABCI Servers +-------------------------------------------------------------+--------------------+--------------+ | `js abci `__ | Tendermint | Javascript | +-------------------------------------------------------------+--------------------+--------------+ -| `cpp-tmsp `__ | Martin Dyring | C++ | +| `cpp-tmsp `__ | Martin Dyring | C++ | ++-------------------------------------------------------------+--------------------+--------------+ +| `c-abci` `__ | ChainX | C | +-------------------------------------------------------------+--------------------+--------------+ | `jabci `__ | jTendermint | Java | +-------------------------------------------------------------+--------------------+--------------+ @@ -87,6 +93,10 @@ ABCI Servers +-------------------------------------------------------------+--------------------+--------------+ | `abci_server `__   | Adrian Brink | Rust       | +-------------------------------------------------------------+--------------------+--------------+ +| `hs-abci `__ | Alberto Gonzalez | Haskell | ++-------------------------------------------------------------+--------------------+--------------+ +| `haskell-abci `__ | Christoper Goes | Haskell | ++-------------------------------------------------------------+--------------------+--------------+ Deployment Tools ---------------- From e40d1b36f7c94534d7b774f6db845770baf32de2 Mon Sep 17 00:00:00 2001 From: Tino Rusch Date: Tue, 26 Sep 2017 09:03:13 +0200 Subject: [PATCH 07/17] docs: added passchain to the ecosystem.rst in the applications section; --- docs/ecosystem.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/ecosystem.rst b/docs/ecosystem.rst index b71ac18d..3137f50b 100644 --- a/docs/ecosystem.rst +++ b/docs/ecosystem.rst @@ -68,6 +68,11 @@ Py-Tendermint A Python microframework for building blockchain applications with Tendermint, written in Python, `authored by Dave Bryson `__. +Passchain +^^^^^^^^^ + +Passchain is a tool to securely store and share passwords, tokens and other short secrets, `authored by trusch `__. + ABCI Servers ------------ From 40b5defe18be7249f84e6603ef66adb0ade741fc Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Tue, 26 Sep 2017 13:46:36 +0300 Subject: [PATCH 08/17] release script [ci skip] --- Makefile | 1 + scripts/publish.sh | 1 + scripts/release.sh | 53 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100755 scripts/release.sh diff --git a/Makefile b/Makefile index 8c9c5214..a557dd86 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ GOTOOLS = \ github.com/mitchellh/gox \ + github.com/tcnksm/ghr \ github.com/Masterminds/glide \ honnef.co/go/tools/cmd/megacheck diff --git a/scripts/publish.sh b/scripts/publish.sh index 3091575f..ba944087 100755 --- a/scripts/publish.sh +++ b/scripts/publish.sh @@ -12,6 +12,7 @@ if [ -z "$VERSION" ]; then echo "Please specify a version." exit 1 fi +echo "==> Copying ${DIST_DIR} to S3..." # copy to s3 aws s3 cp --recursive ${DIST_DIR} s3://tendermint/binaries/tendermint/v${VERSION} --acl public-read diff --git a/scripts/release.sh b/scripts/release.sh new file mode 100755 index 00000000..02899ad5 --- /dev/null +++ b/scripts/release.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash +set -e + +# Get the version from the environment, or try to figure it out. +if [ -z $VERSION ]; then + VERSION=$(awk -F\" '/Version =/ { print $2; exit }' < version/version.go) +fi +if [ -z "$VERSION" ]; then + echo "Please specify a version." + exit 1 +fi +echo "==> Releasing version $VERSION..." + +# Get the parent directory of where this script is. +SOURCE="${BASH_SOURCE[0]}" +while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done +DIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )" + +# Change into that dir because we expect that. +cd "$DIR" + +# Building binaries +sh -c "'$DIR/scripts/dist.sh'" + +# Pushing binaries to S3 +sh -c "'$DIR/scripts/publish.sh'" + +echo "==> Crafting a Github release" +today=$(date +"%B-%d-%Y") +ghr -b "https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md#${VERSION//.}-${today,}" "v$VERSION" "$DIR/build/dist" + +# Build and push Docker image + +## Get SHA256SUM of the linux archive +SHA256SUM=$(shasum -a256 "${DIR}/build/dist/tendermint_${VERSION}_linux_amd64.zip" | awk '{print $1;}') + +## Replace TM_VERSION and TM_SHA256SUM with the new values +sed -i -e "s/TM_VERSION .*/TM_VERSION $VERSION/g" "$DIR/DOCKER/Dockerfile" +sed -i -e "s/TM_SHA256SUM .*/TM_SHA256SUM $SHA256SUM/g" "$DIR/DOCKER/Dockerfile" +git commit -m "update Dockerfile" -a "$DIR/DOCKER/Dockerfile" +echo "==> TODO: update DOCKER/README.md (latest Dockerfile's hash is $(git rev-parse HEAD)) and copy it's content to https://store.docker.com/community/images/tendermint/tendermint" + +pushd "$DIR/DOCKER" + +## Build Docker image +TAG=$VERSION sh -c "'./build.sh'" + +## Push Docker image +TAG=$VERSION sh -c "'./push.sh'" + +popd + +exit 0 From b61f5482d4f192dd784e9d8360938704670ce8d1 Mon Sep 17 00:00:00 2001 From: Martin Dyring-Andersen Date: Tue, 26 Sep 2017 15:06:21 +0200 Subject: [PATCH 09/17] Fix broken reference to ABCI --- rpc/grpc/types.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpc/grpc/types.proto b/rpc/grpc/types.proto index b32393a0..a7d18dae 100644 --- a/rpc/grpc/types.proto +++ b/rpc/grpc/types.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package core_grpc; -import "github.com/tendermint/abci/types/types.proto"; +import "github.com/tendermint/abci/blob/master/types/types.proto"; //---------------------------------------- // Message types From ce36a0111a9771882f7196aecab63e1c0a9804ff Mon Sep 17 00:00:00 2001 From: Alexandre Thibault Date: Fri, 29 Sep 2017 11:31:39 +0200 Subject: [PATCH 10/17] rpc: subscribe on reconnection (#689) * rpc: subscribe on reconnection * rpc: fix unit tests --- rpc/client/httpclient.go | 10 ++++++++++ rpc/lib/client/ws_client.go | 7 +++++-- rpc/lib/client/ws_client_test.go | 2 ++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/rpc/client/httpclient.go b/rpc/client/httpclient.go index 7f29183d..d068ee95 100644 --- a/rpc/client/httpclient.go +++ b/rpc/client/httpclient.go @@ -305,6 +305,14 @@ func (w *WSEvents) RemoveListener(listenerID string) { w.EventSwitch.RemoveListener(listenerID) } +// After being reconnected, it is necessary to redo subscription +// to server otherwise no data will be automatically received +func (w *WSEvents) redoSubscriptions() { + for event, _ := range w.evtCount { + w.subscribe(event) + } +} + // eventListener is an infinite loop pulling all websocket events // and pushing them to the EventSwitch. // @@ -327,6 +335,8 @@ func (w *WSEvents) eventListener() { // before cleaning up the w.ws stuff w.done <- true return + case <-w.ws.ReconnectCh: + w.redoSubscriptions() } } } diff --git a/rpc/lib/client/ws_client.go b/rpc/lib/client/ws_client.go index 1407073a..788cb860 100644 --- a/rpc/lib/client/ws_client.go +++ b/rpc/lib/client/ws_client.go @@ -41,8 +41,9 @@ type WSClient struct { PingPongLatencyTimer metrics.Timer // user facing channels, closed only when the client is being stopped. - ResultsCh chan json.RawMessage - ErrorsCh chan error + ResultsCh chan json.RawMessage + ErrorsCh chan error + ReconnectCh chan bool // internal channels send chan types.RPCRequest // user requests @@ -139,6 +140,7 @@ func (c *WSClient) OnStart() error { c.ResultsCh = make(chan json.RawMessage) c.ErrorsCh = make(chan error) + c.ReconnectCh = make(chan bool) c.send = make(chan types.RPCRequest) // 1 additional error may come from the read/write @@ -254,6 +256,7 @@ func (c *WSClient) reconnect() error { c.Logger.Error("failed to redial", "err", err) } else { c.Logger.Info("reconnected") + c.ReconnectCh <- true return nil } diff --git a/rpc/lib/client/ws_client_test.go b/rpc/lib/client/ws_client_test.go index f5aa027f..e90fc29d 100644 --- a/rpc/lib/client/ws_client_test.go +++ b/rpc/lib/client/ws_client_test.go @@ -186,6 +186,8 @@ func callWgDoneOnResult(t *testing.T, c *WSClient, wg *sync.WaitGroup) { if err != nil { t.Fatalf("unexpected error: %v", err) } + case <-c.ReconnectCh: + t.Log("Reconnected") case <-c.Quit: return } From 45ff7cdd0c1ed4a4cfd6e63f19097e9245efa2ad Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Fri, 29 Sep 2017 14:11:46 +0400 Subject: [PATCH 11/17] rewrite ws client to expose a callback instead of a channel callback gives more power to the publisher. plus it is optional comparing to a channel, which will block the whole client if you won't read from it. --- rpc/client/httpclient.go | 6 +++--- rpc/lib/client/ws_client.go | 21 ++++++++++++++++----- rpc/lib/client/ws_client_test.go | 2 -- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/rpc/client/httpclient.go b/rpc/client/httpclient.go index d068ee95..7b09b5bd 100644 --- a/rpc/client/httpclient.go +++ b/rpc/client/httpclient.go @@ -226,7 +226,9 @@ func (w *WSEvents) Start() (bool, error) { st, err := w.EventSwitch.Start() // if we did start, then OnStart here... if st && err == nil { - ws := rpcclient.NewWSClient(w.remote, w.endpoint) + ws := rpcclient.NewWSClient(w.remote, w.endpoint, rpcclient.OnReconnect(func() { + w.redoSubscriptions() + })) _, err = ws.Start() if err == nil { w.ws = ws @@ -335,8 +337,6 @@ func (w *WSEvents) eventListener() { // before cleaning up the w.ws stuff w.done <- true return - case <-w.ws.ReconnectCh: - w.redoSubscriptions() } } } diff --git a/rpc/lib/client/ws_client.go b/rpc/lib/client/ws_client.go index 788cb860..2bdfa5c9 100644 --- a/rpc/lib/client/ws_client.go +++ b/rpc/lib/client/ws_client.go @@ -41,9 +41,11 @@ type WSClient struct { PingPongLatencyTimer metrics.Timer // user facing channels, closed only when the client is being stopped. - ResultsCh chan json.RawMessage - ErrorsCh chan error - ReconnectCh chan bool + ResultsCh chan json.RawMessage + ErrorsCh chan error + + // Callback, which will be called each time after successful reconnect. + onReconnect func() // internal channels send chan types.RPCRequest // user requests @@ -125,6 +127,14 @@ func PingPeriod(pingPeriod time.Duration) func(*WSClient) { } } +// OnReconnect sets the callback, which will be called every time after +// successful reconnect. +func OnReconnect(cb func()) func(*WSClient) { + return func(c *WSClient) { + c.onReconnect = cb + } +} + // String returns WS client full address. func (c *WSClient) String() string { return fmt.Sprintf("%s (%s)", c.Address, c.Endpoint) @@ -140,7 +150,6 @@ func (c *WSClient) OnStart() error { c.ResultsCh = make(chan json.RawMessage) c.ErrorsCh = make(chan error) - c.ReconnectCh = make(chan bool) c.send = make(chan types.RPCRequest) // 1 additional error may come from the read/write @@ -256,7 +265,9 @@ func (c *WSClient) reconnect() error { c.Logger.Error("failed to redial", "err", err) } else { c.Logger.Info("reconnected") - c.ReconnectCh <- true + if c.onReconnect != nil { + go c.onReconnect() + } return nil } diff --git a/rpc/lib/client/ws_client_test.go b/rpc/lib/client/ws_client_test.go index e90fc29d..f5aa027f 100644 --- a/rpc/lib/client/ws_client_test.go +++ b/rpc/lib/client/ws_client_test.go @@ -186,8 +186,6 @@ func callWgDoneOnResult(t *testing.T, c *WSClient, wg *sync.WaitGroup) { if err != nil { t.Fatalf("unexpected error: %v", err) } - case <-c.ReconnectCh: - t.Log("Reconnected") case <-c.Quit: return } From c2f6ff759bb3a01b011ea534e70cbdd8bc914d7a Mon Sep 17 00:00:00 2001 From: Zach Ramsay Date: Mon, 2 Oct 2017 13:02:45 -0400 Subject: [PATCH 12/17] typo --- docs/ecosystem.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ecosystem.rst b/docs/ecosystem.rst index 3137f50b..b6df3060 100644 --- a/docs/ecosystem.rst +++ b/docs/ecosystem.rst @@ -86,7 +86,7 @@ ABCI Servers +-------------------------------------------------------------+--------------------+--------------+ | `cpp-tmsp `__ | Martin Dyring | C++ | +-------------------------------------------------------------+--------------------+--------------+ -| `c-abci` `__ | ChainX | C | +| `c-abci `__ | ChainX | C | +-------------------------------------------------------------+--------------------+--------------+ | `jabci `__ | jTendermint | Java | +-------------------------------------------------------------+--------------------+--------------+ @@ -96,7 +96,7 @@ ABCI Servers +-------------------------------------------------------------+--------------------+--------------+ | `abci_server `__ | Krzysztof Jurewicz | Erlang | +-------------------------------------------------------------+--------------------+--------------+ -| `abci_server `__   | Adrian Brink | Rust       | +| `rust-tsp `__   | Adrian Brink | Rust       | +-------------------------------------------------------------+--------------------+--------------+ | `hs-abci `__ | Alberto Gonzalez | Haskell | +-------------------------------------------------------------+--------------------+--------------+ From 84e39203bb7f61f528bdd22a1d3f59736b12b82d Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 2 Oct 2017 23:46:35 -0400 Subject: [PATCH 13/17] readme points to ecosystem doc; add lotion, clean up --- README.md | 2 +- docs/ecosystem.rst | 26 ++++++++++++-------------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index b703fd43..6aa4d878 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ All resources involving the use of, building application on, or developing for, * [Ethermint](http://github.com/tendermint/ethermint); Ethereum on Tendermint * [Cosmos SDK](http://github.com/cosmos/cosmos-sdk); a cryptocurrency application framework -* [Passchain](http://github.com/trusch/passchain); a secret sharing system for teams +* [Many more](https://tendermint.readthedocs.io/en/master/ecosystem.html#abci-applications) ### More diff --git a/docs/ecosystem.rst b/docs/ecosystem.rst index b6df3060..8290a005 100644 --- a/docs/ecosystem.rst +++ b/docs/ecosystem.rst @@ -36,28 +36,31 @@ Ethermint The go-ethereum state machine run as a ABCI app, written in Go, `authored by Tendermint `__. +Lotion +^^^^^^^^^^^^^ -Merkle AVL Tree -^^^^^^^^^^^^^^^ +A Javascript microframework for building blockchain applications with Tendermint, written in Javascript, `authored by Judd Keppel of Tendermint `__. See also `lotion-chat ` and `lotion-coin ` apps written using Lotion. -The following are implementations of the Tendermint IAVL tree as an ABCI application - -Merkleeyes +IAVL ~~~~~~~~~~ -Written in Go, `authored by Tendermint `__. +Immutable AVL+ tree with Merkle proofs, Written in Go, `authored by Tendermint `__. MerkleTree ~~~~~~~~~~ -Written in Java, `authored by jTendermint `__. - +Immutable AVL+ tree with Merkle proofs, Written in Java, `authored by jTendermint `__. TMChat ^^^^^^ -P2P chat using Tendermint, written in Java, `authored by woldposd `__. +P2P chat using Tendermint, written in Java, `authored by wolfposd `__. +Passchain +^^^^^^^^^ + +Passchain is a tool to securely store and share passwords, tokens and other short secrets, `authored by trusch `__. + Passwerk ^^^^^^^^ @@ -68,11 +71,6 @@ Py-Tendermint A Python microframework for building blockchain applications with Tendermint, written in Python, `authored by Dave Bryson `__. -Passchain -^^^^^^^^^ - -Passchain is a tool to securely store and share passwords, tokens and other short secrets, `authored by trusch `__. - ABCI Servers ------------ From edd718c580c7b7065a29bd0208d1b69a1420614d Mon Sep 17 00:00:00 2001 From: Zach Date: Tue, 3 Oct 2017 11:14:24 -0400 Subject: [PATCH 14/17] Update ecosystem.rst --- docs/ecosystem.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ecosystem.rst b/docs/ecosystem.rst index 8290a005..ce9a0a01 100644 --- a/docs/ecosystem.rst +++ b/docs/ecosystem.rst @@ -39,7 +39,7 @@ The go-ethereum state machine run as a ABCI app, written in Go, `authored by Ten Lotion ^^^^^^^^^^^^^ -A Javascript microframework for building blockchain applications with Tendermint, written in Javascript, `authored by Judd Keppel of Tendermint `__. See also `lotion-chat ` and `lotion-coin ` apps written using Lotion. +A Javascript microframework for building blockchain applications with Tendermint, written in Javascript, `authored by Judd Keppel of Tendermint `__. See also `lotion-chat `__ and `lotion-coin `__ apps written using Lotion. IAVL ~~~~~~~~~~ From 031eb23dc8df7a119ed757db578a7d8ab06eb75a Mon Sep 17 00:00:00 2001 From: Zach Ramsay Date: Tue, 3 Oct 2017 11:23:08 -0400 Subject: [PATCH 15/17] docs: fix build warnings --- docs/ecosystem.rst | 2 +- docs/specification.rst | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/ecosystem.rst b/docs/ecosystem.rst index ce9a0a01..ae723bfd 100644 --- a/docs/ecosystem.rst +++ b/docs/ecosystem.rst @@ -84,7 +84,7 @@ ABCI Servers +-------------------------------------------------------------+--------------------+--------------+ | `cpp-tmsp `__ | Martin Dyring | C++ | +-------------------------------------------------------------+--------------------+--------------+ -| `c-abci `__ | ChainX | C | +| `c-abci `__ | ChainX | C | +-------------------------------------------------------------+--------------------+--------------+ | `jabci `__ | jTendermint | Java | +-------------------------------------------------------------+--------------------+--------------+ diff --git a/docs/specification.rst b/docs/specification.rst index 2e8b3566..3afa9c65 100644 --- a/docs/specification.rst +++ b/docs/specification.rst @@ -2,19 +2,19 @@ Specification ############# -Here you'll find details of the Tendermint specification. See `the spec repo `__ for upcoming material. Tendermint's types are produced by `godoc `__ +Here you'll find details of the Tendermint specification. See `the spec repo `__ for upcoming material. Tendermint's types are produced by `godoc `__. .. toctree:: :maxdepth: 2 - specification/block-structure.rst - specification/byzantine-consensus-algorithm.rst - specification/configuration.rst - specification/fast-sync.rst - specification/genesis.rst - specification/light-client-protocol.rst - specification/merkle.rst - specification/rpc.rst - specification/secure-p2p.rst - specification/validators.rst - specification/wire-protocol.rst + specification/block-structure.rst + specification/byzantine-consensus-algorithm.rst + specification/configuration.rst + specification/fast-sync.rst + specification/genesis.rst + specification/light-client-protocol.rst + specification/merkle.rst + specification/rpc.rst + specification/secure-p2p.rst + specification/validators.rst + specification/wire-protocol.rst From 2e598a7caf5c3877671343ab0693c8c0aa0e2a00 Mon Sep 17 00:00:00 2001 From: Zach Ramsay Date: Tue, 3 Oct 2017 11:24:56 -0400 Subject: [PATCH 16/17] one more fix --- docs/ecosystem.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ecosystem.rst b/docs/ecosystem.rst index ae723bfd..00210c4a 100644 --- a/docs/ecosystem.rst +++ b/docs/ecosystem.rst @@ -37,17 +37,17 @@ Ethermint The go-ethereum state machine run as a ABCI app, written in Go, `authored by Tendermint `__. Lotion -^^^^^^^^^^^^^ +^^^^^^ A Javascript microframework for building blockchain applications with Tendermint, written in Javascript, `authored by Judd Keppel of Tendermint `__. See also `lotion-chat `__ and `lotion-coin `__ apps written using Lotion. IAVL -~~~~~~~~~~ +^^^^ Immutable AVL+ tree with Merkle proofs, Written in Go, `authored by Tendermint `__. MerkleTree -~~~~~~~~~~ +^^^^^^^^^^ Immutable AVL+ tree with Merkle proofs, Written in Java, `authored by jTendermint `__. From 4fa4e617b779832da692eb039596728e655c6ca7 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Tue, 3 Oct 2017 12:47:01 -0400 Subject: [PATCH 17/17] docs/ecosystem: add stratumn --- docs/ecosystem.rst | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/docs/ecosystem.rst b/docs/ecosystem.rst index 00210c4a..c0c38630 100644 --- a/docs/ecosystem.rst +++ b/docs/ecosystem.rst @@ -36,26 +36,21 @@ Ethermint The go-ethereum state machine run as a ABCI app, written in Go, `authored by Tendermint `__. -Lotion -^^^^^^ - -A Javascript microframework for building blockchain applications with Tendermint, written in Javascript, `authored by Judd Keppel of Tendermint `__. See also `lotion-chat `__ and `lotion-coin `__ apps written using Lotion. - IAVL ^^^^ Immutable AVL+ tree with Merkle proofs, Written in Go, `authored by Tendermint `__. +Lotion +^^^^^^ + +A Javascript microframework for building blockchain applications with Tendermint, written in Javascript, `authored by Judd Keppel of Tendermint `__. See also `lotion-chat `__ and `lotion-coin `__ apps written using Lotion. + MerkleTree ^^^^^^^^^^ Immutable AVL+ tree with Merkle proofs, Written in Java, `authored by jTendermint `__. -TMChat -^^^^^^ - -P2P chat using Tendermint, written in Java, `authored by wolfposd `__. - Passchain ^^^^^^^^^ @@ -71,6 +66,17 @@ Py-Tendermint A Python microframework for building blockchain applications with Tendermint, written in Python, `authored by Dave Bryson `__. +Stratumn +^^^^^^^^ + +SDK for "Proof-of-Process" networks, written in Go, `authored by the Stratumn team `__. + +TMChat +^^^^^^ + +P2P chat using Tendermint, written in Java, `authored by wolfposd `__. + + ABCI Servers ------------