Commit Graph
944 Commits
Author SHA1 Message Date
Aleksandr BezobchukandGitHub 3635c7a382 logger: refactor Tendermint logger by using zerolog (#6534) 2021-06-07 08:30:48 -04:00
Sam KleinmanandGitHub 00c284d9d7 node: change package interface (#6540) 2021-06-04 11:36:30 -04:00
Callum WatersandGitHub 08b134ddbc ws: parse remote addrs with trailing dash (#6537) 2021-06-04 17:07:50 +02:00
Sam KleinmanandGitHub 663c0bba9c rpc: decouple test fixtures from node implementation (#6533) 2021-06-04 09:10:38 -04:00
Aleksandr BezobchukandGitHub 7ec123c968 improvement: update TxInfo (#6529)
Remove `Context` from the `TxInfo` type and instead require the caller to pass a `Context` to `CheckTx` which is idiomatic.

closes: #6497
2021-06-02 13:53:57 +00:00
Aleksandr BezobchukandGitHub 1e4bc04cd6 mempool: v1 implementation (#6466) 2021-06-01 11:17:45 -04:00
JayT106andGitHub 711a718162 config/indexer: custom event indexing (#6411) 2021-05-27 10:44:46 -04:00
MarkoandGitHub 719e028e00 libs: internalize some packages (#6366)
## Description

Internalize some libs. This reduces the amount ot public API tendermint is supporting. The moved libraries are mainly ones that are used within Tendermint-core.
2021-05-25 16:25:31 +00:00
Sam KleinmanandGitHub d9134063e7 rpc: add chunked rpc interface (#6445) 2021-05-24 09:48:27 -04:00
Sam KleinmanandGitHub fdd506a126 rpc: clean up client global state in tests (#6438) 2021-05-11 10:22:38 -04:00
Sam KleinmanandGitHub 0b0914b3df rpc: remove global environment (#6426) 2021-05-06 17:06:16 -04:00
Sam KleinmanandGitHub 0407cd5258 github: fix linter configuration errors and occluded errors (#6400) 2021-04-28 11:08:42 -04:00
Ismail KhoffiandGitHub ee70430255 libs: remove most of libs/rand (#6364) 2021-04-23 16:00:35 +02:00
JayT106andGitHub 43eacd159f state/indexer: reconstruct indexer, move txindex into the indexer package (#6382) 2021-04-21 16:37:44 -04:00
JayT106andGitHub ca7dbea05b Set cache control in the HTTP-RPC response header (#6265) 2021-04-14 14:05:27 +02:00
gotjoshuaandGitHub f563bd4ff1 RPC: don't cap page size in unsafe mode (#6329) 2021-04-12 13:51:56 +02:00
Callum WatersandGitHub b272746444 Merge pull request from GHSA-f3w5-v9xx-rp8p
* add time warping lunatic attack test

* create too high and connecton refused errors and add to the light client provider

* add height check to provider

* introduce block lag

* add detection logic for processing forward lunatic attack

* add node-side verification logic

* clean up tests and formatting

* update adr's

* update testing

* fix fetching the latest block

* format

* update changelog

* implement suggestions

* modify ADR's

* format

* clean up node evidence verification
2021-04-08 08:10:03 -07:00
Sam KleinmanandGitHub 6d9372bd39 test: improve cleanup for data and disk use (#6311) 2021-04-05 12:39:04 -04:00
Frojdi DymyljaandGitHub 9ecfcc93a6 fix: jsonrpc url parsing and dial function (#6264)
This PR fixes how the jsonrpc parses the URL, and how the dial function connects to the RPC.

Closes: https://github.com/tendermint/tendermint/issues/6260
2021-03-29 09:24:52 +00:00
Aleksandr BezobchukandGitHub 003f394512 rpc: index block events to support block event queries (#6226) 2021-03-22 11:47:35 -04:00
9f7051d38a node: implement tendermint modes (#6241)
Co-authored-by: dongsam <dongsamb@gmail.com>
Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
2021-03-18 11:17:53 +01:00
Anton KaliaevandGitHub 00b9524168 rpc/jsonrpc/server: return an error in WriteRPCResponseHTTP(Error) (#6204)
instead of panicking
Closes #5529
2021-03-10 09:29:35 +04:00
MarkoandGitHub 8c539f7c2b logs: cleanup (#6198) 2021-03-04 10:09:08 +00:00
Aleksandr BezobchukandGitHub be88fd3e63 mempool/rpc: log grooming (#6201) 2021-03-03 19:45:35 -05:00
Anton KaliaevandGitHub fe4e97afe0 rpc/jsonrpc: Unmarshal RPCRequest correctly (#6191)
i.e. without double pointer. With double pointer, it was possible to
submit `null` value, which will crash the server.

```
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x189ddc0]

goroutine 1 [running]:
github.com/tendermint/tendermint/rpc/jsonrpc/types.(*RPCRequest).UnmarshalJSON(0xc0000147e0, 0xc00029f201, 0x4, 0x1ff, 0x883baa0, 0xc0000147e0)
        /Users/anton/go/src/github.com/tendermint/tendermint/rpc/jsonrpc/types/types.go:70 +0x100
encoding/json.(*decodeState).literalStore(0xc000216bb0, 0xc00029f201, 0x4, 0x1ff, 0x1998800, 0xc0000147e0, 0x199, 0xc000231700, 0x10e0a5e, 0x197)
        /usr/local/Cellar/go/1.16/libexec/src/encoding/json/decode.go:860 +0x30ce
encoding/json.(*decodeState).value(0xc000216bb0, 0x1998800, 0xc0000147e0, 0x199, 0x1998800, 0xc0000147e0)
        /usr/local/Cellar/go/1.16/libexec/src/encoding/json/decode.go:384 +0x40c
encoding/json.(*decodeState).array(0xc000216bb0, 0x18df040, 0xc0001be540, 0x16, 0xc000216bd8, 0x10e405b)
        /usr/local/Cellar/go/1.16/libexec/src/encoding/json/decode.go:558 +0x365
encoding/json.(*decodeState).value(0xc000216bb0, 0x18df040, 0xc0001be540, 0x16, 0x16, 0x6e)
        /usr/local/Cellar/go/1.16/libexec/src/encoding/json/decode.go:360 +0x22f
encoding/json.(*decodeState).unmarshal(0xc000216bb0, 0x18df040, 0xc0001be540, 0xc000216bd8, 0x0)
        /usr/local/Cellar/go/1.16/libexec/src/encoding/json/decode.go:180 +0x2c9
encoding/json.Unmarshal(0xc00029f200, 0x6, 0x200, 0x18df040, 0xc0001be540, 0x0, 0x0)
        /usr/local/Cellar/go/1.16/libexec/src/encoding/json/decode.go:107 +0x15d
```
2021-03-02 10:25:52 +00:00
Anton KaliaevandGitHub 089b314bdb test/fuzz: fix PEX reactor test (#6188)
* test/fuzz: fix PEX reactor test

* .github: [fuzz] increase retention period for crashers
2021-03-01 20:18:51 +04:00
Anton KaliaevandGitHub e9e5026dac rpc/client/http: drop endpoint arg from New and add WSOptions (#6176)
also

- replace `MaxReconnectAttempts`, `ReadWait`, `WriteWait` and `PingPeriod` options with `WSOptions` in `WSClient` (rpc/jsonrpc/client/ws_client.go).
- set default write wait to 10s for `WSClient`(rpc/jsonrpc/client/ws_client.go)
- unexpose `WSEvents`(rpc/client/http.go)

Closes #6162
2021-02-25 06:57:31 +00:00
Anton KaliaevandGitHub 0f4124fb54 rpc/client/http: Do not drop events even if the out channel is full (#6163)
```
// unbuffered
out, err := httpClient.Subscribe(ctx, "event.type=NewTx and account.name=Jack", 0)

// buffered
out, err := httpClient.Subscribe(ctx, "event.type=NewTx AND account.name=Jack", 20)
```

Before: when the `out` channel is buffered and becomes full, we drop an event (+ log the error)
After: when the `out` channel is buffered and becomes full, we block

**Before it was not apparent to the app when an event was dropped (looking at the logs is manual task). After this PR, if the user does not read from `out` on 1 subscription, all other subscriptions will be stuck too.**

Closes #6161
2021-02-24 04:16:13 +00:00
Anton KaliaevandGitHub c1ca749afa rpc: change default sorting to desc for /tx_search results (#6168)
Closes #6155
2021-02-23 10:56:16 +00:00
Callum WatersandGitHub 29360f955c light: improve timeout functionality (#6145) 2021-02-18 23:49:24 +01:00
Bipul PrasadandGitHub 90c290ac52 rpc: standardize error codes (#6019) 2021-02-18 17:54:02 +01:00
Callum WatersandGitHub 162f67cf26 correct spelling to US english (#6077) 2021-02-11 18:59:18 +01:00
Anton KaliaevandGitHub 1cd9bdb80b light/provider/http: fix Validators (#6022)
Closes #6010
2021-02-01 11:32:37 +00:00
MarkoandGitHub 1f01e5d726 params: remove blockTimeIota (#5987)
## Description

- removes blocktimeiota 
- merges block params in abci and core state
- spec change: https://github.com/tendermint/spec/pull/248


Closes: #5939
2021-01-28 13:47:24 +00:00
MarkoandGitHub 70bb8cc8b7 proto: seperate native and proto types (#5994)
## Description

Separate protobuf and domain types. We should avoid using protobuf in our core logic. 

ref #5460
2021-01-27 20:14:27 +00:00
Erik GrinakerandGitHub f54f80bf0d test: don't use foo-bar.net in TestHTTPClientMakeHTTPDialer (#5997)
This test relied on connecting to the external site `foo-bar.net`, and (predictably) the site went down and broke all of our CI runs. This changes it to use local HTTP servers instead.
2021-01-27 19:17:00 +00:00
MarkoandGitHub eaa948ab7d proto: bump gogoproto (1.3.2) (#5886)
## Description

- bump gogoproto (1.3.2)
- regenerate proto files

Closes: #XXX
2021-01-17 16:23:41 +00:00
Anton Kaliaev 085fd66f33 p2p: do not format raw msg bytes
While debugging the mempool issue (#5796), I've noticed we're spending
quite a bit of time encoding blobs of data, which never get printed! The
reason is filtering occurs on the level below, so Go runtime rightfully
evaluates function arguments.

I think it's okay to not format raw bytes.
2020-12-17 15:59:18 +04:00
Erik GrinakerandGitHub e198edf20e p2p: remove NodeInfo interface and rename DefaultNodeInfo struct (#5799)
The `NodeInfo` interface does not appear to serve any purpose at all, so I removed it and renamed the `DefaultNodeInfo` struct to `NodeInfo` (including the Protobuf representations). Let me know if this is actually needed for anything.

Only the Protobuf rename is listed in the changelog, since we do not officially support API stability of the `p2p` package (according to `README.md`). The on-wire protocol remains compatible.
2020-12-15 18:54:25 +00:00
Anton KaliaevandGitHub e13b4386ff abci: modify Client interface and socket client (#5673)
`abci.Client`:

- Sync and Async methods now accept a context for cancellation
    * grpc client uses context to cancel both Sync and Async requests
    * local client ignores context parameter
    * socket client uses context to cancel Sync requests and to drop Async requests before sending them if context was cancelled prior to that

- Async methods return an error
    * socket client returns an error immediately if queue is full for Async requests
    * local client always returns nil error
    * grpc client returns an error if context was cancelled before we got response or the receiving queue had a space for response (do not confuse with the sending queue from the socket client)

- specify clients semantics in [doc.go](https://raw.githubusercontent.com/tendermint/tendermint/27112fffa62276bc016d56741f686f0f77931748/abci/client/doc.go)

`mempool.TxInfo`

- add optional `Context` to `TxInfo`, which can be used to cancel `CheckTx` request

Closes #5190
2020-11-30 16:46:16 +04:00
Aleksandr BezobchukandGitHub 8aa47c7da5 rpc: fix content-type header (#5661) 2020-11-13 14:07:10 -05:00
Callum WatersandGitHub ca46cbc781 move broadcast_evidence rpc call from info to evidence (#5634) 2020-11-09 15:48:44 +01:00
bf35cc6443 cmd: add support for --key (#5612)
Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
2020-11-09 15:22:36 +01:00
Callum WatersandGitHub 3922dde05d evidence: structs can independently form abci evidence (#5610) 2020-11-04 17:14:48 +01:00
MarkoandGitHub e1644d00c5 mempool: length prefix txs when getting them from mempool (#5483)
## Description

In protobuf `[]byte` is varint encoded. When adding txs to the block we were not taking this into account. 


Closes: #XXX
2020-10-13 10:33:21 +00:00
MarkoandGitHub 346aa14db5 fix lint failures with 1.31 (#5489) 2020-10-13 10:22:53 +02:00
Anton KaliaevandGitHub 7121f68f25 light/rpc: fix ABCIQuery (#5375)
Closes #5106
2020-10-12 16:36:37 +04:00
Anton KaliaevandGitHub 2672b91ab0 rpc/core: more docs and a test for /blockchain endpoint (#5417)
Closes #5339
2020-09-28 15:13:00 +00:00
Anton KaliaevandGitHub 1635d1339c state: more test cases for block validation (#5415)
Closes #2589
2020-09-28 11:57:35 +00:00
Anton KaliaevandGitHub 7d2b3e305e docs: minor tweaks (#5404)
* docs: fix /validators description

Refs https://github.com/tendermint/spec/pull/169

* consensus: remove nil err from logging statement

* update UPGRADING.md

* note about LightBlocks
2020-09-25 11:05:56 +04:00