Browse Source

Merge pull request #58 from tendermint/abci_proof_jae

Updates to ABCI_Proof PR
pull/1780/head
Jae Kwon 8 years ago
committed by GitHub
parent
commit
b9e2ad12e6
22 changed files with 426 additions and 583 deletions
  1. +11
    -14
      README.md
  2. +2
    -4
      client/client.go
  3. +10
    -26
      client/grpc_client.go
  4. +7
    -24
      client/local_client.go
  5. +11
    -25
      client/socket_client.go
  6. +69
    -75
      cmd/abci-cli/abci-cli.go
  7. +1
    -1
      cmd/counter/main.go
  8. +4
    -6
      example/chain_aware/chain_aware_app.go
  9. +4
    -4
      example/chain_aware/chain_aware_test.go
  10. +5
    -10
      example/counter/counter.go
  11. +23
    -27
      example/dummy/dummy.go
  12. +31
    -25
      example/dummy/dummy_test.go
  13. +2
    -6
      example/dummy/persistent_dummy.go
  14. +2
    -6
      example/nil/nil_app.go
  15. +1
    -1
      glide.lock
  16. +3
    -6
      server/socket_server.go
  17. +44
    -0
      tests/test_cli/ex1.abci.out.new
  18. +3
    -11
      types/application.go
  19. +3
    -0
      types/code.go
  20. +4
    -16
      types/messages.go
  21. +171
    -273
      types/types.pb.go
  22. +15
    -23
      types/types.proto

+ 11
- 14
README.md View File

@ -85,23 +85,20 @@ ABCI requests/responses are simple Protobuf messages. Check out the [schema fil
#### Query #### Query
* __Arguments__: * __Arguments__:
* `Data ([]byte)`: The query request bytes
* `Data ([]byte)`: Raw query bytes. Can be used with or in lieu of Path.
* `Path (string)`: Path of request, like an HTTP GET path. Can be used with or in liue of Data.
* Apps MUST interpret '/store' as a query by key on the underlying store. The key SHOULD be specified in the Data field.
* Apps SHOULD allow queries over specific types like '/accounts/...' or '/votes/...'
* `Height (uint64)`: The block height for which you want the query (default=0 returns data for the latest committed block)
* `Prove (bool)`: Return Merkle proof with response if possible
* __Returns__: * __Returns__:
* `Code (uint32)`: Response code * `Code (uint32)`: Response code
* `Data ([]byte)`: The query response bytes
* `Key ([]byte)`: The key of the matching data
* `Value ([]byte)`: The value of the matching data
* `Proof ([]byte)`: Proof for the data, if requested
* `Height (uint64)`: The block height from which data was derived
* `Log (string)`: Debug or error message * `Log (string)`: Debug or error message
#### Proof
* __Arguments__:
* `Key ([]byte)`: The key whose data you want to verifiably query
* `Height (int64)`: The block height for which you want the proof (default=0 returns the proof for last committed block)
* __Returns__:
* `Code (uint32)`: Response code
* `Data ([]byte)`: The query response bytes
* `Log (string)`: Debug or error message
* __Usage__:<br/>
Return a Merkle proof from the key/value pair back to the application hash.<br/>
*Please note* The current implementation of go-merkle doesn't support querying proofs from past blocks, so for the present moment, any height other than 0 will return an error. Hopefully this will be improved soon(ish)
*Please note* The current implementation of go-merkle doesn't support querying proofs from past blocks, so for the present moment, any height other than 0 will return an error. Hopefully this will be improved soon(ish)
#### Flush #### Flush
* __Usage__:<br/> * __Usage__:<br/>


+ 2
- 4
client/client.go View File

@ -20,8 +20,7 @@ type Client interface {
SetOptionAsync(key string, value string) *ReqRes SetOptionAsync(key string, value string) *ReqRes
DeliverTxAsync(tx []byte) *ReqRes DeliverTxAsync(tx []byte) *ReqRes
CheckTxAsync(tx []byte) *ReqRes CheckTxAsync(tx []byte) *ReqRes
QueryAsync(tx []byte) *ReqRes
ProofAsync(key []byte, blockHeight uint64) *ReqRes
QueryAsync(reqQuery types.RequestQuery) *ReqRes
CommitAsync() *ReqRes CommitAsync() *ReqRes
FlushSync() error FlushSync() error
@ -30,8 +29,7 @@ type Client interface {
SetOptionSync(key string, value string) (res types.Result) SetOptionSync(key string, value string) (res types.Result)
DeliverTxSync(tx []byte) (res types.Result) DeliverTxSync(tx []byte) (res types.Result)
CheckTxSync(tx []byte) (res types.Result) CheckTxSync(tx []byte) (res types.Result)
QuerySync(tx []byte) (res types.Result)
ProofSync(key []byte, blockHeight uint64) (res types.Result)
QuerySync(reqQuery types.RequestQuery) (resQuery types.ResponseQuery, err error)
CommitSync() (res types.Result) CommitSync() (res types.Result)
InitChainAsync(validators []*types.Validator) *ReqRes InitChainAsync(validators []*types.Validator) *ReqRes


+ 10
- 26
client/grpc_client.go View File

@ -173,8 +173,8 @@ func (cli *grpcClient) CheckTxAsync(tx []byte) *ReqRes {
return cli.finishAsyncCall(req, &types.Response{&types.Response_CheckTx{res}}) return cli.finishAsyncCall(req, &types.Response{&types.Response_CheckTx{res}})
} }
func (cli *grpcClient) QueryAsync(query []byte) *ReqRes {
req := types.ToRequestQuery(query)
func (cli *grpcClient) QueryAsync(reqQuery types.RequestQuery) *ReqRes {
req := types.ToRequestQuery(reqQuery)
res, err := cli.client.Query(context.Background(), req.GetQuery(), grpc.FailFast(true)) res, err := cli.client.Query(context.Background(), req.GetQuery(), grpc.FailFast(true))
if err != nil { if err != nil {
cli.StopForError(err) cli.StopForError(err)
@ -182,15 +182,6 @@ func (cli *grpcClient) QueryAsync(query []byte) *ReqRes {
return cli.finishAsyncCall(req, &types.Response{&types.Response_Query{res}}) return cli.finishAsyncCall(req, &types.Response{&types.Response_Query{res}})
} }
func (cli *grpcClient) ProofAsync(key []byte, blockHeight uint64) *ReqRes {
req := types.ToRequestProof(key, blockHeight)
res, err := cli.client.Proof(context.Background(), req.GetProof(), grpc.FailFast(true))
if err != nil {
cli.StopForError(err)
}
return cli.finishAsyncCall(req, &types.Response{&types.Response_Proof{res}})
}
func (cli *grpcClient) CommitAsync() *ReqRes { func (cli *grpcClient) CommitAsync() *ReqRes {
req := types.ToRequestCommit() req := types.ToRequestCommit()
res, err := cli.client.Commit(context.Background(), req.GetCommit(), grpc.FailFast(true)) res, err := cli.client.Commit(context.Background(), req.GetCommit(), grpc.FailFast(true))
@ -264,7 +255,7 @@ func (cli *grpcClient) EchoSync(msg string) (res types.Result) {
return res return res
} }
resp := reqres.Response.GetEcho() resp := reqres.Response.GetEcho()
return types.NewResultOK([]byte(resp.Message), LOG)
return types.NewResultOK([]byte(resp.Message), "")
} }
func (cli *grpcClient) FlushSync() error { func (cli *grpcClient) FlushSync() error {
@ -310,22 +301,15 @@ func (cli *grpcClient) CheckTxSync(tx []byte) (res types.Result) {
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log} return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
} }
func (cli *grpcClient) ProofSync(key []byte, blockHeight uint64) (res types.Result) {
reqres := cli.ProofAsync(key, blockHeight)
if res := cli.checkErrGetResult(); res.IsErr() {
return res
func (cli *grpcClient) QuerySync(reqQuery types.RequestQuery) (resQuery types.ResponseQuery, err error) {
reqres := cli.QueryAsync(reqQuery)
if err = cli.Error(); err != nil {
return resQuery, err
} }
resp := reqres.Response.GetProof()
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
}
func (cli *grpcClient) QuerySync(query []byte) (res types.Result) {
reqres := cli.QueryAsync(query)
if res := cli.checkErrGetResult(); res.IsErr() {
return res
if resQuery_ := reqres.Response.GetQuery(); resQuery_ != nil {
return *resQuery_, nil
} }
resp := reqres.Response.GetQuery()
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
return resQuery, nil
} }
func (cli *grpcClient) CommitSync() (res types.Result) { func (cli *grpcClient) CommitSync() (res types.Result) {


+ 7
- 24
client/local_client.go View File

@ -89,23 +89,13 @@ func (app *localClient) CheckTxAsync(tx []byte) *ReqRes {
) )
} }
func (app *localClient) QueryAsync(tx []byte) *ReqRes {
func (app *localClient) QueryAsync(reqQuery types.RequestQuery) *ReqRes {
app.mtx.Lock() app.mtx.Lock()
res := app.Application.Query(tx)
resQuery := app.Application.Query(reqQuery)
app.mtx.Unlock() app.mtx.Unlock()
return app.callback( return app.callback(
types.ToRequestQuery(tx),
types.ToResponseQuery(res.Code, res.Data, res.Log),
)
}
func (app *localClient) ProofAsync(key []byte, blockHeight uint64) *ReqRes {
app.mtx.Lock()
res := app.Application.Proof(key, blockHeight)
app.mtx.Unlock()
return app.callback(
types.ToRequestProof(key, blockHeight),
types.ToResponseQuery(res.Code, res.Data, res.Log),
types.ToRequestQuery(reqQuery),
types.ToResponseQuery(resQuery),
) )
} }
@ -195,18 +185,11 @@ func (app *localClient) CheckTxSync(tx []byte) (res types.Result) {
return res return res
} }
func (app *localClient) QuerySync(query []byte) (res types.Result) {
func (app *localClient) QuerySync(reqQuery types.RequestQuery) (resQuery types.ResponseQuery, err error) {
app.mtx.Lock() app.mtx.Lock()
res = app.Application.Query(query)
resQuery = app.Application.Query(reqQuery)
app.mtx.Unlock() app.mtx.Unlock()
return res
}
func (app *localClient) ProofSync(key []byte, blockHeight uint64) (res types.Result) {
app.mtx.Lock()
res = app.Application.Proof(key, blockHeight)
app.mtx.Unlock()
return res
return resQuery, nil
} }
func (app *localClient) CommitSync() (res types.Result) { func (app *localClient) CommitSync() (res types.Result) {


+ 11
- 25
client/socket_client.go View File

@ -251,12 +251,8 @@ func (cli *socketClient) CheckTxAsync(tx []byte) *ReqRes {
return cli.queueRequest(types.ToRequestCheckTx(tx)) return cli.queueRequest(types.ToRequestCheckTx(tx))
} }
func (cli *socketClient) QueryAsync(query []byte) *ReqRes {
return cli.queueRequest(types.ToRequestQuery(query))
}
func (cli *socketClient) ProofAsync(key []byte, blockHeight uint64) *ReqRes {
return cli.queueRequest(types.ToRequestProof(key, blockHeight))
func (cli *socketClient) QueryAsync(reqQuery types.RequestQuery) *ReqRes {
return cli.queueRequest(types.ToRequestQuery(reqQuery))
} }
func (cli *socketClient) CommitAsync() *ReqRes { func (cli *socketClient) CommitAsync() *ReqRes {
@ -284,7 +280,7 @@ func (cli *socketClient) EchoSync(msg string) (res types.Result) {
return types.ErrInternalError.SetLog(err.Error()) return types.ErrInternalError.SetLog(err.Error())
} }
resp := reqres.Response.GetEcho() resp := reqres.Response.GetEcho()
return types.Result{Code: OK, Data: []byte(resp.Message), Log: LOG}
return types.Result{Code: OK, Data: []byte(resp.Message)}
} }
func (cli *socketClient) FlushSync() error { func (cli *socketClient) FlushSync() error {
@ -304,9 +300,8 @@ func (cli *socketClient) InfoSync() (resInfo types.ResponseInfo, err error) {
} }
if resInfo_ := reqres.Response.GetInfo(); resInfo_ != nil { if resInfo_ := reqres.Response.GetInfo(); resInfo_ != nil {
return *resInfo_, nil return *resInfo_, nil
} else {
return resInfo, nil
} }
return resInfo, nil
} }
func (cli *socketClient) SetOptionSync(key string, value string) (res types.Result) { func (cli *socketClient) SetOptionSync(key string, value string) (res types.Result) {
@ -339,25 +334,18 @@ func (cli *socketClient) CheckTxSync(tx []byte) (res types.Result) {
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log} return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
} }
func (cli *socketClient) QuerySync(query []byte) (res types.Result) {
reqres := cli.queueRequest(types.ToRequestQuery(query))
func (cli *socketClient) QuerySync(reqQuery types.RequestQuery) (resQuery types.ResponseQuery, err error) {
reqres := cli.queueRequest(types.ToRequestQuery(reqQuery))
cli.FlushSync() cli.FlushSync()
if err := cli.Error(); err != nil { if err := cli.Error(); err != nil {
return types.ErrInternalError.SetLog(err.Error())
return resQuery, err
} }
resp := reqres.Response.GetQuery()
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
}
func (cli *socketClient) ProofSync(key []byte, blockHeight uint64) (res types.Result) {
reqres := cli.queueRequest(types.ToRequestProof(key, blockHeight))
cli.FlushSync()
if err := cli.Error(); err != nil {
return types.ErrInternalError.SetLog(err.Error())
if resQuery_ := reqres.Response.GetQuery(); resQuery_ != nil {
return *resQuery_, nil
} }
resp := reqres.Response.GetProof()
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
return resQuery, nil
} }
func (cli *socketClient) CommitSync() (res types.Result) { func (cli *socketClient) CommitSync() (res types.Result) {
reqres := cli.queueRequest(types.ToRequestCommit()) reqres := cli.queueRequest(types.ToRequestCommit())
cli.FlushSync() cli.FlushSync()
@ -450,8 +438,6 @@ func resMatchesReq(req *types.Request, res *types.Response) (ok bool) {
_, ok = res.Value.(*types.Response_Commit) _, ok = res.Value.(*types.Response_Commit)
case *types.Request_Query: case *types.Request_Query:
_, ok = res.Value.(*types.Response_Query) _, ok = res.Value.(*types.Response_Query)
case *types.Request_Proof:
_, ok = res.Value.(*types.Response_Proof)
case *types.Request_InitChain: case *types.Request_InitChain:
_, ok = res.Value.(*types.Response_InitChain) _, ok = res.Value.(*types.Response_InitChain)
case *types.Request_BeginBlock: case *types.Request_BeginBlock:


cmd/abci-cli/tmsp-cli.go → cmd/abci-cli/abci-cli.go View File


+ 1
- 1
cmd/counter/main.go View File

@ -3,9 +3,9 @@ package main
import ( import (
"flag" "flag"
. "github.com/tendermint/go-common"
"github.com/tendermint/abci/example/counter" "github.com/tendermint/abci/example/counter"
"github.com/tendermint/abci/server" "github.com/tendermint/abci/server"
. "github.com/tendermint/go-common"
) )
func main() { func main() {


+ 4
- 6
example/chain_aware/chain_aware_app.go View File

@ -57,12 +57,10 @@ func (app *ChainAwareApplication) Commit() types.Result {
return types.NewResultOK([]byte("nil"), "") return types.NewResultOK([]byte("nil"), "")
} }
func (app *ChainAwareApplication) Query(query []byte) types.Result {
return types.NewResultOK([]byte(Fmt("%d,%d", app.beginCount, app.endCount)), "")
}
func (app *ChainAwareApplication) Proof(key []byte, blockHeight uint64) types.Result {
return types.NewResultOK(nil, Fmt("Proof is not supported"))
func (app *ChainAwareApplication) Query(reqQuery types.RequestQuery) (resQuery types.ResponseQuery) {
return types.ResponseQuery{
Value: []byte(Fmt("%d,%d", app.beginCount, app.endCount)),
}
} }
func (app *ChainAwareApplication) BeginBlock(hash []byte, header *types.Header) { func (app *ChainAwareApplication) BeginBlock(hash []byte, header *types.Header) {


+ 4
- 4
example/chain_aware/chain_aware_test.go View File

@ -5,10 +5,10 @@ import (
"strings" "strings"
"testing" "testing"
. "github.com/tendermint/go-common"
"github.com/tendermint/abci/client" "github.com/tendermint/abci/client"
"github.com/tendermint/abci/server" "github.com/tendermint/abci/server"
"github.com/tendermint/abci/types" "github.com/tendermint/abci/types"
. "github.com/tendermint/go-common"
) )
func TestChainAware(t *testing.T) { func TestChainAware(t *testing.T) {
@ -39,10 +39,10 @@ func TestChainAware(t *testing.T) {
client.CommitSync() client.CommitSync()
} }
r := app.Query(nil)
spl := strings.Split(string(r.Data), ",")
r := app.Query(types.RequestQuery{})
spl := strings.Split(string(r.Value), ",")
if len(spl) != 2 { if len(spl) != 2 {
t.Fatal("expected %d,%d ; got %s", n, n, string(r.Data))
t.Fatal("expected %d,%d ; got %s", n, n, string(r.Value))
} }
beginCount, _ := strconv.Atoi(spl[0]) beginCount, _ := strconv.Atoi(spl[0])
endCount, _ := strconv.Atoi(spl[1]) endCount, _ := strconv.Atoi(spl[1])


+ 5
- 10
example/counter/counter.go View File

@ -71,19 +71,14 @@ func (app *CounterApplication) Commit() types.Result {
} }
} }
func (app *CounterApplication) Query(query []byte) types.Result {
queryStr := string(query)
func (app *CounterApplication) Query(reqQuery types.RequestQuery) types.ResponseQuery {
switch queryStr {
switch reqQuery.Path {
case "hash": case "hash":
return types.NewResultOK(nil, Fmt("%v", app.hashCount))
return types.ResponseQuery{Value: []byte(Fmt("%v", app.hashCount))}
case "tx": case "tx":
return types.NewResultOK(nil, Fmt("%v", app.txCount))
return types.ResponseQuery{Value: []byte(Fmt("%v", app.txCount))}
} }
return types.ErrUnknownRequest.SetLog(Fmt("Invalid nonce. Expected hash or tx, got %v", queryStr))
}
func (app *CounterApplication) Proof(key []byte, blockHeight uint64) types.Result {
return types.NewResultOK(nil, Fmt("Proof is not supported"))
return types.ResponseQuery{Log: Fmt("Invalid query path. Expected hash or tx, got %v", reqQuery.Path)}
} }

+ 23
- 27
example/dummy/dummy.go View File

@ -1,13 +1,11 @@
package dummy package dummy
import ( import (
"encoding/hex"
"strings" "strings"
"github.com/tendermint/abci/types" "github.com/tendermint/abci/types"
. "github.com/tendermint/go-common" . "github.com/tendermint/go-common"
"github.com/tendermint/go-merkle" "github.com/tendermint/go-merkle"
"github.com/tendermint/go-wire"
) )
type DummyApplication struct { type DummyApplication struct {
@ -47,30 +45,28 @@ func (app *DummyApplication) Commit() types.Result {
return types.NewResultOK(hash, "") return types.NewResultOK(hash, "")
} }
func (app *DummyApplication) Query(query []byte) types.Result {
index, value, exists := app.state.Get(query)
queryResult := QueryResult{index, string(value), hex.EncodeToString(value), exists}
return types.NewResultOK(wire.JSONBytes(queryResult), "")
}
func (app *DummyApplication) Proof(key []byte, blockHeight uint64) types.Result {
// TODO: when go-merkle supports querying older blocks without possible panics,
// we should store a cache and allow a query. But for now it is impossible.
// And this is just a Dummy application anyway, what do you expect? ;)
if blockHeight != 0 {
return types.ErrUnknownRequest
}
proof, exists := app.state.Proof(key)
if !exists {
return types.NewResultOK(nil, Fmt("Cannot find key = %v", key))
func (app *DummyApplication) Query(reqQuery types.RequestQuery) (resQuery types.ResponseQuery) {
if reqQuery.Prove {
value, proof, exists := app.state.Proof(reqQuery.Data)
resQuery.Index = -1 // TODO make Proof return index
resQuery.Key = reqQuery.Data
resQuery.Value = value
resQuery.Proof = proof
if exists {
resQuery.Log = "exists"
} else {
resQuery.Log = "does not exist"
}
return
} else {
index, value, exists := app.state.Get(reqQuery.Data)
resQuery.Index = int64(index)
resQuery.Value = value
if exists {
resQuery.Log = "exists"
} else {
resQuery.Log = "does not exist"
}
return
} }
return types.NewResultOK(proof, "Found the key")
}
type QueryResult struct {
Index int `json:"index"`
Value string `json:"value"`
ValueHex string `json:"valueHex"`
Exists bool `json:"exists"`
} }

+ 31
- 25
example/dummy/dummy_test.go View File

@ -6,7 +6,6 @@ import (
"sort" "sort"
"testing" "testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
abcicli "github.com/tendermint/abci/client" abcicli "github.com/tendermint/abci/client"
"github.com/tendermint/abci/server" "github.com/tendermint/abci/server"
@ -14,7 +13,6 @@ import (
. "github.com/tendermint/go-common" . "github.com/tendermint/go-common"
"github.com/tendermint/go-crypto" "github.com/tendermint/go-crypto"
merkle "github.com/tendermint/go-merkle" merkle "github.com/tendermint/go-merkle"
"github.com/tendermint/go-wire"
) )
func testDummy(t *testing.T, app types.Application, tx []byte, key, value string) { func testDummy(t *testing.T, app types.Application, tx []byte, key, value string) {
@ -25,21 +23,24 @@ func testDummy(t *testing.T, app types.Application, tx []byte, key, value string
require.False(t, ar.IsErr(), ar) require.False(t, ar.IsErr(), ar)
// make sure query is fine // make sure query is fine
r := app.Query([]byte(key))
require.False(t, r.IsErr(), r)
q := new(QueryResult)
err := wire.ReadJSONBytes(r.Data, q)
require.Nil(t, err)
require.Equal(t, value, q.Value)
resQuery := app.Query(types.RequestQuery{
Path: "/store",
Data: []byte(key),
})
require.Equal(t, types.CodeType_OK, resQuery.Code)
require.Equal(t, value, string(resQuery.Value))
// make sure proof is fine // make sure proof is fine
rp := app.Proof([]byte(key), 0)
require.False(t, rp.IsErr(), rp)
p, err := merkle.LoadProof(rp.Data)
resQuery = app.Query(types.RequestQuery{
Path: "/store",
Data: []byte(key),
Prove: true,
})
require.Equal(t, types.CodeType_OK, resQuery.Code)
require.Equal(t, value, string(resQuery.Value))
proof, err := merkle.ReadProof(resQuery.Proof)
require.Nil(t, err) require.Nil(t, err)
require.True(t, p.Valid())
assert.Equal(t, []byte(key), p.Key())
assert.Equal(t, []byte(value), p.Value())
require.True(t, proof.Verify([]byte(key), resQuery.Value, proof.RootHash)) // NOTE: we have no way to verify the RootHash
} }
func TestDummyKV(t *testing.T) { func TestDummyKV(t *testing.T) {
@ -285,19 +286,24 @@ func testClient(t *testing.T, app abcicli.Client, tx []byte, key, value string)
require.False(t, ar.IsErr(), ar) require.False(t, ar.IsErr(), ar)
// make sure query is fine // make sure query is fine
r := app.QuerySync([]byte(key))
require.False(t, r.IsErr(), r)
q := new(QueryResult)
err := wire.ReadJSONBytes(r.Data, q)
resQuery, err := app.QuerySync(types.RequestQuery{
Path: "/store",
Data: []byte(key),
})
require.Nil(t, err) require.Nil(t, err)
require.Equal(t, value, q.Value)
require.Equal(t, types.CodeType_OK, resQuery.Code)
require.Equal(t, value, string(resQuery.Value))
// make sure proof is fine // make sure proof is fine
rp := app.ProofSync([]byte(key), 0)
require.False(t, rp.IsErr(), rp)
p, err := merkle.LoadProof(rp.Data)
resQuery, err = app.QuerySync(types.RequestQuery{
Path: "/store",
Data: []byte(key),
Prove: true,
})
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)
require.Nil(t, err) require.Nil(t, err)
require.True(t, p.Valid())
assert.Equal(t, []byte(key), p.Key())
assert.Equal(t, []byte(value), p.Value())
require.True(t, proof.Verify([]byte(key), resQuery.Value, proof.RootHash)) // NOTE: we have no way to verify the RootHash
} }

+ 2
- 6
example/dummy/persistent_dummy.go View File

@ -89,12 +89,8 @@ func (app *PersistentDummyApplication) Commit() types.Result {
return types.NewResultOK(appHash, "") return types.NewResultOK(appHash, "")
} }
func (app *PersistentDummyApplication) Query(query []byte) types.Result {
return app.app.Query(query)
}
func (app *PersistentDummyApplication) Proof(key []byte, blockHeight uint64) types.Result {
return app.app.Proof(key, blockHeight)
func (app *PersistentDummyApplication) Query(reqQuery types.RequestQuery) types.ResponseQuery {
return app.app.Query(reqQuery)
} }
// Save the validators in the merkle tree // Save the validators in the merkle tree


+ 2
- 6
example/nil/nil_app.go View File

@ -31,10 +31,6 @@ func (app *NilApplication) Commit() types.Result {
return types.NewResultOK([]byte("nil"), "") return types.NewResultOK([]byte("nil"), "")
} }
func (app *NilApplication) Query(query []byte) types.Result {
return types.NewResultOK(nil, "")
}
func (app *NilApplication) Proof(key []byte, blockHeight uint64) types.Result {
return types.NewResultOK(nil, "")
func (app *NilApplication) Query(reqQuery types.RequestQuery) (resQuery types.ResponseQuery) {
return resQuery
} }

+ 1
- 1
glide.lock View File

@ -53,7 +53,7 @@ imports:
- name: github.com/tendermint/go-logger - name: github.com/tendermint/go-logger
version: cefb3a45c0bf3c493a04e9bcd9b1540528be59f2 version: cefb3a45c0bf3c493a04e9bcd9b1540528be59f2
- name: github.com/tendermint/go-merkle - name: github.com/tendermint/go-merkle
version: 7a86b4486f2cd84ac885c5bbc609fdee2905f5d1
version: 653cb1f631528351ddbc359b994eb0c96f0341cd
- name: github.com/tendermint/go-process - name: github.com/tendermint/go-process
version: b27edfd189b1a01a0b099f7e9f8263589cf04909 version: b27edfd189b1a01a0b099f7e9f8263589cf04909
- name: github.com/tendermint/go-wire - name: github.com/tendermint/go-wire


+ 3
- 6
server/socket_server.go View File

@ -8,8 +8,8 @@ import (
"strings" "strings"
"sync" "sync"
. "github.com/tendermint/go-common"
"github.com/tendermint/abci/types" "github.com/tendermint/abci/types"
. "github.com/tendermint/go-common"
) )
// var maxNumberConnections = 2 // var maxNumberConnections = 2
@ -184,11 +184,8 @@ func (s *SocketServer) handleRequest(req *types.Request, responses chan<- *types
res := s.app.Commit() res := s.app.Commit()
responses <- types.ToResponseCommit(res.Code, res.Data, res.Log) responses <- types.ToResponseCommit(res.Code, res.Data, res.Log)
case *types.Request_Query: case *types.Request_Query:
res := s.app.Query(r.Query.Query)
responses <- types.ToResponseQuery(res.Code, res.Data, res.Log)
case *types.Request_Proof:
res := s.app.Proof(r.Proof.Key, r.Proof.Height)
responses <- types.ToResponseProof(res.Code, res.Data, res.Log)
resQuery := s.app.Query(*r.Query)
responses <- types.ToResponseQuery(resQuery)
case *types.Request_InitChain: case *types.Request_InitChain:
if app, ok := s.app.(types.BlockchainAware); ok { if app, ok := s.app.(types.BlockchainAware); ok {
app.InitChain(r.InitChain.Validators) app.InitChain(r.InitChain.Validators)


+ 44
- 0
tests/test_cli/ex1.abci.out.new View File

@ -0,0 +1,44 @@
> echo hello
-> data: hello
-> data.hex: 68656C6C6F
> info
-> data: {"size":0}
-> data.hex: 7B2273697A65223A307D
> commit
> deliver_tx "abc"
> info
-> data: {"size":1}
-> data.hex: 7B2273697A65223A317D
> commit
-> data: uü~„»×ˆíX–$ðlú‡EÑ
-> data.hex: 750502FC7E84BBD788ED589624F06CFA871845D1
> query "abc"
-> key: abc
-> key.hex: 616263
-> value: abc
-> value.hex: 616263
-> log: exists
-> height: 0
-> proof: 010114750502FC7E84BBD788ED589624F06CFA871845D1000114750502FC7E84BBD788ED589624F06CFA871845D1
> deliver_tx "def=xyz"
> commit
-> data: v9;Š.E†°iLbžËQ²†ïÕ
-> data.hex: 76393B8A182E450286B0694C629ECB51B286EFD5
> query "def"
-> key: def
-> key.hex: 646566
-> value: xyz
-> value.hex: 78797A
-> log: exists
-> height: 0
-> proof: 010114C08027141879A7B95E1339565CE60D7DB7A115EB01010101020114750502FC7E84BBD788ED589624F06CFA871845D100011476393B8A182E450286B0694C629ECB51B286EFD5

+ 3
- 11
types/application.go View File

@ -20,10 +20,7 @@ type Application interface {
CheckTx(tx []byte) Result CheckTx(tx []byte) Result
// Query for state // Query for state
Query(query []byte) Result
// Get proof for state
Proof(key []byte, blockHeight uint64) Result
Query(reqQuery RequestQuery) ResponseQuery
// Return the application Merkle root hash // Return the application Merkle root hash
Commit() Result Commit() Result
@ -81,13 +78,8 @@ func (app *GRPCApplication) CheckTx(ctx context.Context, req *RequestCheckTx) (*
} }
func (app *GRPCApplication) Query(ctx context.Context, req *RequestQuery) (*ResponseQuery, error) { func (app *GRPCApplication) Query(ctx context.Context, req *RequestQuery) (*ResponseQuery, error) {
r := app.app.Query(req.Query)
return &ResponseQuery{r.Code, r.Data, r.Log}, nil
}
func (app *GRPCApplication) Proof(ctx context.Context, req *RequestProof) (*ResponseProof, error) {
r := app.app.Proof(req.Key, req.Height)
return &ResponseProof{r.Code, r.Data, r.Log}, nil
resQuery := app.app.Query(*req)
return &resQuery, nil
} }
func (app *GRPCApplication) Commit(ctx context.Context, req *RequestCommit) (*ResponseCommit, error) { func (app *GRPCApplication) Commit(ctx context.Context, req *RequestCommit) (*ResponseCommit, error) {


+ 3
- 0
types/code.go View File

@ -0,0 +1,3 @@
package types
func (c CodeType) IsOK() bool { return c == CodeType_OK }

+ 4
- 16
types/messages.go View File

@ -49,15 +49,9 @@ func ToRequestCommit() *Request {
} }
} }
func ToRequestQuery(queryBytes []byte) *Request {
func ToRequestQuery(reqQuery RequestQuery) *Request {
return &Request{ return &Request{
Value: &Request_Query{&RequestQuery{queryBytes}},
}
}
func ToRequestProof(key []byte, blockHeight uint64) *Request {
return &Request{
Value: &Request_Proof{&RequestProof{key, blockHeight}},
Value: &Request_Query{&reqQuery},
} }
} }
@ -129,15 +123,9 @@ func ToResponseCommit(code CodeType, data []byte, log string) *Response {
} }
} }
func ToResponseQuery(code CodeType, data []byte, log string) *Response {
return &Response{
Value: &Response_Query{&ResponseQuery{code, data, log}},
}
}
func ToResponseProof(code CodeType, data []byte, log string) *Response {
func ToResponseQuery(resQuery ResponseQuery) *Response {
return &Response{ return &Response{
Value: &Response_Proof{&ResponseProof{code, data, log}},
Value: &Response_Query{&resQuery},
} }
} }


+ 171
- 273
types/types.pb.go View File

@ -17,7 +17,6 @@ It has these top-level messages:
RequestDeliverTx RequestDeliverTx
RequestCheckTx RequestCheckTx
RequestQuery RequestQuery
RequestProof
RequestCommit RequestCommit
RequestInitChain RequestInitChain
RequestBeginBlock RequestBeginBlock
@ -31,7 +30,6 @@ It has these top-level messages:
ResponseDeliverTx ResponseDeliverTx
ResponseCheckTx ResponseCheckTx
ResponseQuery ResponseQuery
ResponseProof
ResponseCommit ResponseCommit
ResponseInitChain ResponseInitChain
ResponseBeginBlock ResponseBeginBlock
@ -83,7 +81,6 @@ const (
MessageType_InitChain MessageType = 21 MessageType_InitChain MessageType = 21
MessageType_BeginBlock MessageType = 22 MessageType_BeginBlock MessageType = 22
MessageType_EndBlock MessageType = 23 MessageType_EndBlock MessageType = 23
MessageType_Proof MessageType = 24
) )
var MessageType_name = map[int32]string{ var MessageType_name = map[int32]string{
@ -100,7 +97,6 @@ var MessageType_name = map[int32]string{
21: "InitChain", 21: "InitChain",
22: "BeginBlock", 22: "BeginBlock",
23: "EndBlock", 23: "EndBlock",
24: "Proof",
} }
var MessageType_value = map[string]int32{ var MessageType_value = map[string]int32{
"NullMessage": 0, "NullMessage": 0,
@ -116,7 +112,6 @@ var MessageType_value = map[string]int32{
"InitChain": 21, "InitChain": 21,
"BeginBlock": 22, "BeginBlock": 22,
"EndBlock": 23, "EndBlock": 23,
"Proof": 24,
} }
func (x MessageType) String() string { func (x MessageType) String() string {
@ -245,7 +240,6 @@ type Request struct {
// *Request_InitChain // *Request_InitChain
// *Request_BeginBlock // *Request_BeginBlock
// *Request_EndBlock // *Request_EndBlock
// *Request_Proof
Value isRequest_Value `protobuf_oneof:"value"` Value isRequest_Value `protobuf_oneof:"value"`
} }
@ -291,9 +285,6 @@ type Request_BeginBlock struct {
type Request_EndBlock struct { type Request_EndBlock struct {
EndBlock *RequestEndBlock `protobuf:"bytes,11,opt,name=end_block,json=endBlock,oneof"` EndBlock *RequestEndBlock `protobuf:"bytes,11,opt,name=end_block,json=endBlock,oneof"`
} }
type Request_Proof struct {
Proof *RequestProof `protobuf:"bytes,12,opt,name=proof,oneof"`
}
func (*Request_Echo) isRequest_Value() {} func (*Request_Echo) isRequest_Value() {}
func (*Request_Flush) isRequest_Value() {} func (*Request_Flush) isRequest_Value() {}
@ -306,7 +297,6 @@ func (*Request_Query) isRequest_Value() {}
func (*Request_InitChain) isRequest_Value() {} func (*Request_InitChain) isRequest_Value() {}
func (*Request_BeginBlock) isRequest_Value() {} func (*Request_BeginBlock) isRequest_Value() {}
func (*Request_EndBlock) isRequest_Value() {} func (*Request_EndBlock) isRequest_Value() {}
func (*Request_Proof) isRequest_Value() {}
func (m *Request) GetValue() isRequest_Value { func (m *Request) GetValue() isRequest_Value {
if m != nil { if m != nil {
@ -392,13 +382,6 @@ func (m *Request) GetEndBlock() *RequestEndBlock {
return nil return nil
} }
func (m *Request) GetProof() *RequestProof {
if x, ok := m.GetValue().(*Request_Proof); ok {
return x.Proof
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package. // XXX_OneofFuncs is for the internal use of the proto package.
func (*Request) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { func (*Request) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _Request_OneofMarshaler, _Request_OneofUnmarshaler, _Request_OneofSizer, []interface{}{ return _Request_OneofMarshaler, _Request_OneofUnmarshaler, _Request_OneofSizer, []interface{}{
@ -413,7 +396,6 @@ func (*Request) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error
(*Request_InitChain)(nil), (*Request_InitChain)(nil),
(*Request_BeginBlock)(nil), (*Request_BeginBlock)(nil),
(*Request_EndBlock)(nil), (*Request_EndBlock)(nil),
(*Request_Proof)(nil),
} }
} }
@ -476,11 +458,6 @@ func _Request_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
if err := b.EncodeMessage(x.EndBlock); err != nil { if err := b.EncodeMessage(x.EndBlock); err != nil {
return err return err
} }
case *Request_Proof:
b.EncodeVarint(12<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Proof); err != nil {
return err
}
case nil: case nil:
default: default:
return fmt.Errorf("Request.Value has unexpected type %T", x) return fmt.Errorf("Request.Value has unexpected type %T", x)
@ -579,14 +556,6 @@ func _Request_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer
err := b.DecodeMessage(msg) err := b.DecodeMessage(msg)
m.Value = &Request_EndBlock{msg} m.Value = &Request_EndBlock{msg}
return true, err return true, err
case 12: // value.proof
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(RequestProof)
err := b.DecodeMessage(msg)
m.Value = &Request_Proof{msg}
return true, err
default: default:
return false, nil return false, nil
} }
@ -651,11 +620,6 @@ func _Request_OneofSizer(msg proto.Message) (n int) {
n += proto.SizeVarint(11<<3 | proto.WireBytes) n += proto.SizeVarint(11<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s)) n += proto.SizeVarint(uint64(s))
n += s n += s
case *Request_Proof:
s := proto.Size(x.Proof)
n += proto.SizeVarint(12<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil: case nil:
default: default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
@ -752,7 +716,10 @@ func (m *RequestCheckTx) GetTx() []byte {
} }
type RequestQuery struct { type RequestQuery struct {
Query []byte `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
Height uint64 `protobuf:"varint,3,opt,name=height" json:"height,omitempty"`
Prove bool `protobuf:"varint,4,opt,name=prove" json:"prove,omitempty"`
} }
func (m *RequestQuery) Reset() { *m = RequestQuery{} } func (m *RequestQuery) Reset() { *m = RequestQuery{} }
@ -760,44 +727,41 @@ func (m *RequestQuery) String() string { return proto.CompactTextStri
func (*RequestQuery) ProtoMessage() {} func (*RequestQuery) ProtoMessage() {}
func (*RequestQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } func (*RequestQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
func (m *RequestQuery) GetQuery() []byte {
func (m *RequestQuery) GetData() []byte {
if m != nil { if m != nil {
return m.Query
return m.Data
} }
return nil return nil
} }
type RequestProof struct {
Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Height uint64 `protobuf:"varint,2,opt,name=height" json:"height,omitempty"`
}
func (m *RequestProof) Reset() { *m = RequestProof{} }
func (m *RequestProof) String() string { return proto.CompactTextString(m) }
func (*RequestProof) ProtoMessage() {}
func (*RequestProof) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (m *RequestProof) GetKey() []byte {
func (m *RequestQuery) GetPath() string {
if m != nil { if m != nil {
return m.Key
return m.Path
} }
return nil
return ""
} }
func (m *RequestProof) GetHeight() uint64 {
func (m *RequestQuery) GetHeight() uint64 {
if m != nil { if m != nil {
return m.Height return m.Height
} }
return 0 return 0
} }
func (m *RequestQuery) GetProve() bool {
if m != nil {
return m.Prove
}
return false
}
type RequestCommit struct { type RequestCommit struct {
} }
func (m *RequestCommit) Reset() { *m = RequestCommit{} } func (m *RequestCommit) Reset() { *m = RequestCommit{} }
func (m *RequestCommit) String() string { return proto.CompactTextString(m) } func (m *RequestCommit) String() string { return proto.CompactTextString(m) }
func (*RequestCommit) ProtoMessage() {} func (*RequestCommit) ProtoMessage() {}
func (*RequestCommit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
func (*RequestCommit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
type RequestInitChain struct { type RequestInitChain struct {
Validators []*Validator `protobuf:"bytes,1,rep,name=validators" json:"validators,omitempty"` Validators []*Validator `protobuf:"bytes,1,rep,name=validators" json:"validators,omitempty"`
@ -806,7 +770,7 @@ type RequestInitChain struct {
func (m *RequestInitChain) Reset() { *m = RequestInitChain{} } func (m *RequestInitChain) Reset() { *m = RequestInitChain{} }
func (m *RequestInitChain) String() string { return proto.CompactTextString(m) } func (m *RequestInitChain) String() string { return proto.CompactTextString(m) }
func (*RequestInitChain) ProtoMessage() {} func (*RequestInitChain) ProtoMessage() {}
func (*RequestInitChain) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
func (*RequestInitChain) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
func (m *RequestInitChain) GetValidators() []*Validator { func (m *RequestInitChain) GetValidators() []*Validator {
if m != nil { if m != nil {
@ -823,7 +787,7 @@ type RequestBeginBlock struct {
func (m *RequestBeginBlock) Reset() { *m = RequestBeginBlock{} } func (m *RequestBeginBlock) Reset() { *m = RequestBeginBlock{} }
func (m *RequestBeginBlock) String() string { return proto.CompactTextString(m) } func (m *RequestBeginBlock) String() string { return proto.CompactTextString(m) }
func (*RequestBeginBlock) ProtoMessage() {} func (*RequestBeginBlock) ProtoMessage() {}
func (*RequestBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
func (*RequestBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
func (m *RequestBeginBlock) GetHash() []byte { func (m *RequestBeginBlock) GetHash() []byte {
if m != nil { if m != nil {
@ -846,7 +810,7 @@ type RequestEndBlock struct {
func (m *RequestEndBlock) Reset() { *m = RequestEndBlock{} } func (m *RequestEndBlock) Reset() { *m = RequestEndBlock{} }
func (m *RequestEndBlock) String() string { return proto.CompactTextString(m) } func (m *RequestEndBlock) String() string { return proto.CompactTextString(m) }
func (*RequestEndBlock) ProtoMessage() {} func (*RequestEndBlock) ProtoMessage() {}
func (*RequestEndBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
func (*RequestEndBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
func (m *RequestEndBlock) GetHeight() uint64 { func (m *RequestEndBlock) GetHeight() uint64 {
if m != nil { if m != nil {
@ -869,14 +833,13 @@ type Response struct {
// *Response_InitChain // *Response_InitChain
// *Response_BeginBlock // *Response_BeginBlock
// *Response_EndBlock // *Response_EndBlock
// *Response_Proof
Value isResponse_Value `protobuf_oneof:"value"` Value isResponse_Value `protobuf_oneof:"value"`
} }
func (m *Response) Reset() { *m = Response{} } func (m *Response) Reset() { *m = Response{} }
func (m *Response) String() string { return proto.CompactTextString(m) } func (m *Response) String() string { return proto.CompactTextString(m) }
func (*Response) ProtoMessage() {} func (*Response) ProtoMessage() {}
func (*Response) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
func (*Response) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
type isResponse_Value interface { type isResponse_Value interface {
isResponse_Value() isResponse_Value()
@ -918,9 +881,6 @@ type Response_BeginBlock struct {
type Response_EndBlock struct { type Response_EndBlock struct {
EndBlock *ResponseEndBlock `protobuf:"bytes,12,opt,name=end_block,json=endBlock,oneof"` EndBlock *ResponseEndBlock `protobuf:"bytes,12,opt,name=end_block,json=endBlock,oneof"`
} }
type Response_Proof struct {
Proof *ResponseProof `protobuf:"bytes,13,opt,name=proof,oneof"`
}
func (*Response_Exception) isResponse_Value() {} func (*Response_Exception) isResponse_Value() {}
func (*Response_Echo) isResponse_Value() {} func (*Response_Echo) isResponse_Value() {}
@ -934,7 +894,6 @@ func (*Response_Query) isResponse_Value() {}
func (*Response_InitChain) isResponse_Value() {} func (*Response_InitChain) isResponse_Value() {}
func (*Response_BeginBlock) isResponse_Value() {} func (*Response_BeginBlock) isResponse_Value() {}
func (*Response_EndBlock) isResponse_Value() {} func (*Response_EndBlock) isResponse_Value() {}
func (*Response_Proof) isResponse_Value() {}
func (m *Response) GetValue() isResponse_Value { func (m *Response) GetValue() isResponse_Value {
if m != nil { if m != nil {
@ -1027,13 +986,6 @@ func (m *Response) GetEndBlock() *ResponseEndBlock {
return nil return nil
} }
func (m *Response) GetProof() *ResponseProof {
if x, ok := m.GetValue().(*Response_Proof); ok {
return x.Proof
}
return nil
}
// XXX_OneofFuncs is for the internal use of the proto package. // XXX_OneofFuncs is for the internal use of the proto package.
func (*Response) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { func (*Response) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _Response_OneofMarshaler, _Response_OneofUnmarshaler, _Response_OneofSizer, []interface{}{ return _Response_OneofMarshaler, _Response_OneofUnmarshaler, _Response_OneofSizer, []interface{}{
@ -1049,7 +1001,6 @@ func (*Response) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) erro
(*Response_InitChain)(nil), (*Response_InitChain)(nil),
(*Response_BeginBlock)(nil), (*Response_BeginBlock)(nil),
(*Response_EndBlock)(nil), (*Response_EndBlock)(nil),
(*Response_Proof)(nil),
} }
} }
@ -1117,11 +1068,6 @@ func _Response_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
if err := b.EncodeMessage(x.EndBlock); err != nil { if err := b.EncodeMessage(x.EndBlock); err != nil {
return err return err
} }
case *Response_Proof:
b.EncodeVarint(13<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Proof); err != nil {
return err
}
case nil: case nil:
default: default:
return fmt.Errorf("Response.Value has unexpected type %T", x) return fmt.Errorf("Response.Value has unexpected type %T", x)
@ -1228,14 +1174,6 @@ func _Response_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffe
err := b.DecodeMessage(msg) err := b.DecodeMessage(msg)
m.Value = &Response_EndBlock{msg} m.Value = &Response_EndBlock{msg}
return true, err return true, err
case 13: // value.proof
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(ResponseProof)
err := b.DecodeMessage(msg)
m.Value = &Response_Proof{msg}
return true, err
default: default:
return false, nil return false, nil
} }
@ -1305,11 +1243,6 @@ func _Response_OneofSizer(msg proto.Message) (n int) {
n += proto.SizeVarint(12<<3 | proto.WireBytes) n += proto.SizeVarint(12<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s)) n += proto.SizeVarint(uint64(s))
n += s n += s
case *Response_Proof:
s := proto.Size(x.Proof)
n += proto.SizeVarint(13<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case nil: case nil:
default: default:
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
@ -1324,7 +1257,7 @@ type ResponseException struct {
func (m *ResponseException) Reset() { *m = ResponseException{} } func (m *ResponseException) Reset() { *m = ResponseException{} }
func (m *ResponseException) String() string { return proto.CompactTextString(m) } func (m *ResponseException) String() string { return proto.CompactTextString(m) }
func (*ResponseException) ProtoMessage() {} func (*ResponseException) ProtoMessage() {}
func (*ResponseException) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
func (*ResponseException) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
func (m *ResponseException) GetError() string { func (m *ResponseException) GetError() string {
if m != nil { if m != nil {
@ -1340,7 +1273,7 @@ type ResponseEcho struct {
func (m *ResponseEcho) Reset() { *m = ResponseEcho{} } func (m *ResponseEcho) Reset() { *m = ResponseEcho{} }
func (m *ResponseEcho) String() string { return proto.CompactTextString(m) } func (m *ResponseEcho) String() string { return proto.CompactTextString(m) }
func (*ResponseEcho) ProtoMessage() {} func (*ResponseEcho) ProtoMessage() {}
func (*ResponseEcho) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (*ResponseEcho) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
func (m *ResponseEcho) GetMessage() string { func (m *ResponseEcho) GetMessage() string {
if m != nil { if m != nil {
@ -1355,7 +1288,7 @@ type ResponseFlush struct {
func (m *ResponseFlush) Reset() { *m = ResponseFlush{} } func (m *ResponseFlush) Reset() { *m = ResponseFlush{} }
func (m *ResponseFlush) String() string { return proto.CompactTextString(m) } func (m *ResponseFlush) String() string { return proto.CompactTextString(m) }
func (*ResponseFlush) ProtoMessage() {} func (*ResponseFlush) ProtoMessage() {}
func (*ResponseFlush) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (*ResponseFlush) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
type ResponseInfo struct { type ResponseInfo struct {
Data string `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` Data string `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"`
@ -1367,7 +1300,7 @@ type ResponseInfo struct {
func (m *ResponseInfo) Reset() { *m = ResponseInfo{} } func (m *ResponseInfo) Reset() { *m = ResponseInfo{} }
func (m *ResponseInfo) String() string { return proto.CompactTextString(m) } func (m *ResponseInfo) String() string { return proto.CompactTextString(m) }
func (*ResponseInfo) ProtoMessage() {} func (*ResponseInfo) ProtoMessage() {}
func (*ResponseInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (*ResponseInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (m *ResponseInfo) GetData() string { func (m *ResponseInfo) GetData() string {
if m != nil { if m != nil {
@ -1404,7 +1337,7 @@ type ResponseSetOption struct {
func (m *ResponseSetOption) Reset() { *m = ResponseSetOption{} } func (m *ResponseSetOption) Reset() { *m = ResponseSetOption{} }
func (m *ResponseSetOption) String() string { return proto.CompactTextString(m) } func (m *ResponseSetOption) String() string { return proto.CompactTextString(m) }
func (*ResponseSetOption) ProtoMessage() {} func (*ResponseSetOption) ProtoMessage() {}
func (*ResponseSetOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (*ResponseSetOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (m *ResponseSetOption) GetLog() string { func (m *ResponseSetOption) GetLog() string {
if m != nil { if m != nil {
@ -1422,7 +1355,7 @@ type ResponseDeliverTx struct {
func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} } func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} }
func (m *ResponseDeliverTx) String() string { return proto.CompactTextString(m) } func (m *ResponseDeliverTx) String() string { return proto.CompactTextString(m) }
func (*ResponseDeliverTx) ProtoMessage() {} func (*ResponseDeliverTx) ProtoMessage() {}
func (*ResponseDeliverTx) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (*ResponseDeliverTx) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (m *ResponseDeliverTx) GetCode() CodeType { func (m *ResponseDeliverTx) GetCode() CodeType {
if m != nil { if m != nil {
@ -1454,7 +1387,7 @@ type ResponseCheckTx struct {
func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} } func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} }
func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) } func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) }
func (*ResponseCheckTx) ProtoMessage() {} func (*ResponseCheckTx) ProtoMessage() {}
func (*ResponseCheckTx) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
func (*ResponseCheckTx) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (m *ResponseCheckTx) GetCode() CodeType { func (m *ResponseCheckTx) GetCode() CodeType {
if m != nil { if m != nil {
@ -1478,15 +1411,19 @@ func (m *ResponseCheckTx) GetLog() string {
} }
type ResponseQuery struct { type ResponseQuery struct {
Code CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" json:"code,omitempty"`
Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
Log string `protobuf:"bytes,3,opt,name=log" json:"log,omitempty"`
Code CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" json:"code,omitempty"`
Index int64 `protobuf:"varint,2,opt,name=index" json:"index,omitempty"`
Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
Value []byte `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
Proof []byte `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"`
Height uint64 `protobuf:"varint,6,opt,name=height" json:"height,omitempty"`
Log string `protobuf:"bytes,7,opt,name=log" json:"log,omitempty"`
} }
func (m *ResponseQuery) Reset() { *m = ResponseQuery{} } func (m *ResponseQuery) Reset() { *m = ResponseQuery{} }
func (m *ResponseQuery) String() string { return proto.CompactTextString(m) } func (m *ResponseQuery) String() string { return proto.CompactTextString(m) }
func (*ResponseQuery) ProtoMessage() {} func (*ResponseQuery) ProtoMessage() {}
func (*ResponseQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
func (*ResponseQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
func (m *ResponseQuery) GetCode() CodeType { func (m *ResponseQuery) GetCode() CodeType {
if m != nil { if m != nil {
@ -1495,46 +1432,42 @@ func (m *ResponseQuery) GetCode() CodeType {
return CodeType_OK return CodeType_OK
} }
func (m *ResponseQuery) GetData() []byte {
func (m *ResponseQuery) GetIndex() int64 {
if m != nil { if m != nil {
return m.Data
return m.Index
} }
return nil
return 0
} }
func (m *ResponseQuery) GetLog() string {
func (m *ResponseQuery) GetKey() []byte {
if m != nil { if m != nil {
return m.Log
return m.Key
} }
return ""
return nil
} }
type ResponseProof struct {
Code CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" json:"code,omitempty"`
Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
Log string `protobuf:"bytes,3,opt,name=log" json:"log,omitempty"`
func (m *ResponseQuery) GetValue() []byte {
if m != nil {
return m.Value
}
return nil
} }
func (m *ResponseProof) Reset() { *m = ResponseProof{} }
func (m *ResponseProof) String() string { return proto.CompactTextString(m) }
func (*ResponseProof) ProtoMessage() {}
func (*ResponseProof) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
func (m *ResponseProof) GetCode() CodeType {
func (m *ResponseQuery) GetProof() []byte {
if m != nil { if m != nil {
return m.Code
return m.Proof
} }
return CodeType_OK
return nil
} }
func (m *ResponseProof) GetData() []byte {
func (m *ResponseQuery) GetHeight() uint64 {
if m != nil { if m != nil {
return m.Data
return m.Height
} }
return nil
return 0
} }
func (m *ResponseProof) GetLog() string {
func (m *ResponseQuery) GetLog() string {
if m != nil { if m != nil {
return m.Log return m.Log
} }
@ -1550,7 +1483,7 @@ type ResponseCommit struct {
func (m *ResponseCommit) Reset() { *m = ResponseCommit{} } func (m *ResponseCommit) Reset() { *m = ResponseCommit{} }
func (m *ResponseCommit) String() string { return proto.CompactTextString(m) } func (m *ResponseCommit) String() string { return proto.CompactTextString(m) }
func (*ResponseCommit) ProtoMessage() {} func (*ResponseCommit) ProtoMessage() {}
func (*ResponseCommit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
func (*ResponseCommit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
func (m *ResponseCommit) GetCode() CodeType { func (m *ResponseCommit) GetCode() CodeType {
if m != nil { if m != nil {
@ -1579,7 +1512,7 @@ type ResponseInitChain struct {
func (m *ResponseInitChain) Reset() { *m = ResponseInitChain{} } func (m *ResponseInitChain) Reset() { *m = ResponseInitChain{} }
func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) } func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) }
func (*ResponseInitChain) ProtoMessage() {} func (*ResponseInitChain) ProtoMessage() {}
func (*ResponseInitChain) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
func (*ResponseInitChain) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
type ResponseBeginBlock struct { type ResponseBeginBlock struct {
} }
@ -1587,7 +1520,7 @@ type ResponseBeginBlock struct {
func (m *ResponseBeginBlock) Reset() { *m = ResponseBeginBlock{} } func (m *ResponseBeginBlock) Reset() { *m = ResponseBeginBlock{} }
func (m *ResponseBeginBlock) String() string { return proto.CompactTextString(m) } func (m *ResponseBeginBlock) String() string { return proto.CompactTextString(m) }
func (*ResponseBeginBlock) ProtoMessage() {} func (*ResponseBeginBlock) ProtoMessage() {}
func (*ResponseBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
func (*ResponseBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
type ResponseEndBlock struct { type ResponseEndBlock struct {
Diffs []*Validator `protobuf:"bytes,4,rep,name=diffs" json:"diffs,omitempty"` Diffs []*Validator `protobuf:"bytes,4,rep,name=diffs" json:"diffs,omitempty"`
@ -1596,7 +1529,7 @@ type ResponseEndBlock struct {
func (m *ResponseEndBlock) Reset() { *m = ResponseEndBlock{} } func (m *ResponseEndBlock) Reset() { *m = ResponseEndBlock{} }
func (m *ResponseEndBlock) String() string { return proto.CompactTextString(m) } func (m *ResponseEndBlock) String() string { return proto.CompactTextString(m) }
func (*ResponseEndBlock) ProtoMessage() {} func (*ResponseEndBlock) ProtoMessage() {}
func (*ResponseEndBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
func (*ResponseEndBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
func (m *ResponseEndBlock) GetDiffs() []*Validator { func (m *ResponseEndBlock) GetDiffs() []*Validator {
if m != nil { if m != nil {
@ -1620,7 +1553,7 @@ type Header struct {
func (m *Header) Reset() { *m = Header{} } func (m *Header) Reset() { *m = Header{} }
func (m *Header) String() string { return proto.CompactTextString(m) } func (m *Header) String() string { return proto.CompactTextString(m) }
func (*Header) ProtoMessage() {} func (*Header) ProtoMessage() {}
func (*Header) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
func (*Header) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
func (m *Header) GetChainId() string { func (m *Header) GetChainId() string {
if m != nil { if m != nil {
@ -1693,7 +1626,7 @@ type BlockID struct {
func (m *BlockID) Reset() { *m = BlockID{} } func (m *BlockID) Reset() { *m = BlockID{} }
func (m *BlockID) String() string { return proto.CompactTextString(m) } func (m *BlockID) String() string { return proto.CompactTextString(m) }
func (*BlockID) ProtoMessage() {} func (*BlockID) ProtoMessage() {}
func (*BlockID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
func (*BlockID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
func (m *BlockID) GetHash() []byte { func (m *BlockID) GetHash() []byte {
if m != nil { if m != nil {
@ -1717,7 +1650,7 @@ type PartSetHeader struct {
func (m *PartSetHeader) Reset() { *m = PartSetHeader{} } func (m *PartSetHeader) Reset() { *m = PartSetHeader{} }
func (m *PartSetHeader) String() string { return proto.CompactTextString(m) } func (m *PartSetHeader) String() string { return proto.CompactTextString(m) }
func (*PartSetHeader) ProtoMessage() {} func (*PartSetHeader) ProtoMessage() {}
func (*PartSetHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
func (*PartSetHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
func (m *PartSetHeader) GetTotal() uint64 { func (m *PartSetHeader) GetTotal() uint64 {
if m != nil { if m != nil {
@ -1741,7 +1674,7 @@ type Validator struct {
func (m *Validator) Reset() { *m = Validator{} } func (m *Validator) Reset() { *m = Validator{} }
func (m *Validator) String() string { return proto.CompactTextString(m) } func (m *Validator) String() string { return proto.CompactTextString(m) }
func (*Validator) ProtoMessage() {} func (*Validator) ProtoMessage() {}
func (*Validator) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
func (*Validator) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
func (m *Validator) GetPubKey() []byte { func (m *Validator) GetPubKey() []byte {
if m != nil { if m != nil {
@ -1766,7 +1699,6 @@ func init() {
proto.RegisterType((*RequestDeliverTx)(nil), "types.RequestDeliverTx") proto.RegisterType((*RequestDeliverTx)(nil), "types.RequestDeliverTx")
proto.RegisterType((*RequestCheckTx)(nil), "types.RequestCheckTx") proto.RegisterType((*RequestCheckTx)(nil), "types.RequestCheckTx")
proto.RegisterType((*RequestQuery)(nil), "types.RequestQuery") proto.RegisterType((*RequestQuery)(nil), "types.RequestQuery")
proto.RegisterType((*RequestProof)(nil), "types.RequestProof")
proto.RegisterType((*RequestCommit)(nil), "types.RequestCommit") proto.RegisterType((*RequestCommit)(nil), "types.RequestCommit")
proto.RegisterType((*RequestInitChain)(nil), "types.RequestInitChain") proto.RegisterType((*RequestInitChain)(nil), "types.RequestInitChain")
proto.RegisterType((*RequestBeginBlock)(nil), "types.RequestBeginBlock") proto.RegisterType((*RequestBeginBlock)(nil), "types.RequestBeginBlock")
@ -1780,7 +1712,6 @@ func init() {
proto.RegisterType((*ResponseDeliverTx)(nil), "types.ResponseDeliverTx") proto.RegisterType((*ResponseDeliverTx)(nil), "types.ResponseDeliverTx")
proto.RegisterType((*ResponseCheckTx)(nil), "types.ResponseCheckTx") proto.RegisterType((*ResponseCheckTx)(nil), "types.ResponseCheckTx")
proto.RegisterType((*ResponseQuery)(nil), "types.ResponseQuery") proto.RegisterType((*ResponseQuery)(nil), "types.ResponseQuery")
proto.RegisterType((*ResponseProof)(nil), "types.ResponseProof")
proto.RegisterType((*ResponseCommit)(nil), "types.ResponseCommit") proto.RegisterType((*ResponseCommit)(nil), "types.ResponseCommit")
proto.RegisterType((*ResponseInitChain)(nil), "types.ResponseInitChain") proto.RegisterType((*ResponseInitChain)(nil), "types.ResponseInitChain")
proto.RegisterType((*ResponseBeginBlock)(nil), "types.ResponseBeginBlock") proto.RegisterType((*ResponseBeginBlock)(nil), "types.ResponseBeginBlock")
@ -1811,7 +1742,6 @@ type ABCIApplicationClient interface {
DeliverTx(ctx context.Context, in *RequestDeliverTx, opts ...grpc.CallOption) (*ResponseDeliverTx, error) DeliverTx(ctx context.Context, in *RequestDeliverTx, opts ...grpc.CallOption) (*ResponseDeliverTx, error)
CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error) CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error)
Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error) Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error)
Proof(ctx context.Context, in *RequestProof, opts ...grpc.CallOption) (*ResponseProof, error)
Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error) Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error)
InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error) InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error)
BeginBlock(ctx context.Context, in *RequestBeginBlock, opts ...grpc.CallOption) (*ResponseBeginBlock, error) BeginBlock(ctx context.Context, in *RequestBeginBlock, opts ...grpc.CallOption) (*ResponseBeginBlock, error)
@ -1889,15 +1819,6 @@ func (c *aBCIApplicationClient) Query(ctx context.Context, in *RequestQuery, opt
return out, nil return out, nil
} }
func (c *aBCIApplicationClient) Proof(ctx context.Context, in *RequestProof, opts ...grpc.CallOption) (*ResponseProof, error) {
out := new(ResponseProof)
err := grpc.Invoke(ctx, "/types.ABCIApplication/Proof", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *aBCIApplicationClient) Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error) { func (c *aBCIApplicationClient) Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error) {
out := new(ResponseCommit) out := new(ResponseCommit)
err := grpc.Invoke(ctx, "/types.ABCIApplication/Commit", in, out, c.cc, opts...) err := grpc.Invoke(ctx, "/types.ABCIApplication/Commit", in, out, c.cc, opts...)
@ -1944,7 +1865,6 @@ type ABCIApplicationServer interface {
DeliverTx(context.Context, *RequestDeliverTx) (*ResponseDeliverTx, error) DeliverTx(context.Context, *RequestDeliverTx) (*ResponseDeliverTx, error)
CheckTx(context.Context, *RequestCheckTx) (*ResponseCheckTx, error) CheckTx(context.Context, *RequestCheckTx) (*ResponseCheckTx, error)
Query(context.Context, *RequestQuery) (*ResponseQuery, error) Query(context.Context, *RequestQuery) (*ResponseQuery, error)
Proof(context.Context, *RequestProof) (*ResponseProof, error)
Commit(context.Context, *RequestCommit) (*ResponseCommit, error) Commit(context.Context, *RequestCommit) (*ResponseCommit, error)
InitChain(context.Context, *RequestInitChain) (*ResponseInitChain, error) InitChain(context.Context, *RequestInitChain) (*ResponseInitChain, error)
BeginBlock(context.Context, *RequestBeginBlock) (*ResponseBeginBlock, error) BeginBlock(context.Context, *RequestBeginBlock) (*ResponseBeginBlock, error)
@ -2081,24 +2001,6 @@ func _ABCIApplication_Query_Handler(srv interface{}, ctx context.Context, dec fu
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _ABCIApplication_Proof_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RequestProof)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ABCIApplicationServer).Proof(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/types.ABCIApplication/Proof",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ABCIApplicationServer).Proof(ctx, req.(*RequestProof))
}
return interceptor(ctx, in, info, handler)
}
func _ABCIApplication_Commit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _ABCIApplication_Commit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RequestCommit) in := new(RequestCommit)
if err := dec(in); err != nil { if err := dec(in); err != nil {
@ -2203,10 +2105,6 @@ var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
MethodName: "Query", MethodName: "Query",
Handler: _ABCIApplication_Query_Handler, Handler: _ABCIApplication_Query_Handler,
}, },
{
MethodName: "Proof",
Handler: _ABCIApplication_Proof_Handler,
},
{ {
MethodName: "Commit", MethodName: "Commit",
Handler: _ABCIApplication_Commit_Handler, Handler: _ABCIApplication_Commit_Handler,
@ -2231,112 +2129,112 @@ var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("types/types.proto", fileDescriptor0) } func init() { proto.RegisterFile("types/types.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 1710 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x58, 0x5b, 0x6f, 0xe4, 0x48,
0x15, 0x8e, 0x3b, 0x7d, 0x3d, 0x9d, 0x74, 0x2a, 0x27, 0x37, 0xa7, 0xe1, 0x61, 0x64, 0x58, 0x36,
0x33, 0x0c, 0x33, 0x28, 0xab, 0x45, 0x13, 0x16, 0x21, 0x25, 0x33, 0xd9, 0xa4, 0xb5, 0xda, 0x99,
0xe0, 0x9d, 0xdd, 0x07, 0x40, 0xb4, 0x9c, 0x76, 0x75, 0xb7, 0x89, 0xdb, 0xf6, 0xf8, 0x92, 0x4d,
0xf8, 0x23, 0xfc, 0x04, 0x7e, 0x01, 0x2f, 0x3c, 0xf1, 0x84, 0xc4, 0xfd, 0xf2, 0x57, 0xf8, 0x03,
0xe8, 0x54, 0x95, 0xaf, 0xb1, 0x79, 0x9a, 0x7d, 0x69, 0xb9, 0xce, 0xad, 0xea, 0x54, 0x7d, 0xe7,
0xab, 0xd3, 0x05, 0xdb, 0xf1, 0x7d, 0xc0, 0xa3, 0xe7, 0xe2, 0xf7, 0x59, 0x10, 0xfa, 0xb1, 0x8f,
0x1d, 0x31, 0x30, 0xfe, 0xdb, 0x86, 0x9e, 0xc9, 0xdf, 0x25, 0x3c, 0x8a, 0xf1, 0x08, 0xda, 0x7c,
0xb6, 0xf4, 0x75, 0xed, 0x91, 0x76, 0x34, 0x3c, 0xc6, 0x67, 0xd2, 0x5c, 0x69, 0xcf, 0x67, 0x4b,
0xff, 0x72, 0xcd, 0x14, 0x16, 0xf8, 0x7d, 0xe8, 0xcc, 0xdd, 0x24, 0x5a, 0xea, 0x2d, 0x61, 0xba,
0x53, 0x36, 0xfd, 0x94, 0x54, 0x97, 0x6b, 0xa6, 0xb4, 0xa1, 0xb0, 0x8e, 0x37, 0xf7, 0xf5, 0xf5,
0xba, 0xb0, 0x13, 0x6f, 0x2e, 0xc2, 0x92, 0x05, 0xbe, 0x00, 0x88, 0x78, 0x3c, 0xf5, 0x83, 0xd8,
0xf1, 0x3d, 0xbd, 0x2d, 0xec, 0x0f, 0xca, 0xf6, 0x5f, 0xf0, 0xf8, 0x8d, 0x50, 0x5f, 0xae, 0x99,
0x83, 0x28, 0x1d, 0x90, 0xa7, 0xcd, 0x5d, 0xe7, 0x96, 0x87, 0xd3, 0xf8, 0x4e, 0xef, 0xd4, 0x79,
0xbe, 0x92, 0xfa, 0xb7, 0x77, 0xe4, 0x69, 0xa7, 0x03, 0x3c, 0x86, 0xfe, 0x6c, 0xc9, 0x67, 0x37,
0xe4, 0xd7, 0x15, 0x7e, 0x7b, 0x65, 0xbf, 0x97, 0xa4, 0x15, 0x5e, 0xbd, 0x99, 0xfc, 0xc4, 0x67,
0xd0, 0x9d, 0xf9, 0xab, 0x95, 0x13, 0xeb, 0x3d, 0xe1, 0xb1, 0x5b, 0xf1, 0x10, 0xba, 0xcb, 0x35,
0x53, 0x59, 0xd1, 0x76, 0xbd, 0x4b, 0x78, 0x78, 0xaf, 0xf7, 0xeb, 0xb6, 0xeb, 0x67, 0xa4, 0xa2,
0xed, 0x12, 0x36, 0x94, 0x8a, 0xe3, 0x39, 0xf1, 0x74, 0xb6, 0xb4, 0x1c, 0x4f, 0x1f, 0xd4, 0xa5,
0x32, 0xf1, 0x9c, 0xf8, 0x25, 0xa9, 0x29, 0x15, 0x27, 0x1d, 0xe0, 0x27, 0x30, 0xbc, 0xe6, 0x0b,
0xc7, 0x9b, 0x5e, 0xbb, 0xfe, 0xec, 0x46, 0x07, 0xe1, 0xaa, 0x97, 0x5d, 0xcf, 0xc8, 0xe0, 0x8c,
0xf4, 0x97, 0x6b, 0x26, 0x5c, 0x67, 0x23, 0xfc, 0x18, 0x06, 0xdc, 0xb3, 0x95, 0xeb, 0x50, 0xb8,
0xee, 0x57, 0x10, 0xe0, 0xd9, 0xa9, 0x63, 0x9f, 0xab, 0x6f, 0x4a, 0x2d, 0x08, 0x7d, 0x7f, 0xae,
0x6f, 0xd4, 0xa5, 0x76, 0x45, 0x2a, 0x4a, 0x4d, 0xd8, 0x9c, 0xf5, 0xa0, 0x73, 0x6b, 0xb9, 0x09,
0x37, 0x3e, 0x84, 0x61, 0x01, 0x56, 0xa8, 0x43, 0x6f, 0xc5, 0xa3, 0xc8, 0x5a, 0x70, 0x81, 0xbd,
0x81, 0x99, 0x0e, 0x8d, 0x11, 0x6c, 0x14, 0x41, 0x65, 0x6c, 0x66, 0x8e, 0x04, 0x1c, 0xe3, 0xc7,
0xc0, 0xaa, 0xb8, 0x40, 0x06, 0xeb, 0x37, 0xfc, 0x5e, 0x05, 0xa2, 0x4f, 0xdc, 0x55, 0xd3, 0x0a,
0xb4, 0x0e, 0x4c, 0xb5, 0x06, 0x23, 0xf3, 0xcd, 0x90, 0x81, 0x23, 0x68, 0xc5, 0x77, 0xc2, 0x75,
0xc3, 0x6c, 0xc5, 0x77, 0xc6, 0x23, 0x18, 0x95, 0x51, 0xf0, 0xc0, 0xe2, 0xbb, 0xd9, 0x02, 0xc5,
0x31, 0xd2, 0x5c, 0xf2, 0xa8, 0xa5, 0x89, 0x1c, 0x18, 0x2f, 0x32, 0x2b, 0xb1, 0x23, 0xc5, 0x35,
0x6e, 0xc8, 0x35, 0xee, 0x43, 0x77, 0xc9, 0x9d, 0xc5, 0x32, 0x16, 0x8b, 0x6c, 0x9b, 0x6a, 0x64,
0x6c, 0xc1, 0x66, 0x09, 0x55, 0xc6, 0xab, 0x6c, 0xd9, 0x19, 0x0a, 0xf0, 0x87, 0x00, 0xb7, 0x96,
0xeb, 0xd8, 0x56, 0xec, 0x87, 0x91, 0xae, 0x3d, 0x5a, 0x3f, 0x1a, 0x1e, 0x33, 0x75, 0x12, 0x5f,
0xa5, 0x0a, 0xb3, 0x60, 0x63, 0xbc, 0x86, 0xed, 0x07, 0x80, 0x40, 0x84, 0xf6, 0xd2, 0x8a, 0x96,
0x6a, 0x59, 0xe2, 0x1b, 0x3f, 0xa0, 0x75, 0x59, 0x36, 0x0f, 0x55, 0xa9, 0x6f, 0xaa, 0xb0, 0x97,
0x42, 0x68, 0x2a, 0xa5, 0xf1, 0x18, 0xb6, 0x2a, 0x28, 0x29, 0x64, 0xa4, 0x95, 0x32, 0xfa, 0x43,
0x07, 0xfa, 0x26, 0x8f, 0x02, 0xdf, 0x8b, 0x38, 0xbe, 0x80, 0x01, 0xbf, 0x9b, 0x71, 0x59, 0xf0,
0x5a, 0x05, 0xb0, 0xd2, 0xe6, 0x3c, 0xd5, 0x13, 0xd8, 0x33, 0x63, 0x7c, 0xac, 0xc8, 0xaa, 0xca,
0x40, 0xca, 0xa9, 0xc8, 0x56, 0x4f, 0x53, 0xb6, 0x5a, 0xaf, 0x54, 0xab, 0xb4, 0xad, 0xd0, 0xd5,
0x63, 0x45, 0x57, 0xed, 0xda, 0xc0, 0x25, 0xbe, 0x3a, 0x29, 0xf1, 0x55, 0xa7, 0x76, 0xf9, 0x0d,
0x84, 0x75, 0x52, 0x22, 0xac, 0x6e, 0xad, 0x6b, 0x03, 0x63, 0x7d, 0x54, 0x60, 0xac, 0x5e, 0xa5,
0x50, 0xa5, 0x63, 0x0d, 0x65, 0x3d, 0xcf, 0x28, 0xab, 0x5f, 0x21, 0x39, 0xe5, 0x52, 0xe5, 0xac,
0xa7, 0x29, 0x90, 0x07, 0xb5, 0x9b, 0x56, 0x21, 0xad, 0x93, 0x12, 0x69, 0x41, 0x6d, 0x3a, 0x0d,
0xac, 0xf5, 0x93, 0x32, 0x6b, 0x49, 0xea, 0x39, 0xac, 0xf8, 0x36, 0xd2, 0xd6, 0x8f, 0x8a, 0xb4,
0xb5, 0x51, 0x21, 0x4b, 0x85, 0x85, 0x3a, 0xde, 0x7a, 0x9a, 0xf2, 0xd6, 0x66, 0x6d, 0x7a, 0x4d,
0xc4, 0xf5, 0x98, 0xea, 0xa6, 0x82, 0x4b, 0xaa, 0x79, 0x1e, 0x86, 0x7e, 0xa8, 0x38, 0x47, 0x0e,
0x8c, 0x23, 0xaa, 0xf9, 0x1c, 0x8d, 0xff, 0x87, 0xe4, 0x44, 0x8d, 0x17, 0xb0, 0x68, 0xfc, 0x56,
0xcb, 0x7d, 0x09, 0x70, 0x54, 0x99, 0xb6, 0x15, 0x5b, 0xca, 0x51, 0x7c, 0x53, 0xbc, 0x5b, 0x1e,
0x46, 0x84, 0x3c, 0xc9, 0x6b, 0xe9, 0x10, 0x9f, 0xc0, 0xb6, 0x6b, 0x45, 0xb1, 0xdc, 0x94, 0xa9,
0x2a, 0xc2, 0x75, 0x51, 0x84, 0x5b, 0xa4, 0x90, 0xbb, 0x21, 0xc4, 0xf8, 0x03, 0xd8, 0x29, 0xd8,
0x5a, 0x41, 0x30, 0x15, 0x14, 0xd0, 0x16, 0x14, 0xc0, 0x32, 0xeb, 0xd3, 0x20, 0xb8, 0xb4, 0xa2,
0xa5, 0xf1, 0x41, 0x9e, 0x7f, 0x89, 0x71, 0x5d, 0x7f, 0x91, 0x32, 0xae, 0xeb, 0x2f, 0x8c, 0x5f,
0xe5, 0x66, 0x39, 0xb9, 0x7e, 0x07, 0xda, 0x33, 0xdf, 0x96, 0xd9, 0x8f, 0x8e, 0xb7, 0xd4, 0x8e,
0xbf, 0xf4, 0x6d, 0xfe, 0xf6, 0x3e, 0xe0, 0xa6, 0x50, 0x66, 0x99, 0xb6, 0x24, 0x07, 0x89, 0x4c,
0x55, 0xfc, 0xf5, 0x3c, 0xfe, 0x2f, 0x89, 0x6e, 0x4a, 0x58, 0x7f, 0x9f, 0xd1, 0x7f, 0x9e, 0x9f,
0x87, 0x24, 0xf5, 0x6f, 0x26, 0xb6, 0xbc, 0x0a, 0xde, 0x63, 0xec, 0x5f, 0xd0, 0x6d, 0x55, 0x2c,
0xe7, 0xf7, 0x19, 0x7c, 0x27, 0x3f, 0xd2, 0xac, 0x90, 0x8d, 0x5d, 0xc0, 0x87, 0x15, 0x2a, 0x6f,
0xe5, 0x72, 0xed, 0xe1, 0xf7, 0xa0, 0x63, 0x3b, 0xf3, 0x79, 0xa4, 0xb7, 0x1b, 0x6e, 0x27, 0xa9,
0x36, 0x7e, 0xd7, 0x82, 0xae, 0xbc, 0x5b, 0xf0, 0x90, 0x78, 0xce, 0x72, 0xbc, 0xa9, 0x63, 0xa7,
0x15, 0x23, 0xc6, 0x13, 0xbb, 0xe9, 0xb6, 0xa4, 0x54, 0x62, 0x67, 0xc5, 0x15, 0xd8, 0xc5, 0x37,
0x1e, 0x40, 0xcf, 0x4b, 0x56, 0xd3, 0xf8, 0x2e, 0x12, 0xa8, 0x6e, 0x9b, 0x5d, 0x2f, 0x59, 0xbd,
0xbd, 0x8b, 0xf0, 0x18, 0x36, 0x0b, 0xd0, 0x77, 0x6c, 0x45, 0xe0, 0x23, 0xb5, 0x34, 0xb1, 0xee,
0xc9, 0x2b, 0x73, 0x98, 0x15, 0xc1, 0xc4, 0xc6, 0x23, 0x10, 0x35, 0x31, 0x95, 0x24, 0x29, 0x6b,
0xa5, 0x2b, 0xf6, 0x6d, 0x44, 0x72, 0xc5, 0xa2, 0x74, 0x71, 0x7e, 0x0b, 0x06, 0xb4, 0x93, 0xd2,
0xa4, 0x27, 0x4c, 0xfa, 0x24, 0x10, 0xca, 0x0f, 0x61, 0x2b, 0xbf, 0x8c, 0xa5, 0x49, 0x5f, 0x46,
0xc9, 0xc5, 0xc2, 0xf0, 0x10, 0xfa, 0x59, 0x4d, 0x0e, 0x84, 0x45, 0xcf, 0x52, 0xa5, 0x38, 0x81,
0x9e, 0x5a, 0x62, 0xed, 0xc5, 0xfd, 0x04, 0x3a, 0x81, 0x15, 0xc6, 0x91, 0xba, 0x20, 0x53, 0x82,
0xbb, 0xb2, 0x42, 0xea, 0x95, 0xd4, 0xf5, 0x2d, 0x4d, 0x8c, 0x13, 0xd8, 0x2c, 0xc9, 0x89, 0xd1,
0x62, 0x3f, 0xb6, 0x5c, 0x75, 0x75, 0xcb, 0x41, 0x36, 0x4d, 0x2b, 0x9f, 0xc6, 0x38, 0x81, 0x41,
0x76, 0x86, 0x74, 0x2c, 0x41, 0x72, 0xfd, 0x59, 0xd6, 0xd9, 0xa8, 0x11, 0x85, 0x0b, 0xfc, 0xaf,
0x55, 0x0f, 0xd1, 0x36, 0xe5, 0xe0, 0xc9, 0x9f, 0x34, 0x18, 0x7e, 0x2e, 0x29, 0x90, 0xd0, 0x88,
0x5b, 0x30, 0x7c, 0x9d, 0xb8, 0xae, 0x12, 0xb1, 0x35, 0xec, 0x43, 0x9b, 0x98, 0x93, 0x69, 0x38,
0x80, 0x8e, 0x60, 0x46, 0xd6, 0x22, 0x21, 0x51, 0x22, 0x5b, 0xc7, 0x4d, 0x18, 0x64, 0x1c, 0xc4,
0xda, 0x34, 0xcc, 0x28, 0x99, 0x75, 0x68, 0x98, 0x51, 0x0f, 0xdb, 0xc6, 0x21, 0xf4, 0x14, 0x53,
0x30, 0x44, 0x80, 0xae, 0x3c, 0x29, 0xb6, 0x43, 0xa1, 0x45, 0x91, 0xb3, 0x5d, 0x72, 0xc9, 0xa0,
0xcd, 0xf6, 0x70, 0x04, 0x90, 0x83, 0x9a, 0xed, 0xe3, 0x06, 0xf4, 0x53, 0x38, 0xb3, 0x03, 0xf2,
0x13, 0x05, 0xcc, 0xf4, 0x27, 0xbf, 0xef, 0x40, 0x3f, 0xad, 0x29, 0xec, 0x42, 0xeb, 0xcd, 0x67,
0x6c, 0x0d, 0xb7, 0x61, 0x73, 0xe2, 0xc5, 0x3c, 0xf4, 0x2c, 0xf7, 0x9c, 0xee, 0x03, 0xa6, 0x91,
0xe8, 0xdc, 0x9b, 0xf9, 0xb6, 0xe3, 0x2d, 0xa4, 0xa8, 0x45, 0x31, 0xcf, 0x2c, 0xfb, 0xb5, 0xef,
0xcd, 0x38, 0x5b, 0x47, 0x06, 0x1b, 0x5f, 0x7a, 0x56, 0x12, 0x2f, 0xfd, 0xd0, 0xf9, 0x0d, 0xb7,
0x59, 0x1b, 0xf7, 0x60, 0x7b, 0xe2, 0x45, 0xc9, 0x7c, 0xee, 0xcc, 0x1c, 0xee, 0xc5, 0x9f, 0x26,
0x9e, 0x1d, 0xb1, 0x0e, 0x22, 0x8c, 0xbe, 0xf4, 0x6e, 0x3c, 0xff, 0x6b, 0x4f, 0x75, 0x5d, 0xac,
0x8b, 0x3a, 0xec, 0x9e, 0x59, 0x11, 0x7f, 0x95, 0x04, 0xae, 0x33, 0xb3, 0x62, 0x7e, 0x6a, 0xdb,
0x21, 0x8f, 0x22, 0xc6, 0x29, 0x08, 0x69, 0xca, 0x73, 0xcf, 0x53, 0x87, 0x52, 0x7c, 0xce, 0x23,
0xb6, 0xc0, 0x43, 0xd8, 0x7b, 0xa0, 0x11, 0x33, 0x2f, 0xf1, 0xdb, 0xa0, 0x57, 0x55, 0x17, 0x56,
0x74, 0x15, 0x3a, 0x33, 0xce, 0x1c, 0xdc, 0x05, 0x26, 0xb5, 0x02, 0xc6, 0x13, 0x2f, 0x48, 0x62,
0xf6, 0xeb, 0x74, 0x7e, 0x25, 0x7d, 0x93, 0xc4, 0x24, 0xbe, 0xa9, 0x88, 0xaf, 0x04, 0x54, 0x98,
0x8b, 0x07, 0xb0, 0x53, 0x10, 0x7f, 0x41, 0xf9, 0xd1, 0xee, 0xac, 0xf2, 0xf5, 0x4a, 0x85, 0xb3,
0xf0, 0xac, 0x38, 0x09, 0x39, 0xf3, 0x70, 0x1f, 0x90, 0x34, 0x6a, 0x4b, 0xd2, 0xc4, 0xfd, 0x74,
0x06, 0x25, 0x57, 0x33, 0x04, 0x55, 0xb1, 0x9b, 0x2c, 0x1c, 0x8f, 0xbd, 0xc3, 0x3d, 0x60, 0x17,
0xfe, 0xad, 0x92, 0x9e, 0x7b, 0xb1, 0x13, 0xdf, 0xb3, 0x3f, 0x6b, 0xb8, 0x0b, 0x5b, 0xb9, 0xf8,
0x22, 0xf4, 0x93, 0x80, 0xfd, 0x45, 0xc3, 0x03, 0xc0, 0x5c, 0x7a, 0x15, 0xfa, 0x81, 0x1f, 0x59,
0x2e, 0xfb, 0xab, 0x86, 0xfb, 0xb0, 0x7d, 0xe1, 0xdf, 0x66, 0xa7, 0x20, 0x1d, 0xfe, 0x96, 0x3a,
0x64, 0xf2, 0xcf, 0xf9, 0xea, 0x9a, 0x87, 0xec, 0xef, 0x1a, 0x1e, 0xc2, 0x6e, 0x51, 0x91, 0xc5,
0xfa, 0x87, 0xa6, 0x56, 0x94, 0xa9, 0xbe, 0xf2, 0x63, 0xce, 0xfe, 0x99, 0x8a, 0xd5, 0x3e, 0xa8,
0x40, 0xff, 0xd2, 0x70, 0x07, 0x46, 0xb9, 0x58, 0xd8, 0xfe, 0x5b, 0xc3, 0x31, 0xec, 0x95, 0x84,
0x8e, 0xb7, 0xb8, 0xa2, 0xea, 0x63, 0xff, 0xd1, 0x8e, 0xff, 0xd8, 0x81, 0xad, 0xd3, 0xb3, 0x97,
0x93, 0xd3, 0x40, 0x4e, 0x40, 0x77, 0xf9, 0x73, 0x59, 0x73, 0x58, 0xf3, 0xef, 0x7f, 0x5c, 0xd7,
0x64, 0xe3, 0xb1, 0x2a, 0x4d, 0xac, 0x7b, 0x04, 0x18, 0xd7, 0xf6, 0xda, 0x34, 0x89, 0x6c, 0x6b,
0x1e, 0xbe, 0x05, 0x8c, 0xeb, 0x1a, 0x6e, 0xfc, 0x69, 0xa1, 0xd4, 0xb1, 0xe9, 0x45, 0x60, 0xdc,
0xd8, 0x7a, 0x93, 0x7f, 0xde, 0x87, 0x34, 0xbd, 0x0b, 0x8c, 0x1b, 0xfb, 0x6f, 0x7c, 0x91, 0xb1,
0x07, 0xd6, 0xbf, 0x0e, 0x8c, 0x1b, 0x5a, 0x70, 0xda, 0x1e, 0xd9, 0x43, 0xd4, 0xfd, 0xe9, 0x1f,
0xd7, 0x76, 0xd5, 0xe4, 0x23, 0x7b, 0x83, 0xba, 0x7f, 0xd3, 0xe3, 0xda, 0x56, 0x15, 0x3f, 0x4e,
0x29, 0x0d, 0x6b, 0x1f, 0x23, 0xc6, 0xf5, 0xfd, 0x3e, 0x6d, 0x4c, 0xfe, 0x37, 0xb2, 0xe9, 0x95,
0x61, 0xdc, 0xd8, 0xc9, 0xe3, 0x69, 0x91, 0x23, 0xb1, 0xf1, 0xad, 0x61, 0xdc, 0xdc, 0xcf, 0xe3,
0x27, 0x39, 0xad, 0x62, 0xc3, 0x8b, 0xc3, 0xb8, 0xa9, 0xa5, 0xbf, 0xee, 0x8a, 0xc7, 0xac, 0x8f,
0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x1e, 0x2e, 0xe2, 0x17, 0xe1, 0x12, 0x00, 0x00,
// 1711 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x58, 0x4b, 0x6f, 0xe4, 0xc6,
0x11, 0x16, 0xe7, 0x3d, 0x35, 0xd2, 0xa8, 0x55, 0x1a, 0x49, 0xd4, 0x24, 0x87, 0x05, 0x03, 0xc7,
0xda, 0x8d, 0xb3, 0x1b, 0xc8, 0x70, 0xb0, 0x8a, 0x83, 0x00, 0xd2, 0xae, 0xbc, 0x1a, 0x18, 0xde,
0x55, 0xe8, 0xb5, 0x2f, 0x09, 0x32, 0xa0, 0x86, 0x3d, 0x33, 0x8c, 0xa8, 0x26, 0x97, 0x6c, 0xca,
0x52, 0x7e, 0x83, 0xef, 0xf9, 0x09, 0xb9, 0x07, 0xc8, 0x29, 0xf7, 0x00, 0x79, 0x3f, 0x7e, 0x51,
0xd0, 0x0f, 0x3e, 0x45, 0x1a, 0x3e, 0xf8, 0x32, 0x60, 0x3d, 0xbb, 0xab, 0xba, 0xea, 0xeb, 0xea,
0x81, 0x1d, 0x7e, 0x1f, 0xd2, 0xf8, 0x99, 0xfc, 0x7d, 0x1a, 0x46, 0x01, 0x0f, 0xb0, 0x2b, 0x09,
0xeb, 0x2f, 0x1d, 0xe8, 0xdb, 0xf4, 0x5d, 0x42, 0x63, 0x8e, 0x47, 0xd0, 0xa1, 0x8b, 0x75, 0x60,
0x1a, 0x8f, 0x8c, 0xa3, 0xd1, 0x31, 0x3e, 0x55, 0xea, 0x5a, 0x7a, 0xbe, 0x58, 0x07, 0x17, 0x1b,
0xb6, 0xd4, 0xc0, 0x1f, 0x41, 0x77, 0xe9, 0x27, 0xf1, 0xda, 0x6c, 0x49, 0xd5, 0xdd, 0xb2, 0xea,
0x27, 0x42, 0x74, 0xb1, 0x61, 0x2b, 0x1d, 0xe1, 0xd6, 0x63, 0xcb, 0xc0, 0x6c, 0xd7, 0xb9, 0x9d,
0xb1, 0xa5, 0x74, 0x2b, 0x34, 0xf0, 0x39, 0x40, 0x4c, 0xf9, 0x3c, 0x08, 0xb9, 0x17, 0x30, 0xb3,
0x23, 0xf5, 0x0f, 0xca, 0xfa, 0x9f, 0x53, 0xfe, 0x46, 0x8a, 0x2f, 0x36, 0xec, 0x61, 0x9c, 0x12,
0xc2, 0xd2, 0xa5, 0xbe, 0x77, 0x4b, 0xa3, 0x39, 0xbf, 0x33, 0xbb, 0x75, 0x96, 0x2f, 0x95, 0xfc,
0xed, 0x9d, 0xb0, 0x74, 0x53, 0x02, 0x8f, 0x61, 0xb0, 0x58, 0xd3, 0xc5, 0xb5, 0xb0, 0xeb, 0x49,
0xbb, 0xbd, 0xb2, 0xdd, 0x0b, 0x21, 0x95, 0x56, 0xfd, 0x85, 0xfa, 0xc4, 0xa7, 0xd0, 0x5b, 0x04,
0x37, 0x37, 0x1e, 0x37, 0xfb, 0xd2, 0x62, 0x52, 0xb1, 0x90, 0xb2, 0x8b, 0x0d, 0x5b, 0x6b, 0x89,
0x74, 0xbd, 0x4b, 0x68, 0x74, 0x6f, 0x0e, 0xea, 0xd2, 0xf5, 0x4b, 0x21, 0x12, 0xe9, 0x92, 0x3a,
0x22, 0x14, 0x8f, 0x79, 0x7c, 0xbe, 0x58, 0x3b, 0x1e, 0x33, 0x87, 0x75, 0xa1, 0xcc, 0x98, 0xc7,
0x5f, 0x08, 0xb1, 0x08, 0xc5, 0x4b, 0x09, 0xfc, 0x18, 0x46, 0x57, 0x74, 0xe5, 0xb1, 0xf9, 0x95,
0x1f, 0x2c, 0xae, 0x4d, 0x90, 0xa6, 0x66, 0xd9, 0xf4, 0x4c, 0x28, 0x9c, 0x09, 0xf9, 0xc5, 0x86,
0x0d, 0x57, 0x19, 0x85, 0x1f, 0xc1, 0x90, 0x32, 0x57, 0x9b, 0x8e, 0xa4, 0xe9, 0x7e, 0xa5, 0x02,
0x98, 0x9b, 0x1a, 0x0e, 0xa8, 0xfe, 0x3e, 0xeb, 0x43, 0xf7, 0xd6, 0xf1, 0x13, 0x6a, 0xbd, 0x0f,
0xa3, 0x42, 0xa5, 0xa0, 0x09, 0xfd, 0x1b, 0x1a, 0xc7, 0xce, 0x8a, 0xca, 0x72, 0x1a, 0xda, 0x29,
0x69, 0x8d, 0x61, 0xb3, 0x58, 0x27, 0xd6, 0x56, 0x66, 0x28, 0x6a, 0xc1, 0xfa, 0x19, 0x90, 0xea,
0x51, 0x23, 0x81, 0xf6, 0x35, 0xbd, 0xd7, 0x8e, 0xc4, 0x27, 0x4e, 0xf4, 0xb2, 0xb2, 0x00, 0x87,
0xb6, 0xde, 0x83, 0x95, 0xd9, 0x66, 0x87, 0x8d, 0x63, 0x68, 0xf1, 0x3b, 0x69, 0xba, 0x69, 0xb7,
0xf8, 0x9d, 0xf5, 0x08, 0xc6, 0xe5, 0x83, 0x7d, 0xa0, 0xe1, 0x66, 0x1b, 0x94, 0x27, 0x83, 0x08,
0x1d, 0xd7, 0xe1, 0x8e, 0xd6, 0x90, 0xdf, 0x82, 0x17, 0x3a, 0x7c, 0xad, 0x97, 0x97, 0xdf, 0xb8,
0x0f, 0xbd, 0x35, 0xf5, 0x56, 0x6b, 0x2e, 0x2b, 0xbd, 0x63, 0x6b, 0x4a, 0xec, 0x35, 0x8c, 0x82,
0x5b, 0x2a, 0x0b, 0x7a, 0x60, 0x2b, 0xc2, 0xda, 0x86, 0xad, 0x52, 0xb9, 0x58, 0x2f, 0xb3, 0xcd,
0x67, 0xc7, 0x8b, 0x3f, 0x01, 0xb8, 0x75, 0x7c, 0xcf, 0x75, 0x78, 0x10, 0xc5, 0xa6, 0xf1, 0xa8,
0x7d, 0x34, 0x3a, 0x26, 0xfa, 0x54, 0xbe, 0x4c, 0x05, 0x76, 0x41, 0xc7, 0x7a, 0x0d, 0x3b, 0x0f,
0x4e, 0x5a, 0xec, 0x76, 0xed, 0xc4, 0xeb, 0x34, 0x02, 0xf1, 0x8d, 0xef, 0x89, 0xdd, 0x3a, 0x2e,
0x8d, 0x74, 0x0f, 0x6f, 0x69, 0xb7, 0x17, 0x92, 0x69, 0x6b, 0xa1, 0xf5, 0x18, 0xb6, 0x2b, 0xc7,
0x5f, 0x88, 0xd3, 0x28, 0xc6, 0x69, 0x7d, 0xdd, 0x85, 0x81, 0x4d, 0xe3, 0x30, 0x60, 0x31, 0xc5,
0xe7, 0x30, 0xa4, 0x77, 0x0b, 0xaa, 0x3a, 0xd9, 0xa8, 0x54, 0xa2, 0xd2, 0x39, 0x4f, 0xe5, 0xa2,
0x8a, 0x33, 0x65, 0x7c, 0xac, 0x51, 0xa8, 0x0a, 0x2d, 0xda, 0xa8, 0x08, 0x43, 0x1f, 0xa4, 0x30,
0xd4, 0xae, 0xb4, 0xa1, 0xd2, 0xad, 0xe0, 0xd0, 0x63, 0x8d, 0x43, 0x9d, 0x5a, 0xc7, 0x25, 0x20,
0x3a, 0x29, 0x01, 0x51, 0xb7, 0x76, 0xfb, 0x0d, 0x48, 0x74, 0x52, 0x42, 0xa2, 0x5e, 0xad, 0x69,
0x03, 0x14, 0x7d, 0x58, 0x80, 0xa2, 0x7e, 0xa5, 0x03, 0x95, 0x61, 0x0d, 0x16, 0x3d, 0xcb, 0xb0,
0x68, 0x50, 0x41, 0x2f, 0x6d, 0x52, 0x05, 0xa3, 0x0f, 0x52, 0x30, 0x1a, 0xd6, 0x26, 0xad, 0x82,
0x46, 0x27, 0x25, 0x34, 0x82, 0xda, 0x70, 0x1a, 0xe0, 0xe8, 0xe7, 0x65, 0x38, 0x52, 0x98, 0x72,
0x58, 0xb1, 0x6d, 0xc4, 0xa3, 0x9f, 0x16, 0xf1, 0x68, 0xb3, 0x82, 0x82, 0xba, 0x16, 0xbe, 0x11,
0x90, 0x1e, 0x8b, 0x4e, 0xa8, 0x54, 0x9a, 0xe8, 0x45, 0x1a, 0x45, 0x41, 0xa4, 0xb1, 0x44, 0x11,
0xd6, 0x91, 0xe8, 0xf8, 0xbc, 0xbe, 0xbe, 0x01, 0xbc, 0x64, 0xd7, 0x16, 0xaa, 0xcb, 0xfa, 0xbd,
0x91, 0xdb, 0x8a, 0x12, 0x2a, 0xa1, 0xc5, 0x50, 0xa3, 0x85, 0x09, 0xfd, 0x5b, 0x1a, 0xc5, 0xa2,
0x96, 0x14, 0x60, 0xa4, 0x24, 0x3e, 0x81, 0x1d, 0xdf, 0x89, 0xb9, 0x0a, 0x73, 0x5e, 0x82, 0x8f,
0x6d, 0x21, 0x50, 0xf1, 0x29, 0x1c, 0xf9, 0x31, 0xec, 0x16, 0x74, 0x9d, 0x30, 0x9c, 0xcb, 0xa6,
0xee, 0xc8, 0xa6, 0x26, 0x99, 0xf6, 0x69, 0x18, 0x5e, 0x38, 0xf1, 0xda, 0x7a, 0x2f, 0x8f, 0xbf,
0x84, 0xa4, 0x7e, 0xb0, 0x4a, 0x91, 0xd4, 0x0f, 0x56, 0xd6, 0x6f, 0x72, 0xb5, 0x1c, 0x34, 0x7f,
0x00, 0x9d, 0x45, 0xe0, 0xaa, 0xe8, 0xc7, 0xc7, 0xdb, 0x3a, 0xef, 0x2f, 0x02, 0x97, 0xbe, 0xbd,
0x0f, 0xa9, 0x2d, 0x85, 0x59, 0xa4, 0xad, 0x02, 0x2e, 0x6a, 0xff, 0xed, 0xdc, 0xff, 0xaf, 0x05,
0x80, 0x94, 0xaa, 0xf7, 0xbb, 0xf4, 0xfe, 0x47, 0x23, 0x3f, 0x10, 0x85, 0xd6, 0xdf, 0xca, 0xf9,
0x04, 0xba, 0x1e, 0x73, 0xe9, 0x9d, 0xf4, 0xde, 0xb6, 0x15, 0x91, 0x5e, 0x33, 0x6d, 0xb9, 0x62,
0xf9, 0x9a, 0x51, 0x49, 0x56, 0x84, 0x06, 0xf4, 0x60, 0x29, 0x81, 0x61, 0xd3, 0x56, 0x44, 0x01,
0x16, 0x7b, 0x25, 0xf8, 0xd7, 0x9b, 0xee, 0xe7, 0x9b, 0xfe, 0x95, 0xb8, 0x82, 0x8a, 0xdd, 0xf9,
0x5d, 0x66, 0x64, 0x37, 0x3f, 0xcf, 0xac, 0x2f, 0xad, 0x09, 0xe0, 0xc3, 0x86, 0x53, 0x57, 0x6d,
0xb9, 0x95, 0xf0, 0x87, 0xd0, 0x75, 0xbd, 0xe5, 0x32, 0x36, 0x3b, 0x0d, 0x97, 0x8d, 0x12, 0x5b,
0x7f, 0x68, 0x41, 0x4f, 0x5d, 0x15, 0x78, 0x28, 0x60, 0xcb, 0xf1, 0xd8, 0xdc, 0x73, 0xd3, 0x76,
0x91, 0xf4, 0xcc, 0x2d, 0xe4, 0xa4, 0x55, 0xca, 0x09, 0x42, 0x87, 0x7b, 0x37, 0x54, 0x57, 0xba,
0xfc, 0xc6, 0x03, 0xe8, 0xb3, 0xe4, 0x66, 0xce, 0xef, 0x62, 0x99, 0xed, 0x8e, 0xdd, 0x63, 0xc9,
0xcd, 0xdb, 0xbb, 0x18, 0x8f, 0x61, 0xab, 0x50, 0xf7, 0x9e, 0xab, 0xf1, 0x78, 0xac, 0xb7, 0x26,
0xf7, 0x3d, 0x7b, 0x69, 0x8f, 0xb2, 0x0e, 0x98, 0xb9, 0x78, 0x04, 0xb2, 0x21, 0xe6, 0x0a, 0xf3,
0x54, 0xa3, 0xf4, 0x64, 0xde, 0xc6, 0x82, 0xaf, 0x41, 0x51, 0xdc, 0x83, 0xdf, 0x83, 0xa1, 0xc8,
0xa4, 0x52, 0xe9, 0x4b, 0x95, 0x81, 0x60, 0x48, 0xe1, 0xfb, 0xb0, 0x9d, 0xdf, 0xad, 0x4a, 0x65,
0xa0, 0xbc, 0xe4, 0x6c, 0xa9, 0x78, 0x08, 0x83, 0xac, 0x21, 0x87, 0x52, 0xa3, 0xef, 0xe8, 0x3e,
0x9c, 0x41, 0x5f, 0x6f, 0xb1, 0xf6, 0x1e, 0x7e, 0x02, 0xdd, 0xd0, 0x89, 0x78, 0xac, 0xef, 0xbb,
0x14, 0x8e, 0x2f, 0x9d, 0x48, 0x0c, 0x40, 0xfa, 0x36, 0x56, 0x2a, 0xd6, 0x09, 0x6c, 0x95, 0xf8,
0xa2, 0x12, 0x79, 0xc0, 0x1d, 0x5f, 0xdf, 0xc4, 0x8a, 0xc8, 0x96, 0x69, 0xe5, 0xcb, 0x58, 0x27,
0x30, 0xcc, 0xce, 0x50, 0x1c, 0x4b, 0x98, 0x5c, 0x7d, 0xaa, 0x47, 0xaa, 0x4d, 0x5b, 0x53, 0xb2,
0xb0, 0x83, 0xaf, 0xf4, 0x48, 0xd0, 0xb1, 0x15, 0xf1, 0xe4, 0xcf, 0x06, 0x8c, 0x3e, 0x53, 0xf8,
0x27, 0xaa, 0x11, 0xb7, 0x61, 0xf4, 0x3a, 0xf1, 0x7d, 0xcd, 0x22, 0x1b, 0x38, 0x80, 0x8e, 0x80,
0x4d, 0x62, 0xe0, 0x10, 0xba, 0x12, 0x16, 0x49, 0x4b, 0x30, 0x05, 0x1e, 0x92, 0x36, 0x6e, 0xc1,
0x30, 0x03, 0x20, 0xd2, 0x11, 0x64, 0x86, 0xc7, 0xa4, 0x2b, 0xc8, 0x0c, 0x77, 0xc8, 0x0e, 0x8e,
0xa0, 0xaf, 0x61, 0x82, 0x20, 0x02, 0xf4, 0xd4, 0x49, 0x91, 0x5d, 0xe1, 0x5a, 0x36, 0x38, 0x99,
0x08, 0x93, 0xac, 0xb4, 0xc9, 0x1e, 0x8e, 0x01, 0xf2, 0xa2, 0x26, 0xfb, 0xb8, 0x09, 0x83, 0xb4,
0x9c, 0xc9, 0xc1, 0x93, 0x3f, 0x75, 0x61, 0x90, 0x36, 0x12, 0xf6, 0xa0, 0xf5, 0xe6, 0x53, 0xb2,
0x81, 0x3b, 0xb0, 0x35, 0x63, 0x9c, 0x46, 0xcc, 0xf1, 0xcf, 0xc5, 0x0d, 0x40, 0x0c, 0xc1, 0x3a,
0x67, 0x8b, 0xc0, 0xf5, 0xd8, 0x4a, 0xb1, 0x5a, 0xc2, 0xd1, 0x99, 0xe3, 0xbe, 0x0e, 0xd8, 0x82,
0x92, 0x36, 0x12, 0xd8, 0xfc, 0x82, 0x39, 0x09, 0x5f, 0x07, 0x91, 0xf7, 0x3b, 0xea, 0x92, 0x0e,
0xee, 0xc1, 0xce, 0x8c, 0xc5, 0xc9, 0x72, 0xe9, 0x2d, 0x3c, 0xca, 0xf8, 0x27, 0x09, 0x73, 0x63,
0xd2, 0x45, 0x84, 0xf1, 0x17, 0xec, 0x9a, 0x05, 0x5f, 0x31, 0x3d, 0x39, 0x91, 0x1e, 0x9a, 0x30,
0x39, 0x73, 0x62, 0xfa, 0x32, 0x09, 0x7d, 0x6f, 0xe1, 0x70, 0x7a, 0xea, 0xba, 0x11, 0x8d, 0x63,
0x42, 0x85, 0x13, 0x21, 0x29, 0xaf, 0xbd, 0x4c, 0x0d, 0x4a, 0xfe, 0x29, 0x8d, 0xc9, 0x0a, 0x0f,
0x61, 0xef, 0x81, 0x44, 0xae, 0xbc, 0xc6, 0xef, 0x83, 0x59, 0x15, 0xbd, 0x72, 0xe2, 0xcb, 0xc8,
0x5b, 0x50, 0xe2, 0xe1, 0x04, 0x88, 0x92, 0xca, 0xda, 0x9d, 0xb1, 0x30, 0xe1, 0xe4, 0xb7, 0xe9,
0xfa, 0x9a, 0xfb, 0x26, 0xe1, 0x82, 0x7d, 0x5d, 0x61, 0x5f, 0xca, 0xfa, 0x20, 0x3e, 0x1e, 0xc0,
0x6e, 0x81, 0xfd, 0xb9, 0x88, 0x4f, 0x64, 0xe7, 0x26, 0xdf, 0xaf, 0x12, 0x78, 0x2b, 0xe6, 0xf0,
0x24, 0xa2, 0x84, 0xe1, 0x3e, 0xa0, 0x90, 0xe8, 0x94, 0xa4, 0x81, 0x07, 0xe9, 0x0a, 0x9a, 0xaf,
0x57, 0x08, 0xab, 0x6c, 0x3f, 0x59, 0x79, 0x8c, 0xbc, 0xc3, 0x3d, 0x20, 0xaf, 0x82, 0x5b, 0xcd,
0x3d, 0x67, 0xdc, 0xe3, 0xf7, 0xe4, 0xaf, 0x06, 0x4e, 0x60, 0x3b, 0x67, 0xbf, 0x8a, 0x82, 0x24,
0x24, 0x7f, 0x33, 0xf0, 0x00, 0x30, 0xe7, 0x5e, 0x46, 0x41, 0x18, 0xc4, 0x8e, 0x4f, 0xfe, 0x6e,
0xe0, 0x3e, 0xec, 0xbc, 0x0a, 0x6e, 0xb3, 0x53, 0x50, 0x06, 0xff, 0x48, 0x0d, 0x32, 0xfe, 0x67,
0xf4, 0xe6, 0x8a, 0x46, 0xe4, 0x9f, 0x06, 0x1e, 0xc2, 0xa4, 0x28, 0xc8, 0x7c, 0xfd, 0xcb, 0xd0,
0x3b, 0xca, 0x44, 0x5f, 0x06, 0x9c, 0x92, 0x7f, 0xa7, 0x6c, 0x9d, 0x07, 0xed, 0xe8, 0x3f, 0x06,
0xee, 0xc2, 0x38, 0x67, 0x4b, 0xdd, 0xff, 0x1a, 0x38, 0x85, 0xbd, 0x12, 0xd3, 0x63, 0xab, 0x4b,
0xd1, 0x72, 0xe4, 0x7f, 0xc6, 0xf1, 0xd7, 0x5d, 0xd8, 0x3e, 0x3d, 0x7b, 0x31, 0x3b, 0x0d, 0xd5,
0x02, 0xe2, 0xf6, 0x7e, 0xa6, 0x1a, 0x0d, 0x6b, 0x9e, 0xe6, 0xd3, 0xba, 0x41, 0x19, 0x8f, 0x75,
0x3f, 0x62, 0xdd, 0x0b, 0x7d, 0x5a, 0x3b, 0x2f, 0x8b, 0x45, 0xd4, 0x20, 0xf3, 0xf0, 0xa1, 0x3e,
0xad, 0x1b, 0x9a, 0xf1, 0x17, 0x85, 0xfe, 0xc6, 0xa6, 0xe7, 0xfa, 0xb4, 0x71, 0x7c, 0x16, 0xf6,
0xf9, 0xe4, 0xd1, 0xf4, 0x68, 0x9f, 0x36, 0xce, 0xd0, 0xf8, 0x3c, 0x83, 0x0c, 0xac, 0x7f, 0xba,
0x4f, 0x1b, 0xc6, 0x68, 0x91, 0x1e, 0x35, 0x34, 0xd4, 0xbd, 0xc8, 0xa7, 0xb5, 0x93, 0x31, 0x7e,
0x94, 0x62, 0x12, 0xd6, 0xbe, 0xfa, 0xa7, 0xf5, 0xf3, 0xb7, 0x08, 0x32, 0x7f, 0xd6, 0x35, 0x3d,
0xe7, 0xa7, 0x8d, 0x93, 0x35, 0x9e, 0x16, 0x41, 0x0e, 0x1b, 0x1f, 0xf5, 0xd3, 0xe6, 0xf9, 0x1a,
0x3f, 0xce, 0x71, 0x11, 0x1b, 0x9e, 0xf6, 0xd3, 0xa6, 0x11, 0xfb, 0xaa, 0x27, 0xff, 0x35, 0xfa,
0xf0, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x73, 0x34, 0x90, 0x2d, 0x4a, 0x12, 0x00, 0x00,
} }

+ 15
- 23
types/types.proto View File

@ -18,14 +18,13 @@ enum MessageType {
Info = 0x03; Info = 0x03;
SetOption = 0x04; SetOption = 0x04;
Exception = 0x05; Exception = 0x05;
DeliverTx = 0x11;
DeliverTx = 0x11;
CheckTx = 0x12; CheckTx = 0x12;
Commit = 0x13; Commit = 0x13;
Query = 0x14; Query = 0x14;
InitChain = 0x15; InitChain = 0x15;
BeginBlock = 0x16; BeginBlock = 0x16;
EndBlock = 0x17; EndBlock = 0x17;
Proof = 0x18;
} }
//---------------------------------------- //----------------------------------------
@ -87,7 +86,6 @@ message Request {
RequestInitChain init_chain = 9; RequestInitChain init_chain = 9;
RequestBeginBlock begin_block = 10; RequestBeginBlock begin_block = 10;
RequestEndBlock end_block = 11; RequestEndBlock end_block = 11;
RequestProof proof = 12;
} }
} }
@ -107,20 +105,18 @@ message RequestSetOption{
} }
message RequestDeliverTx{ message RequestDeliverTx{
bytes tx = 1;
bytes tx = 1;
} }
message RequestCheckTx{ message RequestCheckTx{
bytes tx = 1;
bytes tx = 1;
} }
message RequestQuery{ message RequestQuery{
bytes query = 1;
}
message RequestProof{
bytes key = 1;
uint64 height = 2;
bytes data = 1;
string path = 2;
uint64 height = 3;
bool prove = 4;
} }
message RequestCommit{ message RequestCommit{
@ -157,7 +153,6 @@ message Response {
ResponseInitChain init_chain = 10; ResponseInitChain init_chain = 10;
ResponseBeginBlock begin_block = 11; ResponseBeginBlock begin_block = 11;
ResponseEndBlock end_block = 12; ResponseEndBlock end_block = 12;
ResponseProof proof = 13;
} }
} }
@ -197,14 +192,12 @@ message ResponseCheckTx{
message ResponseQuery{ message ResponseQuery{
CodeType code = 1; CodeType code = 1;
bytes data = 2;
string log = 3;
}
message ResponseProof{
CodeType code = 1;
bytes data = 2;
string log = 3;
int64 index = 2;
bytes key = 3;
bytes value = 4;
bytes proof = 5;
uint64 height = 6;
string log = 7;
} }
message ResponseCommit{ message ResponseCommit{
@ -250,8 +243,8 @@ message PartSetHeader {
} }
message Validator { message Validator {
bytes pubKey = 1;
uint64 power = 2;
bytes pubKey = 1;
uint64 power = 2;
} }
//---------------------------------------- //----------------------------------------
@ -265,7 +258,6 @@ service ABCIApplication {
rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx); rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx);
rpc CheckTx(RequestCheckTx) returns (ResponseCheckTx); rpc CheckTx(RequestCheckTx) returns (ResponseCheckTx);
rpc Query(RequestQuery) returns (ResponseQuery); rpc Query(RequestQuery) returns (ResponseQuery);
rpc Proof(RequestProof) returns (ResponseProof);
rpc Commit(RequestCommit) returns (ResponseCommit); rpc Commit(RequestCommit) returns (ResponseCommit);
rpc InitChain(RequestInitChain) returns (ResponseInitChain); rpc InitChain(RequestInitChain) returns (ResponseInitChain);
rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock); rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock);


Loading…
Cancel
Save