Commit Graph

8011 Commits

Author SHA1 Message Date
Marko
f9f4916bc3 store: proto migration (#4974)
## Description

migrate store to protobuf

Closes: #XXX
2020-06-08 06:43:29 +00:00
dependabot-preview[bot]
6cfbe1eb5c build(deps): Bump github.com/stretchr/testify from 1.6.0 to 1.6.1
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.6.0...v1.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-08 05:05:29 +00:00
Erik Grinaker
b76b270a23 blockchain/v2: correctly set block store base in status responses (#4971)
See: https://github.com/tendermint/tendermint/pull/4969#pullrequestreview-425298225
2020-06-05 15:18:12 +00:00
Marko
9ef266b88f types: migrate params to protobuf (#4962) 2020-06-05 15:29:53 +02:00
Callum Waters
d4f1876d12 consensus: change logging and handling of height mismatch (#4954) 2020-06-05 15:04:45 +02:00
Anton Kaliaev
245794a3fd types: remove VerifyFutureCommit (#4961)
It was previously used by the now removed `lite` package.
2020-06-05 12:31:30 +00:00
Marko
b4aca980e9 proto: change to use gogofaster (#4957) 2020-06-05 14:18:44 +02:00
Marko
b9af87c4ea state: proto migration (#4951) 2020-06-05 10:47:16 +02:00
Marko
ee91312d34 proto: add more to/from (#4956)
## Description

adding in some more to/from methods/functions

Closes: #XXX
2020-06-05 04:42:04 +00:00
Marko
dc49dcc1c1 evidence: json tags for DuplicateVoteEvidence (#4959)
## Description

Add json tags to duplicate evidence 

Closes: #4958
2020-06-04 22:41:16 +00:00
Marko
a88537bb88 ints: stricter numbers (#4939) 2020-06-04 16:34:56 +02:00
Marko
7c576f02ab keys: change to []bytes (#4950) 2020-06-04 15:32:42 +02:00
Callum Waters
d53a8d0377 light: implement validate basic (#4916)
run a validate basic on inbound validator sets and headers before further processing them
2020-06-04 13:45:39 +02:00
Marko
2302422283 swagger: define version (#4952)
## Description

try to further resolve rpc docs issue

Closes: #XXX
2020-06-04 09:58:25 +00:00
Marko
7f8415ded0 fix swagger page (#4948)
## Description

_Please add a description of the changes that this PR introduces and the files that
are the most critical to review._ 

Closes: #XXX
2020-06-03 13:25:02 +00:00
Anton Kaliaev
ce3c9c2341 rpc/core: return an error if page=0 (#4947)
* rpc/core: return an error if `page=0`

Closes #4942

affected endpoints:

- /validators
- /tx_search

* swagger: update doc for /unconfirmed_txs
2020-06-03 16:51:51 +04:00
Anton Kaliaev
994912211c p2p/conn: add a test for MakeSecretConnection (#4829)
Refs #4154
2020-06-03 16:28:23 +04:00
Alessio Treglia
c8483531d8 consensus: attempt to repair the WAL file on data corruption (#4682)
Closes: #4578

Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
2020-06-03 15:14:12 +04:00
Marko
c2578e2262 light: rename lite2 to light & remove lite (#4946)
This PR removes lite & renames lite2 to light throughout the repo

Signed-off-by: Marko Baricevic <marbar3778@yahoo.com>

Closes: #4944
2020-06-03 10:13:42 +00:00
Erik Grinaker
395d58c27c docs: document open file limit in production guide (#4945)
See e.g. https://github.com/tendermint/tendermint/issues/4925#issuecomment-637929251 for people getting hit by this. Should we document it elsewhere as well?
2020-06-03 09:34:25 +00:00
Marko
4e6a844d6f statesync: use Protobuf instead of Amino for p2p traffic (#4943)
## Description



Closes: #XXX
2020-06-03 08:43:50 +00:00
Anton Kaliaev
123beeadc4 lite2: compare header with witnesses in parallel (#4935)
Closes #4801
2020-06-03 11:32:51 +04:00
Anton Kaliaev
2af939a5dd lite2: check header w/ witnesses only when doing bisection (#4929)
* lite2: check header w/ witnesses only when doing bisection

Closes #4872

We don't need to check witnesses if we're doing backwards hash chain
verification. I also think we don't need to do it when sequential
verification is being used.

* lite2: require 1 witness only when verificationMode=skipping

https://github.com/tendermint/tendermint/pull/4929#pullrequestreview-423256477

we don't need witnesses when performing sequential verification (except
when primary fails)
2020-06-03 11:11:19 +04:00
Anton Kaliaev
af1d16bee9 lite2: allow bigger requests to LC proxy (#4930)
Closes #4838

Previously, we're only setting MaxOpenConnections, whereas we should set
all config variables based on user's config.toml.
2020-06-03 10:54:14 +04:00
Marko
99d88cbe2f crypto: remove key suffixes (#4941)
## Description

- remove keyname suffix from keys


Closes: #2228
2020-06-03 05:46:29 +00:00
Marko
0da7d87351 proto: move mempool to proto (#4940)
* proto: move mempool to proto

- changes according to moving the mempool reactor to proto

Signed-off-by: Marko Baricevic <marbar3778@yahoo.com>

Closes: #2883
2020-06-03 05:30:52 +00:00
Callum Waters
26bea83694 evidence: retrieve header at height of evidence for validation (#4870)
validation of lunatic evidence requires that the node retrieve the header at the height of the infringement from the block store for comparison
2020-06-03 06:44:06 +02:00
Callum Waters
e538ea03d1 consensus: fix startnextheightcorrectly test (#4938) 2020-06-02 22:46:03 +02:00
Anton Kaliaev
8ab0a4c3b0 lite2: correctly return the results of the "latest" block (#4931)
Closes #4837

- `/block_results`

  before:

  failed to update light client to 7: failed to obtain the header #7: signed header not found

  after:

  We can't return the latest block results because we won't be able to
  prove them. Return the results for the previous block instead.

- /block_results?height=X`

  no changes
2020-06-02 18:51:50 +04:00
Federico Kunze
da924fc62d rpc: add BlockByHash to Client (#4923)
Ethermint currently has to maintain a map height-> block hash on the store (see here) as it needs to expose the eth_getBlockByHash JSON-RPC query for Web3 compatibility. This query is currently not supported by the tendermint RPC client.
2020-06-01 09:04:45 +04:00
dependabot-preview[bot]
0572315f77 build(deps): Bump vuepress-theme-cosmos from 1.0.165 to 1.0.166 in /docs (#4920)
Bumps [vuepress-theme-cosmos](https://github.com/cosmos/vuepress-theme-cosmos) from 1.0.165 to 1.0.166.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/cosmos/vuepress-theme-cosmos/commits">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://api.dependabot.com/badges/compatibility_score?dependency-name=vuepress-theme-cosmos&package-manager=npm_and_yarn&previous-version=1.0.165&new-version=1.0.166)](https://dependabot.com/compatibility-score/?dependency-name=vuepress-theme-cosmos&package-manager=npm_and_yarn&previous-version=1.0.165&new-version=1.0.166)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
Dependabot will merge this PR once it's up-to-date and CI passes on it, as requested by @marbar3778.

[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)



</details>
2020-05-29 12:45:08 +00:00
Tess Rinearson
29e50794c8 CHANGELOG: add 0.32.12 changelog entry (#4918) 2020-05-29 11:49:10 +00:00
dependabot-preview[bot]
4f009e3b71 build(deps): Bump github.com/stretchr/testify from 1.5.1 to 1.6.0
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.5.1 to 1.6.0.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.5.1...v1.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-29 11:35:10 +00:00
Marko
d5a60b0eb0 rpc: increase waitForEventTimeout to 8 seconds (#4917)
## Description

I was able to reproduce this non-determinism locally
After increasing the timeout to 8 seconds from 5 I was not able to reproduce it

Closes: #2856
2020-05-29 11:05:50 +00:00
Tess Rinearson
bdf268e03e CHANGELOG: update to reflect 0.33.5 (#4915)
Final step of a point release.
2020-05-29 10:49:44 +00:00
Joe Bowman
8b50ff60d9 only retrieve pubkey once for all validators (partially fixes #4865) (#4895)
## Description

in consensus/state.go, when calulating metrics, retrieve address (ergo, pubkey) once prior to iterating over validatorset to ensure we do not make excessive calls to signer.

Partially closes: #4865
2020-05-29 06:15:46 +00:00
Anton Kaliaev
89cdc4bfd7 consensus: increase ensureTimeout (#4891)
attempt to fix #4270

TestMempoolProgressAfterCreateEmptyBlocksInterval and other tests which
rely on ensureTimeout
2020-05-29 10:02:24 +04:00
Tess Rinearson
75e19f99ea CONTRIBUTING: update minor release process (#4909)
Updates our development and release process to match the process outlined in #4860. 

Also elaborates on a few git/Github conventions that we've discussed in the past.
2020-05-28 20:28:59 +00:00
Marko
a27317dff0 ci: add timeouts (#4912)
## Description

Add Timeouts to Github action jobs. The goal of adding timeouts is so if a job is hanging on something it gets killed and the author will get notified. 

I picked these times based on previous circle and Github action times then doubled & in some places tripled the times. 

Closes: #XXX
2020-05-28 13:09:59 +00:00
dependabot-preview[bot]
aded0b0138 build(deps): Bump vuepress-theme-cosmos from 1.0.164 to 1.0.165 in /docs
Bumps [vuepress-theme-cosmos](https://github.com/cosmos/vuepress-theme-cosmos) from 1.0.164 to 1.0.165.
- [Release notes](https://github.com/cosmos/vuepress-theme-cosmos/releases)
- [Commits](https://github.com/cosmos/vuepress-theme-cosmos/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-28 11:56:48 +00:00
Callum Waters
8cd3dec102 types: create ValidateBasic() funcs for validator and validator set (#4905) 2020-05-28 11:40:39 +02:00
Erik Grinaker
e69a3d9703 rpc/test: wait for subscription in TestTxEventsSentWithBroadcastTxAsync (#4907)
Mitigates race condition causing these test failures:

```
=== RUN   TestTxEventsSentWithBroadcastTxAsync
=== RUN   TestTxEventsSentWithBroadcastTxAsync/*http.HTTP
I[2020-05-25|12:29:08.477] Starting WSEvents service                    impl=WSEvents
    TestTxEventsSentWithBroadcastTxAsync/*http.HTTP: event_test.go:124: 
        	Error Trace:	event_test.go:124
        	Error:      	Expected nil, but got: &errors.errorString{s:"timed out waiting for event"}
        	Test:       	TestTxEventsSentWithBroadcastTxAsync/*http.HTTP
        	Messages:   	0: timed out waiting for event
```
2020-05-27 11:49:57 +00:00
Erik Grinaker
f146ef2528 p2p: remove nil guard (#4901)
https://github.com/tendermint/tendermint/pull/4893#discussion_r430940912
2020-05-27 11:36:42 +00:00
Erik Grinaker
804e2d1f97 rpc/test: wait for mempool CheckTx callback (#4908)
Fixes race conditions causing the following test failures:

```
=== RUN   TestUnconfirmedTxs
    TestUnconfirmedTxs: rpc_test.go:342:
                Error Trace:    rpc_test.go:342
                Error:          Not equal:
                                expected: 1
                                actual  : 0
                Test:           TestUnconfirmedTxs
    TestUnconfirmedTxs: rpc_test.go:343:
                Error Trace:    rpc_test.go:343
                Error:          Not equal:
                                expected: 1
                                actual  : 0
                Test:           TestUnconfirmedTxs
    TestUnconfirmedTxs: rpc_test.go:345:
                Error Trace:    rpc_test.go:345
                Error:          Not equal:
                                expected: types.Txs{types.Tx{0x39, 0x44, 0x4d, 0x6c, 0x4b, 0x66, 0x46, 0x78, 0x3d, 0x45, 0x33, 0x33, 0x68, 0x47, 0x6e, 0x79, 0x58}}
                                actual  : types.Txs(nil)

                                Diff:
                                --- Expected
                                +++ Actual
                                @@ -1,4 +1,2 @@
                                -(types.Txs) (len=1) {
                                - (types.Tx) (len=17) Tx{39444D6C4B6646783D45333368476E7958}
                                -}
                                +(types.Txs) <nil>

                Test:           TestUnconfirmedTxs
    TestUnconfirmedTxs: rpc_test.go:342:
                Error Trace:    rpc_test.go:342
                Error:          Not equal:
                                expected: 1
                                actual  : 0
                Test:           TestUnconfirmedTxs
    TestUnconfirmedTxs: rpc_test.go:343:
                Error Trace:    rpc_test.go:343
                Error:          Not equal:
                                expected: 1
                                actual  : 0
                Test:           TestUnconfirmedTxs
    TestUnconfirmedTxs: rpc_test.go:345:
                Error Trace:    rpc_test.go:345
                Error:          Not equal:
                                expected: types.Txs{types.Tx{0x39, 0x44, 0x4d, 0x6c, 0x4b, 0x66, 0x46, 0x78, 0x3d, 0x45, 0x33, 0x33, 0x68, 0x47, 0x6e, 0x79, 0x58}}
                                actual  : types.Txs{}

                                Diff:
                                --- Expected
                                +++ Actual
                                @@ -1,3 +1,2 @@
                                -(types.Txs) (len=1) {
                                - (types.Tx) (len=17) Tx{39444D6C4B6646783D45333368476E7958}
                                +(types.Txs) {
                                 }
                Test:           TestUnconfirmedTxs
--- FAIL: TestUnconfirmedTxs (0.20s)
=== RUN   TestNumUnconfirmedTxs
    TestNumUnconfirmedTxs: rpc_test.go:364:
                Error Trace:    rpc_test.go:364
                Error:          Not equal:
                                expected: 1
                                actual  : 0
                Test:           TestNumUnconfirmedTxs
    TestNumUnconfirmedTxs: rpc_test.go:365:
                Error Trace:    rpc_test.go:365
                Error:          Not equal:
                                expected: 1
                                actual  : 0
                Test:           TestNumUnconfirmedTxs
    TestNumUnconfirmedTxs: rpc_test.go:364:
                Error Trace:    rpc_test.go:364
                Error:          Not equal:
                                expected: 1
                                actual  : 0
                Test:           TestNumUnconfirmedTxs
    TestNumUnconfirmedTxs: rpc_test.go:365:
                Error Trace:    rpc_test.go:365
                Error:          Not equal:
                                expected: 1
                                actual  : 0
                Test:           TestNumUnconfirmedTxs
--- FAIL: TestNumUnconfirmedTxs (0.09s)
```
2020-05-27 11:24:05 +00:00
Erik Grinaker
f1000794f2 types/test: remove slow test cases in TestValSetUpdatePriorityOrderTests (#4903)
These test cases are extremely slow when running with the race detector, often taking more that 2 minutes on my local machine. I can easily see them timing out on the much slower CI machines, causing these failures:

```
panic: test timed out after 5m0s

goroutine 234 [running]:
testing.(*M).startAlarm.func1()
	/usr/local/go/src/testing/testing.go:1460 +0x11c
created by time.goFunc
	/usr/local/go/src/time/sleep.go:168 +0x52

goroutine 1 [chan receive, 4 minutes]:
testing.(*T).Run(0xc000172c60, 0x107a5a2, 0x22, 0x11bfc68, 0x1)
	/usr/local/go/src/testing/testing.go:1044 +0x699
testing.runTests.func1(0xc000172c60)
	/usr/local/go/src/testing/testing.go:1285 +0xa7
testing.tRunner(0xc000172c60, 0xc00012bcc8)
	/usr/local/go/src/testing/testing.go:992 +0x1ec
testing.runTests(0xc00000e2c0, 0x1901500, 0x72, 0x72, 0x0)
	/usr/local/go/src/testing/testing.go:1283 +0x528
testing.(*M).Run(0xc000214380, 0x0)
	/usr/local/go/src/testing/testing.go:1200 +0x300
github.com/tendermint/tendermint/types.TestMain(0xc000214380)
	/go/src/github.com/tendermint/tendermint/types/block_test.go:30 +0x59
main.main()
	_testmain.go:380 +0x334

goroutine 255 [runnable]:
bytes.Equal(...)
	/usr/local/go/src/bytes/bytes.go:20
github.com/tendermint/tendermint/types.(*ValidatorSet).GetByAddress(0xc005499020, 0xc006056650, 0x5, 0x8, 0x13af, 0xc005514100)
	/go/src/github.com/tendermint/tendermint/types/validator_set.go:253 +0xfd
github.com/tendermint/tendermint/types.verifyUpdates.func1(0xc00614b940, 0xc005499020, 0x47cd)
	/go/src/github.com/tendermint/tendermint/types/validator_set.go:415 +0x84
github.com/tendermint/tendermint/types.verifyUpdates(0xc006110000, 0x11b7, 0x1780, 0xc005499020, 0xb52ff, 0x0, 0x0, 0x5c9)
	/go/src/github.com/tendermint/tendermint/types/validator_set.go:429 +0x220
github.com/tendermint/tendermint/types.(*ValidatorSet).updateWithChangeSet(0xc005499020, 0xc00602c000, 0x1780, 0x1780, 0xc006098201, 0xc00608d4b8, 0xc006037bf8)
	/go/src/github.com/tendermint/tendermint/types/validator_set.go:600 +0x2f3
github.com/tendermint/tendermint/types.(*ValidatorSet).UpdateWithChangeSet(0xc005499020, 0xc00602c000, 0x1780, 0x1780, 0x1780, 0x1780)
	/go/src/github.com/tendermint/tendermint/types/validator_set.go:636 +0x78
github.com/tendermint/tendermint/types.applyChangesToValSet(0xc0005c8ea0, 0x0, 0x0, 0xc005499020, 0xc0005d1160, 0x3, 0x3)
	/go/src/github.com/tendermint/tendermint/types/validator_set_test.go:1169 +0x1bb
github.com/tendermint/tendermint/types.verifyValSetUpdatePriorityOrder(0xc0005c8ea0, 0xc005499020, 0x0, 0x0, 0xc005600000, 0x2710, 0x2710, 0xc0055c8000, 0x5c9, 0x5c9, ...)
	/go/src/github.com/tendermint/tendermint/types/validator_set_test.go:1239 +0x217
github.com/tendermint/tendermint/types.TestValSetUpdatePriorityOrderTests(0xc0005c8ea0)
	/go/src/github.com/tendermint/tendermint/types/validator_set_test.go:1228 +0x1205
testing.tRunner(0xc0005c8ea0, 0x11bfc68)
	/usr/local/go/src/testing/testing.go:992 +0x1ec
created by testing.(*T).Run
	/usr/local/go/src/testing/testing.go:1043 +0x661
FAIL	github.com/tendermint/tendermint/types	300.677s
FAIL
```
2020-05-27 11:10:49 +00:00
Anton Kaliaev
287110d425 consensus: bring back log.Error statement (#4899)
Refs #3406

cs.Logger is protected by a global mutex, so it cannot be a reason for
the halt in #3401.
2020-05-27 13:31:02 +04:00
Callum Waters
2014357a19 evidence: remove header from phantom evidence (#4892) 2020-05-27 09:20:45 +02:00
Erik Grinaker
d0dcf81f98 rpc/test: fix test race in TestAppCalls (#4894)
Fixes the following test race condition:

```
=== RUN   TestAppCalls
    TestAppCalls: rpc_test.go:216:
                Error Trace:    rpc_test.go:216
                Error:          Expected value not to be nil.
                Test:           TestAppCalls
--- FAIL: TestAppCalls (2.20s)
```
2020-05-26 16:08:42 +00:00
Erik Grinaker
f4978466b9 p2p/test: fix Switch test race condition (#4893) 2020-05-26 17:50:07 +02:00
Callum Waters
3c1cb77db2 lite2/http: fix provider test by increasing the block retention value (#4890) 2020-05-26 17:17:43 +02:00