Commit Graph
76 Commits
Author SHA1 Message Date
Aleksandr Bezobchuk 143fa93d76 blockchain v0: lint++ 2021-01-12 08:57:49 -05:00
Aleksandr Bezobchuk 2201204418 blockchain v0: no-op on empty peer IDs 2021-01-12 08:56:08 -05:00
Aleksandr Bezobchuk 7aff59cd86 blockchain v0: fix test assertion 2021-01-11 16:23:19 -05:00
Aleksandr Bezobchuk a7c624eb2d blockchain v0: lint++ 2021-01-11 14:59:03 -05:00
Aleksandr Bezobchuk 22536ba3cf blockchain v0: decrease max block height 2021-01-11 14:37:04 -05:00
Aleksandr Bezobchuk 1f88c2a31c blockchain v0: attempt test fix 2021-01-11 13:42:03 -05:00
Aleksandr Bezobchuk 67c5516810 blockchain v0: bump test timeout 2021-01-11 10:59:30 -05:00
Aleksandr Bezobchuk 4b09bf9695 blockchain v0: bump test timeout 2021-01-11 10:19:25 -05:00
Aleksandr Bezobchuk 728c1366cc blockchain v0: remove select clause 2021-01-11 09:36:22 -05:00
Aleksandr Bezobchuk 95b08bb775 blockchain v0: add poolWG and refactor pool routines 2021-01-08 14:20:34 -05:00
Aleksandr Bezobchuk 3ac6a6921e blockchain v0: add TestReactor_AbruptDisconnect 2021-01-08 10:26:23 -05:00
Aleksandr Bezobchuk 1fcc3973a0 blockchain v0: update tests 2021-01-08 09:32:17 -05:00
Aleksandr Bezobchuk 31fac447a4 blockchain v0: rename tests 2021-01-08 08:38:37 -05:00
Aleksandr Bezobchuk 88fa8fe348 blockchain v0: update TestBadBlockStopsPeer 2021-01-08 08:38:12 -05:00
Aleksandr Bezobchuk 9039b6cd05 blockchain v0: fix faux router 2021-01-06 19:14:03 -05:00
Aleksandr Bezobchuk bd42353ee5 blockchain v0: refactor TestNoBlockResponse 2021-01-06 13:33:13 -05:00
Aleksandr Bezobchuk 1463bc0be6 blockchain v0: reactor updates 2021-01-06 13:28:05 -05:00
Aleksandr Bezobchuk f021c7df4d Merge branch 'master' into bez/p2p-refactor-blockchain-v0-reactor 2021-01-06 11:55:34 -05:00
Aleksandr Bezobchuk 85569ebb60 blockchain v0: remove BroadcastStatusRequest 2021-01-06 10:25:35 -05:00
Aleksandr Bezobchuk 952cfaa174 blockchain v0: cleanup 2021-01-06 10:15:35 -05:00
Aleksandr Bezobchuk faa0e09f17 blockchain v0: update poolRoutine 2021-01-05 11:13:14 -05:00
Erik GrinakerandGitHub 0555772d3a blockchain/v0: stop tickers on poolRoutine exit (#5860)
Fixes #5841.
2021-01-05 14:45:24 +00:00
Aleksandr Bezobchuk 7a639e5297 blockchain v0: refactor SwitchToFastSync 2021-01-04 16:38:09 -05:00
Aleksandr Bezobchuk c978c8f4ee blockchain v0: refactor BroadcastStatusRequest 2021-01-04 16:36:34 -05:00
Aleksandr Bezobchuk bbf126a79d blockchain v0: refactor Receive 2021-01-04 16:33:17 -05:00
Aleksandr Bezobchuk b48a7f4d7e blockchain v0: initial commit 2021-01-04 14:41:01 -05:00
Erik GrinakerandErik Grinaker 8e7d431f6f p2p: rename ID to NodeID 2021-01-04 11:25:20 +01:00
Anton KaliaevandGitHub aef1ac7ba5 modify Reactor priorities (#5826)
blockchain/vX reactor priority was decreased because during the normal operation
(i.e. when the node is not fast syncing) blockchain priority can't be
the same as consensus reactor priority. Otherwise, it's theoretically possible to
slow down consensus by constantly requesting blocks from the node.

NOTE: ideally blockchain/vX reactor priority would be dynamic. e.g. when
the node is fast syncing, the priority is 10 (max), but when it's done
fast syncing - the priority gets decreased to 5 (only to serve blocks
for other nodes). But it's not possible now, therefore I decided to
focus on the normal operation (priority = 5).

evidence and consensus critical messages are more important than
the mempool ones, hence priorities are bumped by 1 (from 5 to 6).

statesync reactor priority was changed from 1 to 5 to be the same as
blockchain/vX priority.

Refs https://github.com/tendermint/tendermint/issues/5816
2020-12-23 12:31:00 +00:00
Anton KaliaevandGitHub 89e908e340 blockchain/v0: relax termination conditions and increase sync timeout (#5741)
Closes: #5718
2020-12-08 11:33:03 +04:00
Tess RinearsonandGitHub 79890d8393 reactors: omit incoming message bytes from reactor logs (#5743)
After a reactor has failed to parse an incoming message, it shouldn't output the "bad" data into the logs, as that data is unfiltered and could have anything in it. (We also don't think this information is helpful to have in the logs anyways.)
2020-12-03 22:12:08 +00:00
Anton KaliaevandGitHub f2f6a78809 docs: warn developers about calling blocking funcs in Receive (#5679)
Refs #2888
2020-11-17 15:37:35 +00:00
MarkoandGitHub 346aa14db5 fix lint failures with 1.31 (#5489) 2020-10-13 10:22:53 +02:00
Callum WatersandGitHub 4f79930c12 blockchain: remove duplication of validate basic (#5418) 2020-09-28 17:02:46 +02:00
Callum WatersandGitHub ed002cea7e evidence: introduction of LightClientAttackEvidence and refactor of evidence lifecycle (#5361)
evidence: modify evidence types (#5342)

light: detect light client attacks (#5344)

evidence: refactor evidence pool (#5345)

abci: application evidence prepared by evidence pool (#5354)
2020-09-22 10:22:54 +02:00
MarkoandGitHub 56911ee352 state: define interface for state store (#5348)
## Description

Make an interface for the state store. 

Closes: #5213
2020-09-15 07:45:48 +00:00
MarkoandGitHub 0ed8dba991 lint: enable errcheck (#5336)
## Description

Enable errcheck linter throughout the codebase

Closes: #5059
2020-09-07 15:03:18 +00:00
MarkoandGitHub 135ac0400e blockchain: verify +2/3 (#5278)
## Description

Verify only +2/3 of the commit. 

Closes: #5259
2020-08-25 07:07:19 +00:00
Erik GrinakerandGitHub edf5cff80f blockchain: fix fast sync halt with initial height > 1 (#5249)
Blockchain reactors were not updated to handle arbitrary initial height after #5191.
2020-08-14 13:04:51 +00:00
n-huttonandGitHub 375f0c819f add fixes for flaky tests (#5146)
While working on tendermint my colleague @jinmannwong fixed a few of the unit tests that we found to be flaky in our CI. We thought that you might find this useful, see below for comments.
2020-07-27 10:36:56 +04:00
MarkoandGitHub 2ac5a559b4 libs: wrap mutexes for build flag with godeadlock (#5126)
## Description

This PR wraps the stdlib sync.(RW)Mutex & godeadlock.(RW)Mutex. This enables using go-deadlock via a build flag instead of using sed to replace sync with godeadlock in all files

Closes: #3242
2020-07-20 07:55:09 +00:00
MarkoandGitHub 6ccccb0933 lint: errcheck (#5091)
## Description

add more error checks to tests


gonna do a third PR that tackles the non test cases
2020-07-14 11:04:41 +00:00
Anton KaliaevandGitHub 730e16566e proto: change type + a cleanup (#5107)
- drop Height & Base from StatusRequest
It does not make sense nor it's used anywhere currently. Also, there
seem to be no trace of these fields in the ADR-40 (blockchain reactor
v2).

- change PacketMsg#EOF type from int32 to bool
2020-07-13 10:24:17 +00:00
Lei WangandGitHub 430162f8a1 Update reactor.go (#5088)
check bcR.fastSync flag when "OnStop"

fix "service/service.go:161	Not stopping BlockPool -- have not been started yet	{"impl": "BlockPool"}" error when kill process
2020-07-07 09:47:49 +00:00
MarkoandGitHub 7e2cc1db5e linter: (1/2) enable errcheck (#5064)
## Description

partially cleanup in preparation for errcheck

i ignored a bunch of defer errors in tests but with the update to go 1.14 we can use `t.Cleanup(func() { if err := <>; err != nil {..}}` to cover those errors, I will do this in pr number two of enabling errcheck.

ref #5059
2020-07-01 15:13:11 +00:00
MarkoandGitHub dedf0d2350 proto: folder structure adhere to buf (#5025) 2020-06-22 10:00:51 +02:00
MarkoGitHubmergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
51da4fe356 types: rename partsheader to partsetheader (#5029)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2020-06-22 09:38:03 +02:00
MarkoandGitHub a89f2581fc blockchain: proto migration (#4969)
## Description

migration of blockchain reactors to protobuf

Closes: #XXX
2020-06-08 12:45:03 +00:00
Erik GrinakerandGitHub b9a0d47f14 test/blockchain/v0: mitigate test data race (#4886)
Mitigates the below data race. The proper fix involves not fiddling with reactor internals, which needs a rewrite of the test and possible additional reactor infrastructure.

```
==================
WARNING: DATA RACE
Write at 0x00c001118e78 by goroutine 187:
  github.com/tendermint/tendermint/blockchain/v0.TestBadBlockStopsPeer()
      /go/src/github.com/tendermint/tendermint/blockchain/v0/reactor_test.go:234 +0x9d7
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:992 +0x1eb

Previous read at 0x00c001118e78 by goroutine 326:
  [failed to restore the stack]

Goroutine 187 (running) created at:
  testing.(*T).Run()
      /usr/local/go/src/testing/testing.go:1043 +0x660
  testing.runTests.func1()
      /usr/local/go/src/testing/testing.go:1285 +0xa6
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:992 +0x1eb
  testing.runTests()
      /usr/local/go/src/testing/testing.go:1283 +0x527
  testing.(*M).Run()
      /usr/local/go/src/testing/testing.go:1200 +0x2ff
  main.main()
      _testmain.go:112 +0x337

Goroutine 326 (running) created at:
  github.com/tendermint/tendermint/blockchain/v0.(*BlockchainReactor).OnStart()
      /go/src/github.com/tendermint/tendermint/blockchain/v0/reactor.go:118 +0x12c
  github.com/tendermint/tendermint/libs/service.(*BaseService).Start()
      /go/src/github.com/tendermint/tendermint/libs/service/service.go:140 +0x504
  github.com/tendermint/tendermint/blockchain/v0.(*BlockchainReactor).Start()
      <autogenerated>:1 +0x43
  github.com/tendermint/tendermint/p2p.(*Switch).OnStart()
      /go/src/github.com/tendermint/tendermint/p2p/switch.go:225 +0x120
  github.com/tendermint/tendermint/libs/service.(*BaseService).Start()
      /go/src/github.com/tendermint/tendermint/libs/service/service.go:140 +0x504
  github.com/tendermint/tendermint/p2p.StartSwitches()
      /go/src/github.com/tendermint/tendermint/p2p/test_util.go:168 +0x75
  github.com/tendermint/tendermint/p2p.MakeConnectedSwitches()
      /go/src/github.com/tendermint/tendermint/p2p/test_util.go:89 +0x17d
  github.com/tendermint/tendermint/blockchain/v0.TestBadBlockStopsPeer()
      /go/src/github.com/tendermint/tendermint/blockchain/v0/reactor_test.go:209 +0x768
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:992 +0x1eb
==================
panic: BlockStore can only save contiguous blocks. Wanted 149, got 147

goroutine 1259 [running]:
github.com/tendermint/tendermint/store.(*BlockStore).SaveBlock(0xc000ff9cc0, 0xc001997180, 0xc0010c6a00, 0xc0013b3000)
	/go/src/github.com/tendermint/tendermint/store/store.go:276 +0xbc4
github.com/tendermint/tendermint/blockchain/v0.(*BlockchainReactor).poolRoutine(0xc001118d00, 0x107c000)
	/go/src/github.com/tendermint/tendermint/blockchain/v0/reactor.go:355 +0xe90
created by github.com/tendermint/tendermint/blockchain/v0.(*BlockchainReactor).OnStart
	/go/src/github.com/tendermint/tendermint/blockchain/v0/reactor.go:118 +0x12d
FAIL	github.com/tendermint/tendermint/blockchain/v0	11.447s
FAIL
```
2020-05-26 11:51:37 +00:00
Anton KaliaevandGitHub b7b721c484 change use of errors.Wrap to fmt.Errorf with %w verb
Closes #4603

Commands used (VIM):

```
:args `rg -l errors.Wrap`
:argdo normal @q | update
```

where q is a macros rewriting the `errors.Wrap` to `fmt.Errorf`.
2020-05-12 03:35:47 +00:00
Callum WatersandGitHub 47cfadb0aa evidence: refactor evidence mocks throughout packages (#4787)
Predominantly following the discussions regarding the conventions of using mocks, I have decided to revert back to the previous state where mocks were specialized and stored in the separate packages that used them rather then have a generalized mock in the evidence package.

This also was a problem as the state package were running tests too slow and occasionally timing out unnecessarily.

For the replay file I renamed mockEvidencePool to emptyEvidencePool to illustrate that it was intentionally like this and not give the impression that testing software was being used in production

Closes: #4786
2020-05-05 13:11:44 +04:00