From 03012a05329b3e6fedc8a6a97f34768aac46c714 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Fri, 21 Apr 2017 18:24:18 -0400 Subject: [PATCH 01/32] update glide --- glide.lock | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/glide.lock b/glide.lock index eea3410c4..f9d043faf 100644 --- a/glide.lock +++ b/glide.lock @@ -1,26 +1,24 @@ hash: a0dd8fe3cb061f9e4f3b3b6f0e6e7fb91982d7c3deb422e53e144a3bdcde216a -updated: 2017-04-18T23:28:11.182163777-04:00 +updated: 2017-04-21T18:24:13.217717865-04:00 imports: - name: github.com/btcsuite/btcd - version: b8df516b4b267acf2de46be593a9d948d1d2c420 + version: 583684b21bfbde9b5fc4403916fd7c807feb0289 subpackages: - btcec -- name: github.com/btcsuite/fastsha256 - version: 637e656429416087660c84436a2a035d69d54e2e - name: github.com/go-stack/stack version: 100eb0c0a9c5b306ca2fb4f165df21d80ada4b82 - name: github.com/golang/protobuf - version: 69b215d01a5606c843240eab4937eab3acee6530 + version: 8ee79997227bf9b34611aee7946ae64735e6fd93 subpackages: - proto - name: github.com/golang/snappy - version: 553a641470496b2327abcac10b36396bd98e45c9 + version: d9eb7a3d35ec988b8585d4a0068e462c27d28380 - name: github.com/jmhodges/levigo version: c42d9e0ca023e2198120196f842701bb4c55d7b9 - name: github.com/mattn/go-colorable - version: 9fdad7c47650b7d2e1da50644c1f4ba7f172f252 + version: d228849504861217f796da67fae4f6e347643f15 - name: github.com/mattn/go-isatty - version: 56b76bdf51f7708750eac80fa38b952bb9f32639 + version: 30a891c33c7cde7b02a981314b4228ec99380cca - name: github.com/pkg/errors version: 645ef00459ed84a119197bfb8d8205042c6df63d - name: github.com/stretchr/testify @@ -29,7 +27,7 @@ imports: - assert - require - name: github.com/syndtr/goleveldb - version: 3c5717caf1475fd25964109a0fc640bd150fce43 + version: 23851d93a2292dcc56e71a18ec9e0624d84a0f65 subpackages: - leveldb - leveldb/cache @@ -51,7 +49,7 @@ imports: - name: github.com/tendermint/go-common version: f9e3db037330c8a8d61d3966de8473eaf01154fa - name: github.com/tendermint/go-crypto - version: 750b25c47a5782f5f2b773ed9e706cb82b3ccef4 + version: 9b95da8fa4187f6799558d89b271dc8ab6485615 - name: github.com/tendermint/go-data version: e7fcc6d081ec8518912fcdc103188275f83a3ee5 - name: github.com/tendermint/go-db @@ -63,15 +61,22 @@ imports: - name: github.com/tendermint/go-process version: b27edfd189b1a01a0b099f7e9f8263589cf04909 - name: github.com/tendermint/go-wire - version: c1c9a57ab8038448ddea1714c0698f8051e5748c + version: 334005c236d19c632fb5f073f9de3b0fab6a522b + subpackages: + - data - name: github.com/tendermint/log15 version: ae0f3d6450da9eac7074b439c8e1c3cabf0d5ce6 subpackages: - term +- name: github.com/tendermint/tmlibs + version: df250b69416a35a943a6e2a92118667e9ef031d4 + subpackages: + - common + - logger - name: github.com/urfave/cli - version: 8ef3805c9de2519805c3f060524b695bba2cd715 + version: 0bdeddeeb0f650497d603c4ad7b20cfe685682f6 - name: golang.org/x/crypto - version: 1f22c0103821b9390939b6776727195525381532 + version: 7c6cc321c680f03b9ef0764448e780704f486b51 subpackages: - nacl/secretbox - openpgp/armor @@ -80,7 +85,7 @@ imports: - ripemd160 - salsa20/salsa - name: golang.org/x/net - version: d379faa25cbdc04d653984913a2ceb43b0bc46d7 + version: 61557ac0112b576429a0df080e1c2cef5dfbb642 subpackages: - context - http2 @@ -90,11 +95,11 @@ imports: - lex/httplex - trace - name: golang.org/x/sys - version: 50c6bc5e4292a1d4e65c6e9be5f53be28bcbe28e + version: d75a52659825e75fff6158388dddc6a5b04f9ba5 subpackages: - unix - name: google.golang.org/grpc - version: 7b399ed358736bc5522021cdc7d79a8ee9ac6f98 + version: cbcceb2942a489498cf22b2f918536e819d33f0a subpackages: - codes - credentials From 28d042fdae2c2e7d32a8d7bc3dba459d368dee69 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Fri, 21 Apr 2017 18:25:13 -0400 Subject: [PATCH 02/32] use tmlibs --- client/client.go | 2 +- client/grpc_client.go | 2 +- client/local_client.go | 2 +- client/log.go | 2 +- client/socket_client.go | 2 +- cmd/counter/main.go | 2 +- cmd/dummy/main.go | 2 +- example/block_aware/block_aware_app.go | 2 +- example/counter/counter.go | 2 +- example/dummy/dummy.go | 2 +- example/dummy/dummy_test.go | 2 +- example/dummy/log.go | 2 +- example/dummy/persistent_dummy.go | 4 ++-- example/example_test.go | 2 +- glide.lock | 8 ++++---- glide.yaml | 8 ++++---- server/grpc_server.go | 2 +- server/log.go | 2 +- server/server.go | 2 +- server/socket_server.go | 2 +- tests/benchmarks/parallel/parallel.go | 2 +- tests/benchmarks/simple/simple.go | 2 +- tests/test_app/app.go | 2 +- 23 files changed, 30 insertions(+), 30 deletions(-) diff --git a/client/client.go b/client/client.go index 38fff4863..a54978fcc 100644 --- a/client/client.go +++ b/client/client.go @@ -5,7 +5,7 @@ import ( "sync" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) type Client interface { diff --git a/client/grpc_client.go b/client/grpc_client.go index 7cca5079a..423936698 100644 --- a/client/grpc_client.go +++ b/client/grpc_client.go @@ -10,7 +10,7 @@ import ( grpc "google.golang.org/grpc" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) // A stripped copy of the remoteClient that makes diff --git a/client/local_client.go b/client/local_client.go index 1150db4a1..4bdcffad1 100644 --- a/client/local_client.go +++ b/client/local_client.go @@ -4,7 +4,7 @@ import ( "sync" types "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) type localClient struct { diff --git a/client/log.go b/client/log.go index 944b05ba0..146bf1273 100644 --- a/client/log.go +++ b/client/log.go @@ -1,7 +1,7 @@ package abcicli import ( - "github.com/tendermint/go-logger" + "github.com/tendermint/tmlibs/logger" ) var log = logger.New("module", "abcicli") diff --git a/client/socket_client.go b/client/socket_client.go index 5aeeac7ac..ebcfb44b7 100644 --- a/client/socket_client.go +++ b/client/socket_client.go @@ -11,7 +11,7 @@ import ( "time" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) const ( diff --git a/cmd/counter/main.go b/cmd/counter/main.go index 6858fc43e..e7b777a8c 100644 --- a/cmd/counter/main.go +++ b/cmd/counter/main.go @@ -6,7 +6,7 @@ import ( "github.com/tendermint/abci/example/counter" "github.com/tendermint/abci/server" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) func main() { diff --git a/cmd/dummy/main.go b/cmd/dummy/main.go index b48a15c7a..a1cc68aef 100644 --- a/cmd/dummy/main.go +++ b/cmd/dummy/main.go @@ -7,7 +7,7 @@ import ( "github.com/tendermint/abci/example/dummy" "github.com/tendermint/abci/server" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) func main() { diff --git a/example/block_aware/block_aware_app.go b/example/block_aware/block_aware_app.go index 454c3560b..e1afee968 100644 --- a/example/block_aware/block_aware_app.go +++ b/example/block_aware/block_aware_app.go @@ -6,7 +6,7 @@ import ( "github.com/tendermint/abci/server" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) func main() { diff --git a/example/counter/counter.go b/example/counter/counter.go index c40541ed9..c4e4e267a 100644 --- a/example/counter/counter.go +++ b/example/counter/counter.go @@ -4,7 +4,7 @@ import ( "encoding/binary" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) type CounterApplication struct { diff --git a/example/dummy/dummy.go b/example/dummy/dummy.go index f88b1b20e..f384cc98f 100644 --- a/example/dummy/dummy.go +++ b/example/dummy/dummy.go @@ -4,7 +4,7 @@ import ( "strings" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" "github.com/tendermint/go-merkle" ) diff --git a/example/dummy/dummy_test.go b/example/dummy/dummy_test.go index 879cf3c4a..aa040948a 100644 --- a/example/dummy/dummy_test.go +++ b/example/dummy/dummy_test.go @@ -10,7 +10,7 @@ import ( abcicli "github.com/tendermint/abci/client" "github.com/tendermint/abci/server" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" "github.com/tendermint/go-crypto" "github.com/tendermint/go-merkle" ) diff --git a/example/dummy/log.go b/example/dummy/log.go index 8571fa01e..5607ca556 100644 --- a/example/dummy/log.go +++ b/example/dummy/log.go @@ -1,7 +1,7 @@ package dummy import ( - "github.com/tendermint/go-logger" + "github.com/tendermint/tmlibs/logger" ) var log = logger.New("module", "dummy") diff --git a/example/dummy/persistent_dummy.go b/example/dummy/persistent_dummy.go index 48eff420d..258cb3014 100644 --- a/example/dummy/persistent_dummy.go +++ b/example/dummy/persistent_dummy.go @@ -7,8 +7,8 @@ import ( "strings" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" - dbm "github.com/tendermint/go-db" + cmn "github.com/tendermint/tmlibs/common" + dbm "github.com/tendermint/tmlibs/db" "github.com/tendermint/go-merkle" "github.com/tendermint/go-wire" ) diff --git a/example/example_test.go b/example/example_test.go index 034331d62..e6edef363 100644 --- a/example/example_test.go +++ b/example/example_test.go @@ -16,7 +16,7 @@ import ( "github.com/tendermint/abci/example/dummy" "github.com/tendermint/abci/server" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) func TestDummy(t *testing.T) { diff --git a/glide.lock b/glide.lock index f9d043faf..cd453aa03 100644 --- a/glide.lock +++ b/glide.lock @@ -46,19 +46,19 @@ imports: subpackages: - edwards25519 - extra25519 -- name: github.com/tendermint/go-common +- name: github.com/tendermint/tmlibs/common version: f9e3db037330c8a8d61d3966de8473eaf01154fa - name: github.com/tendermint/go-crypto version: 9b95da8fa4187f6799558d89b271dc8ab6485615 - name: github.com/tendermint/go-data version: e7fcc6d081ec8518912fcdc103188275f83a3ee5 -- name: github.com/tendermint/go-db +- name: github.com/tendermint/tmlibs/db version: 9643f60bc2578693844aacf380a7c32e4c029fee -- name: github.com/tendermint/go-logger +- name: github.com/tendermint/tmlibs/logger version: cefb3a45c0bf3c493a04e9bcd9b1540528be59f2 - name: github.com/tendermint/go-merkle version: 714d4d04557fd068a7c2a1748241ce8428015a96 -- name: github.com/tendermint/go-process +- name: github.com/tendermint/tmlibs/process version: b27edfd189b1a01a0b099f7e9f8263589cf04909 - name: github.com/tendermint/go-wire version: 334005c236d19c632fb5f073f9de3b0fab6a522b diff --git a/glide.yaml b/glide.yaml index 4d0358028..542d2df06 100644 --- a/glide.yaml +++ b/glide.yaml @@ -3,19 +3,19 @@ import: - package: github.com/golang/protobuf subpackages: - proto -- package: github.com/tendermint/go-common +- package: github.com/tendermint/tmlibs/common version: develop - package: github.com/tendermint/go-crypto version: develop - package: github.com/tendermint/go-data version: develop -- package: github.com/tendermint/go-logger +- package: github.com/tendermint/tmlibs/logger version: develop -- package: github.com/tendermint/go-db +- package: github.com/tendermint/tmlibs/db version: develop - package: github.com/tendermint/go-merkle version: develop -- package: github.com/tendermint/go-process +- package: github.com/tendermint/tmlibs/process - package: github.com/tendermint/go-wire version: develop - package: github.com/urfave/cli diff --git a/server/grpc_server.go b/server/grpc_server.go index 944d4e42c..003a76611 100644 --- a/server/grpc_server.go +++ b/server/grpc_server.go @@ -7,7 +7,7 @@ import ( "google.golang.org/grpc" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) // var maxNumberConnections = 2 diff --git a/server/log.go b/server/log.go index 4b313d25f..887c9ed6d 100644 --- a/server/log.go +++ b/server/log.go @@ -1,7 +1,7 @@ package server import ( - "github.com/tendermint/go-logger" + "github.com/tendermint/tmlibs/logger" ) var log = logger.New("module", "abci-server") diff --git a/server/server.go b/server/server.go index eb71b1325..d18df820f 100644 --- a/server/server.go +++ b/server/server.go @@ -4,7 +4,7 @@ import ( "fmt" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) func NewServer(protoAddr, transport string, app types.Application) (cmn.Service, error) { diff --git a/server/socket_server.go b/server/socket_server.go index bc1980e2d..9933829c7 100644 --- a/server/socket_server.go +++ b/server/socket_server.go @@ -9,7 +9,7 @@ import ( "sync" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) // var maxNumberConnections = 2 diff --git a/tests/benchmarks/parallel/parallel.go b/tests/benchmarks/parallel/parallel.go index f01fba4c9..cc68ceadc 100644 --- a/tests/benchmarks/parallel/parallel.go +++ b/tests/benchmarks/parallel/parallel.go @@ -6,7 +6,7 @@ import ( "log" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) func main() { diff --git a/tests/benchmarks/simple/simple.go b/tests/benchmarks/simple/simple.go index 498aac341..ef5bab86b 100644 --- a/tests/benchmarks/simple/simple.go +++ b/tests/benchmarks/simple/simple.go @@ -8,7 +8,7 @@ import ( "reflect" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/go-common" + cmn "github.com/tendermint/tmlibs/common" ) func main() { diff --git a/tests/test_app/app.go b/tests/test_app/app.go index 87b74ead0..7cff57107 100644 --- a/tests/test_app/app.go +++ b/tests/test_app/app.go @@ -8,7 +8,7 @@ import ( "github.com/tendermint/abci/client" "github.com/tendermint/abci/types" - "github.com/tendermint/go-process" + "github.com/tendermint/tmlibs/process" ) func startApp(abciApp string) *process.Process { From dd303dc119b130a81391324a5782368279ad9817 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Fri, 21 Apr 2017 18:25:30 -0400 Subject: [PATCH 03/32] go-data -> go-wire/data --- glide.lock | 2 +- glide.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/glide.lock b/glide.lock index cd453aa03..7a39a3b4e 100644 --- a/glide.lock +++ b/glide.lock @@ -50,7 +50,7 @@ imports: version: f9e3db037330c8a8d61d3966de8473eaf01154fa - name: github.com/tendermint/go-crypto version: 9b95da8fa4187f6799558d89b271dc8ab6485615 -- name: github.com/tendermint/go-data +- name: github.com/tendermint/go-wire/data version: e7fcc6d081ec8518912fcdc103188275f83a3ee5 - name: github.com/tendermint/tmlibs/db version: 9643f60bc2578693844aacf380a7c32e4c029fee diff --git a/glide.yaml b/glide.yaml index 542d2df06..cf909175f 100644 --- a/glide.yaml +++ b/glide.yaml @@ -7,7 +7,7 @@ import: version: develop - package: github.com/tendermint/go-crypto version: develop -- package: github.com/tendermint/go-data +- package: github.com/tendermint/go-wire/data version: develop - package: github.com/tendermint/tmlibs/logger version: develop From 078e617d1c107e39b756ef278e4c867d6befdcd9 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Fri, 21 Apr 2017 18:28:49 -0400 Subject: [PATCH 04/32] go-merkle -> merkleeyes/iavl and tmlibs/merkle --- example/dummy/dummy.go | 5 +++-- example/dummy/dummy_test.go | 8 ++++---- example/dummy/persistent_dummy.go | 6 +++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/example/dummy/dummy.go b/example/dummy/dummy.go index f384cc98f..4485deac8 100644 --- a/example/dummy/dummy.go +++ b/example/dummy/dummy.go @@ -4,8 +4,9 @@ import ( "strings" "github.com/tendermint/abci/types" + "github.com/tendermint/merkleeyes/iavl" cmn "github.com/tendermint/tmlibs/common" - "github.com/tendermint/go-merkle" + "github.com/tendermint/tmlibs/merkle" ) type DummyApplication struct { @@ -15,7 +16,7 @@ type DummyApplication struct { } func NewDummyApplication() *DummyApplication { - state := merkle.NewIAVLTree(0, nil) + state := iavl.NewIAVLTree(0, nil) return &DummyApplication{state: state} } diff --git a/example/dummy/dummy_test.go b/example/dummy/dummy_test.go index aa040948a..57aac4ef2 100644 --- a/example/dummy/dummy_test.go +++ b/example/dummy/dummy_test.go @@ -10,9 +10,9 @@ import ( abcicli "github.com/tendermint/abci/client" "github.com/tendermint/abci/server" "github.com/tendermint/abci/types" - cmn "github.com/tendermint/tmlibs/common" "github.com/tendermint/go-crypto" - "github.com/tendermint/go-merkle" + "github.com/tendermint/merkleeyes/iavl" + cmn "github.com/tendermint/tmlibs/common" ) func testDummy(t *testing.T, app types.Application, tx []byte, key, value string) { @@ -38,7 +38,7 @@ func testDummy(t *testing.T, app types.Application, tx []byte, key, value string }) require.Equal(t, types.CodeType_OK, resQuery.Code) require.Equal(t, value, string(resQuery.Value)) - proof, err := merkle.ReadProof(resQuery.Proof) + proof, err := iavl.ReadProof(resQuery.Proof) require.Nil(t, err) require.True(t, proof.Verify([]byte(key), resQuery.Value, proof.RootHash)) // NOTE: we have no way to verify the RootHash } @@ -302,7 +302,7 @@ func testClient(t *testing.T, app abcicli.Client, tx []byte, key, value string) require.Nil(t, err) require.Equal(t, types.CodeType_OK, resQuery.Code) require.Equal(t, value, string(resQuery.Value)) - proof, err := merkle.ReadProof(resQuery.Proof) + proof, err := iavl.ReadProof(resQuery.Proof) require.Nil(t, err) require.True(t, proof.Verify([]byte(key), resQuery.Value, proof.RootHash)) // NOTE: we have no way to verify the RootHash } diff --git a/example/dummy/persistent_dummy.go b/example/dummy/persistent_dummy.go index 258cb3014..84793bc91 100644 --- a/example/dummy/persistent_dummy.go +++ b/example/dummy/persistent_dummy.go @@ -7,10 +7,10 @@ import ( "strings" "github.com/tendermint/abci/types" + "github.com/tendermint/go-wire" + "github.com/tendermint/merkleeyes/iavl" cmn "github.com/tendermint/tmlibs/common" dbm "github.com/tendermint/tmlibs/db" - "github.com/tendermint/go-merkle" - "github.com/tendermint/go-wire" ) const ( @@ -35,7 +35,7 @@ func NewPersistentDummyApplication(dbDir string) *PersistentDummyApplication { db := dbm.NewDB("dummy", "leveldb", dbDir) lastBlock := LoadLastBlock(db) - stateTree := merkle.NewIAVLTree(0, db) + stateTree := iavl.NewIAVLTree(0, db) stateTree.Load(lastBlock.AppHash) log.Notice("Loaded state", "block", lastBlock.Height, "root", stateTree.Hash()) From be61e273cebeb64866a83c578f92b22cf2169cdd Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Fri, 21 Apr 2017 18:32:46 -0400 Subject: [PATCH 05/32] update glide --- glide.lock | 33 ++++++++++++++------------------- glide.yaml | 25 +++++++++++++------------ 2 files changed, 27 insertions(+), 31 deletions(-) diff --git a/glide.lock b/glide.lock index 7a39a3b4e..8aa89abaf 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ -hash: a0dd8fe3cb061f9e4f3b3b6f0e6e7fb91982d7c3deb422e53e144a3bdcde216a -updated: 2017-04-21T18:24:13.217717865-04:00 +hash: 13c7dac029851e5177bf78ff26ce6ccd047360111795a9a65af4ba6a0b87f4b3 +updated: 2017-04-21T18:31:57.13123527-04:00 imports: - name: github.com/btcsuite/btcd version: 583684b21bfbde9b5fc4403916fd7c807feb0289 @@ -21,11 +21,6 @@ imports: version: 30a891c33c7cde7b02a981314b4228ec99380cca - name: github.com/pkg/errors version: 645ef00459ed84a119197bfb8d8205042c6df63d -- name: github.com/stretchr/testify - version: 69483b4bd14f5845b5a1e55bca19e954e827f1d0 - subpackages: - - assert - - require - name: github.com/syndtr/goleveldb version: 23851d93a2292dcc56e71a18ec9e0624d84a0f65 subpackages: @@ -46,20 +41,8 @@ imports: subpackages: - edwards25519 - extra25519 -- name: github.com/tendermint/tmlibs/common - version: f9e3db037330c8a8d61d3966de8473eaf01154fa - name: github.com/tendermint/go-crypto version: 9b95da8fa4187f6799558d89b271dc8ab6485615 -- name: github.com/tendermint/go-wire/data - version: e7fcc6d081ec8518912fcdc103188275f83a3ee5 -- name: github.com/tendermint/tmlibs/db - version: 9643f60bc2578693844aacf380a7c32e4c029fee -- name: github.com/tendermint/tmlibs/logger - version: cefb3a45c0bf3c493a04e9bcd9b1540528be59f2 -- name: github.com/tendermint/go-merkle - version: 714d4d04557fd068a7c2a1748241ce8428015a96 -- name: github.com/tendermint/tmlibs/process - version: b27edfd189b1a01a0b099f7e9f8263589cf04909 - name: github.com/tendermint/go-wire version: 334005c236d19c632fb5f073f9de3b0fab6a522b subpackages: @@ -68,11 +51,18 @@ imports: version: ae0f3d6450da9eac7074b439c8e1c3cabf0d5ce6 subpackages: - term +- name: github.com/tendermint/merkleeyes + version: 41fe51f4a6d3f1abc45fd4684e1351e084860ca4 + subpackages: + - iavl - name: github.com/tendermint/tmlibs version: df250b69416a35a943a6e2a92118667e9ef031d4 subpackages: - common + - db - logger + - merkle + - process - name: github.com/urfave/cli version: 0bdeddeeb0f650497d603c4ad7b20cfe685682f6 - name: golang.org/x/crypto @@ -120,3 +110,8 @@ testImports: version: d8ed2627bdf02c080bf22230dbb337003b7aba2d subpackages: - difflib +- name: github.com/stretchr/testify + version: 69483b4bd14f5845b5a1e55bca19e954e827f1d0 + subpackages: + - assert + - require diff --git a/glide.yaml b/glide.yaml index cf909175f..2876b0e51 100644 --- a/glide.yaml +++ b/glide.yaml @@ -3,27 +3,28 @@ import: - package: github.com/golang/protobuf subpackages: - proto -- package: github.com/tendermint/tmlibs/common - version: develop - package: github.com/tendermint/go-crypto version: develop -- package: github.com/tendermint/go-wire/data - version: develop -- package: github.com/tendermint/tmlibs/logger - version: develop -- package: github.com/tendermint/tmlibs/db - version: develop -- package: github.com/tendermint/go-merkle - version: develop -- package: github.com/tendermint/tmlibs/process - package: github.com/tendermint/go-wire version: develop +- package: github.com/tendermint/merkleeyes + version: develop + subpackages: + - iavl +- package: github.com/tendermint/tmlibs + version: develop + subpackages: + - common + - db + - logger + - merkle + - process - package: github.com/urfave/cli - package: golang.org/x/net subpackages: - context - package: google.golang.org/grpc +testImport: - package: github.com/stretchr/testify - version: ^1.1.4 subpackages: - require From c709d3cc857929a8dd36a90da3640122d7e75770 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Fri, 21 Apr 2017 18:39:18 -0400 Subject: [PATCH 06/32] update merkleeyes --- glide.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glide.lock b/glide.lock index 8aa89abaf..614ce5a19 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ hash: 13c7dac029851e5177bf78ff26ce6ccd047360111795a9a65af4ba6a0b87f4b3 -updated: 2017-04-21T18:31:57.13123527-04:00 +updated: 2017-04-21T18:38:50.4243289-04:00 imports: - name: github.com/btcsuite/btcd version: 583684b21bfbde9b5fc4403916fd7c807feb0289 @@ -52,7 +52,7 @@ imports: subpackages: - term - name: github.com/tendermint/merkleeyes - version: 41fe51f4a6d3f1abc45fd4684e1351e084860ca4 + version: 6fd69aa0871a4e685a5570aa7ab3d12e4068a722 subpackages: - iavl - name: github.com/tendermint/tmlibs From 8339dc3b1a389ced232573c46e106de2fce9f112 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Thu, 27 Apr 2017 19:18:53 -0400 Subject: [PATCH 07/32] types: Result and Validator use data.Bytes --- types/result.go | 4 +++- types/validators.go | 10 ++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/types/result.go b/types/result.go index af89058e9..d7e231d80 100644 --- a/types/result.go +++ b/types/result.go @@ -2,12 +2,14 @@ package types import ( "fmt" + + "github.com/tendermint/go-wire/data" ) // CONTRACT: a zero Result is OK. type Result struct { Code CodeType - Data []byte + Data data.Bytes Log string // Can be non-deterministic } diff --git a/types/validators.go b/types/validators.go index 185355d15..a83c6d40a 100644 --- a/types/validators.go +++ b/types/validators.go @@ -2,8 +2,9 @@ package types import ( "bytes" + "encoding/json" - "github.com/tendermint/go-wire" + "github.com/tendermint/go-wire/data" ) // validators implements sort @@ -28,8 +29,8 @@ func (v Validators) Swap(i, j int) { //------------------------------------- type validatorPretty struct { - PubKey []byte `json:"pub_key"` - Power uint64 `json:"power"` + PubKey data.Bytes `json:"pub_key"` + Power uint64 `json:"power"` } func ValidatorsString(vs Validators) string { @@ -37,5 +38,6 @@ func ValidatorsString(vs Validators) string { for i, v := range vs { s[i] = validatorPretty{v.PubKey, v.Power} } - return string(wire.JSONBytes(s)) + b, _ := json.Marshal(s) + return string(b) } From 8d8e35ae537538c9cf6808be3ca9dd7dab81b7f6 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Thu, 27 Apr 2017 19:53:22 -0400 Subject: [PATCH 08/32] types: methods convert pb types to use data.Bytes --- types/result.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/types/result.go b/types/result.go index d7e231d80..c7f2d565c 100644 --- a/types/result.go +++ b/types/result.go @@ -8,9 +8,9 @@ import ( // CONTRACT: a zero Result is OK. type Result struct { - Code CodeType - Data data.Bytes - Log string // Can be non-deterministic + Code CodeType `json:"code"` + Data data.Bytes `json:"data"` + Log string `json:"log"` // Can be non-deterministic } func NewResult(code CodeType, data []byte, log string) Result { @@ -86,3 +86,47 @@ func NewError(code CodeType, log string) Result { Log: log, } } + +//---------------------------------------- +// Convenience methods for turning the +// pb type into one using data.Bytes + +// Convert ResponseCheckTx to standard Result +func (r *ResponseCheckTx) Result() Result { + return Result{ + Code: r.Code, + Data: r.Data, + Log: r.Log, + } +} + +// Convert ResponseDeliverTx to standard Result +func (r *ResponseDeliverTx) Result() Result { + return Result{ + Code: r.Code, + Data: r.Data, + Log: r.Log, + } +} + +type ResultQuery struct { + Code CodeType `json:"code"` + Index int64 `json:"index"` + Key data.Bytes `json:"key"` + Value data.Bytes `json:"value"` + Proof data.Bytes `json:"proof"` + Height uint64 `json:"height"` + Log string `json:"log"` +} + +func (r *ResponseQuery) Result() *ResultQuery { + return &ResultQuery{ + Code: r.Code, + Index: r.Index, + Key: r.Key, + Value: r.Value, + Proof: r.Proof, + Height: r.Height, + Log: r.Log, + } +} From 986bdd00a585bbbcd41cfb8fb3ef6dbdca55baf9 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Fri, 28 Apr 2017 00:37:18 +0400 Subject: [PATCH 09/32] new logging --- .gitignore | 4 +- client/grpc_client.go | 4 +- client/local_client.go | 2 +- client/log.go | 7 --- client/socket_client.go | 8 +-- cmd/abci-cli/abci-cli.go | 11 ++-- cmd/counter/main.go | 8 ++- cmd/dummy/main.go | 10 +++- example/block_aware/block_aware_app.go | 8 ++- example/block_aware/block_aware_test.go | 12 +++-- example/dummy/dummy_test.go | 11 +++- example/dummy/log.go | 7 --- example/dummy/persistent_dummy.go | 30 +++++++---- example/example_test.go | 19 ++++--- glide.lock | 71 +++++++++++++++---------- glide.yaml | 5 +- server/log.go | 7 --- server/socket_server.go | 14 ++--- tests/test.sh | 0 tests/test_app/app.go | 5 +- 20 files changed, 141 insertions(+), 102 deletions(-) delete mode 100644 client/log.go delete mode 100644 example/dummy/log.go delete mode 100644 server/log.go mode change 100644 => 100755 tests/test.sh diff --git a/.gitignore b/.gitignore index 920af7622..62f28681c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,2 @@ -*.swp -*.swo -*.pyc vendor +.glide diff --git a/client/grpc_client.go b/client/grpc_client.go index 423936698..25783101e 100644 --- a/client/grpc_client.go +++ b/client/grpc_client.go @@ -51,7 +51,7 @@ RETRY_LOOP: if cli.mustConnect { return err } - log.Warn(fmt.Sprintf("abci.grpcClient failed to connect to %v. Retrying...\n", cli.addr)) + cli.Logger.Error(fmt.Sprintf("abci.grpcClient failed to connect to %v. Retrying...\n", cli.addr)) time.Sleep(time.Second * 3) continue RETRY_LOOP } @@ -93,7 +93,7 @@ func (cli *grpcClient) StopForError(err error) { } cli.mtx.Unlock() - log.Warn(fmt.Sprintf("Stopping abci.grpcClient for error: %v", err.Error())) + cli.Logger.Error(fmt.Sprintf("Stopping abci.grpcClient for error: %v", err.Error())) cli.Stop() } diff --git a/client/local_client.go b/client/local_client.go index 4bdcffad1..37f76abb3 100644 --- a/client/local_client.go +++ b/client/local_client.go @@ -22,7 +22,7 @@ func NewLocalClient(mtx *sync.Mutex, app types.Application) *localClient { mtx: mtx, Application: app, } - cli.BaseService = *cmn.NewBaseService(log, "localClient", cli) + cli.BaseService = *cmn.NewBaseService(nil, "localClient", cli) return cli } diff --git a/client/log.go b/client/log.go deleted file mode 100644 index 146bf1273..000000000 --- a/client/log.go +++ /dev/null @@ -1,7 +0,0 @@ -package abcicli - -import ( - "github.com/tendermint/tmlibs/logger" -) - -var log = logger.New("module", "abcicli") diff --git a/client/socket_client.go b/client/socket_client.go index ebcfb44b7..76f150c0f 100644 --- a/client/socket_client.go +++ b/client/socket_client.go @@ -70,7 +70,7 @@ RETRY_LOOP: if cli.mustConnect { return err } - log.Warn(fmt.Sprintf("abci.socketClient failed to connect to %v. Retrying...", cli.addr)) + cli.Logger.Error(fmt.Sprintf("abci.socketClient failed to connect to %v. Retrying...", cli.addr)) time.Sleep(time.Second * 3) continue RETRY_LOOP } @@ -107,7 +107,7 @@ func (cli *socketClient) StopForError(err error) { } cli.mtx.Unlock() - log.Warn(fmt.Sprintf("Stopping abci.socketClient for error: %v", err.Error())) + cli.Logger.Error(fmt.Sprintf("Stopping abci.socketClient for error: %v", err.Error())) cli.Stop() } @@ -147,7 +147,7 @@ func (cli *socketClient) sendRequestsRoutine(conn net.Conn) { cli.StopForError(fmt.Errorf("Error writing msg: %v", err)) return } - // log.Debug("Sent request", "requestType", reflect.TypeOf(reqres.Request), "request", reqres.Request) + // cli.Logger.Debug("Sent request", "requestType", reflect.TypeOf(reqres.Request), "request", reqres.Request) if _, ok := reqres.Request.Value.(*types.Request_Flush); ok { err = w.Flush() if err != nil { @@ -175,7 +175,7 @@ func (cli *socketClient) recvResponseRoutine(conn net.Conn) { cli.StopForError(errors.New(r.Exception.Error)) return default: - // log.Debug("Received response", "responseType", reflect.TypeOf(res), "response", res) + // cli.Logger.Debug("Received response", "responseType", reflect.TypeOf(res), "response", res) err := cli.didRecvResponse(res) if err != nil { cli.StopForError(err) diff --git a/cmd/abci-cli/abci-cli.go b/cmd/abci-cli/abci-cli.go index accae9d1e..02fa32f0b 100644 --- a/cmd/abci-cli/abci-cli.go +++ b/cmd/abci-cli/abci-cli.go @@ -6,13 +6,14 @@ import ( "errors" "fmt" "io" - "log" + stdlog "log" "os" "strings" - "github.com/tendermint/abci/client" + abcicli "github.com/tendermint/abci/client" "github.com/tendermint/abci/types" "github.com/tendermint/abci/version" + "github.com/tendermint/tmlibs/log" "github.com/urfave/cli" ) @@ -129,7 +130,7 @@ func main() { app.Before = before err := app.Run(os.Args) if err != nil { - log.Fatal(err.Error()) + stdlog.Fatal(err.Error()) } } @@ -139,8 +140,10 @@ func before(c *cli.Context) error { var err error client, err = abcicli.NewClient(c.GlobalString("address"), c.GlobalString("abci"), false) if err != nil { - log.Fatal(err.Error()) + stdlog.Fatal(err.Error()) } + logger := log.NewTmLogger(os.Stdout) + client.SetLogger(log.With(logger, "module", "abci-client")) } return nil } diff --git a/cmd/counter/main.go b/cmd/counter/main.go index e7b777a8c..19fc0b8c5 100644 --- a/cmd/counter/main.go +++ b/cmd/counter/main.go @@ -2,11 +2,13 @@ package main import ( "flag" - "log" + stdlog "log" + "os" "github.com/tendermint/abci/example/counter" "github.com/tendermint/abci/server" cmn "github.com/tendermint/tmlibs/common" + "github.com/tendermint/tmlibs/log" ) func main() { @@ -20,8 +22,10 @@ func main() { // Start the listener srv, err := server.NewServer(*addrPtr, *abciPtr, app) if err != nil { - log.Fatal(err.Error()) + stdlog.Fatal(err.Error()) } + logger := log.NewTmLogger(os.Stdout) + srv.SetLogger(log.With(logger, "module", "abci-server")) // Wait forever cmn.TrapSignal(func() { diff --git a/cmd/dummy/main.go b/cmd/dummy/main.go index a1cc68aef..f462a34e0 100644 --- a/cmd/dummy/main.go +++ b/cmd/dummy/main.go @@ -2,12 +2,14 @@ package main import ( "flag" - "log" + stdlog "log" + "os" "github.com/tendermint/abci/example/dummy" "github.com/tendermint/abci/server" "github.com/tendermint/abci/types" cmn "github.com/tendermint/tmlibs/common" + "github.com/tendermint/tmlibs/log" ) func main() { @@ -17,19 +19,23 @@ func main() { persistencePtr := flag.String("persist", "", "directory to use for a database") flag.Parse() + logger := log.NewTmLogger(os.Stdout) + // Create the application - in memory or persisted to disk var app types.Application if *persistencePtr == "" { app = dummy.NewDummyApplication() } else { app = dummy.NewPersistentDummyApplication(*persistencePtr) + app.(*dummy.PersistentDummyApplication).SetLogger(log.With(logger, "module", "dummy")) } // Start the listener srv, err := server.NewServer(*addrPtr, *abciPtr, app) if err != nil { - log.Fatal(err.Error()) + stdlog.Fatal(err.Error()) } + srv.SetLogger(log.With(logger, "module", "abci-server")) // Wait forever cmn.TrapSignal(func() { diff --git a/example/block_aware/block_aware_app.go b/example/block_aware/block_aware_app.go index e1afee968..c77052b35 100644 --- a/example/block_aware/block_aware_app.go +++ b/example/block_aware/block_aware_app.go @@ -2,11 +2,13 @@ package main import ( "flag" - "log" + stdlog "log" + "os" "github.com/tendermint/abci/server" "github.com/tendermint/abci/types" cmn "github.com/tendermint/tmlibs/common" + "github.com/tendermint/tmlibs/log" ) func main() { @@ -18,8 +20,10 @@ func main() { // Start the listener srv, err := server.NewServer(*addrPtr, *abciPtr, NewChainAwareApplication()) if err != nil { - log.Fatal(err.Error()) + stdlog.Fatal(err.Error()) } + logger := log.NewTmLogger(os.Stdout) + srv.SetLogger(log.With(logger, "module", "abci-server")) // Wait forever cmn.TrapSignal(func() { diff --git a/example/block_aware/block_aware_test.go b/example/block_aware/block_aware_test.go index 2ce6aacf3..c251de6ad 100644 --- a/example/block_aware/block_aware_test.go +++ b/example/block_aware/block_aware_test.go @@ -1,33 +1,35 @@ package main import ( - "fmt" - "log" + "os" "strconv" "strings" "testing" - "github.com/tendermint/abci/client" + abcicli "github.com/tendermint/abci/client" "github.com/tendermint/abci/server" "github.com/tendermint/abci/types" + "github.com/tendermint/tmlibs/log" ) func TestChainAware(t *testing.T) { - app := NewChainAwareApplication() + logger := log.NewTmLogger(os.Stdout) // Start the listener srv, err := server.NewServer("unix://test.sock", "socket", app) if err != nil { t.Fatal(err) } + srv.SetLogger(log.With(logger, "module", "abci-server")) defer srv.Stop() // Connect to the socket client, err := abcicli.NewSocketClient("unix://test.sock", false) if err != nil { - log.Fatal(fmt.Sprintf("Error starting socket client: %v", err.Error())) + t.Fatalf("Error starting socket client: %v", err.Error()) } + client.SetLogger(log.With(logger, "module", "abci-client")) client.Start() defer client.Stop() diff --git a/example/dummy/dummy_test.go b/example/dummy/dummy_test.go index 57aac4ef2..fe569306a 100644 --- a/example/dummy/dummy_test.go +++ b/example/dummy/dummy_test.go @@ -3,6 +3,7 @@ package dummy import ( "bytes" "io/ioutil" + "os" "sort" "testing" @@ -10,9 +11,10 @@ import ( abcicli "github.com/tendermint/abci/client" "github.com/tendermint/abci/server" "github.com/tendermint/abci/types" - "github.com/tendermint/go-crypto" + crypto "github.com/tendermint/go-crypto" "github.com/tendermint/merkleeyes/iavl" cmn "github.com/tendermint/tmlibs/common" + "github.com/tendermint/tmlibs/log" ) func testDummy(t *testing.T, app types.Application, tx []byte, key, value string) { @@ -211,10 +213,13 @@ func valsEqual(t *testing.T, vals1, vals2 []*types.Validator) { func makeSocketClientServer(app types.Application, name string) (abcicli.Client, cmn.Service, error) { // Start the listener socket := cmn.Fmt("unix://%s.sock", name) + logger := log.NewTmLogger(os.Stdout) + server, err := server.NewSocketServer(socket, app) if err != nil { return nil, nil, err } + server.SetLogger(log.With(logger, "module", "abci-server")) // Connect to the socket client, err := abcicli.NewSocketClient(socket, false) @@ -222,6 +227,7 @@ func makeSocketClientServer(app types.Application, name string) (abcicli.Client, server.Stop() return nil, nil, err } + client.SetLogger(log.With(logger, "module", "abci-client")) client.Start() return client, server, err @@ -230,18 +236,21 @@ func makeSocketClientServer(app types.Application, name string) (abcicli.Client, func makeGRPCClientServer(app types.Application, name string) (abcicli.Client, cmn.Service, error) { // Start the listener socket := cmn.Fmt("unix://%s.sock", name) + logger := log.NewTmLogger(os.Stdout) gapp := types.NewGRPCApplication(app) server, err := server.NewGRPCServer(socket, gapp) if err != nil { return nil, nil, err } + server.SetLogger(log.With(logger, "module", "abci-server")) client, err := abcicli.NewGRPCClient(socket, true) if err != nil { server.Stop() return nil, nil, err } + client.SetLogger(log.With(logger, "module", "abci-client")) return client, server, err } diff --git a/example/dummy/log.go b/example/dummy/log.go deleted file mode 100644 index 5607ca556..000000000 --- a/example/dummy/log.go +++ /dev/null @@ -1,7 +0,0 @@ -package dummy - -import ( - "github.com/tendermint/tmlibs/logger" -) - -var log = logger.New("module", "dummy") diff --git a/example/dummy/persistent_dummy.go b/example/dummy/persistent_dummy.go index 84793bc91..fb59a2724 100644 --- a/example/dummy/persistent_dummy.go +++ b/example/dummy/persistent_dummy.go @@ -6,11 +6,13 @@ import ( "strconv" "strings" + "github.com/pkg/errors" "github.com/tendermint/abci/types" - "github.com/tendermint/go-wire" + wire "github.com/tendermint/go-wire" "github.com/tendermint/merkleeyes/iavl" cmn "github.com/tendermint/tmlibs/common" dbm "github.com/tendermint/tmlibs/db" + "github.com/tendermint/tmlibs/log" ) const ( @@ -29,6 +31,8 @@ type PersistentDummyApplication struct { // validator set changes []*types.Validator + + logger log.Logger } func NewPersistentDummyApplication(dbDir string) *PersistentDummyApplication { @@ -38,14 +42,19 @@ func NewPersistentDummyApplication(dbDir string) *PersistentDummyApplication { stateTree := iavl.NewIAVLTree(0, db) stateTree.Load(lastBlock.AppHash) - log.Notice("Loaded state", "block", lastBlock.Height, "root", stateTree.Hash()) + // log.Notice("Loaded state", "block", lastBlock.Height, "root", stateTree.Hash()) return &PersistentDummyApplication{ - app: &DummyApplication{state: stateTree}, - db: db, + app: &DummyApplication{state: stateTree}, + db: db, + logger: log.NewNopLogger(), } } +func (app *PersistentDummyApplication) SetLogger(l log.Logger) { + app.logger = l +} + func (app *PersistentDummyApplication) Info() (resInfo types.ResponseInfo) { resInfo = app.app.Info() lastBlock := LoadLastBlock(app.db) @@ -79,13 +88,16 @@ func (app *PersistentDummyApplication) CheckTx(tx []byte) types.Result { func (app *PersistentDummyApplication) Commit() types.Result { // Save appHash := app.app.state.Save() - log.Info("Saved state", "root", appHash) + app.logger.Info("Saved state", "root", appHash) lastBlock := LastBlockInfo{ Height: app.blockHeader.Height, AppHash: appHash, // this hash will be in the next block header } + + app.logger.Info("Saving block", "height", lastBlock.Height, "root", lastBlock.AppHash) SaveLastBlock(app.db, lastBlock) + return types.NewResultOK(appHash, "") } @@ -98,7 +110,7 @@ func (app *PersistentDummyApplication) InitChain(validators []*types.Validator) for _, v := range validators { r := app.updateValidator(v) if r.IsErr() { - log.Error("Error updating validators", "r", r) + app.logger.Error("Error updating validators", "r", r) } } } @@ -134,8 +146,7 @@ func LoadLastBlock(db dbm.DB) (lastBlock LastBlockInfo) { r, n, err := bytes.NewReader(buf), new(int), new(error) wire.ReadBinaryPtr(&lastBlock, r, 0, n, err) if *err != nil { - // DATA HAS BEEN CORRUPTED OR THE SPEC HAS CHANGED - log.Crit(cmn.Fmt("Data has been corrupted or its spec has changed: %v\n", *err)) + cmn.PanicCrisis(errors.Wrap(*err, "cannot load last block (data has been corrupted or its spec has changed)")) } // TODO: ensure that buf is completely read. } @@ -144,12 +155,11 @@ func LoadLastBlock(db dbm.DB) (lastBlock LastBlockInfo) { } func SaveLastBlock(db dbm.DB, lastBlock LastBlockInfo) { - log.Notice("Saving block", "height", lastBlock.Height, "root", lastBlock.AppHash) buf, n, err := new(bytes.Buffer), new(int), new(error) wire.WriteBinary(lastBlock, buf, n, err) if *err != nil { // TODO - cmn.PanicCrisis(*err) + cmn.PanicCrisis(errors.Wrap(*err, "cannot save last block")) } db.Set(lastBlockKey, buf.Bytes()) } diff --git a/example/example_test.go b/example/example_test.go index e6edef363..d71a44e64 100644 --- a/example/example_test.go +++ b/example/example_test.go @@ -2,8 +2,9 @@ package example import ( "fmt" - "log" + stdlog "log" "net" + "os" "reflect" "testing" "time" @@ -12,11 +13,12 @@ import ( "golang.org/x/net/context" - "github.com/tendermint/abci/client" + abcicli "github.com/tendermint/abci/client" "github.com/tendermint/abci/example/dummy" "github.com/tendermint/abci/server" "github.com/tendermint/abci/types" cmn "github.com/tendermint/tmlibs/common" + "github.com/tendermint/tmlibs/log" ) func TestDummy(t *testing.T) { @@ -37,19 +39,22 @@ func TestGRPC(t *testing.T) { func testStream(t *testing.T, app types.Application) { numDeliverTxs := 200000 + logger := log.NewTmLogger(os.Stdout) // Start the listener server, err := server.NewSocketServer("unix://test.sock", app) if err != nil { - log.Fatal(cmn.Fmt("Error starting socket server: %v", err.Error())) + stdlog.Fatal(cmn.Fmt("Error starting socket server: %v", err.Error())) } + server.SetLogger(log.With(logger, "module", "abci-server")) defer server.Stop() // Connect to the socket client, err := abcicli.NewSocketClient("unix://test.sock", false) if err != nil { - log.Fatal(cmn.Fmt("Error starting socket client: %v", err.Error())) + stdlog.Fatal(cmn.Fmt("Error starting socket client: %v", err.Error())) } + client.SetLogger(log.With(logger, "module", "abci-client")) client.Start() defer client.Stop() @@ -110,18 +115,20 @@ func dialerFunc(addr string, timeout time.Duration) (net.Conn, error) { func testGRPCSync(t *testing.T, app *types.GRPCApplication) { numDeliverTxs := 2000 + logger := log.NewTmLogger(os.Stdout) // Start the listener server, err := server.NewGRPCServer("unix://test.sock", app) if err != nil { - log.Fatal(cmn.Fmt("Error starting GRPC server: %v", err.Error())) + stdlog.Fatal(cmn.Fmt("Error starting GRPC server: %v", err.Error())) } + server.SetLogger(log.With(logger, "module", "abci-server")) defer server.Stop() // Connect to the socket conn, err := grpc.Dial("unix://test.sock", grpc.WithInsecure(), grpc.WithDialer(dialerFunc)) if err != nil { - log.Fatal(cmn.Fmt("Error dialing GRPC server: %v", err.Error())) + stdlog.Fatal(cmn.Fmt("Error dialing GRPC server: %v", err.Error())) } defer conn.Close() diff --git a/glide.lock b/glide.lock index 614ce5a19..9b574b522 100644 --- a/glide.lock +++ b/glide.lock @@ -1,28 +1,35 @@ -hash: 13c7dac029851e5177bf78ff26ce6ccd047360111795a9a65af4ba6a0b87f4b3 -updated: 2017-04-21T18:38:50.4243289-04:00 +hash: 3918a6fe902116fbac5ac474580edf246bee125df6e63e3bd8378f068fa8f819 +updated: 2017-05-01T08:59:45.550273823Z imports: - name: github.com/btcsuite/btcd - version: 583684b21bfbde9b5fc4403916fd7c807feb0289 + version: 4b348c1d33373d672edd83fc576892d0e46686d2 subpackages: - btcec +- name: github.com/go-kit/kit + version: 8a2988aa81f699fc1e647c3c9dddce0113ef1bfb + subpackages: + - log + - log/level + - log/term +- name: github.com/go-logfmt/logfmt + version: 390ab7935ee28ec6b286364bba9b4dd6410cb3d5 - name: github.com/go-stack/stack version: 100eb0c0a9c5b306ca2fb4f165df21d80ada4b82 - name: github.com/golang/protobuf - version: 8ee79997227bf9b34611aee7946ae64735e6fd93 + version: 18c9bb3261723cd5401db4d0c9fbc5c3b6c70fe8 subpackages: - proto + - ptypes/any - name: github.com/golang/snappy - version: d9eb7a3d35ec988b8585d4a0068e462c27d28380 + version: 553a641470496b2327abcac10b36396bd98e45c9 - name: github.com/jmhodges/levigo version: c42d9e0ca023e2198120196f842701bb4c55d7b9 -- name: github.com/mattn/go-colorable - version: d228849504861217f796da67fae4f6e347643f15 -- name: github.com/mattn/go-isatty - version: 30a891c33c7cde7b02a981314b4228ec99380cca +- name: github.com/kr/logfmt + version: b84e30acd515aadc4b783ad4ff83aff3299bdfe0 - name: github.com/pkg/errors - version: 645ef00459ed84a119197bfb8d8205042c6df63d + version: ff09b135c25aae272398c51a07235b90a75aa4f0 - name: github.com/syndtr/goleveldb - version: 23851d93a2292dcc56e71a18ec9e0624d84a0f65 + version: 8c81ea47d4c41a385645e133e15510fc6a2a74b4 subpackages: - leveldb - leveldb/cache @@ -42,31 +49,27 @@ imports: - edwards25519 - extra25519 - name: github.com/tendermint/go-crypto - version: 9b95da8fa4187f6799558d89b271dc8ab6485615 + version: 197a2b270fd94ee03824b158e738fce62862d0b8 - name: github.com/tendermint/go-wire - version: 334005c236d19c632fb5f073f9de3b0fab6a522b + version: b53add0b622662731985485f3a19be7f684660b8 subpackages: - data -- name: github.com/tendermint/log15 - version: ae0f3d6450da9eac7074b439c8e1c3cabf0d5ce6 - subpackages: - - term - name: github.com/tendermint/merkleeyes - version: 6fd69aa0871a4e685a5570aa7ab3d12e4068a722 + version: d0aa363fd4e015e509038c3a0ec493bc62ee0b8a subpackages: - iavl - name: github.com/tendermint/tmlibs - version: df250b69416a35a943a6e2a92118667e9ef031d4 + version: dc50d7d3c19771377fb4aa6e703354205050053a subpackages: - common - db - - logger + - log - merkle - process - name: github.com/urfave/cli - version: 0bdeddeeb0f650497d603c4ad7b20cfe685682f6 + version: ab403a54a148f2d857920810291539e1f817ee7b - name: golang.org/x/crypto - version: 7c6cc321c680f03b9ef0764448e780704f486b51 + version: c7af5bf2638a1164f2eb5467c39c6cffbd13a02e subpackages: - nacl/secretbox - openpgp/armor @@ -75,7 +78,7 @@ imports: - ripemd160 - salsa20/salsa - name: golang.org/x/net - version: 61557ac0112b576429a0df080e1c2cef5dfbb642 + version: da118f7b8e5954f39d0d2130ab35d4bf0e3cb344 subpackages: - context - http2 @@ -84,26 +87,36 @@ imports: - internal/timeseries - lex/httplex - trace -- name: golang.org/x/sys - version: d75a52659825e75fff6158388dddc6a5b04f9ba5 +- name: golang.org/x/text + version: 470f45bf29f4147d6fbd7dfd0a02a848e49f5bf4 subpackages: - - unix + - secure/bidirule + - transform + - unicode/bidi + - unicode/norm +- name: google.golang.org/genproto + version: 411e09b969b1170a9f0c467558eb4c4c110d9c77 + subpackages: + - googleapis/rpc/status - name: google.golang.org/grpc - version: cbcceb2942a489498cf22b2f918536e819d33f0a + version: 0eb507a2ca07f13baf499f89d66cc566bf644643 subpackages: - codes - credentials + - grpclb/grpc_lb_v1 - grpclog - internal + - keepalive - metadata - naming - peer - stats + - status - tap - transport testImports: - name: github.com/davecgh/go-spew - version: 6d212800a42e8ab5c146b8ace3490ee17e5225f9 + version: 04cdfd42973bb9c8589fd6a731800cf222fde1a9 subpackages: - spew - name: github.com/pmezard/go-difflib @@ -111,7 +124,7 @@ testImports: subpackages: - difflib - name: github.com/stretchr/testify - version: 69483b4bd14f5845b5a1e55bca19e954e827f1d0 + version: 4d4bfba8f1d1027c4fdbe371823030df51419987 subpackages: - assert - require diff --git a/glide.yaml b/glide.yaml index 2876b0e51..95fd9ce3b 100644 --- a/glide.yaml +++ b/glide.yaml @@ -3,6 +3,7 @@ import: - package: github.com/golang/protobuf subpackages: - proto +- package: github.com/pkg/errors - package: github.com/tendermint/go-crypto version: develop - package: github.com/tendermint/go-wire @@ -12,11 +13,11 @@ import: subpackages: - iavl - package: github.com/tendermint/tmlibs - version: develop + version: feature/new-logging subpackages: - common - db - - logger + - log - merkle - process - package: github.com/urfave/cli diff --git a/server/log.go b/server/log.go deleted file mode 100644 index 887c9ed6d..000000000 --- a/server/log.go +++ /dev/null @@ -1,7 +0,0 @@ -package server - -import ( - "github.com/tendermint/tmlibs/logger" -) - -var log = logger.New("module", "abci-server") diff --git a/server/socket_server.go b/server/socket_server.go index 9933829c7..3d83c3f75 100644 --- a/server/socket_server.go +++ b/server/socket_server.go @@ -94,15 +94,15 @@ func (s *SocketServer) acceptConnectionsRoutine() { // semaphore <- struct{}{} // Accept a connection - log.Notice("Waiting for new connection...") + s.Logger.Info("Waiting for new connection...") conn, err := s.listener.Accept() if err != nil { if !s.IsRunning() { return // Ignore error from listener closing. } - log.Crit("Failed to accept connection: " + err.Error()) + s.Logger.Error("Failed to accept connection: " + err.Error()) } else { - log.Notice("Accepted a new connection") + s.Logger.Info("Accepted a new connection") } connID := s.addConn(conn) @@ -119,18 +119,18 @@ func (s *SocketServer) acceptConnectionsRoutine() { // Wait until signal to close connection errClose := <-closeConn if err == io.EOF { - log.Warn("Connection was closed by client") + s.Logger.Error("Connection was closed by client") } else if errClose != nil { - log.Warn("Connection error", "error", errClose) + s.Logger.Error("Connection error", "error", errClose) } else { // never happens - log.Warn("Connection was closed.") + s.Logger.Error("Connection was closed.") } // Close the connection err := s.rmConn(connID, conn) if err != nil { - log.Warn("Error in closing connection", "error", err) + s.Logger.Error("Error in closing connection", "error", err) } // <-semaphore diff --git a/tests/test.sh b/tests/test.sh old mode 100644 new mode 100755 diff --git a/tests/test_app/app.go b/tests/test_app/app.go index 7cff57107..879a7400d 100644 --- a/tests/test_app/app.go +++ b/tests/test_app/app.go @@ -6,8 +6,9 @@ import ( "os" "time" - "github.com/tendermint/abci/client" + abcicli "github.com/tendermint/abci/client" "github.com/tendermint/abci/types" + "github.com/tendermint/tmlibs/log" "github.com/tendermint/tmlibs/process" ) @@ -37,6 +38,8 @@ func startClient(abciType string) abcicli.Client { if err != nil { panic("connecting to abci_app: " + err.Error()) } + logger := log.NewTmLogger(os.Stdout) + client.SetLogger(log.With(logger, "module", "abcicli")) return client } From 9a6d19028277f84b1c8cf57cac1e50180a397f3f Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Mon, 1 May 2017 16:43:52 +0400 Subject: [PATCH 10/32] remove stdlog --- cmd/abci-cli/abci-cli.go | 13 +++++++++---- cmd/counter/main.go | 7 ++++--- cmd/dummy/main.go | 4 ++-- example/block_aware/block_aware_app.go | 7 ++++--- example/example_test.go | 9 ++++----- 5 files changed, 23 insertions(+), 17 deletions(-) diff --git a/cmd/abci-cli/abci-cli.go b/cmd/abci-cli/abci-cli.go index 02fa32f0b..8a1ee2d16 100644 --- a/cmd/abci-cli/abci-cli.go +++ b/cmd/abci-cli/abci-cli.go @@ -6,7 +6,6 @@ import ( "errors" "fmt" "io" - stdlog "log" "os" "strings" @@ -37,6 +36,8 @@ type queryResponse struct { // client is a global variable so it can be reused by the console var client abcicli.Client +var logger log.Logger + func main() { //workaround for the cli library (https://github.com/urfave/cli/issues/565) @@ -130,19 +131,23 @@ func main() { app.Before = before err := app.Run(os.Args) if err != nil { - stdlog.Fatal(err.Error()) + logger.Error(err.Error()) + os.Exit(1) } } func before(c *cli.Context) error { + if logger == nil { + logger = log.NewTmLogger(os.Stdout) + } if client == nil { var err error client, err = abcicli.NewClient(c.GlobalString("address"), c.GlobalString("abci"), false) if err != nil { - stdlog.Fatal(err.Error()) + logger.Error(err.Error()) + os.Exit(1) } - logger := log.NewTmLogger(os.Stdout) client.SetLogger(log.With(logger, "module", "abci-client")) } return nil diff --git a/cmd/counter/main.go b/cmd/counter/main.go index 19fc0b8c5..8fd5b4cc5 100644 --- a/cmd/counter/main.go +++ b/cmd/counter/main.go @@ -2,7 +2,6 @@ package main import ( "flag" - stdlog "log" "os" "github.com/tendermint/abci/example/counter" @@ -19,12 +18,14 @@ func main() { flag.Parse() app := counter.NewCounterApplication(*serialPtr) + logger := log.NewTmLogger(os.Stdout) + // Start the listener srv, err := server.NewServer(*addrPtr, *abciPtr, app) if err != nil { - stdlog.Fatal(err.Error()) + logger.Error(err.Error()) + os.Exit(1) } - logger := log.NewTmLogger(os.Stdout) srv.SetLogger(log.With(logger, "module", "abci-server")) // Wait forever diff --git a/cmd/dummy/main.go b/cmd/dummy/main.go index f462a34e0..92249a9be 100644 --- a/cmd/dummy/main.go +++ b/cmd/dummy/main.go @@ -2,7 +2,6 @@ package main import ( "flag" - stdlog "log" "os" "github.com/tendermint/abci/example/dummy" @@ -33,7 +32,8 @@ func main() { // Start the listener srv, err := server.NewServer(*addrPtr, *abciPtr, app) if err != nil { - stdlog.Fatal(err.Error()) + logger.Error(err.Error()) + os.Exit(1) } srv.SetLogger(log.With(logger, "module", "abci-server")) diff --git a/example/block_aware/block_aware_app.go b/example/block_aware/block_aware_app.go index c77052b35..8f4e3393e 100644 --- a/example/block_aware/block_aware_app.go +++ b/example/block_aware/block_aware_app.go @@ -2,7 +2,6 @@ package main import ( "flag" - stdlog "log" "os" "github.com/tendermint/abci/server" @@ -17,12 +16,14 @@ func main() { abciPtr := flag.String("abci", "socket", "socket | grpc") flag.Parse() + logger := log.NewTmLogger(os.Stdout) + // Start the listener srv, err := server.NewServer(*addrPtr, *abciPtr, NewChainAwareApplication()) if err != nil { - stdlog.Fatal(err.Error()) + logger.Error(err.Error()) + os.Exit(1) } - logger := log.NewTmLogger(os.Stdout) srv.SetLogger(log.With(logger, "module", "abci-server")) // Wait forever diff --git a/example/example_test.go b/example/example_test.go index d71a44e64..ca2bf0637 100644 --- a/example/example_test.go +++ b/example/example_test.go @@ -2,7 +2,6 @@ package example import ( "fmt" - stdlog "log" "net" "os" "reflect" @@ -44,7 +43,7 @@ func testStream(t *testing.T, app types.Application) { // Start the listener server, err := server.NewSocketServer("unix://test.sock", app) if err != nil { - stdlog.Fatal(cmn.Fmt("Error starting socket server: %v", err.Error())) + t.Fatalf("Error starting socket server: %v", err.Error()) } server.SetLogger(log.With(logger, "module", "abci-server")) defer server.Stop() @@ -52,7 +51,7 @@ func testStream(t *testing.T, app types.Application) { // Connect to the socket client, err := abcicli.NewSocketClient("unix://test.sock", false) if err != nil { - stdlog.Fatal(cmn.Fmt("Error starting socket client: %v", err.Error())) + t.Fatalf("Error starting socket client: %v", err.Error()) } client.SetLogger(log.With(logger, "module", "abci-client")) client.Start() @@ -120,7 +119,7 @@ func testGRPCSync(t *testing.T, app *types.GRPCApplication) { // Start the listener server, err := server.NewGRPCServer("unix://test.sock", app) if err != nil { - stdlog.Fatal(cmn.Fmt("Error starting GRPC server: %v", err.Error())) + t.Fatalf("Error starting GRPC server: %v", err.Error()) } server.SetLogger(log.With(logger, "module", "abci-server")) defer server.Stop() @@ -128,7 +127,7 @@ func testGRPCSync(t *testing.T, app *types.GRPCApplication) { // Connect to the socket conn, err := grpc.Dial("unix://test.sock", grpc.WithInsecure(), grpc.WithDialer(dialerFunc)) if err != nil { - stdlog.Fatal(cmn.Fmt("Error dialing GRPC server: %v", err.Error())) + t.Fatalf("Error dialing GRPC server: %v", err.Error()) } defer conn.Close() From ce124c4aebb8b1e0137f15cd3b236ee91304d909 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Mon, 1 May 2017 16:45:51 +0400 Subject: [PATCH 11/32] modify test scripts to use relative paths --- .editorconfig | 15 +++++++++++++++ Makefile | 2 +- tests/test_app/test.sh | 13 +++++++++---- tests/test_cli/test.sh | 20 +++++++++++++------- 4 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..d587999e1 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[Makefile] +indent_style = tab + +[*.sh] +indent_style = tab diff --git a/Makefile b/Makefile index 31236551f..5d1a04282 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ lint: @ go get -u github.com/golang/lint/golint @ for file in $$(find "." -name '*.go' | grep -v '/vendor/' | grep -v '\.pb\.go'); do \ golint -set_exit_status $${file}; \ - done; + done; test_integrations: get_vendor_deps install test diff --git a/tests/test_app/test.sh b/tests/test_app/test.sh index a0f2c3ce6..0620b4767 100755 --- a/tests/test_app/test.sh +++ b/tests/test_app/test.sh @@ -3,14 +3,19 @@ set -e # These tests spawn the counter app and server by execing the ABCI_APP command and run some simple client tests against it -ROOT=$GOPATH/src/github.com/tendermint/abci/tests/test_app -cd $ROOT +# Get the 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" # test golang counter -ABCI_APP="counter" go run *.go +ABCI_APP="counter" go run ./*.go # test golang counter via grpc -ABCI_APP="counter -abci=grpc" ABCI="grpc" go run *.go +ABCI_APP="counter -abci=grpc" ABCI="grpc" go run ./*.go # test nodejs counter # TODO: fix node app diff --git a/tests/test_cli/test.sh b/tests/test_cli/test.sh index a770730be..4266dd16f 100644 --- a/tests/test_cli/test.sh +++ b/tests/test_cli/test.sh @@ -1,6 +1,12 @@ #! /bin/bash -cd $GOPATH/src/github.com/tendermint/abci +# Get the root directory. +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" || exit function testExample() { N=$1 @@ -10,17 +16,17 @@ function testExample() { echo "Example $N" $APP &> /dev/null & sleep 2 - abci-cli --verbose batch < $INPUT > "${INPUT}.out.new" - killall "$APP" + abci-cli --verbose batch < "$INPUT" > "${INPUT}.out.new" + killall "$APP" - pre=`shasum < "${INPUT}.out"` - post=`shasum < "${INPUT}.out.new"` + pre=$(shasum < "${INPUT}.out") + post=$(shasum < "${INPUT}.out.new") if [[ "$pre" != "$post" ]]; then echo "You broke the tutorial" - echo "Got:" + echo "Got:" cat "${INPUT}.out.new" - echo "Expected:" + echo "Expected:" cat "${INPUT}.out" exit 1 fi From 6baaad997512c6ef1b20556da6fecfea10f63f95 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Mon, 1 May 2017 17:11:40 +0400 Subject: [PATCH 12/32] update glide --- glide.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glide.lock b/glide.lock index 9b574b522..c98e45a86 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ hash: 3918a6fe902116fbac5ac474580edf246bee125df6e63e3bd8378f068fa8f819 -updated: 2017-05-01T08:59:45.550273823Z +updated: 2017-05-01T12:52:56.770980963Z imports: - name: github.com/btcsuite/btcd version: 4b348c1d33373d672edd83fc576892d0e46686d2 @@ -59,7 +59,7 @@ imports: subpackages: - iavl - name: github.com/tendermint/tmlibs - version: dc50d7d3c19771377fb4aa6e703354205050053a + version: ee90b71eb94d05958875fb9cd756b301b691ea27 subpackages: - common - db From d2a4b16b287656a7b7cf200edc7fc49fc1a5fa49 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Wed, 3 May 2017 11:39:15 +0400 Subject: [PATCH 13/32] introduce testing logger --- cmd/abci-cli/abci-cli.go | 2 +- cmd/counter/main.go | 2 +- cmd/dummy/main.go | 2 +- example/block_aware/block_aware_app.go | 2 +- example/block_aware/block_aware_test.go | 6 ++---- example/dummy/dummy_test.go | 4 ++-- example/example_test.go | 11 +++-------- glide.lock | 16 ++++++++-------- glide.yaml | 2 +- tests/test_app/app.go | 2 +- 10 files changed, 21 insertions(+), 28 deletions(-) diff --git a/cmd/abci-cli/abci-cli.go b/cmd/abci-cli/abci-cli.go index 8a1ee2d16..260f04053 100644 --- a/cmd/abci-cli/abci-cli.go +++ b/cmd/abci-cli/abci-cli.go @@ -139,7 +139,7 @@ func main() { func before(c *cli.Context) error { if logger == nil { - logger = log.NewTmLogger(os.Stdout) + logger = log.NewTMLogger(os.Stdout) } if client == nil { var err error diff --git a/cmd/counter/main.go b/cmd/counter/main.go index 8fd5b4cc5..9ec6fdccc 100644 --- a/cmd/counter/main.go +++ b/cmd/counter/main.go @@ -18,7 +18,7 @@ func main() { flag.Parse() app := counter.NewCounterApplication(*serialPtr) - logger := log.NewTmLogger(os.Stdout) + logger := log.NewTMLogger(os.Stdout) // Start the listener srv, err := server.NewServer(*addrPtr, *abciPtr, app) diff --git a/cmd/dummy/main.go b/cmd/dummy/main.go index 92249a9be..311f774ee 100644 --- a/cmd/dummy/main.go +++ b/cmd/dummy/main.go @@ -18,7 +18,7 @@ func main() { persistencePtr := flag.String("persist", "", "directory to use for a database") flag.Parse() - logger := log.NewTmLogger(os.Stdout) + logger := log.NewTMLogger(os.Stdout) // Create the application - in memory or persisted to disk var app types.Application diff --git a/example/block_aware/block_aware_app.go b/example/block_aware/block_aware_app.go index 8f4e3393e..ae9c1047d 100644 --- a/example/block_aware/block_aware_app.go +++ b/example/block_aware/block_aware_app.go @@ -16,7 +16,7 @@ func main() { abciPtr := flag.String("abci", "socket", "socket | grpc") flag.Parse() - logger := log.NewTmLogger(os.Stdout) + logger := log.NewTMLogger(os.Stdout) // Start the listener srv, err := server.NewServer(*addrPtr, *abciPtr, NewChainAwareApplication()) diff --git a/example/block_aware/block_aware_test.go b/example/block_aware/block_aware_test.go index c251de6ad..7d1ddc2b9 100644 --- a/example/block_aware/block_aware_test.go +++ b/example/block_aware/block_aware_test.go @@ -1,7 +1,6 @@ package main import ( - "os" "strconv" "strings" "testing" @@ -14,14 +13,13 @@ import ( func TestChainAware(t *testing.T) { app := NewChainAwareApplication() - logger := log.NewTmLogger(os.Stdout) // Start the listener srv, err := server.NewServer("unix://test.sock", "socket", app) if err != nil { t.Fatal(err) } - srv.SetLogger(log.With(logger, "module", "abci-server")) + srv.SetLogger(log.With(log.TestingLogger(), "module", "abci-server")) defer srv.Stop() // Connect to the socket @@ -29,7 +27,7 @@ func TestChainAware(t *testing.T) { if err != nil { t.Fatalf("Error starting socket client: %v", err.Error()) } - client.SetLogger(log.With(logger, "module", "abci-client")) + client.SetLogger(log.With(log.TestingLogger(), "module", "abci-client")) client.Start() defer client.Stop() diff --git a/example/dummy/dummy_test.go b/example/dummy/dummy_test.go index fe569306a..cb4e5cad4 100644 --- a/example/dummy/dummy_test.go +++ b/example/dummy/dummy_test.go @@ -213,7 +213,7 @@ func valsEqual(t *testing.T, vals1, vals2 []*types.Validator) { func makeSocketClientServer(app types.Application, name string) (abcicli.Client, cmn.Service, error) { // Start the listener socket := cmn.Fmt("unix://%s.sock", name) - logger := log.NewTmLogger(os.Stdout) + logger := log.NewTMLogger(os.Stdout) server, err := server.NewSocketServer(socket, app) if err != nil { @@ -236,7 +236,7 @@ func makeSocketClientServer(app types.Application, name string) (abcicli.Client, func makeGRPCClientServer(app types.Application, name string) (abcicli.Client, cmn.Service, error) { // Start the listener socket := cmn.Fmt("unix://%s.sock", name) - logger := log.NewTmLogger(os.Stdout) + logger := log.NewTMLogger(os.Stdout) gapp := types.NewGRPCApplication(app) server, err := server.NewGRPCServer(socket, gapp) diff --git a/example/example_test.go b/example/example_test.go index ca2bf0637..a96d17abe 100644 --- a/example/example_test.go +++ b/example/example_test.go @@ -3,7 +3,6 @@ package example import ( "fmt" "net" - "os" "reflect" "testing" "time" @@ -36,16 +35,14 @@ func TestGRPC(t *testing.T) { } func testStream(t *testing.T, app types.Application) { - numDeliverTxs := 200000 - logger := log.NewTmLogger(os.Stdout) // Start the listener server, err := server.NewSocketServer("unix://test.sock", app) if err != nil { t.Fatalf("Error starting socket server: %v", err.Error()) } - server.SetLogger(log.With(logger, "module", "abci-server")) + server.SetLogger(log.With(log.TestingLogger(), "module", "abci-server")) defer server.Stop() // Connect to the socket @@ -53,7 +50,7 @@ func testStream(t *testing.T, app types.Application) { if err != nil { t.Fatalf("Error starting socket client: %v", err.Error()) } - client.SetLogger(log.With(logger, "module", "abci-client")) + client.SetLogger(log.With(log.TestingLogger(), "module", "abci-client")) client.Start() defer client.Stop() @@ -112,16 +109,14 @@ func dialerFunc(addr string, timeout time.Duration) (net.Conn, error) { } func testGRPCSync(t *testing.T, app *types.GRPCApplication) { - numDeliverTxs := 2000 - logger := log.NewTmLogger(os.Stdout) // Start the listener server, err := server.NewGRPCServer("unix://test.sock", app) if err != nil { t.Fatalf("Error starting GRPC server: %v", err.Error()) } - server.SetLogger(log.With(logger, "module", "abci-server")) + server.SetLogger(log.With(log.TestingLogger(), "module", "abci-server")) defer server.Stop() // Connect to the socket diff --git a/glide.lock b/glide.lock index c98e45a86..14abafc56 100644 --- a/glide.lock +++ b/glide.lock @@ -1,12 +1,12 @@ -hash: 3918a6fe902116fbac5ac474580edf246bee125df6e63e3bd8378f068fa8f819 -updated: 2017-05-01T12:52:56.770980963Z +hash: c29114af0ddcb75dd9093d4006dd6b9039640a35540d5f44f9c19261b5730781 +updated: 2017-05-03T07:33:18.832551385Z imports: - name: github.com/btcsuite/btcd version: 4b348c1d33373d672edd83fc576892d0e46686d2 subpackages: - btcec - name: github.com/go-kit/kit - version: 8a2988aa81f699fc1e647c3c9dddce0113ef1bfb + version: 0873e56b0faeae3a1d661b10d629135508ea5504 subpackages: - log - log/level @@ -49,7 +49,7 @@ imports: - edwards25519 - extra25519 - name: github.com/tendermint/go-crypto - version: 197a2b270fd94ee03824b158e738fce62862d0b8 + version: 524ba917a3a1636f21ab2c0bf76b6526903ab879 - name: github.com/tendermint/go-wire version: b53add0b622662731985485f3a19be7f684660b8 subpackages: @@ -59,7 +59,7 @@ imports: subpackages: - iavl - name: github.com/tendermint/tmlibs - version: ee90b71eb94d05958875fb9cd756b301b691ea27 + version: 8fc36b0097e1dfcfbba793d4b4cc87e96a03096f subpackages: - common - db @@ -69,7 +69,7 @@ imports: - name: github.com/urfave/cli version: ab403a54a148f2d857920810291539e1f817ee7b - name: golang.org/x/crypto - version: c7af5bf2638a1164f2eb5467c39c6cffbd13a02e + version: d1464577745bc7f4e74f65be9cfbd09436a729d6 subpackages: - nacl/secretbox - openpgp/armor @@ -78,7 +78,7 @@ imports: - ripemd160 - salsa20/salsa - name: golang.org/x/net - version: da118f7b8e5954f39d0d2130ab35d4bf0e3cb344 + version: 0819898fb4973868bba6de59b6aaad75beea9a6a subpackages: - context - http2 @@ -99,7 +99,7 @@ imports: subpackages: - googleapis/rpc/status - name: google.golang.org/grpc - version: 0eb507a2ca07f13baf499f89d66cc566bf644643 + version: 68a5d50f4517bae2b44b18092410fe248d153f1e subpackages: - codes - credentials diff --git a/glide.yaml b/glide.yaml index 95fd9ce3b..aa98c8a6a 100644 --- a/glide.yaml +++ b/glide.yaml @@ -13,7 +13,7 @@ import: subpackages: - iavl - package: github.com/tendermint/tmlibs - version: feature/new-logging + version: feature/testing-logger subpackages: - common - db diff --git a/tests/test_app/app.go b/tests/test_app/app.go index 879a7400d..14aa9c1d7 100644 --- a/tests/test_app/app.go +++ b/tests/test_app/app.go @@ -38,7 +38,7 @@ func startClient(abciType string) abcicli.Client { if err != nil { panic("connecting to abci_app: " + err.Error()) } - logger := log.NewTmLogger(os.Stdout) + logger := log.NewTMLogger(os.Stdout) client.SetLogger(log.With(logger, "module", "abcicli")) return client } From 1dc3629b1a53935f2aca6794dfe3bcfb2e582d46 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Thu, 4 May 2017 22:43:54 +0400 Subject: [PATCH 14/32] update log interface --- client/socket_client.go | 3 ++- cmd/abci-cli/abci-cli.go | 4 ++-- cmd/counter/main.go | 4 ++-- cmd/dummy/main.go | 6 +++--- example/block_aware/block_aware_app.go | 4 ++-- example/block_aware/block_aware_test.go | 4 ++-- example/dummy/dummy_test.go | 13 ++++++------- example/example_test.go | 6 +++--- glide.lock | 10 +++++----- server/socket_server.go | 2 ++ tests/test_app/app.go | 4 ++-- 11 files changed, 31 insertions(+), 29 deletions(-) diff --git a/client/socket_client.go b/client/socket_client.go index 76f150c0f..dd3e2903b 100644 --- a/client/socket_client.go +++ b/client/socket_client.go @@ -53,7 +53,8 @@ func NewSocketClient(addr string, mustConnect bool) (*socketClient, error) { resCb: nil, } cli.BaseService = *cmn.NewBaseService(nil, "socketClient", cli) - + // FIXME we are loosing "Starting socketClient" message here + // add logger to params? _, err := cli.Start() // Just start it, it's confusing for callers to remember to start. return cli, err } diff --git a/cmd/abci-cli/abci-cli.go b/cmd/abci-cli/abci-cli.go index 260f04053..f4fe45fee 100644 --- a/cmd/abci-cli/abci-cli.go +++ b/cmd/abci-cli/abci-cli.go @@ -139,7 +139,7 @@ func main() { func before(c *cli.Context) error { if logger == nil { - logger = log.NewTMLogger(os.Stdout) + logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout)) } if client == nil { var err error @@ -148,7 +148,7 @@ func before(c *cli.Context) error { logger.Error(err.Error()) os.Exit(1) } - client.SetLogger(log.With(logger, "module", "abci-client")) + client.SetLogger(logger.With("module", "abci-client")) } return nil } diff --git a/cmd/counter/main.go b/cmd/counter/main.go index 9ec6fdccc..351e0886c 100644 --- a/cmd/counter/main.go +++ b/cmd/counter/main.go @@ -18,7 +18,7 @@ func main() { flag.Parse() app := counter.NewCounterApplication(*serialPtr) - logger := log.NewTMLogger(os.Stdout) + logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)) // Start the listener srv, err := server.NewServer(*addrPtr, *abciPtr, app) @@ -26,7 +26,7 @@ func main() { logger.Error(err.Error()) os.Exit(1) } - srv.SetLogger(log.With(logger, "module", "abci-server")) + srv.SetLogger(logger.With("module", "abci-server")) // Wait forever cmn.TrapSignal(func() { diff --git a/cmd/dummy/main.go b/cmd/dummy/main.go index 311f774ee..9e1a8112e 100644 --- a/cmd/dummy/main.go +++ b/cmd/dummy/main.go @@ -18,7 +18,7 @@ func main() { persistencePtr := flag.String("persist", "", "directory to use for a database") flag.Parse() - logger := log.NewTMLogger(os.Stdout) + logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)) // Create the application - in memory or persisted to disk var app types.Application @@ -26,7 +26,7 @@ func main() { app = dummy.NewDummyApplication() } else { app = dummy.NewPersistentDummyApplication(*persistencePtr) - app.(*dummy.PersistentDummyApplication).SetLogger(log.With(logger, "module", "dummy")) + app.(*dummy.PersistentDummyApplication).SetLogger(logger.With("module", "dummy")) } // Start the listener @@ -35,7 +35,7 @@ func main() { logger.Error(err.Error()) os.Exit(1) } - srv.SetLogger(log.With(logger, "module", "abci-server")) + srv.SetLogger(logger.With("module", "abci-server")) // Wait forever cmn.TrapSignal(func() { diff --git a/example/block_aware/block_aware_app.go b/example/block_aware/block_aware_app.go index ae9c1047d..30e115acd 100644 --- a/example/block_aware/block_aware_app.go +++ b/example/block_aware/block_aware_app.go @@ -16,7 +16,7 @@ func main() { abciPtr := flag.String("abci", "socket", "socket | grpc") flag.Parse() - logger := log.NewTMLogger(os.Stdout) + logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)) // Start the listener srv, err := server.NewServer(*addrPtr, *abciPtr, NewChainAwareApplication()) @@ -24,7 +24,7 @@ func main() { logger.Error(err.Error()) os.Exit(1) } - srv.SetLogger(log.With(logger, "module", "abci-server")) + srv.SetLogger(logger.With("module", "abci-server")) // Wait forever cmn.TrapSignal(func() { diff --git a/example/block_aware/block_aware_test.go b/example/block_aware/block_aware_test.go index 7d1ddc2b9..6d42b876e 100644 --- a/example/block_aware/block_aware_test.go +++ b/example/block_aware/block_aware_test.go @@ -19,7 +19,7 @@ func TestChainAware(t *testing.T) { if err != nil { t.Fatal(err) } - srv.SetLogger(log.With(log.TestingLogger(), "module", "abci-server")) + srv.SetLogger(log.TestingLogger().With("module", "abci-server")) defer srv.Stop() // Connect to the socket @@ -27,7 +27,7 @@ func TestChainAware(t *testing.T) { if err != nil { t.Fatalf("Error starting socket client: %v", err.Error()) } - client.SetLogger(log.With(log.TestingLogger(), "module", "abci-client")) + client.SetLogger(log.TestingLogger().With("module", "abci-client")) client.Start() defer client.Stop() diff --git a/example/dummy/dummy_test.go b/example/dummy/dummy_test.go index cb4e5cad4..f805dd73c 100644 --- a/example/dummy/dummy_test.go +++ b/example/dummy/dummy_test.go @@ -3,7 +3,6 @@ package dummy import ( "bytes" "io/ioutil" - "os" "sort" "testing" @@ -213,13 +212,13 @@ func valsEqual(t *testing.T, vals1, vals2 []*types.Validator) { func makeSocketClientServer(app types.Application, name string) (abcicli.Client, cmn.Service, error) { // Start the listener socket := cmn.Fmt("unix://%s.sock", name) - logger := log.NewTMLogger(os.Stdout) + logger := log.TestingLogger() server, err := server.NewSocketServer(socket, app) if err != nil { return nil, nil, err } - server.SetLogger(log.With(logger, "module", "abci-server")) + server.SetLogger(logger.With("module", "abci-server")) // Connect to the socket client, err := abcicli.NewSocketClient(socket, false) @@ -227,7 +226,7 @@ func makeSocketClientServer(app types.Application, name string) (abcicli.Client, server.Stop() return nil, nil, err } - client.SetLogger(log.With(logger, "module", "abci-client")) + client.SetLogger(logger.With("module", "abci-client")) client.Start() return client, server, err @@ -236,21 +235,21 @@ func makeSocketClientServer(app types.Application, name string) (abcicli.Client, func makeGRPCClientServer(app types.Application, name string) (abcicli.Client, cmn.Service, error) { // Start the listener socket := cmn.Fmt("unix://%s.sock", name) - logger := log.NewTMLogger(os.Stdout) + logger := log.TestingLogger() gapp := types.NewGRPCApplication(app) server, err := server.NewGRPCServer(socket, gapp) if err != nil { return nil, nil, err } - server.SetLogger(log.With(logger, "module", "abci-server")) + server.SetLogger(logger.With("module", "abci-server")) client, err := abcicli.NewGRPCClient(socket, true) if err != nil { server.Stop() return nil, nil, err } - client.SetLogger(log.With(logger, "module", "abci-client")) + client.SetLogger(logger.With("module", "abci-client")) return client, server, err } diff --git a/example/example_test.go b/example/example_test.go index a96d17abe..85c13d7d6 100644 --- a/example/example_test.go +++ b/example/example_test.go @@ -42,7 +42,7 @@ func testStream(t *testing.T, app types.Application) { if err != nil { t.Fatalf("Error starting socket server: %v", err.Error()) } - server.SetLogger(log.With(log.TestingLogger(), "module", "abci-server")) + server.SetLogger(log.TestingLogger().With("module", "abci-server")) defer server.Stop() // Connect to the socket @@ -50,7 +50,7 @@ func testStream(t *testing.T, app types.Application) { if err != nil { t.Fatalf("Error starting socket client: %v", err.Error()) } - client.SetLogger(log.With(log.TestingLogger(), "module", "abci-client")) + client.SetLogger(log.TestingLogger().With("module", "abci-client")) client.Start() defer client.Stop() @@ -116,7 +116,7 @@ func testGRPCSync(t *testing.T, app *types.GRPCApplication) { if err != nil { t.Fatalf("Error starting GRPC server: %v", err.Error()) } - server.SetLogger(log.With(log.TestingLogger(), "module", "abci-server")) + server.SetLogger(log.TestingLogger().With("module", "abci-server")) defer server.Stop() // Connect to the socket diff --git a/glide.lock b/glide.lock index 14abafc56..39d654aa8 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ hash: c29114af0ddcb75dd9093d4006dd6b9039640a35540d5f44f9c19261b5730781 -updated: 2017-05-03T07:33:18.832551385Z +updated: 2017-05-04T17:47:52.109070369Z imports: - name: github.com/btcsuite/btcd version: 4b348c1d33373d672edd83fc576892d0e46686d2 @@ -14,7 +14,7 @@ imports: - name: github.com/go-logfmt/logfmt version: 390ab7935ee28ec6b286364bba9b4dd6410cb3d5 - name: github.com/go-stack/stack - version: 100eb0c0a9c5b306ca2fb4f165df21d80ada4b82 + version: 7a2f19628aabfe68f0766b59e74d6315f8347d22 - name: github.com/golang/protobuf version: 18c9bb3261723cd5401db4d0c9fbc5c3b6c70fe8 subpackages: @@ -59,7 +59,7 @@ imports: subpackages: - iavl - name: github.com/tendermint/tmlibs - version: 8fc36b0097e1dfcfbba793d4b4cc87e96a03096f + version: a9a96064a0a494ef6a13c38b4395c20abee64996 subpackages: - common - db @@ -69,7 +69,7 @@ imports: - name: github.com/urfave/cli version: ab403a54a148f2d857920810291539e1f817ee7b - name: golang.org/x/crypto - version: d1464577745bc7f4e74f65be9cfbd09436a729d6 + version: 5a033cc77e57eca05bdb50522851d29e03569cbe subpackages: - nacl/secretbox - openpgp/armor @@ -78,7 +78,7 @@ imports: - ripemd160 - salsa20/salsa - name: golang.org/x/net - version: 0819898fb4973868bba6de59b6aaad75beea9a6a + version: feeb485667d1fdabe727840fe00adc22431bc86e subpackages: - context - http2 diff --git a/server/socket_server.go b/server/socket_server.go index 3d83c3f75..f8d6f54a9 100644 --- a/server/socket_server.go +++ b/server/socket_server.go @@ -40,6 +40,8 @@ func NewSocketServer(protoAddr string, app types.Application) (cmn.Service, erro conns: make(map[int]net.Conn), } s.BaseService = *cmn.NewBaseService(nil, "ABCIServer", s) + // FIXME we are loosing "Starting ABCIServer" message here + // add logger to params? _, err := s.Start() // Just start it return s, err } diff --git a/tests/test_app/app.go b/tests/test_app/app.go index 14aa9c1d7..a88a05fd6 100644 --- a/tests/test_app/app.go +++ b/tests/test_app/app.go @@ -38,8 +38,8 @@ func startClient(abciType string) abcicli.Client { if err != nil { panic("connecting to abci_app: " + err.Error()) } - logger := log.NewTMLogger(os.Stdout) - client.SetLogger(log.With(logger, "module", "abcicli")) + logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)) + client.SetLogger(logger.With("module", "abcicli")) return client } From 317e91748ffd8c4c683d80a31ab1681beb2a5202 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Thu, 4 May 2017 23:24:58 +0400 Subject: [PATCH 15/32] remove all .sock files! --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5d1a04282..19ae42600 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ build: # test.sh requires that we run the installed cmds, must not be out of date test: install - find . -name test.sock -exec rm {} \; + find . -path ./vendor -prune -o -name *.sock -exec rm {} \; @ go test -p 1 `${NOVENDOR}` @ bash tests/test.sh From 50a9967c79d89742151c7f1a981678df8c21f9dc Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Fri, 5 May 2017 16:32:23 +0400 Subject: [PATCH 16/32] change tmlibs package version to "log" --- glide.lock | 8 ++++---- glide.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/glide.lock b/glide.lock index 39d654aa8..43375f1e5 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ -hash: c29114af0ddcb75dd9093d4006dd6b9039640a35540d5f44f9c19261b5730781 -updated: 2017-05-04T17:47:52.109070369Z +hash: 8038c78e65a8b5ad4bc6ff8e74c40bd02be23e2c3c4245aff8b354e3dbdec1e2 +updated: 2017-05-05T12:30:23.699400925Z imports: - name: github.com/btcsuite/btcd version: 4b348c1d33373d672edd83fc576892d0e46686d2 @@ -27,7 +27,7 @@ imports: - name: github.com/kr/logfmt version: b84e30acd515aadc4b783ad4ff83aff3299bdfe0 - name: github.com/pkg/errors - version: ff09b135c25aae272398c51a07235b90a75aa4f0 + version: c605e284fe17294bda444b34710735b29d1a9d90 - name: github.com/syndtr/goleveldb version: 8c81ea47d4c41a385645e133e15510fc6a2a74b4 subpackages: @@ -99,7 +99,7 @@ imports: subpackages: - googleapis/rpc/status - name: google.golang.org/grpc - version: 68a5d50f4517bae2b44b18092410fe248d153f1e + version: 844f573616520565fdc6fb4db242321b5456fd6d subpackages: - codes - credentials diff --git a/glide.yaml b/glide.yaml index aa98c8a6a..bd97a4a87 100644 --- a/glide.yaml +++ b/glide.yaml @@ -13,7 +13,7 @@ import: subpackages: - iavl - package: github.com/tendermint/tmlibs - version: feature/testing-logger + version: log subpackages: - common - db From d3e3eca3fed6dad4e56612ce55b29509e0bee318 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Fri, 5 May 2017 14:57:33 -0400 Subject: [PATCH 17/32] update glide --- glide.lock | 6 +++--- glide.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/glide.lock b/glide.lock index 43375f1e5..76fa6c5fb 100644 --- a/glide.lock +++ b/glide.lock @@ -1,5 +1,5 @@ -hash: 8038c78e65a8b5ad4bc6ff8e74c40bd02be23e2c3c4245aff8b354e3dbdec1e2 -updated: 2017-05-05T12:30:23.699400925Z +hash: f9c2ddad16bf8652076a93bd9f398bb498eefb2f5bd2c89a77d966ebd12feec8 +updated: 2017-05-05T14:57:21.118338652-04:00 imports: - name: github.com/btcsuite/btcd version: 4b348c1d33373d672edd83fc576892d0e46686d2 @@ -59,7 +59,7 @@ imports: subpackages: - iavl - name: github.com/tendermint/tmlibs - version: a9a96064a0a494ef6a13c38b4395c20abee64996 + version: d72136da0df105944199c9e04035147fc6a4befa subpackages: - common - db diff --git a/glide.yaml b/glide.yaml index bd97a4a87..11379aad4 100644 --- a/glide.yaml +++ b/glide.yaml @@ -13,7 +13,7 @@ import: subpackages: - iavl - package: github.com/tendermint/tmlibs - version: log + version: develop subpackages: - common - db From a3d4e5797d84514c3a95e2a0f70a078eb543dba9 Mon Sep 17 00:00:00 2001 From: Krzysztof Jurewicz Date: Wed, 5 Apr 2017 14:56:28 +0200 Subject: [PATCH 18/32] Comment out MessageType As it is an unused enum, leaving it uncommented causes dead Protocol Buffers code to be generated. --- types/types.proto | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/types/types.proto b/types/types.proto index 0c741d3d0..242c72f59 100644 --- a/types/types.proto +++ b/types/types.proto @@ -10,22 +10,22 @@ package types; // Could be added to request/response // so we don't have to type switch // (would be twice as fast, but we're talking about 15ns) -enum MessageType { - NullMessage = 0x00; +// enum MessageType { +// NullMessage = 0x00; - Echo = 0x01; - Flush = 0x02; - Info = 0x03; - SetOption = 0x04; - Exception = 0x05; - DeliverTx = 0x11; - CheckTx = 0x12; - Commit = 0x13; - Query = 0x14; - InitChain = 0x15; - BeginBlock = 0x16; - EndBlock = 0x17; -} +// Echo = 0x01; +// Flush = 0x02; +// Info = 0x03; +// SetOption = 0x04; +// Exception = 0x05; +// DeliverTx = 0x11; +// CheckTx = 0x12; +// Commit = 0x13; +// Query = 0x14; +// InitChain = 0x15; +// BeginBlock = 0x16; +// EndBlock = 0x17; +// } //---------------------------------------- // Code types From 322b4e54def8df4929007b21495c63310cfd00cd Mon Sep 17 00:00:00 2001 From: Adrian Brink Date: Tue, 9 May 2017 12:13:28 +0200 Subject: [PATCH 19/32] Remove unused enum MessageTypes --- types/types.proto | 270 +++++++++++++++++++++------------------------- 1 file changed, 123 insertions(+), 147 deletions(-) diff --git a/types/types.proto b/types/types.proto index 242c72f59..1d66df9d4 100644 --- a/types/types.proto +++ b/types/types.proto @@ -3,70 +3,46 @@ package types; // This file is copied from http://github.com/tendermint/abci -//---------------------------------------- -// Message types - -// Not being used -// Could be added to request/response -// so we don't have to type switch -// (would be twice as fast, but we're talking about 15ns) -// enum MessageType { -// NullMessage = 0x00; - -// Echo = 0x01; -// Flush = 0x02; -// Info = 0x03; -// SetOption = 0x04; -// Exception = 0x05; -// DeliverTx = 0x11; -// CheckTx = 0x12; -// Commit = 0x13; -// Query = 0x14; -// InitChain = 0x15; -// BeginBlock = 0x16; -// EndBlock = 0x17; -// } - //---------------------------------------- // Code types enum CodeType { - OK = 0; + OK = 0; - // General response codes, 0 ~ 99 - InternalError = 1; - EncodingError = 2; - BadNonce = 3; - Unauthorized = 4; - InsufficientFunds = 5; - UnknownRequest = 6; + // General response codes, 0 ~ 99 + InternalError = 1; + EncodingError = 2; + BadNonce = 3; + Unauthorized = 4; + InsufficientFunds = 5; + UnknownRequest = 6; - // Reserved for basecoin, 100 ~ 199 - BaseDuplicateAddress = 101; - BaseEncodingError = 102; - BaseInsufficientFees = 103; - BaseInsufficientFunds = 104; - BaseInsufficientGasPrice = 105; - BaseInvalidInput = 106; - BaseInvalidOutput = 107; - BaseInvalidPubKey = 108; - BaseInvalidSequence = 109; - BaseInvalidSignature = 110; - BaseUnknownAddress = 111; - BaseUnknownPubKey = 112; - BaseUnknownPlugin = 113; + // Reserved for basecoin, 100 ~ 199 + BaseDuplicateAddress = 101; + BaseEncodingError = 102; + BaseInsufficientFees = 103; + BaseInsufficientFunds = 104; + BaseInsufficientGasPrice = 105; + BaseInvalidInput = 106; + BaseInvalidOutput = 107; + BaseInvalidPubKey = 108; + BaseInvalidSequence = 109; + BaseInvalidSignature = 110; + BaseUnknownAddress = 111; + BaseUnknownPubKey = 112; + BaseUnknownPlugin = 113; - // Reserved for governance, 200 ~ 299 - GovUnknownEntity = 201; - GovUnknownGroup = 202; - GovUnknownProposal = 203; - GovDuplicateGroup = 204; - GovDuplicateMember = 205; - GovDuplicateProposal = 206; - GovDuplicateVote = 207; - GovInvalidMember = 208; - GovInvalidVote = 209; - GovInvalidVotingPower = 210; + // Reserved for governance, 200 ~ 299 + GovUnknownEntity = 201; + GovUnknownGroup = 202; + GovUnknownProposal = 203; + GovDuplicateGroup = 204; + GovDuplicateMember = 205; + GovDuplicateProposal = 206; + GovDuplicateVote = 207; + GovInvalidMember = 208; + GovInvalidVote = 209; + GovInvalidVotingPower = 210; } @@ -74,23 +50,23 @@ enum CodeType { // Request types message Request { - oneof value{ - RequestEcho echo = 1; - RequestFlush flush = 2; - RequestInfo info = 3; - RequestSetOption set_option = 4; - RequestDeliverTx deliver_tx = 5; - RequestCheckTx check_tx = 6; - RequestCommit commit = 7; - RequestQuery query = 8; - RequestInitChain init_chain = 9; - RequestBeginBlock begin_block = 10; - RequestEndBlock end_block = 11; - } + oneof value{ + RequestEcho echo = 1; + RequestFlush flush = 2; + RequestInfo info = 3; + RequestSetOption set_option = 4; + RequestDeliverTx deliver_tx = 5; + RequestCheckTx check_tx = 6; + RequestCommit commit = 7; + RequestQuery query = 8; + RequestInitChain init_chain = 9; + RequestBeginBlock begin_block = 10; + RequestEndBlock end_block = 11; + } } message RequestEcho { - string message = 1; + string message = 1; } message RequestFlush { @@ -100,39 +76,39 @@ message RequestInfo { } message RequestSetOption{ - string key = 1; - string value = 2; + string key = 1; + string value = 2; } message RequestDeliverTx{ - bytes tx = 1; + bytes tx = 1; } message RequestCheckTx{ - bytes tx = 1; + bytes tx = 1; } message RequestQuery{ - bytes data = 1; - string path = 2; - uint64 height = 3; - bool prove = 4; + bytes data = 1; + string path = 2; + uint64 height = 3; + bool prove = 4; } message RequestCommit{ } message RequestInitChain{ - repeated Validator validators = 1; + repeated Validator validators = 1; } message RequestBeginBlock{ - bytes hash = 1; - Header header = 2; + bytes hash = 1; + Header header = 2; } message RequestEndBlock{ - uint64 height = 1; + uint64 height = 1; } //---------------------------------------- @@ -140,70 +116,70 @@ message RequestEndBlock{ message Response { - oneof value{ - ResponseException exception = 1; - ResponseEcho echo = 2; - ResponseFlush flush = 3; - ResponseInfo info = 4; - ResponseSetOption set_option = 5; - ResponseDeliverTx deliver_tx = 6; - ResponseCheckTx check_tx = 7; - ResponseCommit commit = 8; - ResponseQuery query = 9; - ResponseInitChain init_chain = 10; - ResponseBeginBlock begin_block = 11; - ResponseEndBlock end_block = 12; - } + oneof value{ + ResponseException exception = 1; + ResponseEcho echo = 2; + ResponseFlush flush = 3; + ResponseInfo info = 4; + ResponseSetOption set_option = 5; + ResponseDeliverTx deliver_tx = 6; + ResponseCheckTx check_tx = 7; + ResponseCommit commit = 8; + ResponseQuery query = 9; + ResponseInitChain init_chain = 10; + ResponseBeginBlock begin_block = 11; + ResponseEndBlock end_block = 12; + } } message ResponseException{ - string error = 1; + string error = 1; } message ResponseEcho { - string message = 1; + string message = 1; } message ResponseFlush{ } message ResponseInfo { - string data = 1; - string version = 2; - uint64 last_block_height = 3; - bytes last_block_app_hash = 4; + string data = 1; + string version = 2; + uint64 last_block_height = 3; + bytes last_block_app_hash = 4; } message ResponseSetOption{ - string log = 1; + string log = 1; } message ResponseDeliverTx{ - CodeType code = 1; - bytes data = 2; - string log = 3; + CodeType code = 1; + bytes data = 2; + string log = 3; } message ResponseCheckTx{ - CodeType code = 1; - bytes data = 2; - string log = 3; + CodeType code = 1; + bytes data = 2; + string log = 3; } message ResponseQuery{ - CodeType code = 1; - int64 index = 2; - bytes key = 3; - bytes value = 4; - bytes proof = 5; - uint64 height = 6; - string log = 7; + CodeType code = 1; + int64 index = 2; + bytes key = 3; + bytes value = 4; + bytes proof = 5; + uint64 height = 6; + string log = 7; } message ResponseCommit{ - CodeType code = 1; - bytes data = 2; - string log = 3; + CodeType code = 1; + bytes data = 2; + string log = 3; } @@ -214,52 +190,52 @@ message ResponseBeginBlock{ } message ResponseEndBlock{ - repeated Validator diffs = 1; + repeated Validator diffs = 1; } //---------------------------------------- // Blockchain Types message Header { - string chain_id = 1; - uint64 height = 2; - uint64 time = 3; - uint64 num_txs = 4; - BlockID last_block_id = 5; - bytes last_commit_hash = 6; - bytes data_hash = 7; - bytes validators_hash = 8; - bytes app_hash = 9; + string chain_id = 1; + uint64 height = 2; + uint64 time = 3; + uint64 num_txs = 4; + BlockID last_block_id = 5; + bytes last_commit_hash = 6; + bytes data_hash = 7; + bytes validators_hash = 8; + bytes app_hash = 9; } message BlockID { - bytes hash = 1; - PartSetHeader parts = 2; + bytes hash = 1; + PartSetHeader parts = 2; } message PartSetHeader { - uint64 total = 1; - bytes hash = 2; + uint64 total = 1; + bytes hash = 2; } message Validator { - bytes pubKey = 1; - uint64 power = 2; + bytes pubKey = 1; + uint64 power = 2; } //---------------------------------------- // Service Definition service ABCIApplication { - rpc Echo(RequestEcho) returns (ResponseEcho) ; - rpc Flush(RequestFlush) returns (ResponseFlush); - rpc Info(RequestInfo) returns (ResponseInfo); - rpc SetOption(RequestSetOption) returns (ResponseSetOption); - rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx); - rpc CheckTx(RequestCheckTx) returns (ResponseCheckTx); - rpc Query(RequestQuery) returns (ResponseQuery); - rpc Commit(RequestCommit) returns (ResponseCommit); - rpc InitChain(RequestInitChain) returns (ResponseInitChain); - rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock); - rpc EndBlock(RequestEndBlock) returns (ResponseEndBlock); + rpc Echo(RequestEcho) returns (ResponseEcho) ; + rpc Flush(RequestFlush) returns (ResponseFlush); + rpc Info(RequestInfo) returns (ResponseInfo); + rpc SetOption(RequestSetOption) returns (ResponseSetOption); + rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx); + rpc CheckTx(RequestCheckTx) returns (ResponseCheckTx); + rpc Query(RequestQuery) returns (ResponseQuery); + rpc Commit(RequestCommit) returns (ResponseCommit); + rpc InitChain(RequestInitChain) returns (ResponseInitChain); + rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock); + rpc EndBlock(RequestEndBlock) returns (ResponseEndBlock); } From 577ec5452f92a39b1d02ac5774cdd963ab545b47 Mon Sep 17 00:00:00 2001 From: Adrian Brink Date: Tue, 9 May 2017 12:33:38 +0200 Subject: [PATCH 20/32] Fix indentation --- types/types.proto | 246 +++++++++++++++++++++++----------------------- 1 file changed, 123 insertions(+), 123 deletions(-) diff --git a/types/types.proto b/types/types.proto index 1d66df9d4..7abc354d9 100644 --- a/types/types.proto +++ b/types/types.proto @@ -7,42 +7,42 @@ package types; // Code types enum CodeType { - OK = 0; + OK = 0; - // General response codes, 0 ~ 99 - InternalError = 1; - EncodingError = 2; - BadNonce = 3; - Unauthorized = 4; - InsufficientFunds = 5; - UnknownRequest = 6; + // General response codes, 0 ~ 99 + InternalError = 1; + EncodingError = 2; + BadNonce = 3; + Unauthorized = 4; + InsufficientFunds = 5; + UnknownRequest = 6; - // Reserved for basecoin, 100 ~ 199 - BaseDuplicateAddress = 101; - BaseEncodingError = 102; - BaseInsufficientFees = 103; - BaseInsufficientFunds = 104; - BaseInsufficientGasPrice = 105; - BaseInvalidInput = 106; - BaseInvalidOutput = 107; - BaseInvalidPubKey = 108; - BaseInvalidSequence = 109; - BaseInvalidSignature = 110; - BaseUnknownAddress = 111; - BaseUnknownPubKey = 112; - BaseUnknownPlugin = 113; + // Reserved for basecoin, 100 ~ 199 + BaseDuplicateAddress = 101; + BaseEncodingError = 102; + BaseInsufficientFees = 103; + BaseInsufficientFunds = 104; + BaseInsufficientGasPrice = 105; + BaseInvalidInput = 106; + BaseInvalidOutput = 107; + BaseInvalidPubKey = 108; + BaseInvalidSequence = 109; + BaseInvalidSignature = 110; + BaseUnknownAddress = 111; + BaseUnknownPubKey = 112; + BaseUnknownPlugin = 113; - // Reserved for governance, 200 ~ 299 - GovUnknownEntity = 201; - GovUnknownGroup = 202; - GovUnknownProposal = 203; - GovDuplicateGroup = 204; - GovDuplicateMember = 205; - GovDuplicateProposal = 206; - GovDuplicateVote = 207; - GovInvalidMember = 208; - GovInvalidVote = 209; - GovInvalidVotingPower = 210; + // Reserved for governance, 200 ~ 299 + GovUnknownEntity = 201; + GovUnknownGroup = 202; + GovUnknownProposal = 203; + GovDuplicateGroup = 204; + GovDuplicateMember = 205; + GovDuplicateProposal = 206; + GovDuplicateVote = 207; + GovInvalidMember = 208; + GovInvalidVote = 209; + GovInvalidVotingPower = 210; } @@ -50,23 +50,23 @@ enum CodeType { // Request types message Request { - oneof value{ - RequestEcho echo = 1; - RequestFlush flush = 2; - RequestInfo info = 3; - RequestSetOption set_option = 4; - RequestDeliverTx deliver_tx = 5; - RequestCheckTx check_tx = 6; - RequestCommit commit = 7; - RequestQuery query = 8; - RequestInitChain init_chain = 9; - RequestBeginBlock begin_block = 10; - RequestEndBlock end_block = 11; - } + oneof value{ + RequestEcho echo = 1; + RequestFlush flush = 2; + RequestInfo info = 3; + RequestSetOption set_option = 4; + RequestDeliverTx deliver_tx = 5; + RequestCheckTx check_tx = 6; + RequestCommit commit = 7; + RequestQuery query = 8; + RequestInitChain init_chain = 9; + RequestBeginBlock begin_block = 10; + RequestEndBlock end_block = 11; + } } message RequestEcho { - string message = 1; + string message = 1; } message RequestFlush { @@ -76,39 +76,39 @@ message RequestInfo { } message RequestSetOption{ - string key = 1; - string value = 2; + string key = 1; + string value = 2; } message RequestDeliverTx{ - bytes tx = 1; + bytes tx = 1; } message RequestCheckTx{ - bytes tx = 1; + bytes tx = 1; } message RequestQuery{ - bytes data = 1; - string path = 2; - uint64 height = 3; - bool prove = 4; + bytes data = 1; + string path = 2; + uint64 height = 3; + bool prove = 4; } message RequestCommit{ } message RequestInitChain{ - repeated Validator validators = 1; + repeated Validator validators = 1; } message RequestBeginBlock{ - bytes hash = 1; - Header header = 2; + bytes hash = 1; + Header header = 2; } message RequestEndBlock{ - uint64 height = 1; + uint64 height = 1; } //---------------------------------------- @@ -116,70 +116,70 @@ message RequestEndBlock{ message Response { - oneof value{ - ResponseException exception = 1; - ResponseEcho echo = 2; - ResponseFlush flush = 3; - ResponseInfo info = 4; - ResponseSetOption set_option = 5; - ResponseDeliverTx deliver_tx = 6; - ResponseCheckTx check_tx = 7; - ResponseCommit commit = 8; - ResponseQuery query = 9; - ResponseInitChain init_chain = 10; - ResponseBeginBlock begin_block = 11; - ResponseEndBlock end_block = 12; - } + oneof value{ + ResponseException exception = 1; + ResponseEcho echo = 2; + ResponseFlush flush = 3; + ResponseInfo info = 4; + ResponseSetOption set_option = 5; + ResponseDeliverTx deliver_tx = 6; + ResponseCheckTx check_tx = 7; + ResponseCommit commit = 8; + ResponseQuery query = 9; + ResponseInitChain init_chain = 10; + ResponseBeginBlock begin_block = 11; + ResponseEndBlock end_block = 12; + } } message ResponseException{ - string error = 1; + string error = 1; } message ResponseEcho { - string message = 1; + string message = 1; } message ResponseFlush{ } message ResponseInfo { - string data = 1; - string version = 2; - uint64 last_block_height = 3; - bytes last_block_app_hash = 4; + string data = 1; + string version = 2; + uint64 last_block_height = 3; + bytes last_block_app_hash = 4; } message ResponseSetOption{ - string log = 1; + string log = 1; } message ResponseDeliverTx{ - CodeType code = 1; - bytes data = 2; - string log = 3; + CodeType code = 1; + bytes data = 2; + string log = 3; } message ResponseCheckTx{ - CodeType code = 1; - bytes data = 2; - string log = 3; + CodeType code = 1; + bytes data = 2; + string log = 3; } message ResponseQuery{ - CodeType code = 1; - int64 index = 2; - bytes key = 3; - bytes value = 4; - bytes proof = 5; - uint64 height = 6; - string log = 7; + CodeType code = 1; + int64 index = 2; + bytes key = 3; + bytes value = 4; + bytes proof = 5; + uint64 height = 6; + string log = 7; } message ResponseCommit{ - CodeType code = 1; - bytes data = 2; - string log = 3; + CodeType code = 1; + bytes data = 2; + string log = 3; } @@ -190,52 +190,52 @@ message ResponseBeginBlock{ } message ResponseEndBlock{ - repeated Validator diffs = 1; + repeated Validator diffs = 1; } //---------------------------------------- // Blockchain Types message Header { - string chain_id = 1; - uint64 height = 2; - uint64 time = 3; - uint64 num_txs = 4; - BlockID last_block_id = 5; - bytes last_commit_hash = 6; - bytes data_hash = 7; - bytes validators_hash = 8; - bytes app_hash = 9; + string chain_id = 1; + uint64 height = 2; + uint64 time = 3; + uint64 num_txs = 4; + BlockID last_block_id = 5; + bytes last_commit_hash = 6; + bytes data_hash = 7; + bytes validators_hash = 8; + bytes app_hash = 9; } message BlockID { - bytes hash = 1; - PartSetHeader parts = 2; + bytes hash = 1; + PartSetHeader parts = 2; } message PartSetHeader { - uint64 total = 1; - bytes hash = 2; + uint64 total = 1; + bytes hash = 2; } message Validator { - bytes pubKey = 1; - uint64 power = 2; + bytes pubKey = 1; + uint64 power = 2; } //---------------------------------------- // Service Definition service ABCIApplication { - rpc Echo(RequestEcho) returns (ResponseEcho) ; - rpc Flush(RequestFlush) returns (ResponseFlush); - rpc Info(RequestInfo) returns (ResponseInfo); - rpc SetOption(RequestSetOption) returns (ResponseSetOption); - rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx); - rpc CheckTx(RequestCheckTx) returns (ResponseCheckTx); - rpc Query(RequestQuery) returns (ResponseQuery); - rpc Commit(RequestCommit) returns (ResponseCommit); - rpc InitChain(RequestInitChain) returns (ResponseInitChain); - rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock); - rpc EndBlock(RequestEndBlock) returns (ResponseEndBlock); + rpc Echo(RequestEcho) returns (ResponseEcho) ; + rpc Flush(RequestFlush) returns (ResponseFlush); + rpc Info(RequestInfo) returns (ResponseInfo); + rpc SetOption(RequestSetOption) returns (ResponseSetOption); + rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx); + rpc CheckTx(RequestCheckTx) returns (ResponseCheckTx); + rpc Query(RequestQuery) returns (ResponseQuery); + rpc Commit(RequestCommit) returns (ResponseCommit); + rpc InitChain(RequestInitChain) returns (ResponseInitChain); + rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock); + rpc EndBlock(RequestEndBlock) returns (ResponseEndBlock); } From 840e658ec01829aed2cf47cdae216a03d9609300 Mon Sep 17 00:00:00 2001 From: Jacob Gadikian Date: Mon, 1 May 2017 22:53:51 +0700 Subject: [PATCH 21/32] Update grpc_server.go --- server/grpc_server.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/server/grpc_server.go b/server/grpc_server.go index 003a76611..37ef20a86 100644 --- a/server/grpc_server.go +++ b/server/grpc_server.go @@ -1,3 +1,13 @@ +/* +Package server is used to start a new ABCI server. + +It defines the struct for gRPC server settings, and functions for: + +* Starting a new gRPC server +* Stopping a gRPC server + +*/ + package server import ( @@ -12,6 +22,7 @@ import ( // var maxNumberConnections = 2 +//GRPCServer is used to set the protocol and address for gRPC. type GRPCServer struct { cmn.BaseService @@ -23,6 +34,7 @@ type GRPCServer struct { app types.ABCIApplicationServer } +//NewGRPCServer allows setting up a new gRPC ABCI server. func NewGRPCServer(protoAddr string, app types.ABCIApplicationServer) (cmn.Service, error) { parts := strings.SplitN(protoAddr, "://", 2) proto, addr := parts[0], parts[1] @@ -37,6 +49,7 @@ func NewGRPCServer(protoAddr string, app types.ABCIApplicationServer) (cmn.Servi return s, err } +//Onstart registers a new gRPC service and tells that service to listen on the port that is set in NewGRPCServer. func (s *GRPCServer) OnStart() error { s.BaseService.OnStart() ln, err := net.Listen(s.proto, s.addr) @@ -50,6 +63,7 @@ func (s *GRPCServer) OnStart() error { return nil } +//OnStop is called when a gRPC server is stopped. func (s *GRPCServer) OnStop() { s.BaseService.OnStop() s.server.Stop() From e43bcf3f2615770eb08a70d3c62569f7b823c935 Mon Sep 17 00:00:00 2001 From: Adrian Brink Date: Tue, 9 May 2017 12:40:18 +0200 Subject: [PATCH 22/32] Move package comment --- server/grpc_server.go | 16 +++------------- server/server.go | 9 +++++++++ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/server/grpc_server.go b/server/grpc_server.go index 37ef20a86..1d8dd1ef3 100644 --- a/server/grpc_server.go +++ b/server/grpc_server.go @@ -1,13 +1,3 @@ -/* -Package server is used to start a new ABCI server. - -It defines the struct for gRPC server settings, and functions for: - -* Starting a new gRPC server -* Stopping a gRPC server - -*/ - package server import ( @@ -22,7 +12,7 @@ import ( // var maxNumberConnections = 2 -//GRPCServer is used to set the protocol and address for gRPC. +//GRPCServer is used to set the protocol and address for gRPC. type GRPCServer struct { cmn.BaseService @@ -49,7 +39,7 @@ func NewGRPCServer(protoAddr string, app types.ABCIApplicationServer) (cmn.Servi return s, err } -//Onstart registers a new gRPC service and tells that service to listen on the port that is set in NewGRPCServer. +//Onstart registers a new gRPC service and tells that service to listen on the port that is set in NewGRPCServer. func (s *GRPCServer) OnStart() error { s.BaseService.OnStart() ln, err := net.Listen(s.proto, s.addr) @@ -63,7 +53,7 @@ func (s *GRPCServer) OnStart() error { return nil } -//OnStop is called when a gRPC server is stopped. +//OnStop is called when a gRPC server is stopped. func (s *GRPCServer) OnStop() { s.BaseService.OnStop() s.server.Stop() diff --git a/server/server.go b/server/server.go index d18df820f..45d9ac1fa 100644 --- a/server/server.go +++ b/server/server.go @@ -1,3 +1,12 @@ +/* +Package server is used to start a new ABCI server. + +It contains two server implementation: + * gRPC server + * socket server + +*/ + package server import ( From ea2d83e513a99b90f96099a2e04fbc5b935c73a9 Mon Sep 17 00:00:00 2001 From: Adrian Brink Date: Sat, 13 May 2017 10:01:16 +0200 Subject: [PATCH 23/32] Clean up comments --- server/grpc_server.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/server/grpc_server.go b/server/grpc_server.go index 1d8dd1ef3..ae2a481d0 100644 --- a/server/grpc_server.go +++ b/server/grpc_server.go @@ -10,9 +10,6 @@ import ( cmn "github.com/tendermint/tmlibs/common" ) -// var maxNumberConnections = 2 - -//GRPCServer is used to set the protocol and address for gRPC. type GRPCServer struct { cmn.BaseService @@ -24,7 +21,7 @@ type GRPCServer struct { app types.ABCIApplicationServer } -//NewGRPCServer allows setting up a new gRPC ABCI server. +// NewGRPCServer returns a new gRPC ABCI server func NewGRPCServer(protoAddr string, app types.ABCIApplicationServer) (cmn.Service, error) { parts := strings.SplitN(protoAddr, "://", 2) proto, addr := parts[0], parts[1] @@ -39,7 +36,7 @@ func NewGRPCServer(protoAddr string, app types.ABCIApplicationServer) (cmn.Servi return s, err } -//Onstart registers a new gRPC service and tells that service to listen on the port that is set in NewGRPCServer. +// OnStart starts the gRPC service func (s *GRPCServer) OnStart() error { s.BaseService.OnStart() ln, err := net.Listen(s.proto, s.addr) @@ -53,7 +50,7 @@ func (s *GRPCServer) OnStart() error { return nil } -//OnStop is called when a gRPC server is stopped. +// OnStop stops the gRPC server func (s *GRPCServer) OnStop() { s.BaseService.OnStop() s.server.Stop() From 4674bf96b036ec64f70f836593a68388f3d12ae5 Mon Sep 17 00:00:00 2001 From: Adrian Brink Date: Sat, 13 May 2017 18:37:00 +0200 Subject: [PATCH 24/32] Extend the query command --- cmd/abci-cli/abci-cli.go | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/cmd/abci-cli/abci-cli.go b/cmd/abci-cli/abci-cli.go index f4fe45fee..9327a3f17 100644 --- a/cmd/abci-cli/abci-cli.go +++ b/cmd/abci-cli/abci-cli.go @@ -7,6 +7,7 @@ import ( "fmt" "io" "os" + "strconv" "strings" abcicli "github.com/tendermint/abci/client" @@ -307,18 +308,36 @@ func cmdCommit(c *cli.Context) error { // TODO: Make request and response support all fields. func cmdQuery(c *cli.Context) error { args := c.Args() - if len(args) != 1 { - return errors.New("Command query takes 1 argument") + fmt.Println(len(args)) + if len(args) == 0 { + return errors.New("Command query takes 1 or more arguments") } - queryBytes, err := stringOrHexToBytes(c.Args()[0]) + + queryBytes, err := stringOrHexToBytes(args[0]) if err != nil { return err } + + var path = "/store" + if len(args) > 1 { + path = args[1] + } + + var height uint64 + if len(args) > 2 { + height, _ = strconv.ParseUint(args[2], 10, 64) + } + + var prove = true + if len(args) > 3 { + prove, _ = strconv.ParseBool(args[3]) + } + resQuery, err := client.QuerySync(types.RequestQuery{ Data: queryBytes, - Path: "/store", // TOOD expose - Height: 0, // TODO expose - //Prove: true, // TODO expose + Path: path, + Height: height, + Prove: prove, }) if err != nil { return err From b55e695d3d33d87c2ab1335669c597fd746ca384 Mon Sep 17 00:00:00 2001 From: Adrian Brink Date: Sat, 13 May 2017 21:08:34 +0200 Subject: [PATCH 25/32] Remove debug statement --- cmd/abci-cli/abci-cli.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/abci-cli/abci-cli.go b/cmd/abci-cli/abci-cli.go index 9327a3f17..de157832c 100644 --- a/cmd/abci-cli/abci-cli.go +++ b/cmd/abci-cli/abci-cli.go @@ -308,7 +308,7 @@ func cmdCommit(c *cli.Context) error { // TODO: Make request and response support all fields. func cmdQuery(c *cli.Context) error { args := c.Args() - fmt.Println(len(args)) + if len(args) == 0 { return errors.New("Command query takes 1 or more arguments") } From 05dc4d12dd00f72bc0d57971c0da47f8da252d45 Mon Sep 17 00:00:00 2001 From: rigel rozanski Date: Sat, 13 May 2017 19:08:04 -0400 Subject: [PATCH 26/32] result.IsSameCode --- types/result.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/types/result.go b/types/result.go index c7f2d565c..7bf52c90a 100644 --- a/types/result.go +++ b/types/result.go @@ -29,6 +29,10 @@ func (res Result) IsErr() bool { return res.Code != CodeType_OK } +func (res Result) IsSameCode(compare Result) bool { + return res.Code == compare.Code +} + func (res Result) Error() string { return fmt.Sprintf("ABCI{code:%v, data:%X, log:%v}", res.Code, res.Data, res.Log) } From eda4f2dddcb68ca515711660efdd023541c90194 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 15 May 2017 11:29:34 -0400 Subject: [PATCH 27/32] NewXXXClient doesnt run Start or return error --- client/client.go | 7 ++--- client/grpc_client.go | 5 ++-- client/socket_client.go | 7 ++--- cmd/abci-cli/abci-cli.go | 5 +++- example/block_aware/block_aware_test.go | 4 +-- example/dummy/dummy_test.go | 8 +++--- example/example_test.go | 4 +-- glide.lock | 35 ++++++++++++++++--------- tests/test_app/app.go | 4 +++ 9 files changed, 46 insertions(+), 33 deletions(-) diff --git a/client/client.go b/client/client.go index a54978fcc..c911dd876 100644 --- a/client/client.go +++ b/client/client.go @@ -43,15 +43,16 @@ type Client interface { //---------------------------------------- +// NewClient returns a new ABCI client of the specified transport type. +// It returns an error if the transport is not "socket" or "grpc" func NewClient(addr, transport string, mustConnect bool) (client Client, err error) { switch transport { case "socket": - client, err = NewSocketClient(addr, mustConnect) + client = NewSocketClient(addr, mustConnect) case "grpc": - client, err = NewGRPCClient(addr, mustConnect) + client = NewGRPCClient(addr, mustConnect) default: err = fmt.Errorf("Unknown abci transport %s", transport) - } return } diff --git a/client/grpc_client.go b/client/grpc_client.go index 25783101e..9743cdf62 100644 --- a/client/grpc_client.go +++ b/client/grpc_client.go @@ -27,14 +27,13 @@ type grpcClient struct { resCb func(*types.Request, *types.Response) // listens to all callbacks } -func NewGRPCClient(addr string, mustConnect bool) (*grpcClient, error) { +func NewGRPCClient(addr string, mustConnect bool) *grpcClient { cli := &grpcClient{ addr: addr, mustConnect: mustConnect, } cli.BaseService = *cmn.NewBaseService(nil, "grpcClient", cli) - _, err := cli.Start() // Just start it, it's confusing for callers to remember to start. - return cli, err + return cli } func dialerFunc(addr string, timeout time.Duration) (net.Conn, error) { diff --git a/client/socket_client.go b/client/socket_client.go index dd3e2903b..f95eac5cc 100644 --- a/client/socket_client.go +++ b/client/socket_client.go @@ -42,7 +42,7 @@ type socketClient struct { } -func NewSocketClient(addr string, mustConnect bool) (*socketClient, error) { +func NewSocketClient(addr string, mustConnect bool) *socketClient { cli := &socketClient{ reqQueue: make(chan *ReqRes, reqQueueSize), flushTimer: cmn.NewThrottleTimer("socketClient", flushThrottleMS), @@ -53,10 +53,7 @@ func NewSocketClient(addr string, mustConnect bool) (*socketClient, error) { resCb: nil, } cli.BaseService = *cmn.NewBaseService(nil, "socketClient", cli) - // FIXME we are loosing "Starting socketClient" message here - // add logger to params? - _, err := cli.Start() // Just start it, it's confusing for callers to remember to start. - return cli, err + return cli } func (cli *socketClient) OnStart() error { diff --git a/cmd/abci-cli/abci-cli.go b/cmd/abci-cli/abci-cli.go index f4fe45fee..3cf6ab894 100644 --- a/cmd/abci-cli/abci-cli.go +++ b/cmd/abci-cli/abci-cli.go @@ -139,7 +139,7 @@ func main() { func before(c *cli.Context) error { if logger == nil { - logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout)) + logger = log.NewFilter(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), log.AllowError()) } if client == nil { var err error @@ -149,6 +149,9 @@ func before(c *cli.Context) error { os.Exit(1) } client.SetLogger(logger.With("module", "abci-client")) + if _, err := client.Start(); err != nil { + return err + } } return nil } diff --git a/example/block_aware/block_aware_test.go b/example/block_aware/block_aware_test.go index 6d42b876e..817deec63 100644 --- a/example/block_aware/block_aware_test.go +++ b/example/block_aware/block_aware_test.go @@ -23,8 +23,8 @@ func TestChainAware(t *testing.T) { defer srv.Stop() // Connect to the socket - client, err := abcicli.NewSocketClient("unix://test.sock", false) - if err != nil { + client := abcicli.NewSocketClient("unix://test.sock", false) + if _, err := client.Start(); err != nil { t.Fatalf("Error starting socket client: %v", err.Error()) } client.SetLogger(log.TestingLogger().With("module", "abci-client")) diff --git a/example/dummy/dummy_test.go b/example/dummy/dummy_test.go index f805dd73c..8ef36d077 100644 --- a/example/dummy/dummy_test.go +++ b/example/dummy/dummy_test.go @@ -221,8 +221,8 @@ func makeSocketClientServer(app types.Application, name string) (abcicli.Client, server.SetLogger(logger.With("module", "abci-server")) // Connect to the socket - client, err := abcicli.NewSocketClient(socket, false) - if err != nil { + client := abcicli.NewSocketClient(socket, false) + if _, err := client.Start(); err != nil { server.Stop() return nil, nil, err } @@ -244,8 +244,8 @@ func makeGRPCClientServer(app types.Application, name string) (abcicli.Client, c } server.SetLogger(logger.With("module", "abci-server")) - client, err := abcicli.NewGRPCClient(socket, true) - if err != nil { + client := abcicli.NewGRPCClient(socket, true) + if _, err := client.Start(); err != nil { server.Stop() return nil, nil, err } diff --git a/example/example_test.go b/example/example_test.go index 85c13d7d6..cdb44082f 100644 --- a/example/example_test.go +++ b/example/example_test.go @@ -46,8 +46,8 @@ func testStream(t *testing.T, app types.Application) { defer server.Stop() // Connect to the socket - client, err := abcicli.NewSocketClient("unix://test.sock", false) - if err != nil { + client := abcicli.NewSocketClient("unix://test.sock", false) + if _, err := client.Start(); err != nil { t.Fatalf("Error starting socket client: %v", err.Error()) } client.SetLogger(log.TestingLogger().With("module", "abci-client")) diff --git a/glide.lock b/glide.lock index 76fa6c5fb..55c5cdb38 100644 --- a/glide.lock +++ b/glide.lock @@ -1,12 +1,16 @@ hash: f9c2ddad16bf8652076a93bd9f398bb498eefb2f5bd2c89a77d966ebd12feec8 -updated: 2017-05-05T14:57:21.118338652-04:00 +updated: 2017-05-15T10:11:42.094564957-04:00 imports: - name: github.com/btcsuite/btcd - version: 4b348c1d33373d672edd83fc576892d0e46686d2 + version: b8df516b4b267acf2de46be593a9d948d1d2c420 subpackages: - btcec +- name: github.com/btcsuite/fastsha256 + version: 637e656429416087660c84436a2a035d69d54e2e +- name: github.com/clipperhouse/typewriter + version: c1a48da378ebb7db1db9f35981b5cc24bf2e5b85 - name: github.com/go-kit/kit - version: 0873e56b0faeae3a1d661b10d629135508ea5504 + version: d67bb4c202e3b91377d1079b110a6c9ce23ab2f8 subpackages: - log - log/level @@ -14,7 +18,7 @@ imports: - name: github.com/go-logfmt/logfmt version: 390ab7935ee28ec6b286364bba9b4dd6410cb3d5 - name: github.com/go-stack/stack - version: 7a2f19628aabfe68f0766b59e74d6315f8347d22 + version: 100eb0c0a9c5b306ca2fb4f165df21d80ada4b82 - name: github.com/golang/protobuf version: 18c9bb3261723cd5401db4d0c9fbc5c3b6c70fe8 subpackages: @@ -27,7 +31,7 @@ imports: - name: github.com/kr/logfmt version: b84e30acd515aadc4b783ad4ff83aff3299bdfe0 - name: github.com/pkg/errors - version: c605e284fe17294bda444b34710735b29d1a9d90 + version: ff09b135c25aae272398c51a07235b90a75aa4f0 - name: github.com/syndtr/goleveldb version: 8c81ea47d4c41a385645e133e15510fc6a2a74b4 subpackages: @@ -49,17 +53,17 @@ imports: - edwards25519 - extra25519 - name: github.com/tendermint/go-crypto - version: 524ba917a3a1636f21ab2c0bf76b6526903ab879 + version: a42b10e0feb465eb56fbc6bb5b71d57ef646ec57 - name: github.com/tendermint/go-wire - version: b53add0b622662731985485f3a19be7f684660b8 + version: 301a758c9d28e9f3900ff5d545403cf4e5f6e73f subpackages: - data - name: github.com/tendermint/merkleeyes - version: d0aa363fd4e015e509038c3a0ec493bc62ee0b8a + version: c722818b460381bc5b82e38c73ff6e22a9df624d subpackages: - iavl - name: github.com/tendermint/tmlibs - version: d72136da0df105944199c9e04035147fc6a4befa + version: 812d9f9b84d1dfe4cb46ce021b3a2d97b48d1292 subpackages: - common - db @@ -67,9 +71,9 @@ imports: - merkle - process - name: github.com/urfave/cli - version: ab403a54a148f2d857920810291539e1f817ee7b + version: d70f47eeca3afd795160003bc6e28b001d60c67c - name: golang.org/x/crypto - version: 5a033cc77e57eca05bdb50522851d29e03569cbe + version: c7af5bf2638a1164f2eb5467c39c6cffbd13a02e subpackages: - nacl/secretbox - openpgp/armor @@ -94,6 +98,11 @@ imports: - transform - unicode/bidi - unicode/norm +- name: golang.org/x/tools + version: 144c6642b5d832d6c44a53dad6ee61665dd432ce + subpackages: + - go/ast/astutil + - imports - name: google.golang.org/genproto version: 411e09b969b1170a9f0c467558eb4c4c110d9c77 subpackages: @@ -116,7 +125,7 @@ imports: - transport testImports: - name: github.com/davecgh/go-spew - version: 04cdfd42973bb9c8589fd6a731800cf222fde1a9 + version: 6d212800a42e8ab5c146b8ace3490ee17e5225f9 subpackages: - spew - name: github.com/pmezard/go-difflib @@ -124,7 +133,7 @@ testImports: subpackages: - difflib - name: github.com/stretchr/testify - version: 4d4bfba8f1d1027c4fdbe371823030df51419987 + version: 69483b4bd14f5845b5a1e55bca19e954e827f1d0 subpackages: - assert - require diff --git a/tests/test_app/app.go b/tests/test_app/app.go index a88a05fd6..3930957d7 100644 --- a/tests/test_app/app.go +++ b/tests/test_app/app.go @@ -36,8 +36,12 @@ func startClient(abciType string) abcicli.Client { // Start client client, err := abcicli.NewClient("tcp://127.0.0.1:46658", abciType, true) if err != nil { + panic(err.Error()) + } + if _, err := client.Start(); err != nil { panic("connecting to abci_app: " + err.Error()) } + logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)) client.SetLogger(logger.With("module", "abcicli")) return client From 894f3fca73b2dacca5fe99bda50c128d5cbef8e5 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 15 May 2017 12:28:37 -0400 Subject: [PATCH 28/32] cmd: query params are flags --- cmd/abci-cli/abci-cli.go | 41 +++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/cmd/abci-cli/abci-cli.go b/cmd/abci-cli/abci-cli.go index de157832c..1b3d2dc50 100644 --- a/cmd/abci-cli/abci-cli.go +++ b/cmd/abci-cli/abci-cli.go @@ -7,7 +7,6 @@ import ( "fmt" "io" "os" - "strconv" "strings" abcicli "github.com/tendermint/abci/client" @@ -127,6 +126,22 @@ func main() { Action: func(c *cli.Context) error { return cmdQuery(c) }, + Flags: []cli.Flag{ + cli.StringFlag{ + Name: "path", + Value: "/store", + Usage: "Path to prefix the query with", + }, + cli.IntFlag{ + Name: "height", + Value: 0, + Usage: "Height to query the blockchain at", + }, + cli.BoolFlag{ + Name: "prove", + Usage: "Whether or not to return a merkle proof of the query result", + }, + }, }, } app.Before = before @@ -305,12 +320,11 @@ func cmdCommit(c *cli.Context) error { } // Query application state -// TODO: Make request and response support all fields. func cmdQuery(c *cli.Context) error { args := c.Args() - if len(args) == 0 { - return errors.New("Command query takes 1 or more arguments") + if len(args) != 1 { + return errors.New("Command query takes 1 argument, the query bytes") } queryBytes, err := stringOrHexToBytes(args[0]) @@ -318,25 +332,14 @@ func cmdQuery(c *cli.Context) error { return err } - var path = "/store" - if len(args) > 1 { - path = args[1] - } - - var height uint64 - if len(args) > 2 { - height, _ = strconv.ParseUint(args[2], 10, 64) - } - - var prove = true - if len(args) > 3 { - prove, _ = strconv.ParseBool(args[3]) - } + path := c.String("path") + height := c.Int("height") + prove := c.Bool("prove") resQuery, err := client.QuerySync(types.RequestQuery{ Data: queryBytes, Path: path, - Height: height, + Height: uint64(height), Prove: prove, }) if err != nil { From d07b2352ad1c914d5b7f85a444ee2b977779b6e0 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 15 May 2017 12:51:24 -0400 Subject: [PATCH 29/32] NewXXXServer doesnt run Start or return error --- cmd/counter/main.go | 4 ++++ cmd/dummy/main.go | 4 ++++ example/block_aware/block_aware_app.go | 4 ++++ example/block_aware/block_aware_test.go | 3 +++ example/dummy/dummy_test.go | 21 ++++++++++----------- example/example_test.go | 8 ++++---- server/grpc_server.go | 5 ++--- server/server.go | 4 ++-- server/socket_server.go | 7 ++----- 9 files changed, 35 insertions(+), 25 deletions(-) diff --git a/cmd/counter/main.go b/cmd/counter/main.go index 351e0886c..aa55778cc 100644 --- a/cmd/counter/main.go +++ b/cmd/counter/main.go @@ -27,6 +27,10 @@ func main() { os.Exit(1) } srv.SetLogger(logger.With("module", "abci-server")) + if _, err := srv.Start(); err != nil { + logger.Error(err.Error()) + os.Exit(1) + } // Wait forever cmn.TrapSignal(func() { diff --git a/cmd/dummy/main.go b/cmd/dummy/main.go index 9e1a8112e..85bbca18d 100644 --- a/cmd/dummy/main.go +++ b/cmd/dummy/main.go @@ -36,6 +36,10 @@ func main() { os.Exit(1) } srv.SetLogger(logger.With("module", "abci-server")) + if _, err := srv.Start(); err != nil { + logger.Error(err.Error()) + os.Exit(1) + } // Wait forever cmn.TrapSignal(func() { diff --git a/example/block_aware/block_aware_app.go b/example/block_aware/block_aware_app.go index 30e115acd..8bacecd13 100644 --- a/example/block_aware/block_aware_app.go +++ b/example/block_aware/block_aware_app.go @@ -25,6 +25,10 @@ func main() { os.Exit(1) } srv.SetLogger(logger.With("module", "abci-server")) + if _, err := srv.Start(); err != nil { + logger.Error(err.Error()) + os.Exit(1) + } // Wait forever cmn.TrapSignal(func() { diff --git a/example/block_aware/block_aware_test.go b/example/block_aware/block_aware_test.go index 817deec63..38acdd513 100644 --- a/example/block_aware/block_aware_test.go +++ b/example/block_aware/block_aware_test.go @@ -20,6 +20,9 @@ func TestChainAware(t *testing.T) { t.Fatal(err) } srv.SetLogger(log.TestingLogger().With("module", "abci-server")) + if _, err := srv.Start(); err != nil { + t.Fatal(err.Error()) + } defer srv.Stop() // Connect to the socket diff --git a/example/dummy/dummy_test.go b/example/dummy/dummy_test.go index 8ef36d077..e180af3e3 100644 --- a/example/dummy/dummy_test.go +++ b/example/dummy/dummy_test.go @@ -214,22 +214,21 @@ func makeSocketClientServer(app types.Application, name string) (abcicli.Client, socket := cmn.Fmt("unix://%s.sock", name) logger := log.TestingLogger() - server, err := server.NewSocketServer(socket, app) - if err != nil { + server := server.NewSocketServer(socket, app) + server.SetLogger(logger.With("module", "abci-server")) + if _, err := server.Start(); err != nil { return nil, nil, err } - server.SetLogger(logger.With("module", "abci-server")) // Connect to the socket client := abcicli.NewSocketClient(socket, false) + client.SetLogger(logger.With("module", "abci-client")) if _, err := client.Start(); err != nil { server.Stop() return nil, nil, err } - client.SetLogger(logger.With("module", "abci-client")) - client.Start() - return client, server, err + return client, server, nil } func makeGRPCClientServer(app types.Application, name string) (abcicli.Client, cmn.Service, error) { @@ -238,19 +237,19 @@ func makeGRPCClientServer(app types.Application, name string) (abcicli.Client, c logger := log.TestingLogger() gapp := types.NewGRPCApplication(app) - server, err := server.NewGRPCServer(socket, gapp) - if err != nil { + server := server.NewGRPCServer(socket, gapp) + server.SetLogger(logger.With("module", "abci-server")) + if _, err := server.Start(); err != nil { return nil, nil, err } - server.SetLogger(logger.With("module", "abci-server")) client := abcicli.NewGRPCClient(socket, true) + client.SetLogger(logger.With("module", "abci-client")) if _, err := client.Start(); err != nil { server.Stop() return nil, nil, err } - client.SetLogger(logger.With("module", "abci-client")) - return client, server, err + return client, server, nil } func TestClientServer(t *testing.T) { diff --git a/example/example_test.go b/example/example_test.go index cdb44082f..7e116c59b 100644 --- a/example/example_test.go +++ b/example/example_test.go @@ -38,8 +38,8 @@ func testStream(t *testing.T, app types.Application) { numDeliverTxs := 200000 // Start the listener - server, err := server.NewSocketServer("unix://test.sock", app) - if err != nil { + server := server.NewSocketServer("unix://test.sock", app) + if _, err := server.Start(); err != nil { t.Fatalf("Error starting socket server: %v", err.Error()) } server.SetLogger(log.TestingLogger().With("module", "abci-server")) @@ -112,8 +112,8 @@ func testGRPCSync(t *testing.T, app *types.GRPCApplication) { numDeliverTxs := 2000 // Start the listener - server, err := server.NewGRPCServer("unix://test.sock", app) - if err != nil { + server := server.NewGRPCServer("unix://test.sock", app) + if _, err := server.Start(); err != nil { t.Fatalf("Error starting GRPC server: %v", err.Error()) } server.SetLogger(log.TestingLogger().With("module", "abci-server")) diff --git a/server/grpc_server.go b/server/grpc_server.go index ae2a481d0..90346d690 100644 --- a/server/grpc_server.go +++ b/server/grpc_server.go @@ -22,7 +22,7 @@ type GRPCServer struct { } // NewGRPCServer returns a new gRPC ABCI server -func NewGRPCServer(protoAddr string, app types.ABCIApplicationServer) (cmn.Service, error) { +func NewGRPCServer(protoAddr string, app types.ABCIApplicationServer) cmn.Service { parts := strings.SplitN(protoAddr, "://", 2) proto, addr := parts[0], parts[1] s := &GRPCServer{ @@ -32,8 +32,7 @@ func NewGRPCServer(protoAddr string, app types.ABCIApplicationServer) (cmn.Servi app: app, } s.BaseService = *cmn.NewBaseService(nil, "ABCIServer", s) - _, err := s.Start() // Just start it - return s, err + return s } // OnStart starts the gRPC service diff --git a/server/server.go b/server/server.go index 45d9ac1fa..0bbd65e37 100644 --- a/server/server.go +++ b/server/server.go @@ -21,9 +21,9 @@ func NewServer(protoAddr, transport string, app types.Application) (cmn.Service, var err error switch transport { case "socket": - s, err = NewSocketServer(protoAddr, app) + s = NewSocketServer(protoAddr, app) case "grpc": - s, err = NewGRPCServer(protoAddr, types.NewGRPCApplication(app)) + s = NewGRPCServer(protoAddr, types.NewGRPCApplication(app)) default: err = fmt.Errorf("Unknown server type %s", transport) } diff --git a/server/socket_server.go b/server/socket_server.go index f8d6f54a9..2b01dbd70 100644 --- a/server/socket_server.go +++ b/server/socket_server.go @@ -29,7 +29,7 @@ type SocketServer struct { app types.Application } -func NewSocketServer(protoAddr string, app types.Application) (cmn.Service, error) { +func NewSocketServer(protoAddr string, app types.Application) cmn.Service { parts := strings.SplitN(protoAddr, "://", 2) proto, addr := parts[0], parts[1] s := &SocketServer{ @@ -40,10 +40,7 @@ func NewSocketServer(protoAddr string, app types.Application) (cmn.Service, erro conns: make(map[int]net.Conn), } s.BaseService = *cmn.NewBaseService(nil, "ABCIServer", s) - // FIXME we are loosing "Starting ABCIServer" message here - // add logger to params? - _, err := s.Start() // Just start it - return s, err + return s } func (s *SocketServer) OnStart() error { From d82c7edf3aca25d762f282f0508160cf7620f645 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 15 May 2017 12:52:33 -0400 Subject: [PATCH 30/32] update changelog and bump version --- CHANGELOG.md | 23 +++++++++++++++++++++++ version/version.go | 6 +++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7115552a..29b5dcf3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## 0.5.0 (May 15, 2017) + +BREAKING CHANGES: + +- `NewSocketClient` and `NewGRPCClient` no longer start the client automatically, and don't return errors. The caller is responsible for running `client.Start()` and checking the error. +- `NewSocketServer` and `NewGRPCServer` no longer start the server automatically, and don't return errors. The caller is responsible for running `server.Start()` and checking the error. + + +FEATURES: + +- [types] new method `func (res Result) IsSameCode(compare Result) bool` checks whether two results have the same code +- [types] new methods `func (r *ResponseCheckTx) Result() Result` and `func (r *ResponseDeliverTx) Result() Result` to convert from protobuf types (for control over json serialization) +- [types] new method `func (r *ResponseQuery) Result() *ResultQuery` and struct `ResultQuery` to convert from protobuf types (for control over json serializtion) + +IMPROVEMENTS: + +- Update imports for new `tmlibs` repository +- Use the new logger +- [abci-cli] Add flags to the query command for `path`, `height`, and `prove` +- [types] use `data.Bytes` and `json` tags in the `Result` struct + +BUG FIXES: + ## 0.4.1 (April 18, 2017) IMPROVEMENTS: diff --git a/version/version.go b/version/version.go index 7b02c593e..6687721f1 100644 --- a/version/version.go +++ b/version/version.go @@ -3,7 +3,7 @@ package version // NOTE: we should probably be versioning the ABCI and the abci-cli separately const Maj = "0" -const Min = "4" -const Fix = "1" +const Min = "5" +const Fix = "0" -const Version = "0.4.1" +const Version = "0.5.0" From 5dabeffb35c027d7087a12149685daa68989168b Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 15 May 2017 12:59:44 -0400 Subject: [PATCH 31/32] fixes from review --- example/block_aware/block_aware_test.go | 3 +-- example/example_test.go | 7 +++---- tests/test_app/app.go | 4 ++-- types/validators.go | 6 +++++- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/example/block_aware/block_aware_test.go b/example/block_aware/block_aware_test.go index 38acdd513..05a5c05c3 100644 --- a/example/block_aware/block_aware_test.go +++ b/example/block_aware/block_aware_test.go @@ -27,11 +27,10 @@ func TestChainAware(t *testing.T) { // Connect to the socket client := abcicli.NewSocketClient("unix://test.sock", false) + client.SetLogger(log.TestingLogger().With("module", "abci-client")) if _, err := client.Start(); err != nil { t.Fatalf("Error starting socket client: %v", err.Error()) } - client.SetLogger(log.TestingLogger().With("module", "abci-client")) - client.Start() defer client.Stop() n := uint64(5) diff --git a/example/example_test.go b/example/example_test.go index 7e116c59b..e9505f223 100644 --- a/example/example_test.go +++ b/example/example_test.go @@ -39,19 +39,18 @@ func testStream(t *testing.T, app types.Application) { // Start the listener server := server.NewSocketServer("unix://test.sock", app) + server.SetLogger(log.TestingLogger().With("module", "abci-server")) if _, err := server.Start(); err != nil { t.Fatalf("Error starting socket server: %v", err.Error()) } - server.SetLogger(log.TestingLogger().With("module", "abci-server")) defer server.Stop() // Connect to the socket client := abcicli.NewSocketClient("unix://test.sock", false) + client.SetLogger(log.TestingLogger().With("module", "abci-client")) if _, err := client.Start(); err != nil { t.Fatalf("Error starting socket client: %v", err.Error()) } - client.SetLogger(log.TestingLogger().With("module", "abci-client")) - client.Start() defer client.Stop() done := make(chan struct{}) @@ -113,10 +112,10 @@ func testGRPCSync(t *testing.T, app *types.GRPCApplication) { // Start the listener server := server.NewGRPCServer("unix://test.sock", app) + server.SetLogger(log.TestingLogger().With("module", "abci-server")) if _, err := server.Start(); err != nil { t.Fatalf("Error starting GRPC server: %v", err.Error()) } - server.SetLogger(log.TestingLogger().With("module", "abci-server")) defer server.Stop() // Connect to the socket diff --git a/tests/test_app/app.go b/tests/test_app/app.go index 3930957d7..281c9dcb1 100644 --- a/tests/test_app/app.go +++ b/tests/test_app/app.go @@ -38,12 +38,12 @@ func startClient(abciType string) abcicli.Client { if err != nil { panic(err.Error()) } + logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)) + client.SetLogger(logger.With("module", "abcicli")) if _, err := client.Start(); err != nil { panic("connecting to abci_app: " + err.Error()) } - logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)) - client.SetLogger(logger.With("module", "abcicli")) return client } diff --git a/types/validators.go b/types/validators.go index a83c6d40a..95258aa23 100644 --- a/types/validators.go +++ b/types/validators.go @@ -5,6 +5,7 @@ import ( "encoding/json" "github.com/tendermint/go-wire/data" + cmn "github.com/tendermint/tmlibs/common" ) // validators implements sort @@ -38,6 +39,9 @@ func ValidatorsString(vs Validators) string { for i, v := range vs { s[i] = validatorPretty{v.PubKey, v.Power} } - b, _ := json.Marshal(s) + b, err := json.Marshal(s) + if err != nil { + cmn.PanicSanity(err.Error()) + } return string(b) } From 609c0dbc3ef549a7885d63d5bfef98691642da32 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Thu, 18 May 2017 11:39:12 +0200 Subject: [PATCH 32/32] CHANGELOG update release date --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 29b5dcf3d..09d7bf5ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 0.5.0 (May 15, 2017) +## 0.5.0 (May 18, 2017) BREAKING CHANGES: