Anton Kaliaev
7fd51e6ade
make govet linter pass ( #3292 )
...
* make govet linter pass
Refs #3262
* close PipeReader and check for err
2019-02-11 16:31:34 +04:00
Ethan Buchman
39eba4e154
WAL: better errors and new fail point ( #3246 )
...
* privval: more info in errors
* wal: change Debug logs to Info
* wal: log and return error on corrupted wal instead of panicing
* fail: Exit right away instead of sending interupt
* consensus: FAIL before handling our own vote
allows to replicate #3089 :
- run using `FAIL_TEST_INDEX=0`
- delete some bytes from the end of the WAL
- start normally
Results in logs like:
```
I[2019-02-03|18:12:58.225] Searching for height module=consensus wal=/Users/ethanbuchman/.tendermint/data/cs.wal/wal height=1 min=0 max=0
E[2019-02-03|18:12:58.225] Error on catchup replay. Proceeding to start ConsensusState anyway module=consensus err="failed to read data: EOF"
I[2019-02-03|18:12:58.225] Started node module=main nodeInfo="{ProtocolVersion:{P2P:6 Block:9 App:1} ID_:35e87e93f2e31f305b65a5517fd2102331b56002 ListenAddr:tcp://0.0.0.0:26656 Network:test-chain-J8JvJH Version:0.29.1 Channels:4020212223303800 Moniker:Ethans-MacBook-Pro.local Other:{TxIndex:on RPCAddress:tcp://0.0.0.0:26657}}"
E[2019-02-03|18:12:58.226] Couldn't connect to any seeds module=p2p
I[2019-02-03|18:12:59.229] Timed out module=consensus dur=998.568ms height=1 round=0 step=RoundStepNewHeight
I[2019-02-03|18:12:59.230] enterNewRound(1/0). Current: 1/0/RoundStepNewHeight module=consensus height=1 round=0
I[2019-02-03|18:12:59.230] enterPropose(1/0). Current: 1/0/RoundStepNewRound module=consensus height=1 round=0
I[2019-02-03|18:12:59.230] enterPropose: Our turn to propose module=consensus height=1 round=0 proposer=AD278B7767B05D7FBEB76207024C650988FA77D5 privValidator="PrivValidator{AD278B7767B05D7FBEB76207024C650988FA77D5 LH:1, LR:0, LS:2}"
E[2019-02-03|18:12:59.230] enterPropose: Error signing proposal module=consensus height=1 round=0 err="Error signing proposal: Step regression at height 1 round 0. Got 1, last step 2"
I[2019-02-03|18:13:02.233] Timed out module=consensus dur=3s height=1 round=0 step=RoundStepPropose
I[2019-02-03|18:13:02.233] enterPrevote(1/0). Current: 1/0/RoundStepPropose module=consensus
I[2019-02-03|18:13:02.233] enterPrevote: ProposalBlock is nil module=consensus height=1 round=0
E[2019-02-03|18:13:02.234] Error signing vote module=consensus height=1 round=0 vote="Vote{0:AD278B7767B0 1/00/1(Prevote) 000000000000 000000000000 @ 2019-02-04T02:13:02.233897Z}" err="Error signing vote: Conflicting data"
```
Notice the EOF, the step regression, and the conflicting data.
* wal: change errors to be DataCorruptionError
* exit on corrupt WAL
* fix log
* fix new line
2019-02-04 13:00:06 -05:00
Thane Thomson
a335caaedb
alias amino imports ( #3219 )
...
As per conversation here: https://github.com/tendermint/tendermint/pull/3218#discussion_r251364041
This is the result of running the following code on the repo:
```bash
find . -name '*.go' | grep -v 'vendor/' | xargs -n 1 goimports -w
```
2019-01-28 16:13:17 +04:00
cong
71e5939441
start eventBus & indexerService before replay and use them while replaying blocks ( #3194 )
...
so if we did not index the last block (because of panic or smth else), we index it during replay
Closes #3186
2019-01-28 11:36:35 +04:00
JamesRay
f82a8ff73a
During replay, when appHeight==0, only saveState if stateHeight is also 0 ( #3006 )
...
* optimize addProposalBlockPart
* optimize addProposalBlockPart
* if ProposalBlockParts and LockedBlockParts both exist,let LockedBlockParts overwrite ProposalBlockParts.
* fix tryAddBlock
* broadcast lockedBlockParts in higher priority
* when appHeight==0, it's better fetch genDoc than state.validators.
* not save state if replay from height 1
* only save state if replay from height 1 when stateHeight is also 1
* only save state if replay from height 1 when stateHeight is also 1
* only save state if replay from height 0 when stateHeight is also 0
* handshake info's response version only update when stateHeight==0
* save the handshake responseInfo appVersion
2018-12-15 14:33:30 -05:00
Leo Wang
2f64717bb5
return an error if validator set is empty in genesis file and after InitChain ( #2971 )
...
Fixes #2951
2018-12-07 12:30:58 +04:00
JamesRay
fe3b97fd66
It's better read from genDoc than from state.validators when appHeight==0 in replay ( #2893 )
...
* optimize addProposalBlockPart
* optimize addProposalBlockPart
* if ProposalBlockParts and LockedBlockParts both exist,let LockedBlockParts overwrite ProposalBlockParts.
* fix tryAddBlock
* broadcast lockedBlockParts in higher priority
* when appHeight==0, it's better fetch genDoc than state.validators.
2018-11-26 08:03:08 -05:00
Anton Kaliaev
fb91ef7462
validate reactor messages ( #2711 )
...
* validate reactor messages
Refs #2683
* validate blockchain messages
Refs #2683
* validate evidence messages
Refs #2683
* todo
* check ProposalPOL and signature sizes
* add a changelog entry
* check addr is valid when we add it to the addrbook
* validate incoming netAddr (not just nil check!)
* fixes after Bucky's review
* check timestamps
* beef up block#ValidateBasic
* move some checks into bcBlockResponseMessage
* update Gopkg.lock
Fix
```
grouped write of manifest, lock and vendor: failed to export github.com/tendermint/go-amino: fatal: failed to unpack tree object 6dcc6ddc143e116455c94b25c1004c99e0d0ca12
```
by running `dep ensure -update`
* bump year since now we check it
* generate test/p2p/data on the fly using tendermint testnet
* allow sync chains older than 1 year
* use full path when creating a testnet
* move testnet gen to test/docker/Dockerfile
* relax LastCommitRound check
Refs #2737
* fix conflicts after merge
* add small comment
* some ValidateBasic updates
* fixes
* AppHash length is not fixed
2018-11-01 02:07:18 -04:00
Zarko Milosevic
c5905900eb
Simplify proposal msg ( #2735 )
...
* Align Proposal message with spec
* Update spec
2018-10-31 10:27:11 -04:00
Ethan Buchman
ed4ce5ff6c
ADR-016: Update ABCI Info method for versions ( #2662 )
...
* abci: update RequestInfo for versions
* abci: update ResponseInfo for versions
* compile fix
* fix test
* software_version -> version
* comment fix
* update spec
* add test
* comments and fix test
2018-10-18 16:51:17 -04:00
Anton Kaliaev
37928cb990
set next validators along with validators while replay ( #2637 )
...
Closes #2634
2018-10-14 22:28:41 -04:00
Ethan Buchman
e3f54ece2f
abci: VoteInfo, ValidatorUpdate. See ADR-018
2018-08-16 13:19:13 -04:00
Dev Ojha
2756be5a59
libs: Remove usage of custom Fmt, in favor of fmt.Sprintf ( #2199 )
...
* libs: Remove usage of custom Fmt, in favor of fmt.Sprintf
Closes #2193
* Fix bug that was masked by custom Fmt!
2018-08-10 09:25:57 +04:00
Ethan Buchman
2d1c5a1ce6
Merge remote-tracking branch 'origin/develop' into jae/literefactor4
2018-08-02 19:12:22 -04:00
Anton Kaliaev
96ae535fb8
proto3 timestamp ( #2064 )
...
This PR changes ABCI time format from int64 (Unix seconds) to WKT (WellKnownType) google.protobuf.Timestamp.
Refs #1857
Reasons:
better precision
standard DT for proto
* update Gopkg.lock
* [makefile] remove extra grep
- go list excludes vendor by default now
* proto3 timestamp
* [docs/abci-spec] note about serialisation format
* make time non-nullable
2018-07-27 04:23:19 +02:00
Ethan Buchman
ea31c4836a
Merge branch 'develop' into jae/literefactor4
2018-07-23 23:28:14 -04:00
Anton Kaliaev
b271c40783
remove deprecated app_options
field from genesis
2018-07-12 22:40:05 +04:00
Ethan Buchman
5453aa6169
Merge branch 'develop' into jae/literefactor4
2018-07-02 14:57:30 -04:00
Ethan Buchman
d55243f0e6
fix import paths
2018-07-01 22:36:49 -04:00
Jae Kwon
538c410bcd
Fixes from review
2018-06-25 18:16:16 -07:00
Jae Kwon
242a6037e8
Fixes from review
2018-06-25 17:12:52 -07:00
Jae Kwon
a5b7ea93c4
Delay validator set changes by 1 block.
2018-06-25 16:59:00 -07:00
Alexander Simmerl
a605b66c5a
Move abci imports
2018-06-22 07:28:07 +02:00
Ethan Buchman
9481cabd50
fixes from review
2018-06-06 20:45:20 -07:00
Ethan Buchman
8e45348737
update for abci v0.11.0 release. let InitChain update validators
2018-06-06 15:47:04 -07:00
Ethan Buchman
3d2c4fd309
update Evidence type - requires pubkey and valset to verify and convert to abci.Evidence
2018-06-05 22:04:26 -07:00
Ethan Buchman
866bcceb35
fix consensus tests
2018-06-05 22:00:25 -07:00
Ethan Buchman
7606b7595f
compiles
2018-06-05 22:00:25 -07:00
Ethan Buchman
3d33226e80
move types/services.go to state pkg. pass State to evpool.Update
2018-06-04 21:20:23 -07:00
Jae Kwon
e1a3f16fa4
Comment tweaks
2018-05-15 08:48:59 -07:00
Thomas Corbière
2644a529f0
Fix lint errors ( #1390 )
...
* use increment and decrement operators.
* remove unnecessary else branches.
* fix package comment with leading space.
* fix receiver names.
* fix error strings.
* remove omittable code.
* remove redundant return statement.
* Revert changes (code is generated.)
* use cfg as receiver name for all config-related types.
* use lsi as the receiver name for the LastSignedInfo type.
2018-04-02 10:21:17 +02:00
Ethan Frey
fff0c6cd8e
Add app_state from genesis file in InitChain message
2018-03-02 03:46:04 -05:00
Zach Ramsay
3cd604562c
RequestInitChain needs genesisBytes
2018-02-21 03:43:47 +00:00
Ethan Buchman
cd0fd06b0d
update for sdk2 libs. need to fix kv test
...
NOTE we only updating for tmlibs and abci
2018-02-03 03:35:02 -05:00
Ethan Buchman
a17105fd46
p2p: peer.Key -> peer.ID
2018-01-01 22:39:05 -05:00
Ethan Buchman
1d6f00859d
fixes from review
2017-12-28 23:15:54 -05:00
Ethan Buchman
0acca7fe69
final updates for state
2017-12-28 23:15:54 -05:00
Ethan Buchman
f55135578c
state: move methods to funcs
2017-12-28 23:15:54 -05:00
Ethan Buchman
7d81a3f4a5
address some comments from review
2017-12-27 01:27:03 -05:00
Ethan Buchman
869d873d5c
state.ApplyBlock takes evpool and calls MarkEvidenceAsCommitted
2017-12-26 20:27:32 -05:00
Ethan Buchman
4171bd3bae
fixes
2017-12-26 19:24:45 -05:00
Ethan Buchman
eddabab5e4
Merge pull request #965 from tendermint/573-handle-corrupt-wal-file
...
Handle corrupt WAL file
2017-12-15 14:33:16 -05:00
Anton Kaliaev
d669816a1b
send absent validators in BeginBlock
...
Refs #668
2017-12-15 12:13:02 -06:00
Anton Kaliaev
e40689b9cc
PanicCrisis is deprecated
2017-12-15 11:59:45 -06:00
Anton Kaliaev
40f9261d48
handle data corruption errors
...
Refs #573
2017-12-11 19:48:20 -06:00
Ethan Buchman
b37230f6db
Merge pull request #918 from tendermint/abci-update
...
Abci update
2017-12-03 01:36:59 -05:00
Ethan Buchman
9af8da7aad
update for new abci int types
2017-12-02 01:47:55 -05:00
Anton Kaliaev
cd5a5d332f
remove comments for uint64 related to possible underflow [ci skip]
2017-12-01 23:30:08 -06:00
Anton Kaliaev
89cbcceac4
error if app returned negative last block height ( Fixes #911 )
2017-12-01 21:56:08 -06:00
Anton Kaliaev
922af7c405
int64 height
...
uint64 is considered dangerous. the details will follow in a blog post.
2017-12-01 19:04:53 -06:00