Jae Kwon
45ec5fd170
WIP consensus
7 years ago
Anton Kaliaev
a506cf47ad
protect Record* peerStateStats functions by mutex
Fixes #1414
DATA RACE:
```
Read at 0x00c4214ee940 by goroutine 146:
github.com/tendermint/tendermint/consensus.(*peerStateStats).String()
<autogenerated>:1 +0x57
fmt.(*pp).handleMethods()
/usr/local/go/src/fmt/print.go:596 +0x3f4
fmt.(*pp).printArg()
/usr/local/go/src/fmt/print.go:679 +0x11f
fmt.(*pp).doPrintf()
/usr/local/go/src/fmt/print.go:996 +0x319
fmt.Sprintf()
/usr/local/go/src/fmt/print.go:196 +0x73
github.com/tendermint/tendermint/consensus.(*PeerState).StringIndented()
github.com/tendermint/tendermint/consensus/_test/_obj_test/reactor.go:1426 +0x573
github.com/tendermint/tendermint/consensus.(*PeerState).String()
github.com/tendermint/tendermint/consensus/_test/_obj_test/reactor.go:1419 +0x66
github.com/go-logfmt/logfmt.safeString()
/home/ubuntu/go/src/github.com/go-logfmt/logfmt/encode.go:299 +0x9d
github.com/go-logfmt/logfmt.writeValue()
/home/ubuntu/go/src/github.com/go-logfmt/logfmt/encode.go:217 +0x5a0
github.com/go-logfmt/logfmt.(*Encoder).EncodeKeyval()
/home/ubuntu/go/src/github.com/go-logfmt/logfmt/encode.go:61 +0x1dd
github.com/tendermint/tmlibs/log.tmfmtLogger.Log()
/home/ubuntu/go/src/github.com/tendermint/tmlibs/log/tmfmt_logger.go:107 +0x1001
github.com/tendermint/tmlibs/log.(*tmfmtLogger).Log()
<autogenerated>:1 +0x93
github.com/go-kit/kit/log.(*context).Log()
/home/ubuntu/go/src/github.com/go-kit/kit/log/log.go:124 +0x248
github.com/tendermint/tmlibs/log.(*tmLogger).Debug()
/home/ubuntu/go/src/github.com/tendermint/tmlibs/log/tm_logger.go:64 +0x1d0
github.com/tendermint/tendermint/consensus.(*PeerState).PickSendVote()
github.com/tendermint/tendermint/consensus/_test/_obj_test/reactor.go:1059 +0x242
github.com/tendermint/tendermint/consensus.(*ConsensusReactor).gossipVotesForHeight()
github.com/tendermint/tendermint/consensus/_test/_obj_test/reactor.go:789 +0x6ef
github.com/tendermint/tendermint/consensus.(*ConsensusReactor).gossipVotesRoutine()
github.com/tendermint/tendermint/consensus/_test/_obj_test/reactor.go:723 +0x1039
Previous write at 0x00c4214ee940 by goroutine 21:
github.com/tendermint/tendermint/consensus.(*PeerState).RecordVote()
github.com/tendermint/tendermint/consensus/_test/_obj_test/reactor.go:1242 +0x15a
github.com/tendermint/tendermint/consensus.(*ConsensusReactor).Receive()
github.com/tendermint/tendermint/consensus/_test/_obj_test/reactor.go:309 +0x32e6
github.com/tendermint/tendermint/p2p.createMConnection.func1()
/home/ubuntu/go/src/github.com/tendermint/tendermint/p2p/peer.go:365 +0xea
github.com/tendermint/tendermint/p2p/conn.(*MConnection).recvRoutine()
/home/ubuntu/go/src/github.com/tendermint/tendermint/p2p/conn/connection.go:531 +0x779
```
7 years ago
Anton Kaliaev
37ce6b195a
ValidatorSet#GetByAddress: return -1 if no validator was found
7 years ago
Ethan Buchman
5f548c7679
consensus: close pubsub channels. fixes #1372
7 years ago
Jae Kwon
196f8410ba
WIP commit; Fix types/results_test
7 years ago
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.
7 years ago
Anton Kaliaev
1c82281b77
make app_options -> app_state backwards compatible
7 years ago
Anton Kaliaev
2c445059f2
mark peer as good every blocksToContributeToBecomeGoodPeer blocks
if enough peers are marked good eventually some will become unmarked, so
good to have a force that will continue to cycle them back into good
territory!
Refs #1317
7 years ago
Anton Kaliaev
ab59f64f57
test we record votes and block parts
Refs #1317
7 years ago
Anton Kaliaev
42e3457884
fix tracking of votes and blockparts to not allow old information
also remove mutex
Refs #1317
7 years ago
Anton Kaliaev
31f3dd42e7
mark peer as good only once
or should we do it every N blocks?
Refs #1317
7 years ago
Anton Kaliaev
5fab8e404d
replace magic number with blocksToContributeToBecomeGoodPeer const
Refs #1317
7 years ago
Ethan Buchman
ab7dea4f20
consensus: return from errors sooner in addVote
7 years ago
Ethan Buchman
b297efb532
consensus: return from go-routine in test
7 years ago
Anton Kaliaev
86ddf17db0
add a todo
Refs #1281
7 years ago
Anton Kaliaev
a655500047
fix copy-pasted comment [ci skip]
7 years ago
Anton Kaliaev
714f885dac
mark peer as good if it contributed enough votes or block parts
Refs #1147
7 years ago
Anton Kaliaev
b0d8f552c5
return err if peer has sent a vote that does not match our round
7 years ago
Anton Kaliaev
63cb69cb96
comment out ErrAddingVote because it breaks byzantine_test
7 years ago
Anton Kaliaev
266974cb59
stop peer if it sends invalid vote
7 years ago
Anton Kaliaev
4242352852
stop peer on decoding error
7 years ago
Ethan Frey
fff0c6cd8e
Add app_state from genesis file in InitChain message
7 years ago
Ethan Buchman
5378bfc5c7
types.SignBytes -> o.SignBytes
7 years ago
Ethan Buchman
ca3655a409
types: p2pID -> P2PID
7 years ago
Zarko Milosevic
d4e93a6de3
Separate ValidBlock rule from unlocking rule
7 years ago
Zarko Milosevic
4670857c15
Add support for ValidBlock mechanism for the simplest case
7 years ago
Zach
2cc63069c6
rename dummy to kvstore ( #1223 )
* remove accidental binary
* docs: s/Dummy&dummy/KVStore&kvstore/g
* glide update to abci
* update abci import paths
* dummy begone, hello kvstore
* RequestInitChain needs genesisBytes
* glide update
7 years ago
Zach Ramsay
3cd604562c
RequestInitChain needs genesisBytes
7 years ago
Anton Kaliaev
2a24ae90c1
fixes from Jae's review
1. remove pointer
2. add Quit() method to Service interface
7 years ago
Ethan Buchman
d34286c421
minor fixes - tests pass
7 years ago
Ethan Buchman
e7747f7d66
it compiles
7 years ago
Ethan Buchman
cd0fd06b0d
update for sdk2 libs. need to fix kv test
NOTE we only updating for tmlibs and abci
7 years ago
Ethan Buchman
ab13806276
consensus: print go routines in failed test
7 years ago
Ethan Buchman
3ae26bd6e6
consensus: fix SetLogger in tests
7 years ago
Ethan Buchman
87087b8acd
consensus: minor cosmetic
7 years ago
Ethan Buchman
ee674f919f
StopPeerForError in blockchain and consensus
7 years ago
Ethan Buchman
6f3d9b4be3
fix race
7 years ago
Ethan Buchman
f06cc6630b
mempool: cfg.CacheSize and expose InitWAL
7 years ago
Ethan Buchman
8171628ee5
make tests run faster
7 years ago
Ethan Buchman
1cb76625d3
consensus: rename test funcs
7 years ago
Ethan Buchman
a17105fd46
p2p: peer.Key -> peer.ID
7 years ago
Ethan Buchman
ff99ca7cdf
bump wal test timeout
7 years ago
Ethan Buchman
6112578d07
ValidateBlock is a method on blockExec
7 years ago
Ethan Buchman
ae68fcb78a
move fireEvents to ApplyBlock
7 years ago
Ethan Buchman
1d6f00859d
fixes from review
7 years ago
Ethan Buchman
537b0dfa1a
use NopEventBus
7 years ago
Ethan Buchman
0acca7fe69
final updates for state
7 years ago
Ethan Buchman
f55135578c
state: move methods to funcs
7 years ago
Ethan Buchman
a8e625e99d
config: unexpose chainID
7 years ago
Zach Ramsay
9da5cd0180
rebase fix
7 years ago