Ethan Buchman
38fc351532
Merge pull request #765 from tendermint/762-blockchain-reactor-timeout
...
blockchain reactor timeout
2017-10-24 09:13:26 -04:00
Anton Kaliaev
e06bbaf303
refactor TestNoBlockMessageResponse to eliminate a race condition
2017-10-24 15:32:01 +04:00
Ethan Buchman
2802a06a08
blockchain/store: comment about panics
2017-10-23 19:46:14 -04:00
Ethan Buchman
0bbf38141a
blockchain/pool: some comments and small changes
2017-10-23 10:13:46 -04:00
Anton Kaliaev
d64a48e0ee
set logger on blockchain pool
2017-10-20 23:56:21 +04:00
Anton Kaliaev
0a7b2ab52c
fix invalid memory address or nil pointer dereference error (Refs #762 )
...
https://github.com/tendermint/tendermint/issues/762#issuecomment-338276055
```
E[10-19|04:52:38.969] Stopping peer for error module=p2p peer="Peer{MConn{178.62.46.14:46656} B14916FAF38A out}" err="Error: runtime error: invalid memory address or nil pointer dereference\nStack: goroutine 529485 [running]:\nruntime/debug.Stack(0xc4355cfb38, 0xb463e0, 0x11b1c30)\n\t/usr/local/go/src/runtime/debug/stack.go:24 +0xa7\ngithub.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/p2p.(*MConnection)._recover(0xc439a28870)\n\t/home/ubuntu/go/src/github.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/p2p/connection.go:206 +0x6e\npanic(0xb463e0, 0x11b1c30)\n\t/usr/local/go/src/runtime/panic.go:491 +0x283\ngithub.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/blockchain.(*bpPeer).decrPending(0x0, 0x381)\n\t/home/ubuntu/go/src/github.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/blockchain/pool.go:376 +0x22\ngithub.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/blockchain.(*BlockPool).AddBlock(0xc4200e4000, 0xc4266d1f00, 0x40, 0xc432ac9640, 0x381)\n\t/home/ubuntu/go/src/github.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/blockchain/pool.go:215 +0x139\ngithub.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/blockchain.(*BlockchainReactor).Receive(0xc42050a780, 0xc420257740, 0x1171be0, 0xc42ff302d0, 0xc4384b2000, 0x381, 0x1000)\n\t/home/ubuntu/go/src/github.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/blockchain/reactor.go:160 +0x712\ngithub.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/p2p.createMConnection.func1(0x11e5040, 0xc4384b2000, 0x381, 0x1000)\n\t/home/ubuntu/go/src/github.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/p2p/peer.go:334 +0xbd\ngithub.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/p2p.(*MConnection).recvRoutine(0xc439a28870)\n\t/home/ubuntu/go/src/github.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/p2p/connection.go:475 +0x4a3\ncreated by github.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/p2p.(*MConnection).OnStart\n\t/home/ubuntu/go/src/github.com/cosmos/gaia/vendor/github.com/tendermint/tendermint/p2p/connection.go:170 +0x187\n"
```
2017-10-20 21:56:10 +04:00
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
Ethan Buchman
765c325441
Merge pull request #714 from tendermint/feature/no-block-response
...
Feature/no block response
2017-10-04 22:27:06 -04:00
Ethan Buchman
659768783f
blockchain: fixing reactor tests
2017-10-04 22:26:00 -04:00
Emmanuel Odeke
068f01368f
blockchain/reactor: respondWithNoResponseMessage for missing height
...
Fixes #514
Replaces #540
If a peer requests a block with a height that we don't have
respond with a bcNoBlockResponseMessage.
However, according to the Tendermint spec, if all nodes are honest
this condition shouldn't occur, so this is a possible hint of an
dishonest node.
2017-10-04 17:27:10 -04:00
Zach Ramsay
d56b44f3a5
all: no more anonymous imports
2017-10-04 16:40:45 -04:00
Ethan Buchman
8c6bd44929
log stack trace on consensus failure
2017-10-02 23:34:06 -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
Ethan Buchman
29bfcb0a31
minor comments/changes
2017-09-21 14:51:29 -04:00
Ethan Buchman
aea8629272
peer interface
2017-09-15 18:40:59 -04:00
Ethan Buchman
0d1fa8e884
fixes from review
2017-06-28 11:12:45 -04:00
Ethan Buchman
77a3d03385
blockchain: explain isCaughtUp logic
2017-06-23 22:34:38 -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
Anton Kaliaev
c9cd8de9c6
set logger
2017-05-13 10:25:00 +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 Buchman
75b6c5215f
fewer structs. remove viper from consensus
2017-05-04 22:43:55 -04:00
Ethan Buchman
29c0e6e4f4
remove viper from blockchain and state
2017-05-04 22:39:21 -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
56c60fba23
go-p2p -> tendermint/p2p
2017-04-21 18:19:41 -04:00
Ethan Buchman
d1926bcad1
use tmlibs
2017-04-21 18:12:54 -04:00
Ethan Buchman
bd369cc451
Merge pull request #450 from tendermint/fix-fastsync
...
blockpool: fix removePeer bug
2017-04-18 22:21:10 -04:00
Ethan Buchman
cb279bf662
state: ABCIResponses, s.Save() in ApplyBlock
2017-04-18 21:27:31 -04:00
Ethan Buchman
00847cdc6b
blockpool: fix removePeer bug
2017-04-15 02:22:03 -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
Anton Kalyaev
eef9124d1b
fix typo
2017-03-04 23:21:57 -05:00
Anton Kaliaev
2c724d5eee
remove warning messages in favor of "Send failed"
2017-02-21 13:25:16 +04:00
Anton Kaliaev
6dbe9febce
log warning if peer send failed (Refs #174 )
...
make lint happy
remove dead code
remove not needed go-common dependency
check peer.Send failures (Refs #174 )
2017-02-21 11:57:33 +04:00
Ethan Buchman
f9df4294f3
move some interfaces to types/services.go
2017-02-20 20:09:15 -05:00
Ethan Buchman
99b068b313
BlockMeta uses BlockID
2017-02-14 17:06:58 -05:00
Ethan Buchman
c9698e4848
fixes from review
2016-12-22 22:03:42 -05:00
Ethan Buchman
b2376058a1
blockchain: thread safe store.Height()
2016-12-20 00:45:45 -05:00
Ethan Buchman
2425711734
blockchain: use ApplyBlock
2016-12-06 23:01:55 -05:00
Jae Kwon
6f88d04ac4
call db.SetSync when necessary
2016-12-06 02:52:07 -08:00
Ethan Buchman
5046d5b181
more handshake replay cleanup
2016-11-22 20:38:14 -05:00
Ethan Buchman
655b6300f5
val set changes
2016-11-22 20:38:14 -05:00
Jae Kwon
d83fc02597
MakePartSet takes partSize from config. fix replay test
2016-11-16 01:23:16 -05:00
Jae Kwon
1173a85c85
Use BlockID everywhere
2016-11-15 18:34:58 -05:00
Jae Kwon
bf1bceec87
Use go-flowcontrol
2016-11-04 06:46:34 -07:00
Jae Kwon
480f44f16c
QuitService->BaseService
2016-10-28 12:14:24 -07:00
Ethan Buchman
7d493774c7
log: move some Info to Debug
2016-10-14 20:27:50 -04:00
Ethan Buchman
71baad59df
replay: ensure cs.height and wal.height match
2016-10-11 16:06:46 -04:00
Ethan Buchman
35d4cca8bb
type safe events
2016-10-10 03:10:29 -04:00
Ethan Buchman
525378a145
Merge pull request #267 from tendermint/fastsync_fix
...
Fastsync fix
2016-09-09 20:10:06 -04:00
Ethan Buchman
bf7ba17932
test/p2p: name client conts so we dont need to rm them because circle
2016-08-27 17:20:34 -04:00
Ethan Buchman
7bec333017
fix fast sync
2016-08-27 14:50:10 -04:00
Ethan Buchman
3a7ee13ece
proxy: typed app conns
2016-08-24 01:45:45 -04:00
Jae Kwon
b25cfb0e0b
Unify blockpool mtxs
2016-06-28 18:02:27 -07:00
Ethan Buchman
ca674304c5
fix blockpool races. closes #188
2016-06-24 20:38:59 -04:00
Jae Kwon
f17c4c1d57
s/Validation/Commit/g
2016-04-02 09:10:16 -07:00
Jae Kwon
d5ab243cfd
Fix #198 ; Do not fast-sync when lone validator
2016-03-24 18:08:18 -07:00
Ethan Buchman
c9ec9cf00e
config: block size, consensus timeouts, recheck tx
2016-02-29 17:04:33 -05:00
Ethan Buchman
50ac66f79b
fast sync fixes
2016-02-07 16:56:59 -08:00
Ethan Buchman
0be13d1d27
move alert, events, rpc into own repos
2016-01-12 19:15:10 -05:00
Jae Kwon
3e3c0083c7
Make order be decided first; Remove TMSP Commit/Rollback
2016-01-08 16:51:20 -08:00
Jae Kwon
6132017f82
Remove mempool log bypass
2016-01-02 16:22:25 -08:00
Jae Kwon
9357e8ecf8
IsCaughtUp requires a peer
2016-01-02 16:21:40 -08:00
Jae Kwon
dcc1caaf68
Make Receive() logging consistent
2015-12-31 14:27:05 -08:00
Jae Kwon
5a8a9bfd69
Make fast_sync=true by default, with more relaxed conditions
2015-12-31 00:32:54 -08:00
Jae Kwon
d87667a0c2
Conform to go-wire new TypeByte behavior for broadcasts
2015-12-21 15:18:16 -08:00
Jae Kwon
08d7980d80
Conform to go-wire new TypeByte behavior
2015-12-21 14:48:44 -08:00
Jae Kwon
c95b89e98c
Merge remote-tracking branch 'origin/consensus_refactor' into consensus_refactor_jae
2015-12-14 09:33:11 -08:00
Ethan Buchman
b9e143d956
Fireable -> EventSwitch; rs in EventDataRoundState; fixes from review
2015-12-14 00:38:19 -05:00
Jae Kwon
3da76496b0
Fix BlockchainReactor bug w/ mismatched state.LastBlockHeight vs store.Height
...
This is due to a non-atomic saves of state.State vs blockchain.Store.
This is a simple hack.
2015-12-07 16:57:33 -08:00
Jae Kwon
ef43af19ab
Tendermint <-> Application refactor
2015-12-01 20:12:01 -08:00
Jae Kwon
d69b5c5ab6
Conform to go-wire 1.0
2015-11-10 13:10:43 -08:00
Jae Kwon
e12f9d10e7
Bare consensus refactor
2015-11-01 11:34:08 -08:00
Jae Kwon
c4ed55d801
Refactor to move common libraries out of project
2015-10-22 17:39:06 -07:00
Jae Kwon
cb3a1fd095
Fixed a blockchain pool goroutine-leak bug
2015-10-12 16:49:46 -07:00
Jae Kwon
fd9f816050
refactor variable names, pool.requests -> pool.requesters
2015-10-12 16:39:05 -07:00
Jae Kwon
47eee5ddd5
blockchain pool race condition fix
2015-09-12 08:47:59 -07:00
Jae Kwon
b468baf7ac
IsCaughtUp works with new networks
2015-09-11 21:09:47 -07:00
Jae Kwon
1c17ea3b14
blockchain parameter && log tweaks
2015-09-11 21:09:27 -07:00
Jae Kwon
21d45023d3
various bug fixes
2015-09-11 21:09:01 -07:00
Jae Kwon
3a5741f70f
Fix blockchain pool tests
2015-09-11 21:09:00 -07:00
Jae Kwon
625f23af13
Blockpool better timeouts, download rate observation, quicker switching to consensus; Id -> ID (sorry, this doesn't belong here)
2015-09-11 21:09:00 -07:00
Jae Kwon
908fd11665
more explicit _, err := Start() checking
2015-08-11 11:01:17 -07:00
Jae Kwon
e86073ec96
Use rpc/client/ws_client; OnStart() returns error
2015-08-11 11:01:17 -07:00
Jae Kwon
3be3647dc8
tendermint/binary -> tendermint/wire
2015-07-28 12:18:17 -07:00
Jae Kwon
e7c1febb65
Simplify Service/Reactor pattern
2015-07-22 06:21:21 -07:00
Ethan Buchman
8e50bf15de
panic wrapper functions
2015-07-21 10:46:05 -04:00
Jae Kwon
571a134318
BaseService and BaseReactor refactor and unification
2015-07-20 14:52:24 -07:00
Ethan Buchman
bb4ca1407f
info->notice, debug->info
2015-07-19 22:44:40 +00:00
Jae Kwon
dea5eab643
fix GetStatus() usage
2015-07-13 11:03:31 -07:00
Ethan Buchman
751b892cba
cleanup, comments
2015-07-12 02:16:33 +00:00
Ethan Buchman
a7ecdd10de
Merge from panic branch
2015-06-29 14:54:48 -07:00
Jae Kwon
9965dd5de6
uint* to int* whereever appropriate; https://www.reddit.com/r/golang/comments/2q5vdu/int_vs_uint/
2015-06-25 20:28:34 -07:00
Jae Kwon
9b96e2e171
ProposalPOLRound...
2015-06-22 19:04:31 -07:00
Jae Kwon
829df93577
Re-use ValidatorSet.VerifyValidation()
2015-06-21 19:11:21 -07:00
Jae Kwon
7752405945
Draft of consensus/reactor refactor.
2015-06-21 18:09:51 -07:00
Jae Kwon
01b5540ffe
consensus/state is 2-step asynchronous
2015-06-19 15:30:21 -07:00
Jae Kwon
175c0301f4
Merge pull request #82 from tendermint/chainid_rebase
...
Chainid
2015-05-30 17:38:39 -07:00
Jae Kwon
d363bcfa16
fixed off by one bug
2015-05-30 09:13:55 -07:00
Ethan Buchman
2045aee9cd
pass chainID through sign interfaces
2015-05-29 18:14:19 -04:00
Ethan Buchman
bb67fe0356
dont run consensus state unless fast sync is off
2015-05-28 03:45:46 -07:00
Jae Kwon
057c8ef400
waiting back to pending
2015-05-28 03:30:26 -07:00
Jae Kwon
5ed36ef192
var rename and performance optimization
2015-05-28 02:18:53 -07:00
Jae Kwon
b281674058
variable renames
2015-05-28 01:59:23 -07:00
Ethan Buchman
ff87958f95
broadcast on newStepCh on switch to consensus reactor
2015-05-04 19:08:07 -04:00
Ethan Buchman
9892dfd0b3
allow multiple seed nodes
2015-04-23 18:52:44 -07:00
Ethan Buchman
d8d619811e
dont switch off fast sync unless we have enough peers to know
2015-04-23 18:49:59 -07:00
Ethan Buchman
d54bf6bcd5
blockchain reactor to consensus reactor transition on catchup
2015-04-21 19:51:23 -07:00
Jae Kwon
a9467414d6
Merge remote-tracking branch 'origin/websockets' into develop
2015-04-17 13:20:47 -07:00
Jae Kwon
44565872ae
Fixed BlockchainMessage{} Decode issue.
...
Fixed Warn(UnknownMessage) issues.
2015-04-16 17:53:33 -07:00
Jae Kwon
89cfedeb73
Make all messages be registered as pointer receivers,
...
Warn on unknown messages.
2015-04-16 17:46:27 -07:00
Ethan Buchman
d27e0bbad5
event cache and fireable interace
2015-04-16 00:08:58 -07:00
Jae Kwon
e5d34befde
Remote TypeByte()
2015-04-14 15:57:16 -07:00
Jae Kwon
5b1c1eb0e0
ProposalMessage wrapper, warn on unknown messages
2015-04-13 08:40:37 -07:00
Jae Kwon
dc27d56cc3
minor fix for when the blockstore is ahead by one.
2015-04-13 08:40:19 -07:00
Jae Kwon
7356556938
Some renames and small fixes.
2015-04-08 12:30:49 -07:00
Ethan Buchman
474bf31400
events: integrate event switch into services via Eventable interface
2015-04-07 00:34:26 -05:00
Jae Kwon
13b6508ecd
Package import path change
2015-04-01 17:30:16 -07:00
Ethan Buchman
60f166e823
tendermint2
2015-03-31 15:33:31 -07:00
Jae Kwon
79304b0dd3
Create BlockCache and TxCache for performance.
2015-03-28 23:44:07 -07:00
Jae Kwon
bd767c1fab
Make fast_sync a command-line flag
2015-03-26 00:35:16 -07:00
Jae Kwon
7171823fc6
Fix blockpool bugs and clean up log messages.
2015-03-25 23:04:17 -07:00
Jae Kwon
a2b8318aac
allow BlockchainReactor to reset ConsensusReactor state
2015-03-25 13:17:45 -07:00
Jae Kwon
788f9bfb93
started/stopped -> running; contiguous vs fast forward ConsensusState
...
updates.
2015-03-25 13:01:28 -07:00
Jae Kwon
938eda979b
fix bug, peer may be nil
2015-03-25 12:21:52 -07:00
Jae Kwon
cebfae60c7
BlockchainReactor syncs first before ConsensusReactor.
2015-03-25 11:50:28 -07:00
Jae Kwon
08a83aa9fb
Reactors can be stopped or started at any time.
2015-03-25 00:15:18 -07:00
Jae Kwon
9703d34b65
fixed pool, using locks now.
2015-03-24 12:00:01 -07:00
Jae Kwon
a4606f1c5e
Make pool tests faster
2015-03-22 19:20:54 -07:00
Jae Kwon
87e1f76324
tendermint/block -> tendermint/types and tendermint/blockchain
2015-03-22 19:00:08 -07:00