From 34024291af08faa0daa48719a28f3fa9cf30341b Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sat, 10 Sep 2016 18:04:16 -0400 Subject: [PATCH 1/7] glide update --- glide.lock | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/glide.lock b/glide.lock index 0f016f36..1504f2ab 100644 --- a/glide.lock +++ b/glide.lock @@ -1,22 +1,22 @@ hash: d87a1fe0061d41c1e6ec78d405d54ae321e75f4bff22b38d19d3255bbd17f21e -updated: 2016-08-10T01:41:31.374647528-04:00 +updated: 2016-09-10T18:02:24.023038691-04:00 imports: - name: github.com/btcsuite/btcd - version: bd4e64d1d43bad445dd8e6577907c0c265cd83c2 + version: 2ef82e7db35dc8c499fa9091d768dc99bbaff893 subpackages: - btcec - name: github.com/btcsuite/fastsha256 - version: 302ad4db268b46f9ebda3078f6f7397f96047735 + version: 637e656429416087660c84436a2a035d69d54e2e - name: github.com/BurntSushi/toml version: 99064174e013895bbd9b025c31100bd1d9b590ca - name: github.com/go-stack/stack version: 100eb0c0a9c5b306ca2fb4f165df21d80ada4b82 - name: github.com/gogo/protobuf - version: a4cceea7a401a73fefafd1a21fedbd4694124a82 + version: a11c89fbb0ad4acfa8abc4a4d5f7e27c477169b1 subpackages: - proto - name: github.com/golang/protobuf - version: 2c1988e8c18d14b142c0b472624f71647cf39adb + version: 1f49d83d9aa00e6ce4fc8258c71cc7786aec968a subpackages: - proto - name: github.com/golang/snappy @@ -28,33 +28,33 @@ imports: - name: github.com/mattn/go-isatty version: 66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8 - name: github.com/spf13/pflag - version: f676131e2660dc8cd88de99f7486d34aa8172635 + version: 6fd2ff4ff8dfcdf5556fbdc0ac0284408274b1a7 - name: github.com/syndtr/goleveldb - version: ab8b5dcf1042e818ab68e770d465112a899b668e + version: 6ae1797c0b42b9323fc27ff7dcf568df88f2f33d subpackages: - leveldb - - leveldb/errors - - leveldb/opt - leveldb/cache - leveldb/comparer + - leveldb/errors - leveldb/filter - leveldb/iterator - leveldb/journal - leveldb/memdb + - leveldb/opt - leveldb/storage - leveldb/table - leveldb/util - name: github.com/tendermint/ed25519 version: 1f52c6f8b8a5c7908aff4497c186af344b428925 subpackages: - - extra25519 - edwards25519 + - extra25519 - name: github.com/tendermint/flowcontrol version: 84d9671090430e8ec80e35b339907e0579b999eb - name: github.com/tendermint/go-clist version: 3baa390bbaf7634251c42ad69a8682e7e3990552 - name: github.com/tendermint/go-common - version: 3dabf304a16e42ce2db6a456ef508a75cdf17679 + version: 47e06734f6ee488cc2e61550a38642025e1d4227 subpackages: - test - name: github.com/tendermint/go-config @@ -70,7 +70,7 @@ imports: - name: github.com/tendermint/go-merkle version: 05042c6ab9cad51d12e4cecf717ae68e3b1409a8 - name: github.com/tendermint/go-p2p - version: 642901d5aae311368d91ebfb888a4f6877de9614 + version: f508f3f20b5bb36f03d3bc83647b7a92425139d1 subpackages: - upnp - name: github.com/tendermint/go-rpc @@ -89,37 +89,37 @@ imports: version: 58bacfb04e36cf4babae25da3b9068ae91dc662b subpackages: - client + - example/counter - example/dummy - example/nil - - types - - example/counter - server + - types - name: golang.org/x/crypto - version: e0d166c33c321d0ff863f459a5882096e334f508 + version: aa2481cbfe81d911eb62b642b7a6b5ec58bbea71 subpackages: - - ripemd160 + - curve25519 - nacl/box - nacl/secretbox - openpgp/armor - - curve25519 - - salsa20/salsa - - poly1305 - openpgp/errors + - poly1305 + - ripemd160 + - salsa20/salsa - name: golang.org/x/net - version: 075e191f18186a8ff2becaf64478e30f4545cdad + version: cfe3c2a7525b50c3d707256e371c90938cfef98a subpackages: - context - http2 - - trace - http2/hpack - - lex/httplex - internal/timeseries + - lex/httplex + - trace - name: golang.org/x/sys - version: a646d33e2ee3172a661fc09bca23bb4889a41bc8 + version: 30de6d19a3bd89a5f38ae4028e23aaa5582648af subpackages: - unix - name: google.golang.org/grpc - version: 6140c2e83cbed8b448f28a16c1bda2947f1d7ba3 + version: 28707e14b1d2b2f5da81474dea2790d71e526987 subpackages: - codes - credentials @@ -127,6 +127,6 @@ imports: - internal - metadata - naming - - transport - peer + - transport testImports: [] From 364932238ad2c944c2e3ed52af5bdb6ecf574e14 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sat, 10 Sep 2016 18:05:13 -0400 Subject: [PATCH 2/7] bump version 0.7.1 --- version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version/version.go b/version/version.go index e275ce5b..5dc83a23 100644 --- a/version/version.go +++ b/version/version.go @@ -2,6 +2,6 @@ package version const Maj = "0" const Min = "7" // tmsp useability (protobuf, unix); optimizations; broadcast_tx_commit -const Fix = "0" +const Fix = "1" // query conn, peer filter, fast sync fix const Version = Maj + "." + Min + "." + Fix From 7f538266ea57c93215055f142442c871b98c5f2a Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sat, 10 Sep 2016 19:00:02 -0400 Subject: [PATCH 3/7] test: add xxd dep to dockerfile --- test/docker/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/docker/Dockerfile b/test/docker/Dockerfile index 1de79b2a..9cd1c7cd 100644 --- a/test/docker/Dockerfile +++ b/test/docker/Dockerfile @@ -1,10 +1,10 @@ # Pull base image. FROM golang:1.6 -# Grab deps (jq, hexdump) +# Grab deps (jq, hexdump, xxd) RUN apt-get update && \ apt-get install -y --no-install-recommends \ - jq bsdmainutils && \ + jq bsdmainutils vim-common && \ rm -rf /var/lib/apt/lists/* ENV TENDERMINT_ORG $GOPATH/src/github.com/tendermint/ From 25839d0bb5e6fde8a0ace1e2a7c9e5c9162d12fd Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sat, 10 Sep 2016 20:11:45 -0400 Subject: [PATCH 4/7] test: add killall to dockerfile. cleanup --- glide.lock | 2 +- scripts/glide/status.sh | 6 ++++++ scripts/glide/update.sh | 2 +- test/docker/Dockerfile | 16 ++++++++-------- test/docker/DockerfileDev | 3 --- 5 files changed, 16 insertions(+), 13 deletions(-) delete mode 100644 test/docker/DockerfileDev diff --git a/glide.lock b/glide.lock index 1504f2ab..722c82a7 100644 --- a/glide.lock +++ b/glide.lock @@ -86,7 +86,7 @@ imports: subpackages: - term - name: github.com/tendermint/tmsp - version: 58bacfb04e36cf4babae25da3b9068ae91dc662b + version: ead192adbbbf85ac581cf775b18ae70d59f86457 subpackages: - client - example/counter diff --git a/scripts/glide/status.sh b/scripts/glide/status.sh index 046bd57e..374fe38f 100644 --- a/scripts/glide/status.sh +++ b/scripts/glide/status.sh @@ -8,6 +8,7 @@ GLIDE=$GOPATH/src/github.com/tendermint/tendermint/glide.lock LIBS=($(grep "github.com/tendermint" $GLIDE | awk '{print $3}')) +UPTODATE=true for lib in "${LIBS[@]}"; do # get vendored commit VENDORED=`grep -A1 $lib $GLIDE | grep -v $lib | awk '{print $2}'` @@ -18,6 +19,7 @@ for lib in "${LIBS[@]}"; do cd $PWD if [[ "$VENDORED" != "$MASTER" ]]; then + UPTODATE=false echo "" if [[ "$VENDORED" != "$HEAD" ]]; then echo "Vendored version of $lib differs from origin/master and HEAD" @@ -32,3 +34,7 @@ for lib in "${LIBS[@]}"; do fi done +if [[ "$UPTODATE" == "true" ]]; then + echo "All vendored versions up to date" +fi + diff --git a/scripts/glide/update.sh b/scripts/glide/update.sh index 040bc267..64dd8cda 100644 --- a/scripts/glide/update.sh +++ b/scripts/glide/update.sh @@ -8,7 +8,7 @@ LIB=$1 GLIDE=$GOPATH/src/github.com/tendermint/tendermint/glide.lock -OLD_COMMIT=`bash scripts/glide/parse.sh $GLIDE $LIB` +OLD_COMMIT=`bash scripts/glide/parse.sh $LIB` PWD=`pwd` cd $GOPATH/src/github.com/tendermint/$LIB diff --git a/test/docker/Dockerfile b/test/docker/Dockerfile index 9cd1c7cd..83435adc 100644 --- a/test/docker/Dockerfile +++ b/test/docker/Dockerfile @@ -1,19 +1,19 @@ # Pull base image. FROM golang:1.6 -# Grab deps (jq, hexdump, xxd) +# Grab deps (jq, hexdump, xxd, killall) RUN apt-get update && \ apt-get install -y --no-install-recommends \ - jq bsdmainutils vim-common && \ - rm -rf /var/lib/apt/lists/* - -ENV TENDERMINT_ORG $GOPATH/src/github.com/tendermint/ -RUN mkdir -p $TENDERMINT_ORG -COPY . $TENDERMINT_ORG/tendermint -WORKDIR $TENDERMINT_ORG/tendermint + jq bsdmainutils vim-common psmisc +ENV REPO $GOPATH/src/github.com/tendermint/tendermint +WORKDIR $REPO +ADD glide.yaml glide.yaml +ADD glide.lock glide.lock +ADD Makefile Makefile RUN make get_vendor_deps +COPY . $REPO RUN go install ./cmd/tendermint RUN bash scripts/install_tmsp_apps.sh diff --git a/test/docker/DockerfileDev b/test/docker/DockerfileDev deleted file mode 100644 index 7b31b1bf..00000000 --- a/test/docker/DockerfileDev +++ /dev/null @@ -1,3 +0,0 @@ -FROM tester - -VOLUME /go/bin From 0b919f4fd23fef458ef12467c81c1a27a704f2e7 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sat, 10 Sep 2016 20:46:12 -0400 Subject: [PATCH 5/7] proxy: nil -> nilapp --- proxy/client.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/proxy/client.go b/proxy/client.go index 5e40f856..ea3218d3 100644 --- a/proxy/client.go +++ b/proxy/client.go @@ -54,6 +54,7 @@ func NewRemoteClientCreator(addr, transport string, mustConnect bool) ClientCrea func (r *remoteClientCreator) NewTMSPClient() (tmspcli.Client, error) { // Run forever in a loop + fmt.Println("ADDR", r.addr, r.transport) remoteApp, err := tmspcli.NewClient(r.addr, r.transport, r.mustConnect) if err != nil { return nil, fmt.Errorf("Failed to connect to proxy: %v", err) @@ -71,7 +72,7 @@ func DefaultClientCreator(config cfg.Config) ClientCreator { switch addr { case "dummy": return NewLocalClientCreator(dummy.NewDummyApplication()) - case "nil": + case "nilapp": return NewLocalClientCreator(nilapp.NewNilApplication()) default: mustConnect := true From 0fd8c98301398a3394ff0a375413928661d10276 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sun, 11 Sep 2016 16:08:34 -0400 Subject: [PATCH 6/7] test starting tendermint before app --- test/app/test.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/app/test.sh b/test/app/test.sh index ce9fff8d..d44ad2f2 100644 --- a/test/app/test.sh +++ b/test/app/test.sh @@ -26,6 +26,24 @@ function dummy_over_socket(){ kill -9 $pid_dummy $pid_tendermint } +# start tendermint first +function dummy_over_socket_reorder(){ + rm -rf $TMROOT + tendermint init + echo "Starting tendermint and dummy" + tendermint node > tendermint.log & + pid_tendermint=$! + sleep 2 + dummy > /dev/null & + pid_dummy=$! + sleep 5 + + echo "running test" + bash dummy_test.sh "Dummy over Socket" + + kill -9 $pid_dummy $pid_tendermint +} + function counter_over_socket() { rm -rf $TMROOT @@ -65,6 +83,9 @@ case "$1" in "dummy_over_socket") dummy_over_socket ;; + "dummy_over_socket_reorder") + dummy_over_socket_reorder + ;; "counter_over_socket") counter_over_socket ;; @@ -75,6 +96,8 @@ case "$1" in echo "Running all" dummy_over_socket echo "" + dummy_over_socket_reorder + echo "" counter_over_socket echo "" counter_over_grpc From c7e578ac0d17d76bdf6a05ae4a1c46106d055fba Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sun, 11 Sep 2016 16:02:29 -0400 Subject: [PATCH 7/7] check tmsp client err and set mustConnect=false --- node/node.go | 3 +++ proxy/client.go | 3 +-- proxy/multi_app_conn.go | 3 ++- version/version.go | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/node/node.go b/node/node.go index 72e08b8b..e8099c7f 100644 --- a/node/node.go +++ b/node/node.go @@ -68,6 +68,9 @@ func NewNode(config cfg.Config, privValidator *types.PrivValidator, clientCreato // Create the proxyApp, which houses three connections: // query, consensus, and mempool proxyApp := proxy.NewAppConns(config, clientCreator, state, blockStore) + if _, err := proxyApp.Start(); err != nil { + Exit(Fmt("Error starting proxy app connections: %v", err)) + } // add the chainid and number of validators to the global config config.Set("chain_id", state.ChainID) diff --git a/proxy/client.go b/proxy/client.go index ea3218d3..c6e03e78 100644 --- a/proxy/client.go +++ b/proxy/client.go @@ -54,7 +54,6 @@ func NewRemoteClientCreator(addr, transport string, mustConnect bool) ClientCrea func (r *remoteClientCreator) NewTMSPClient() (tmspcli.Client, error) { // Run forever in a loop - fmt.Println("ADDR", r.addr, r.transport) remoteApp, err := tmspcli.NewClient(r.addr, r.transport, r.mustConnect) if err != nil { return nil, fmt.Errorf("Failed to connect to proxy: %v", err) @@ -75,7 +74,7 @@ func DefaultClientCreator(config cfg.Config) ClientCreator { case "nilapp": return NewLocalClientCreator(nilapp.NewNilApplication()) default: - mustConnect := true + mustConnect := false // loop retrying return NewRemoteClientCreator(addr, transport, mustConnect) } } diff --git a/proxy/multi_app_conn.go b/proxy/multi_app_conn.go index fe009e1d..9ff38862 100644 --- a/proxy/multi_app_conn.go +++ b/proxy/multi_app_conn.go @@ -7,6 +7,8 @@ import ( // Tendermint's interface to the application consists of multiple connections type AppConns interface { + Service + Mempool() AppConnMempool Consensus() AppConnConsensus Query() AppConnQuery @@ -42,7 +44,6 @@ func NewMultiAppConn(config cfg.Config, clientCreator ClientCreator, state State clientCreator: clientCreator, } multiAppConn.QuitService = *NewQuitService(log, "multiAppConn", multiAppConn) - multiAppConn.Start() return multiAppConn } diff --git a/version/version.go b/version/version.go index 5dc83a23..10435314 100644 --- a/version/version.go +++ b/version/version.go @@ -2,6 +2,6 @@ package version const Maj = "0" const Min = "7" // tmsp useability (protobuf, unix); optimizations; broadcast_tx_commit -const Fix = "1" // query conn, peer filter, fast sync fix +const Fix = "2" // query conn, peer filter, fast sync fix (+hot fix to tmsp connecting) const Version = Maj + "." + Min + "." + Fix