Commit Graph

158 Commits

Author SHA1 Message Date
Ethan Buchman 9293ae76bf p2p: introduce peerConn to simplify peer creation (#1226)
* expose AuthEnc in the P2P config

if AuthEnc is true, dialed peers must have a node ID in the address and
it must match the persistent pubkey from the secret handshake.

Refs #1157

* fixes after my own review

* fix docs

* fix build failure

```
p2p/pex/pex_reactor_test.go:288:88: cannot use seed.NodeInfo().NetAddress() (type *p2p.NetAddress) as type string in array or slice literal
```

* p2p: introduce peerConn to simplify peer creation

* Introduce `peerConn` containing the known fields of `peer`
* `peer` only created in `sw.addPeer` once handshake is complete and NodeInfo is checked
* Eliminates some mutable variables and makes the code flow better
* Simplifies the `newXxxPeer` funcs
* Use ID instead of PubKey where possible.
        * SetPubKeyFilter -> SetIDFilter
        * nodeInfo.Validate takes ID
        * remove peer.PubKey()

* persistent node ids

* fixes from review

* test: use ip_plus_id.sh more

* fix invalid memory panic during fast_sync test

```
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: panic: runtime error: invalid memory address or nil pointer dereference
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x98dd3e]
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]:
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: goroutine 3432 [running]:
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: github.com/tendermint/tendermint/p2p.newOutboundPeerConn(0xc423fd1380, 0xc420933e00, 0x1, 0x1239a60, 0
xc420128c40, 0x2, 0x42caf6, 0xc42001f300, 0xc422831d98, 0xc4227951c0, ...)
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: #011/go/src/github.com/tendermint/tendermint/p2p/peer.go:123 +0x31e
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: github.com/tendermint/tendermint/p2p.(*Switch).addOutboundPeerWithConfig(0xc4200ad040, 0xc423fd1380, 0
xc420933e00, 0xc423f48801, 0x28, 0x2)
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: #011/go/src/github.com/tendermint/tendermint/p2p/switch.go:455 +0x12b
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: github.com/tendermint/tendermint/p2p.(*Switch).DialPeerWithAddress(0xc4200ad040, 0xc423fd1380, 0x1, 0x
0, 0x0)
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: #011/go/src/github.com/tendermint/tendermint/p2p/switch.go:371 +0xdc
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: github.com/tendermint/tendermint/p2p.(*Switch).reconnectToPeer(0xc4200ad040, 0x123e000, 0xc42007bb00)
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: #011/go/src/github.com/tendermint/tendermint/p2p/switch.go:290 +0x25f
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: created by github.com/tendermint/tendermint/p2p.(*Switch).StopPeerForError
2018-02-21T06:30:05Z box887.localdomain docker/local_testnet_4[14907]: #011/go/src/github.com/tendermint/tendermint/p2p/switch.go:256 +0x1b7
```
2018-02-27 15:54:40 +04:00
Alexander Simmerl 74d3f7e1fd
Integrate private validator socket client
Following ADDR 008 the node will connect to an external
process to handle signing requests. Operation of the external process is
left to the user.

* introduce alias for PrivValidator interface on socket client
* integrate socket client in node
* structure tests
* remove unnecessary flag
2018-02-23 13:58:22 +01:00
Alexander Simmerl a14aab67de Integrate PrivValidator socket server 2018-02-19 19:20:01 +01:00
Ethan Buchman 23eb84db35 wip: priv val via sockets 2018-02-09 16:52:58 -05:00
Ethan Buchman 6b347200d9
Merge pull request #1197 from tendermint/1155-seed-mode-flag
add seed_mode flag (`--p2p.seed_mode`)
2018-02-08 17:48:39 -05:00
Anton Kaliaev cf1f483526
add seed_mode flag (`--p2p.seed_mode`) 2018-02-08 17:20:55 +04:00
Anton Kaliaev b0ca8a0872
With must be called on log.filter, otherwise "main" entries get filtered
Also, we should allow "main" module to log INFO messages like

```
I[02-07|07:57:25.074] Found private validator                      module=main path=/home/vagrant/.tendermint/config/priv_validator.json
I[02-07|07:57:25.076] Found genesis file                           module=main path=/home/vagrant/.tendermint/config/genesis.json
```

Refs https://github.com/cosmos/gaia/issues/118

**BEFORE**:
```
$ tendermint init

```

**AFTER**:
```
$ tendermint init
I[02-07|07:57:25.074] Found private validator                      module=main path=/home/vagrant/.tendermint/config/priv_validator.json
I[02-07|07:57:25.076] Found genesis file                           module=main path=/home/vagrant/.tendermint/config/genesis.json
```
2018-02-07 12:08:13 +04:00
Ethan Buchman 3ae26bd6e6 consensus: fix SetLogger in tests 2018-01-24 23:34:57 -05:00
Ethan Buchman 85816877c6 config: fix addrbook path to go in config 2018-01-23 22:21:17 -05:00
Ethan Buchman f06cc6630b mempool: cfg.CacheSize and expose InitWAL 2018-01-19 01:03:03 -05:00
Ethan Buchman 8171628ee5 make tests run faster 2018-01-19 00:59:09 -05:00
Ethan Buchman cca597a9c0 fix and test config file 2018-01-19 00:08:19 -05:00
Ethan Buchman 53a5498fc5 more fixes from review 2018-01-13 17:34:12 -05:00
Ethan Buchman b1485b181a Merge branch 'p2p-consolidate' into p2p-id 2018-01-13 15:20:23 -05:00
Ethan Buchman e6b70baae0 Merge branch 'develop' into 864-distinguish-between-seeds-and-manual-peers 2018-01-13 14:34:32 -05:00
Anton Kaliaev e4897b7bdd
rename manual peers to persistent peers 2018-01-09 16:18:05 -06:00
Anton Kaliaev 28fc15028a
distinguish between seeds and manual peers in the config/flags
- we only use seeds if we can’t connect to peers in the addrbook.
- we always connect to nodes given in config/flags

Refs #864
2018-01-09 16:03:24 -06:00
Ethan Buchman b289d2baf4 persistent node key and ID 2018-01-01 21:21:42 -05:00
Ethan Buchman a8e625e99d config: unexpose chainID 2017-12-28 20:49:02 +00:00
Anton Kaliaev 69d8c2e554 fixes after my own review 2017-12-28 20:49:02 +00:00
Zach Ramsay 70ba608850 config: write all default options to config file
config: test the default file

docs: spiff up config

config: minor fixes & comments

config: simplify test

config; use a seperate config directory, #556

config: update docs & parameterize file paths

config: PR comments

config: use the default object

fix a rebase error
2017-12-28 20:49:02 +00:00
Ethan Buchman 5d04ccbe51 excessive logging. update tmlibs for timer fix 2017-12-16 19:16:08 -05:00
Ethan Buchman 462b755a60
activate PEX reactor by default 2017-12-13 12:25:48 -06:00
Anton Kaliaev 5ff0bb2100
default moniker to the host name (Refs #920) 2017-12-07 12:49:29 -06:00
Anton Kaliaev e538e0e077
config variable to index all tags 2017-11-30 20:02:39 -06:00
Anton Kaliaev 91f2184003
fixes after bucky's review 2017-11-29 14:24:18 -06:00
Anton Kaliaev 461a143a2b
remove tx.hash tag from config because it's mandatory 2017-11-29 14:23:44 -06:00
Anton Kaliaev cd4be1f308
add tx_index config 2017-11-29 14:23:43 -06:00
caffix 687834c99e added initial trust metric test routines 2017-11-14 18:26:06 -05:00
caffix 54c25ccbf5 integrated trust metric store as per PR comments 2017-11-14 18:26:06 -05:00
Ethan Buchman 1f3e4d2d9a move PartSetSize out of the config, into ConsensusParams 2017-09-21 14:51:29 -04:00
Ethan Buchman b9637f7185 Update changelog and add roadmap 2017-09-05 16:25:02 -04:00
Ethan Buchman daa258ea6d p2p: put maxMsgPacketPayloadSize, recvRate, sendRate in config
Updates #628
2017-09-01 21:44:15 -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 e9a2389300 cmd: --consensus.no_empty_blocks 2017-07-28 22:11:45 -04:00
Ethan Buchman 124032e3e9 NoEmptyBlocks config option 2017-07-28 22:11:45 -04:00
Ethan Buchman 3c10f7a122 add p2p flush throttle to config 2017-07-07 13:08:52 -04:00
Ethan Buchman ca8c34f966 add consensus reactor sleep durations to the config 2017-07-07 12:39:40 -04:00
Ethan Buchman bd7ec18c19 fix tests 2017-05-26 12:17:32 -04:00
Ethan Buchman fc6611b2d9 [config] RPCConfig 2017-05-24 13:56:12 -04:00
Ethan Buchman 8a0466d81d config: pex_reactor -> pex 2017-05-05 02:04:24 -04:00
Ethan Buchman 46151720f8 fix tests 2017-05-04 22:46:41 -04:00
Ethan Buchman 9109b20852 SetRoot 2017-05-04 22:46:41 -04: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 75b6c5215f fewer structs. remove viper from consensus 2017-05-04 22:43:55 -04:00
Ethan Buchman 501c4e4bac fixes from review 2016-04-26 22:17:13 -04:00
Jae Kwon c4ed55d801 Refactor to move common libraries out of project 2015-10-22 17:39:06 -07:00
Jae Kwon 7c12c5aee3 Fix config bug where chain_id is default magic. Always read from genesis 2015-10-20 17:39:03 -07:00
Jae Kwon 4d765dcf2b Generate account from seed 2015-08-14 10:49:44 -07:00
Jae Kwon 75ef479547 Config is passed into each module. Remove tendermint/confer 2015-05-17 16:19:57 -07:00
Jae Kwon 4175b0786e testnet5 validators 2015-05-13 18:39:32 -07:00
Jae Kwon be90fd1e0d rpc cleanup; tendermint init 2015-05-12 19:03:05 -07:00
Jae Kwon dd3d35f9f1 tendermint init to get the moniker 2015-05-12 18:29:00 -07:00
Jae Kwon 85c8850ac2 Config names have no dots, are under_scored. 2015-05-12 17:40:29 -07:00
Jae Kwon cfb4a40855 adding more debug logs 2015-05-04 22:22:39 -07:00
Jae Kwon 032d2e4fef debugging 2015-05-04 10:26:37 -07:00
Jae Kwon 71f0d58164 bump testnet version 2015-05-04 10:20:13 -07:00
Ethan Buchman 0ff198d96e add another validator 2015-05-03 23:06:27 -07:00
Jae Kwon 0d2b2d308b Testnet4 genesis update 2015-05-03 22:48:36 -07:00
Jae Kwon 1c577c36f1 update validator set 2015-05-01 18:09:01 -07:00
Jae Kwon b92c0401e6 Made all JSON fields lower_case 2015-05-01 17:26:49 -07:00
Ethan Buchman b02f088cc7 add ethan to genesis 2015-04-23 21:27:22 -07:00
Ethan Buchman 9892dfd0b3 allow multiple seed nodes 2015-04-23 18:52:44 -07:00
Jae Kwon 7606571d69 bump network number 2015-04-22 12:22:41 -07:00
Jae Kwon 9513f601de Removed Log.File, all log goes out to stdout. 2015-04-22 11:07:34 -07:00
Jae Kwon b31849d495 expose RPC by default. We'll whitelist it later. 2015-04-22 10:40:31 -07:00
Jae Kwon aa931f88ab bump network version 2015-04-21 00:26:19 -07:00
Jae Kwon e4f01a55cf update genesis.json 2015-04-19 10:05:20 -07:00
Jae Kwon 5bdd73f4a4 New genesis.json 2015-04-18 23:08:02 -07:00
Jae Kwon fa669ae436 added Moniker as config, available in RPC. 2015-04-18 16:43:48 -07:00
Jae Kwon 5e45a849ab Generate PrivValidator file when it doesn't exist already 2015-04-18 14:46:44 -07:00
Jae Kwon 6890593a7e ... 2015-04-18 13:28:38 -07:00
Jae Kwon da9f4118a7 Atomic write to addrbook and privvalidator 2015-04-18 12:53:45 -07:00
Jae Kwon 22fdb6ca2f ~/.tendermint -> .tendermint 2015-04-16 16:35:51 -07:00
Jae Kwon f271ab7256 various changes. removed debora temporarily 2015-04-03 16:15:52 -07:00
Jae Kwon 2b49e318bb update genesis file 2015-04-02 20:10:37 -07:00
Jae Kwon 3cb4092180 Updated seed node. 2015-04-02 18:58:21 -07:00
Ethan Buchman cb0f4cae0c add logfile for debora 2015-03-31 17:04:53 -07:00
Jae Kwon 39d5ff9ccb Reset log after config changes. 2015-03-31 15:34:12 -07:00
Jae Kwon bd767c1fab Make fast_sync a command-line flag 2015-03-26 00:35:16 -07:00
Ethan Buchman deff645dba some public convenience functions, extra debug errors on ExecTx 2015-03-21 00:11:01 -07:00
Matthew Wampler-Doty f03547007a App -> App() 2015-03-18 23:27:26 -07:00
Ethan Buchman e59de906f7 config: hardcode default genesis.json 2015-03-18 23:23:57 -07:00
Matthew Wampler-Doty 01cb965cce localhost -> 127.0.0.1 2015-03-16 22:32:16 -07:00
Matthew Wampler-Doty c600337a6b RPC only listening to localhost 2015-03-16 03:51:52 -07:00
Jae Kwon 2b39e56e75 Fixed account.PubkeyEd25519 String() bug 2015-01-20 15:45:20 -08:00
Jae Kwon 687815f6ed Less log lines to STDOUT 2015-01-20 15:31:31 -08:00
Jae Kwon 4a81b06b6e Send SeenValidation to peer & use for proposals when we don't have LastCommits due to reboot 2015-01-09 02:40:36 -08:00
Jae Kwon 05c642a84c Changed config to confer, TOML format. 2015-01-08 16:40:23 -08:00
Jae Kwon 325b88b083 time encoding in binary/reflect 2015-01-06 15:51:41 -08:00
Jae Kwon 2fd137d9e5 gen_tx for signing transactions 2014-12-31 22:13:49 -08:00
Jae Kwon 0bfb389b35 change logger to log15 2014-12-29 18:09:06 -08:00
Jae Kwon c6c465402e fix flag parsing -- use flagSet after the command 2014-12-28 15:08:07 -08:00
Jae Kwon f91665fe07 Refactoring genesis, including PubKey into TxInput 2014-12-28 00:44:56 -08:00
Jae Kwon 83d313cbe5 Refactor Tx, Validator, and Account structure 2014-12-16 05:45:40 -08:00
Jae Kwon 8e9c060e6d Begin writing RPC HTTP Server 2014-12-16 05:43:23 -08:00
Jae Kwon 93979300be made cmd/, removed crypto/ 2014-11-07 23:27:03 -08:00
Jae Kwon b615e51f95 basic main.go completion 2014-11-05 03:11:37 -08:00