Anton Kaliaev
716364182d
[state] expose ChainID and Params
...
```
jaekwon
Yeah we should definitely expose ChainID.
ConsensusParams is small enough, we can just write it.
```
https://github.com/tendermint/tendermint/pull/676#discussion_r144123203
2017-10-16 10:34:02 +04:00
Anton Kaliaev
1971e149fb
ChainID() and Params() do not return errors
...
- remove state#GenesisDoc() method
2017-10-16 10:34:02 +04:00
Emmanuel Odeke
7939d62ef0
all, state: unexpose GenesisDoc, ChainID fields make them accessor methods
...
Fixes #671
Unexpose GenesisDoc and ChainID fields to avoid them being
serialized to the DB on every block write/state.Save()
A GenesisDoc can now be alternatively written to the state's
database, by serializing its JSON as a value of key "genesis-doc".
There are now accessors and a setter for these attributes:
- state.GenesisDoc() (*types.GenesisDoc, error)
- state.ChainID() (string, error)
- state.SetGenesisDoc(*types.GenesisDoc)
This is a breaking change since it changes how the state's
serialization and requires that if loading the GenesisDoc entirely
from the database, you'll need to set its value in the database
as the GenesisDoc's JSON marshaled bytes.
2017-10-16 10:34:01 +04:00
Anton Kaliaev
dc0e8de9b0
extract some of the consensus types into ./types
...
so they can be used in rpc/core/types/responses.go.
```
So, it seems like we could use the actual structs here, but we don't want to have to import consensus to get them, as then clients are importing too much crap. So probably we should move some types from consensus into consensus/types so we can import.
Will these raw messages be identical to:
type ResultDumpConsensusState struct {
RoundState cstypes.RoundState
PeerRoundStates map[string]cstypes.PeerRoundState
}
```
https://github.com/tendermint/tendermint/pull/724#discussion_r143598193
2017-10-10 12:39:21 +04:00
Ethan Buchman
8c6bd44929
log stack trace on consensus failure
2017-10-02 23:34:06 -04:00
Ethan Buchman
75b97a5a65
PrivValidatorFS is like old PrivValidator, for now
2017-09-21 16:46:31 -04:00
Ethan Buchman
fd1b0b997a
PrivValidator interface
2017-09-21 15:51:20 -04:00
Ethan Buchman
3a03fe5a15
updated to match adr 005
2017-09-21 14:51:29 -04:00
Ethan Buchman
2b6db268cf
genesis json tests and mv ConsensusParams to types
2017-09-21 14:51:29 -04:00
Ethan Buchman
1f3e4d2d9a
move PartSetSize out of the config, into ConsensusParams
2017-09-21 14:51:29 -04:00
Zach Ramsay
70b95135e6
consensus: use filepath for windows compatibility, closes #595
2017-09-18 17:49:43 -04:00
Ethan Buchman
9ceccbe9a4
consensus: recover panics in receive routine
2017-08-16 01:01:09 -04:00
Ethan Buchman
0bf66deb3c
fixes from review
2017-08-08 17:09:04 -04:00
Ethan Buchman
37f1390473
CreateEmptyBlocks and CreateEmptyBlocksInterval
2017-08-08 16:22:37 -04:00
Ethan Buchman
fb47ca6d35
fixes from review
2017-08-04 21:36:11 -04:00
Ethan Buchman
b8ac67e240
some fixes
2017-08-03 13:25:26 -04:00
Ethan Buchman
ab753abfa0
Proposer->Proposal; sign heartbeats
2017-07-29 17:04:28 -04:00
Ethan Buchman
10f8101314
fix race
2017-07-29 11:45:07 -04:00
Ethan Buchman
530626dab7
broadcast proposer heartbeat msg
2017-07-29 11:45:02 -04:00
Ethan Buchman
3444bee47f
fixes from review; use mempool.TxsAvailable() directly
2017-07-28 23:42:43 -04:00
Ethan Buchman
cf3abe5096
consensus: remove rs from handleMsg
2017-07-28 23:42:19 -04:00
Ethan Buchman
ecdda69fab
commit empty blocks when needed to prove app hash
2017-07-28 22:12:11 -04:00
Ethan Buchman
fc3fe9292f
fixes from review
2017-07-28 22:12:11 -04:00
Ethan Buchman
124032e3e9
NoEmptyBlocks config option
2017-07-28 22:11:45 -04:00
Ethan Buchman
4beac54bd9
no empty blocks
2017-07-28 22:11:45 -04:00
Ethan Buchman
39493bcd9a
consensus: isProposer func
2017-07-28 22:11:10 -04:00
Ethan Buchman
e9b7221292
consensus: more comments
2017-07-20 00:59:28 -04:00
Ethan Buchman
74a3a2b56a
fix comments
2017-07-09 18:01:25 -04:00
Adrian Brink
b07d01f102
Add more comments on public functions and extra logging during 'enterPrevote'
...
Signed-off-by: Adrian Brink <adrian@brink-holdings.com>
2017-07-09 20:35:48 +02:00
Ethan Buchman
612726d9f6
consensus: better logging
2017-07-07 16:58:16 -04:00
Ethan Buchman
5888ddaab1
consensus: improve logging for conflicting votes
2017-07-07 13:41:50 -04:00
Ethan Buchman
0d1fa8e884
fixes from review
2017-06-28 11:12:45 -04:00
Ethan Buchman
468982ffe4
fixes
2017-06-23 22:12:45 -04:00
Ethan Buchman
2750343de5
Merge branch 'apply-megacheck' into unstable
2017-06-23 21:38:22 -04:00
Ethan Buchman
3c0128a680
undo some megacheck suggestions
2017-06-23 21:36:47 -04:00
Anton Kaliaev
b4ece65726
standardize key for errors (should be "err")
2017-06-14 12:50:49 +04:00
zramsay
cf31f8d06f
core: apply megacheck vet tool (unused, gosimple, staticcheck)
2017-05-29 23:11:40 -04:00
Ethan Buchman
30a19fc899
[consensus] Info->Debug for is a validator log msg
2017-05-18 11:26:15 +02:00
Adrian Brink
eb9ca23250
log whether node is a validator in each round
2017-05-16 14:01:52 +02:00
Anton Kaliaev
f8fdbe3dbc
changes as per Bucky's review
2017-05-13 16:22:51 +02:00
Anton Kaliaev
3e1343dc6b
has as a base16 string
2017-05-13 10:24:59 +02:00
Anton Kaliaev
f803544195
new logging
2017-05-13 10:24:58 +02:00
Ethan Frey
6b059e0063
Accept relative paths in all configs, TODO: must SetRoot
2017-05-04 22:46:40 -04:00
Ethan Frey
604bf03f3a
Pulled out all config structs (except p2p.PeerConfig) into config package
2017-05-04 22:46:40 -04:00
Ethan Buchman
92bafa7ecd
consensus: fix tests
2017-05-04 22:46:13 -04:00
Ethan Buchman
6afee8f117
rpc: fix tests
2017-05-04 22:45:13 -04:00
Ethan Buchman
1ef7c1d25b
cmd: fixes for new config
2017-05-04 22:43:55 -04:00
Ethan Buchman
75b6c5215f
fewer structs. remove viper from consensus
2017-05-04 22:43:55 -04:00
Ethan Buchman
fcf78a5da7
cleanup go-config/viper and some unnamed imports
2017-04-25 14:54:56 -04:00
Rigel Rozanski
cefb2bede0
adding viper
...
int
int
2017-04-25 13:42:22 -04:00
Ethan Buchman
d1926bcad1
use tmlibs
2017-04-21 18:12:54 -04:00
Ethan Buchman
935f70a346
comments and cleanup
2017-04-18 21:28:10 -04:00
Ethan Buchman
5109746b1c
Handshake uses ApplyBlock, no ConsensuState
2017-04-18 21:28:10 -04:00
Ethan Buchman
54b26869d5
consensus/wal: #HEIGHT -> #ENDHEIGHT
2017-04-18 21:27:31 -04:00
Ethan Buchman
cb279bf662
state: ABCIResponses, s.Save() in ApplyBlock
2017-04-18 21:27:31 -04:00
Anton Kaliaev
c3f1b08b6a
tx indexing (Refs #237 )
...
save transactions to blockstore
move to a separate module
benchmark KVIndexer
batch write transactions
Benchmarks:
```
BenchmarkKVIndexerIndex-2 100000 516300 ns/op
PASS
ok github.com/tendermint/tendermint/blockchain/tx 56.506s
5,16 s for 10000 transactions
1 s for 2000 transactions
```
```
BenchmarkKVIndexerIndex-2 h 3000000 8622 ns/op
PASS
ok github.com/tendermint/tendermint/blockchain/tx 34.210s
86 ms for 10000 transactions
16 ms for 2000 transactions
```
```
BenchmarkKVIndexerIndex1-2 5000000 7160 ns/op
BenchmarkKVIndexerIndex500-2 20000 1750411 ns/op
BenchmarkKVIndexerIndex1000-2 10000 3573973 ns/op
BenchmarkKVIndexerIndex2000-2 5000 7836851 ns/op
BenchmarkKVIndexerIndex10000-2 1000 33438980 ns/op
PASS
ok github.com/tendermint/tendermint/blockchain/tx 209.482s
7,8 ms for 2000 transactions
```
[state] write test for ApplyBlock
review comments
- move txindexer to state
- fix type
save Tx Index as well
do not store tx itself in the result
2017-04-10 22:44:07 +04:00
Ethan Buchman
4fd1471f11
remove BaseService.OnStart
2017-03-28 12:09:11 -04:00
Ethan Buchman
85e83934a1
fixes from review
2017-03-28 12:07:32 -04:00
Ethan Buchman
077cf13a1f
consensus: timeout on replayLastBlock
2017-03-27 15:41:45 -04:00
Ethan Buchman
b1cd677711
types: valSet LastProposer->Proposer and Proposer()->GetProposer()
2017-03-05 23:28:42 -05:00
Ethan Buchman
de0153a1c4
consensus: some more informative logging
2017-03-05 02:15:46 -05:00
Ethan Buchman
8ba79252c8
types: use mtx on PartSet.String()
2017-03-02 23:50:59 -05:00
Ethan Buchman
f9df4294f3
move some interfaces to types/services.go
2017-02-20 20:09:15 -05:00
Ethan Buchman
0765613778
move handshake to consensus package
2017-02-20 19:52:36 -05:00
Ethan Buchman
756213c5f5
check appHash
2017-02-20 17:08:38 -05:00
Ethan Buchman
bc67859672
make ReplayBlocks logic exhaustive
2017-02-20 16:32:48 -05:00
Ethan Buchman
44d472ddd3
comments from review
2017-02-18 22:15:59 -05:00
Ethan Buchman
0bec99fbd4
consensus: handshake replay test using wal
2017-02-17 19:12:05 -05:00
Ethan Buchman
edc5e272db
consensus: nice error msg if ApplyBlock fails
2017-02-17 10:57:09 -05:00
Ethan Buchman
6403b2f468
fixes for handshake replay through consensus
2017-02-17 10:51:05 -05:00
Ethan Buchman
cbe6dbe7a1
handshake replay through consensus using mockApp
2017-02-16 17:56:45 -05:00
Ethan Buchman
c147b41013
TMSP -> ABCI
2017-01-12 15:53:32 -05:00
Ethan Buchman
e7a12f8e38
cs.Wait()
2017-01-12 14:44:42 -05:00
Ethan Buchman
ce0c638005
little fix
2017-01-11 18:37:36 -05:00
Anton Kalyaev
a1fd312bb1
make progress asap on full precommit votes optional (Refs #348 )
2017-01-11 18:00:26 -05:00
Ethan Buchman
d68cdce2d5
consensus: check HasAll when TwoThirdsMajority
2017-01-11 17:53:46 -05:00
Ethan Buchman
55b4bfa1fe
consensus: let time.Timer handle non-positive durations
2017-01-11 10:24:40 -05:00
Ethan Buchman
12d92fd5db
Merge pull request #343 from tendermint/restart_test
...
Crash/Restart tests
2017-01-06 11:55:05 -08:00
Ethan Buchman
bae0bc02a6
consensus: be more explicit when we need to write height after handshake
2017-01-05 20:16:42 -08:00
Ethan Buchman
f30a9752e2
more fixes from review
2016-12-23 11:11:22 -05:00
Ethan Buchman
0c01b0ded9
state.State and wal.writeHeight after handshake
2016-12-22 22:10:36 -05:00
Ethan Buchman
40b08f2494
consensus: mv timeoutRoutine into TimeoutTicker
2016-12-19 22:29:32 -05:00
Ethan Buchman
8211fa6ce4
enterNewRound on HasAll
2016-12-19 20:12:37 -05:00
Ethan Buchman
faf23aa0d4
consensus: TimeoutTicker, skip TimeoutCommit on HasAll
2016-12-19 15:42:36 -05:00
Ethan Buchman
b74a97a4f6
update grpc broadcast tx
2016-12-02 00:29:25 -05:00
Ethan Buchman
0fe53dc5cf
remove privValIndex; Stale->AppHashIsStale
2016-12-02 00:27:36 -05:00
Ethan Buchman
6f8c91b651
use NewValidator; fix setPrivValidatorIndex
2016-11-22 20:38:14 -05:00
Ethan Buchman
e0db20c0cf
update privValidatorIndex on valset change
2016-11-22 20:38:14 -05:00
Ethan Buchman
655b6300f5
val set changes
2016-11-22 20:38:14 -05:00
Ethan Buchman
d7f6c0775a
remove LastCommitHeight
2016-11-22 20:38:14 -05:00
Ethan Buchman
a3d863f83b
consensus: track index of privVal
2016-11-22 20:38:14 -05:00
Ethan Buchman
c6a648fad7
consensus: lock before loading commit
2016-11-16 16:47:31 -05:00
Ethan Buchman
07597dfd45
post rebase fixes for BlockID, partSize
2016-11-16 16:13:17 -05:00
Ethan Buchman
4360c360a4
move handshake to state, use Handshaker, more tests
2016-11-16 13:29:22 -05:00
Ethan Buchman
3f90fcae48
fail tests and fix
2016-11-16 13:26:39 -05:00
Ethan Buchman
8ec1839f5d
save block b4 apply; track stale apphash
2016-11-16 13:26:39 -05:00
Ethan Buchman
fb9735ef46
rebase fixes and BeginBlock(hash,header)
2016-11-16 13:25:13 -05:00
Ethan Buchman
138de19e1e
test: app persistence
2016-11-16 13:25:13 -05:00
Ethan Buchman
d3ae920bd0
state: ApplyBlock
2016-11-16 13:25:13 -05:00
Jae Kwon
d83fc02597
MakePartSet takes partSize from config. fix replay test
2016-11-16 01:23:16 -05:00
Ethan Buchman
57da2e4af5
make byzantine logic testable
2016-11-15 18:45:36 -05:00
Jae Kwon
fd128c7180
Fix comments from review
2016-11-15 18:37:00 -05:00
Jae Kwon
655d829314
Fix proposal sign bytes. Start tracking blockID in POL
2016-11-15 18:35:17 -05:00
Jae Kwon
1173a85c85
Use BlockID everywhere
2016-11-15 18:34:58 -05:00
Jae Kwon
7221887330
VoteSet can handle conflicting votes. TODO: add more tests
2016-11-15 18:33:16 -05:00
Jae Kwon
3c5a2f55c2
Add validator index and address to Vote.
2016-11-15 18:33:16 -05:00
Jae Kwon
2aecb2a4a3
Ensure *_wal_dir exists
2016-11-05 09:15:34 -07:00
Jae Kwon
3d3d8b5b7b
cswal -> cs_wal_dir
2016-10-30 03:55:27 -07:00
Jae Kwon
1788a68b1c
Consensus WAL uses AutoFile/Group
2016-10-28 15:01:14 -07:00
Jae Kwon
480f44f16c
QuitService->BaseService
2016-10-28 12:14:24 -07:00
Jae Kwon
a9d8039082
Fix peer memleak; stop goroutine when peer is offline
2016-10-17 11:29:43 -07:00
Ethan Buchman
2113b6f4bb
rpc: use interfaces for pipe
2016-10-14 21:38:49 -04:00
Ethan Buchman
7dcb567e53
replay test data
2016-10-11 11:44:07 -04:00
Ethan Buchman
35d4cca8bb
type safe events
2016-10-10 03:10:29 -04:00
Ethan Buchman
206d00ed8c
fixes from review
2016-09-09 23:50:25 -04:00
Ethan Buchman
9fb84d66be
Merge pull request #268 from tendermint/replay
...
consensus: no sign err in replay; fix a race
2016-09-09 23:04:39 -04:00
Ethan Buchman
987dac9ee0
consensus: no sign err in replay; fix a race
2016-09-08 19:00:59 -04:00
Ethan Buchman
3a7ee13ece
proxy: typed app conns
2016-08-24 01:45:45 -04:00
Ethan Buchman
1110c5d37d
privVal.LastSignBytes and more replay tests
2016-08-14 13:33:03 -04:00
Ethan Buchman
c90bde3187
some comments
2016-08-09 20:31:53 -04:00
Ethan Buchman
8987d29bee
tests: broadcast_tx with tmsp; p2p
2016-07-24 14:08:47 -04:00
Ethan Buchman
05136ff09d
update some comments
2016-07-12 14:58:16 -04:00
Ethan Buchman
f44336d57d
consensus: don't print shared vars in cs.String()
2016-07-12 12:47:13 -04:00
Ethan Buchman
dd788c5631
consensus: fix race from OnStop accessing cs.Height
2016-07-11 20:55:07 -04:00
Ethan Buchman
8ca615c301
wait until txs removed from mempool to fire tx events
2016-07-05 17:03:09 -04:00
Jae Kwon
ad17090a0f
No global config
2016-05-08 15:00:58 -07:00
Ethan Buchman
39344a601d
flush before commit
2016-04-29 14:23:04 -07:00
Ethan Buchman
8e5e5c689f
lock mempool for commit and update. closes #202
2016-04-29 14:23:04 -07:00
Ethan Buchman
523a170c3e
EventDataTypeNewBlockHeader
2016-04-19 20:59:52 -04:00
Ethan Buchman
ae07c0171d
light weight block event
2016-04-19 20:45:33 -04:00
Ethan Buchman
79c9a9f03a
don't verify own block parts
2016-04-19 20:45:33 -04:00
Ethan Buchman
5e42c96267
crank the part size; prioritize data channel
2016-04-19 20:45:33 -04:00
Jae Kwon
39d72d5811
Remove fees
2016-04-03 04:51:44 -07:00
Jae Kwon
f17c4c1d57
s/Validation/Commit/g
2016-04-02 09:10:16 -07:00
Jae Kwon
2c1504f93c
Reap takes maxTxs
2016-03-06 15:08:32 -08:00
Ethan Buchman
06a7bb531b
consensus: dont allow peer round states to decrease
2016-03-05 16:41:54 -05:00
Ethan Buchman
94f3d201e1
drop mempool_reap. use block_size=-1 instead
2016-03-05 16:41:54 -05:00
Ethan Buchman
085b3bc1f2
consensus: don't wait for wal if conS not running
2016-03-03 06:32:08 +00:00
Ethan Buchman
4430073fab
dont log bad block part if round mismatch
2016-03-03 06:32:03 +00:00
Ethan Buchman
3891e4d66d
config: cswal_light, mempool_broadcast, mempool_reap
2016-03-03 06:31:59 +00:00
Ethan Buchman
69d906f7dd
drain internalMsgQueue and wait for cswal on quit
2016-02-29 18:02:22 -05:00
Ethan Buchman
c9ec9cf00e
config: block size, consensus timeouts, recheck tx
2016-02-29 17:04:33 -05:00
Jae Kwon
d31d3c58ad
Recheck txs
2016-02-14 17:00:33 -08:00
Ethan Buchman
50ac66f79b
fast sync fixes
2016-02-07 16:56:59 -08:00
Ethan Buchman
c0024cc7b2
log invalid txs
2016-01-31 20:00:02 -05:00
Jae Kwon
0f1cf243fd
Merge remote-tracking branch 'origin/replay'
2016-01-28 19:53:22 -08:00
Jae Kwon
8a3bba48e3
s/*EventDataRoundState/EventDataRoundState/g
2016-01-28 19:44:44 -08:00
Ethan Buchman
3cce757adc
move DialSeeds to go-p2p and add to rpc
2016-01-20 13:12:42 -05:00
Ethan Buchman
26f0e2bc2d
msgLogFP -> write ahead log
2016-01-18 14:44:45 -05:00
Ethan Buchman
3b06368569
rebase fixes
2016-01-14 20:15:33 -05:00