mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-25 14:52:17 +00:00
Merge branch 'master' into brapse/blockchain-v2-riri-routine
This commit is contained in:
commit
211bd64355
@ -21,6 +21,7 @@ program](https://hackerone.com/tendermint).
|
|||||||
|
|
||||||
- [rpc] \#2010 Add NewHTTPWithClient and NewJSONRPCClientWithHTTPClient (note these and NewHTTP, NewJSONRPCClient functions panic if remote is invalid) (@gracenoah)
|
- [rpc] \#2010 Add NewHTTPWithClient and NewJSONRPCClientWithHTTPClient (note these and NewHTTP, NewJSONRPCClient functions panic if remote is invalid) (@gracenoah)
|
||||||
- [rpc] \#3984 Add `MempoolClient` interface to `Client` interface
|
- [rpc] \#3984 Add `MempoolClient` interface to `Client` interface
|
||||||
|
- [rpc] \#3882 Add custom marshalers to proto messages to disable `omitempty`
|
||||||
|
|
||||||
### BUG FIXES:
|
### BUG FIXES:
|
||||||
|
|
||||||
|
6
Makefile
6
Makefile
@ -15,7 +15,7 @@ BUILD_FLAGS = -mod=readonly -ldflags "$(LD_FLAGS)"
|
|||||||
all: check build test install
|
all: check build test install
|
||||||
|
|
||||||
# The below include contains the tools.
|
# The below include contains the tools.
|
||||||
include scripts/devtools/Makefile
|
include tools.mk
|
||||||
include tests.mk
|
include tests.mk
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
@ -153,10 +153,6 @@ lint:
|
|||||||
|
|
||||||
DESTINATION = ./index.html.md
|
DESTINATION = ./index.html.md
|
||||||
|
|
||||||
rpc-docs:
|
|
||||||
cat rpc/core/slate_header.txt > $(DESTINATION)
|
|
||||||
godoc2md -template rpc/core/doc_template.txt github.com/tendermint/tendermint/rpc/core | grep -v -e "pipe.go" -e "routes.go" -e "dev.go" | sed 's,/src/target,https://github.com/tendermint/tendermint/tree/master/rpc/core,' >> $(DESTINATION)
|
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
### Docker image
|
### Docker image
|
||||||
|
|
||||||
|
@ -15,9 +15,8 @@ import (
|
|||||||
func TestMarshalJSON(t *testing.T) {
|
func TestMarshalJSON(t *testing.T) {
|
||||||
b, err := json.Marshal(&ResponseDeliverTx{})
|
b, err := json.Marshal(&ResponseDeliverTx{})
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
// Do not include empty fields.
|
// include empty fields.
|
||||||
assert.False(t, strings.Contains(string(b), "code"))
|
assert.True(t, strings.Contains(string(b), "code"))
|
||||||
|
|
||||||
r1 := ResponseCheckTx{
|
r1 := ResponseCheckTx{
|
||||||
Code: 1,
|
Code: 1,
|
||||||
Data: []byte("hello"),
|
Data: []byte("hello"),
|
||||||
|
@ -42,14 +42,12 @@ func (r ResponseQuery) IsErr() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// override JSON marshalling so we dont emit defaults (ie. disable omitempty)
|
// override JSON marshalling so we emit defaults (ie. disable omitempty)
|
||||||
// note we need Unmarshal functions too because protobuf had the bright idea
|
|
||||||
// to marshal int64->string. cool. cool, cool, cool: https://developers.google.com/protocol-buffers/docs/proto3#json
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
jsonpbMarshaller = jsonpb.Marshaler{
|
jsonpbMarshaller = jsonpb.Marshaler{
|
||||||
EnumsAsInts: true,
|
EnumsAsInts: true,
|
||||||
EmitDefaults: false,
|
EmitDefaults: true,
|
||||||
}
|
}
|
||||||
jsonpbUnmarshaller = jsonpb.Unmarshaler{}
|
jsonpbUnmarshaller = jsonpb.Unmarshaler{}
|
||||||
)
|
)
|
||||||
|
53
crypto/merkle/result.go
Normal file
53
crypto/merkle/result.go
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
// nolint: dupl
|
||||||
|
package merkle
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/gogo/protobuf/jsonpb"
|
||||||
|
)
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
// override JSON marshalling so we emit defaults (ie. disable omitempty)
|
||||||
|
|
||||||
|
var (
|
||||||
|
jsonpbMarshaller = jsonpb.Marshaler{
|
||||||
|
EnumsAsInts: true,
|
||||||
|
EmitDefaults: true,
|
||||||
|
}
|
||||||
|
jsonpbUnmarshaller = jsonpb.Unmarshaler{}
|
||||||
|
)
|
||||||
|
|
||||||
|
func (r *ProofOp) MarshalJSON() ([]byte, error) {
|
||||||
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
||||||
|
return []byte(s), err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *ProofOp) UnmarshalJSON(b []byte) error {
|
||||||
|
reader := bytes.NewBuffer(b)
|
||||||
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Proof) MarshalJSON() ([]byte, error) {
|
||||||
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
||||||
|
return []byte(s), err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Proof) UnmarshalJSON(b []byte) error {
|
||||||
|
reader := bytes.NewBuffer(b)
|
||||||
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some compile time assertions to ensure we don't
|
||||||
|
// have accidental runtime surprises later on.
|
||||||
|
// jsonEncodingRoundTripper ensures that asserted
|
||||||
|
// interfaces implement both MarshalJSON and UnmarshalJSON
|
||||||
|
|
||||||
|
type jsonRoundTripper interface {
|
||||||
|
json.Marshaler
|
||||||
|
json.Unmarshaler
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ jsonRoundTripper = (*ProofOp)(nil)
|
||||||
|
var _ jsonRoundTripper = (*Proof)(nil)
|
54
libs/common/result.go
Normal file
54
libs/common/result.go
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
// nolint: dupl
|
||||||
|
// dupl is reading this as the same file as crypto/merkle/result.go
|
||||||
|
package common
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/gogo/protobuf/jsonpb"
|
||||||
|
)
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
// override JSON marshalling so we emit defaults (ie. disable omitempty)
|
||||||
|
|
||||||
|
var (
|
||||||
|
jsonpbMarshaller = jsonpb.Marshaler{
|
||||||
|
EnumsAsInts: true,
|
||||||
|
EmitDefaults: true,
|
||||||
|
}
|
||||||
|
jsonpbUnmarshaller = jsonpb.Unmarshaler{}
|
||||||
|
)
|
||||||
|
|
||||||
|
func (r *KVPair) MarshalJSON() ([]byte, error) {
|
||||||
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
||||||
|
return []byte(s), err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *KVPair) UnmarshalJSON(b []byte) error {
|
||||||
|
reader := bytes.NewBuffer(b)
|
||||||
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *KI64Pair) MarshalJSON() ([]byte, error) {
|
||||||
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
||||||
|
return []byte(s), err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *KI64Pair) UnmarshalJSON(b []byte) error {
|
||||||
|
reader := bytes.NewBuffer(b)
|
||||||
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some compile time assertions to ensure we don't
|
||||||
|
// have accidental runtime surprises later on.
|
||||||
|
// jsonEncodingRoundTripper ensures that asserted
|
||||||
|
// interfaces implement both MarshalJSON and UnmarshalJSON
|
||||||
|
|
||||||
|
type jsonRoundTripper interface {
|
||||||
|
json.Marshaler
|
||||||
|
json.Unmarshaler
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ jsonRoundTripper = (*KVPair)(nil)
|
||||||
|
var _ jsonRoundTripper = (*KI64Pair)(nil)
|
@ -1,15 +1,5 @@
|
|||||||
# Tendermint RPC
|
# Tendermint RPC
|
||||||
|
|
||||||
We are using [Slate](https://github.com/lord/slate) to power our RPC
|
|
||||||
documentation. For generating markdown use:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
go get github.com/davecheney/godoc2md
|
|
||||||
|
|
||||||
# from root of this repo
|
|
||||||
make rpc-docs
|
|
||||||
```
|
|
||||||
|
|
||||||
## Pagination
|
## Pagination
|
||||||
|
|
||||||
Requests that return multiple items will be paginated to 30 items by default.
|
Requests that return multiple items will be paginated to 30 items by default.
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
title: RPC Reference
|
|
||||||
|
|
||||||
language_tabs: # must be one of https://git.io/vQNgJ
|
|
||||||
- shell
|
|
||||||
- go
|
|
||||||
|
|
||||||
toc_footers:
|
|
||||||
- <a href='https://tendermint.com/'>Tendermint</a>
|
|
||||||
- <a href='https://github.com/lord/slate'>Documentation Powered by Slate</a>
|
|
||||||
|
|
||||||
search: true
|
|
||||||
---
|
|
@ -40,7 +40,6 @@ mkfile_dir := $(shell cd $(shell dirname $(mkfile_path)); pwd)
|
|||||||
|
|
||||||
TOOLS_DESTDIR ?= $(GOPATH)/bin
|
TOOLS_DESTDIR ?= $(GOPATH)/bin
|
||||||
|
|
||||||
GOIMPORTS = $(TOOLS_DESTDIR)/goimports
|
|
||||||
CERTSTRAP = $(TOOLS_DESTDIR)/certstrap
|
CERTSTRAP = $(TOOLS_DESTDIR)/certstrap
|
||||||
PROTOBUF = $(TOOLS_DESTDIR)/protoc
|
PROTOBUF = $(TOOLS_DESTDIR)/protoc
|
||||||
GOX = $(TOOLS_DESTDIR)/gox
|
GOX = $(TOOLS_DESTDIR)/gox
|
||||||
@ -48,7 +47,7 @@ GOODMAN = $(TOOLS_DESTDIR)/goodman
|
|||||||
|
|
||||||
all: tools
|
all: tools
|
||||||
|
|
||||||
tools: goimports certstrap protobuf gox goodman
|
tools: certstrap protobuf gox goodman
|
||||||
|
|
||||||
check: check_tools
|
check: check_tools
|
||||||
|
|
||||||
@ -57,11 +56,6 @@ check_tools:
|
|||||||
@echo "Found tools: $(foreach tool,$(notdir $(GOTOOLS)),\
|
@echo "Found tools: $(foreach tool,$(notdir $(GOTOOLS)),\
|
||||||
$(if $(shell which $(tool)),$(tool),$(error "No $(tool) in PATH")))"
|
$(if $(shell which $(tool)),$(tool),$(error "No $(tool) in PATH")))"
|
||||||
|
|
||||||
goimports: $(GOIMPORTS)
|
|
||||||
$(GOIMPORTS):
|
|
||||||
@echo "Get goimports@v0.0.0-20190628034336-212fb13d595e"
|
|
||||||
@go get golang.org/x/tools/cmd/goimports@v0.0.0-20190628034336-212fb13d595e
|
|
||||||
|
|
||||||
certstrap: $(CERTSTRAP)
|
certstrap: $(CERTSTRAP)
|
||||||
$(CERTSTRAP):
|
$(CERTSTRAP):
|
||||||
@echo "Get Certstrap"
|
@echo "Get Certstrap"
|
||||||
@ -86,7 +80,7 @@ $(GOODMAN):
|
|||||||
@go get github.com/snikch/goodman/cmd/goodman@10e37e294daa3c9a90abded60ff9924bafab3888
|
@go get github.com/snikch/goodman/cmd/goodman@10e37e294daa3c9a90abded60ff9924bafab3888
|
||||||
|
|
||||||
tools-clean:
|
tools-clean:
|
||||||
rm -f $(CERTSTRAP) $(GOIMPORTS) $(PROTOBUF) $(GOX) $(GOODMAN)
|
rm -f $(CERTSTRAP) $(PROTOBUF) $(GOX) $(GOODMAN)
|
||||||
rm -f tools-stamp
|
rm -f tools-stamp
|
||||||
|
|
||||||
.PHONY: all tools tools-clean
|
.PHONY: all tools tools-clean
|
@ -1,4 +1,8 @@
|
|||||||
# tm-bench
|
# tm-bench (Deprecated)
|
||||||
|
|
||||||
|
> ## **Deprecation Warning**
|
||||||
|
|
||||||
|
### This tool will be depreacted in favor of [tm-load-test](https://github.com/interchainio/tm-load-test).
|
||||||
|
|
||||||
Tendermint blockchain benchmarking tool:
|
Tendermint blockchain benchmarking tool:
|
||||||
|
|
||||||
|
74
types/proto3/result.go
Normal file
74
types/proto3/result.go
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
package proto3
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/gogo/protobuf/jsonpb"
|
||||||
|
)
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
// override JSON marshalling so we emit defaults (ie. disable omitempty)
|
||||||
|
|
||||||
|
var (
|
||||||
|
jsonpbMarshaller = jsonpb.Marshaler{
|
||||||
|
EnumsAsInts: true,
|
||||||
|
EmitDefaults: true,
|
||||||
|
}
|
||||||
|
jsonpbUnmarshaller = jsonpb.Unmarshaler{}
|
||||||
|
)
|
||||||
|
|
||||||
|
func (r *PartSetHeader) MarshalJSON() ([]byte, error) {
|
||||||
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
||||||
|
return []byte(s), err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *PartSetHeader) UnmarshalJSON(b []byte) error {
|
||||||
|
reader := bytes.NewBuffer(b)
|
||||||
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Header) MarshalJSON() ([]byte, error) {
|
||||||
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
||||||
|
return []byte(s), err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Header) UnmarshalJSON(b []byte) error {
|
||||||
|
reader := bytes.NewBuffer(b)
|
||||||
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Version) MarshalJSON() ([]byte, error) {
|
||||||
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
||||||
|
return []byte(s), err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Version) UnmarshalJSON(b []byte) error {
|
||||||
|
reader := bytes.NewBuffer(b)
|
||||||
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Timestamp) MarshalJSON() ([]byte, error) {
|
||||||
|
s, err := jsonpbMarshaller.MarshalToString(r)
|
||||||
|
return []byte(s), err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Timestamp) UnmarshalJSON(b []byte) error {
|
||||||
|
reader := bytes.NewBuffer(b)
|
||||||
|
return jsonpbUnmarshaller.Unmarshal(reader, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some compile time assertions to ensure we don't
|
||||||
|
// have accidental runtime surprises later on.
|
||||||
|
// jsonEncodingRoundTripper ensures that asserted
|
||||||
|
// interfaces implement both MarshalJSON and UnmarshalJSON
|
||||||
|
|
||||||
|
type jsonRoundTripper interface {
|
||||||
|
json.Marshaler
|
||||||
|
json.Unmarshaler
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ jsonRoundTripper = (*PartSetHeader)(nil)
|
||||||
|
var _ jsonRoundTripper = (*Header)(nil)
|
||||||
|
var _ jsonRoundTripper = (*Version)(nil)
|
||||||
|
var _ jsonRoundTripper = (*Timestamp)(nil)
|
@ -83,9 +83,9 @@ func (txs Txs) Proof(i int) TxProof {
|
|||||||
|
|
||||||
// TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree.
|
// TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree.
|
||||||
type TxProof struct {
|
type TxProof struct {
|
||||||
RootHash cmn.HexBytes
|
RootHash cmn.HexBytes `json:"root_hash"`
|
||||||
Data Tx
|
Data Tx `json:"data"`
|
||||||
Proof merkle.SimpleProof
|
Proof merkle.SimpleProof `json:"proof"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Leaf returns the hash(tx), which is the leaf in the merkle tree which this proof refers to.
|
// Leaf returns the hash(tx), which is the leaf in the merkle tree which this proof refers to.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user