Ethan Buchman
38c4de3fc7
Merge pull request #891 from tendermint/fix-vagrantfile
...
go requires Git (Fixes #879 )
2017-11-24 22:07:29 +00:00
Anton Kaliaev
ae67408d13
go requires Git ( Fixes #879 )
2017-11-23 16:55:57 -06:00
Ethan Buchman
932e472986
Merge pull request #885 from AFDudley/patch-1
...
Update getting-started.rst to fix broken link
2017-11-22 20:29:30 +00:00
Ethan Buchman
e845987503
p2p: disable trustmetric test while being fixed
2017-11-22 20:20:53 +00:00
Ethan Buchman
531b1197a7
Merge pull request #843 from tendermint/refactor-mconnection-with-go-wire-1
...
WIP: begin parallel refactoring: go-wire Write methods and MConnection
2017-11-22 19:34:22 +00:00
Ethan Buchman
52ad6242f4
Merge pull request #888 from tendermint/rm-dead-file
...
remove unused file
2017-11-22 18:47:30 +00:00
Zach Ramsay
969b34057b
remove unused file
2017-11-22 17:22:53 +00:00
Petabyte Storage
e110f70b5c
update glide.yaml versions with go-wire at develop branch
2017-11-22 07:34:10 -08:00
Ethan Buchman
e997db7a23
Merge pull request #859 from tendermint/fix/addrbook
...
Fix/addrbook
2017-11-21 15:31:48 +00:00
Ethan Buchman
c4b695f78d
minor fixes from review
2017-11-21 15:30:19 +00:00
Ethan Buchman
75463b8331
Merge pull request #877 from tendermint/p2p-switch-DialSeeds-undeterministically
...
p2p: make Switch.DialSeeds use a new PRNG per call
2017-11-21 15:24:29 +00:00
A. F. Dudley
882c25f292
Update getting-started.rst to fix broken link
...
fixes broken link to introduction.html
2017-11-21 10:11:48 -05:00
Emmanuel Odeke
031e10133c
p2p: make Switch.DialSeeds use a new PRNG per call
...
Fixes https://github.com/tendermint/tendermint/issues/875
Ensure that every DialSeeds call uses a new PRNG seeded from
tendermint/tmlibs/common.RandInt which internally uses
crypto/rand to seed its source.
2017-11-20 15:28:42 -07:00
Ethan Buchman
f9bc22ec6a
p2p: fix comment on addPeer (thanks @odeke-em)
2017-11-20 21:36:01 +00:00
Ethan Buchman
26cd99c66e
p2p: fix non-routable addr in test
2017-11-20 19:56:44 +00:00
Ethan Buchman
9334aad906
Merge pull request #871 from tendermint/fix/docs-860
...
docs: fix links
2017-11-20 19:47:18 +00:00
Ethan Buchman
c695c53259
Merge pull request #876 from tendermint/p2p-extract-key-lex-check-to-variable-for-clarity
...
p2p: use bytes.Equal for key comparison
2017-11-20 19:33:58 +00:00
Emmanuel Odeke
5c34d087d9
p2p: use bytes.Equal for key comparison
...
Updates https://github.com/tendermint/tendermint/issues/850
My security alarms falsely blarred when I skimmed and noticed
keys being compared with `==`, without the proper context
so I mistakenly filed an issue, yet the purpose of that
comparison was to check if the local ephemeral public key
was just the least, sorted lexicographically.
Anyways, let's use the proper bytes.Equal check, to save future labor.
2017-11-18 23:34:27 -07:00
Zach Ramsay
559bd169bd
docs: fix links, closes #860
2017-11-17 14:03:43 +00:00
Ethan Buchman
f8c969f5a5
Merge pull request #868 from tendermint/small-things
...
node: clean makeNodeInfo
2017-11-17 01:22:45 +00:00
Ethan Buchman
c5253c7a31
node: clean makeNodeInfo
2017-11-17 01:22:38 +00:00
Ethan Buchman
53f15fde07
update changelog
2017-11-17 00:04:03 +00:00
Ethan Buchman
814f9cb566
Merge pull request #856 from tendermint/small-things
...
Small things
2017-11-17 00:03:57 +00:00
Ethan Buchman
af0db599b0
minor fixes
2017-11-16 23:57:00 +00:00
Ethan Buchman
104368bd84
Merge pull request #787 from caffix/develop
...
Initial Trust Metric Implementation
2017-11-16 23:51:53 +00:00
Ethan Buchman
99461a178e
Merge pull request #857 from gguoss/patch-1
...
Failed to compile comment code
2017-11-16 18:35:18 +00:00
Ethan Buchman
feb3230160
some comments
2017-11-16 04:43:07 +00:00
Ethan Buchman
be1a16a601
p2p/pex: simplify ensurePeers
2017-11-16 04:30:38 +00:00
Ethan Buchman
8e044b0e6d
p2p/addrbook: some comments
2017-11-16 04:30:23 +00:00
Ethan Buchman
40e93a5f9e
p2p/addrbook: fix addToOldBucket
2017-11-16 04:08:46 +00:00
Ethan Buchman
435eb6e2b3
p2p/addrbook: add non-terminating test
2017-11-16 04:04:54 +00:00
Ethan Buchman
8c88cc017a
p2p/addrbook: addAddress returns error. more defensive PickAddress
2017-11-16 03:59:54 +00:00
Ethan Buchman
ed95cc160a
p2p/addrbook: simplify PickAddress
2017-11-16 02:31:47 +00:00
Ethan Buchman
2f067a3f65
p2p/addrbook: addrNew/Old -> bucketsNew/Old
2017-11-16 02:28:11 +00:00
Ethan Buchman
498a82784d
p2p/addrbook: comments
2017-11-16 02:25:00 +00:00
Guanghua Guo
b5708825a7
Failed to compile comment code
2017-11-16 09:45:58 +08:00
caffix
a724ffab25
added changes based on PR comments to the proposal
2017-11-15 17:59:48 -05:00
Ethan Buchman
de34ef91d7
Merge pull request #854 from tendermint/add-go-version-to-readme
...
add Go version badge to README [ci skip]
2017-11-15 20:49:36 +00:00
Anton Kaliaev
248a9383a0
add Go version badge to README [ci skip]
2017-11-15 10:22:02 -06:00
Ethan Buchman
78b4ad291c
Merge pull request #853 from tendermint/p2p-netPipe-own-file
...
p2p: netPipe for <Go1.10 in own file with own build tag
2017-11-15 16:09:48 +00:00
Emmanuel Odeke
3f9dff9aac
p2p: netPipe for <Go1.10 in own file with own build tag
...
Follow up of 283544c7f3
putting <Go1.10 implementation of netPipe in its own
file and protect it with its separate build tag.
2017-11-14 22:23:48 -07:00
Ethan Buchman
443854222c
Merge pull request #852 from tendermint/net-conn-SetDeadline-wraps
...
p2p: use fake net.Pipe since only >=Go1.10 implements SetDeadline
2017-11-15 05:09:39 +00:00
Emmanuel Odeke
283544c7f3
p2p: use fake net.Pipe since only >=Go1.10 implements SetDeadline
...
Fixes https://github.com/tendermint/tendermint/issues/851
Go1.9 and below's net.Pipe did not implement the SetDeadline
method so after commit
e2dd8ca946
this problem was exposed since now we check for errors.
To counter this problem, implement a simple composition for
net.Conn that always returns nil on SetDeadline instead of
tripping out.
Added build tags so that anyone using go1.10 when it is released
will be able to automatically use net.Pipe's net.Conns
2017-11-14 22:03:23 -07:00
Ethan Buchman
49faa79bdc
Merge pull request #848 from tendermint/p2p-catch-conn.SetDeadline-errors
...
p2p: peer should respect errors from SetDeadline
2017-11-15 03:34:58 +00:00
Ethan Buchman
7670049a31
Merge pull request #845 from tendermint/fix/826-wait-for-rpc
...
rpc: wait for rpc servers to be available in tests
2017-11-15 03:29:05 +00:00
Ethan Buchman
0cd642bca7
Merge pull request #849 from tendermint/846-fix-TestFullRound1-race
...
fix TestFullRound1 race (Refs #846 )
2017-11-15 03:27:59 +00:00
Anton Kaliaev
fe3c92ecce
unescape $NODE_FLAGS (see comment)
2017-11-14 20:56:39 -06:00
Ethan Buchman
a969e24177
crank context timeouts
2017-11-15 01:42:15 +00:00
Emmanuel Odeke
7b0fa6c889
p2p: peer should respect errors from SetDeadline
...
Noticed while auditing the code that we aren't respecting
(*net.Conn) SetDeadline errors which return after
a connection has been killed and is simultaneously
being used.
For example given program, without SetDeadline error checks
```go
package main
import (
"log"
"net"
"time"
)
func main() {
conn, err := net.Dial("tcp", "tendermint.com:443")
if err != nil {
log.Fatal(err)
}
go func() {
<-time.After(400 * time.Millisecond)
conn.Close()
}()
for i := 0; i < 5; i++ {
if err := conn.SetDeadline(time.Now().Add(time.Duration(10 * time.Second))); err != nil {
log.Fatalf("set deadline #%d, err: %v", i, err)
}
log.Printf("Successfully set deadline #%d", i)
<-time.After(150 * time.Millisecond)
}
}
```
erraneously gives
```shell
2017/11/14 17:46:28 Successfully set deadline #0
2017/11/14 17:46:29 Successfully set deadline #1
2017/11/14 17:46:29 Successfully set deadline #2
2017/11/14 17:46:29 Successfully set deadline #3
2017/11/14 17:46:29 Successfully set deadline #4
```
However, if we properly fix it to respect that error with
```diff
--- wild.go 2017-11-14 17:44:38.000000000 -0700
+++ main.go 2017-11-14 17:45:40.000000000 -0700
@@ -16,7 +16,9 @@
conn.Close()
}()
for i := 0; i < 5; i++ {
- conn.SetDeadline(time.Now().Add(time.Duration(10 * time.Second)))
+ if err := conn.SetDeadline(time.Now().Add(time.Duration(10 *
time.Second))); err != nil {
+ log.Fatalf("set deadline #%d, err: %v", i, err)
+ }
log.Printf("Successfully set deadline #%d", i)
<-time.After(150 * time.Millisecond)
}
```
properly catches any problems and gives
```shell
$ go run main.go
2017/11/14 17:43:44 Successfully set deadline #0
2017/11/14 17:43:45 Successfully set deadline #1
2017/11/14 17:43:45 Successfully set deadline #2
2017/11/14 17:43:45 set deadline #3 , err: set tcp 10.182.253.51:57395:
use of closed network connection
exit status 1
```
2017-11-14 18:01:51 -07:00
Anton Kaliaev
fa60d8120e
fix TestFullRound1 race (Refs #846 )
...
```
==================
WARNING: DATA RACE
Write at 0x00c42d7605f0 by goroutine 844:
github.com/tendermint/tendermint/consensus.(*ConsensusState).updateToState()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/state.go:465 +0x59e
I[11-14|22:37:28.781] Added to prevote vote="Vote{0:646753DCE124 1/02/1(Prevote) E9B19636DCDB {/CAD5FA805E8C.../}}" prevotes="VoteSet{H:1 R:2 T:1 +2/3:<nil> BA{2:X_} map[]}"
github.com/tendermint/tendermint/consensus.(*ConsensusState).finalizeCommit()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/state.go:1229 +0x16a9
github.com/tendermint/tendermint/consensus.(*ConsensusState).tryFinalizeCommit()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/state.go:1135 +0x721
github.com/tendermint/tendermint/consensus.(*ConsensusState).enterCommit.func1()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/state.go:1087 +0x153
github.com/tendermint/tendermint/consensus.(*ConsensusState).enterCommit()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/state.go:1114 +0xa34
github.com/tendermint/tendermint/consensus.(*ConsensusState).addVote()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/state.go:1423 +0xdd6
github.com/tendermint/tendermint/consensus.(*ConsensusState).tryAddVote()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/state.go:1317 +0x77
github.com/tendermint/tendermint/consensus.(*ConsensusState).handleMsg()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/state.go:565 +0x7a9
github.com/tendermint/tendermint/consensus.(*ConsensusState).receiveRoutine()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/state.go:523 +0x6d2
Previous read at 0x00c42d7605f0 by goroutine 654:
github.com/tendermint/tendermint/consensus.validatePrevote()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/common_test.go:149 +0x57
github.com/tendermint/tendermint/consensus.TestFullRound1()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/state_test.go:256 +0x3c5
testing.tRunner()
/usr/local/go/src/testing/testing.go:746 +0x16c
Goroutine 844 (running) created at:
github.com/tendermint/tendermint/consensus.(*ConsensusState).startRoutines()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/state.go:258 +0x8c
github.com/tendermint/tendermint/consensus.startTestRound()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/common_test.go:118 +0x63
github.com/tendermint/tendermint/consensus.TestFullRound1()
/home/vagrant/go/src/github.com/tendermint/tendermint/consensus/state_test.go:247 +0x1fb
testing.tRunner()
/usr/local/go/src/testing/testing.go:746 +0x16c
Goroutine 654 (running) created at:
testing.(*T).Run()
/usr/local/go/src/testing/testing.go:789 +0x568
testing.runTests.func1()
/usr/local/go/src/testing/testing.go:1004 +0xa7
testing.tRunner()
/usr/local/go/src/testing/testing.go:746 +0x16c
testing.runTests()
/usr/local/go/src/testing/testing.go:1002 +0x521
testing.(*M).Run()
/usr/local/go/src/testing/testing.go:921 +0x206
main.main()
github.com/tendermint/tendermint/consensus/_test/_testmain.go:106 +0x1d3
==================
```
2017-11-14 17:41:30 -06:00