caffix
887cb6d0cd
added public methods to handle locking within the trust metric
2017-11-22 23:42:38 -05:00
caffix
aeaf2d0b20
Merge branch 'develop' of https://github.com/tendermint/tendermint into develop
2017-11-22 23:11:01 -05: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
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
caffix
9c8100043e
made changes to address suggestions from the PR comments
2017-11-20 19:15:11 -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
caffix
4087326f45
fixed race condition reported in issue #881
2017-11-20 16:47:05 -05: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
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
Ethan Buchman
53f15fde07
update changelog
2017-11-17 00:04:03 +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
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
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
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
caffix
8b7649b90c
enhancements made in response to PR full review comments
2017-11-14 18:26:06 -05: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
caffix
e160a6198c
added initial trust metric design doc and code
2017-11-14 18:26:06 -05:00
Ethan Buchman
e69d36d54f
some more robust sleeps
2017-11-14 22:31:23 +00:00
Emmanuel Odeke
62c1bc0a20
p2p: comment on the wg.Add before go saveRoutine()
...
Just noticed while auditing the code in p2p/addrbook.go,
wg.Add(1) but no subsequent defer.
@jaekwon and I had a discussion offline and we agreed to
comment about why the code was that way and why
we shouldn't move the wg.Add(1) into .saveRoutine() because
if go a.saveRoutine() isn't started before anyone invokes
a.Wait(), then we'd have raced a.saveRoutine().
2017-11-13 18:14:58 -07:00
Petabyte Storage
3863885c71
WIP: begin parallel refactoring with go-wire Write methods and MConnection
2017-11-12 22:11:15 -08:00
Anton Kaliaev
a1cdc2b68a
set logger for peer's MConnection
2017-11-09 14:57:40 -05:00
Ethan Buchman
c931279960
p2p: some fixes re @odeke-em issues #813,#816,#817
2017-11-08 17:54:29 +00:00
Ethan Buchman
9f6a09277e
Merge pull request #812 from tendermint/808-make-connected-switches
...
MakeConnectedSwitches: connect first switch to others
2017-11-08 00:54:23 +00:00
Ethan Buchman
dd47884661
Merge pull request #820 from tendermint/790-use-tickers-instead-of-time-Sleep
...
prefer tickers to time.Sleep
2017-11-08 00:53:42 +00:00
Petabyte Storage
51c9211cf4
add test for MConnection TrySend and Send
2017-11-07 23:35:25 +00:00
Anton Kaliaev
7869e541f6
change MakeConnectedSwitches to not connect to itself
...
and a test for it
2017-11-07 18:33:00 -05:00
Anton Kaliaev
e0daca5693
fixes from Bucky's review
2017-11-07 18:20:24 -05:00
Ethan Buchman
37ce171061
p2p/connetion: remove panics, test error cases
2017-11-07 23:00:52 +00:00
Ethan Buchman
e01986e2b3
p2p: update readme, some minor things
2017-11-07 23:00:49 +00:00
Anton Kaliaev
2d4ad02356
prefer tickers to time.Sleep (Refs #790 )
2017-11-07 15:38:25 -05:00
Anton Kaliaev
e785697a64
connect first switch to others (Refs #808 )
2017-11-06 23:43:40 -05:00
Petabyte Storage
fe9ff62297
fix comment typos
2017-10-28 22:01:45 -07:00
Petabyte Storage
6b366b2443
fix test using uncommon names
2017-10-28 20:29:11 -07:00
Petabyte Storage
ceedd4d968
remove unnecessary plus [ci skip]
2017-10-25 22:28:20 -04:00
Ethan Buchman
0bbf38141a
blockchain/pool: some comments and small changes
2017-10-23 10:13:46 -04:00
Zach Ramsay
136b6a7673
rpc/lib: remove dead files, closes #710
2017-10-04 17:45:15 -04:00
Zach Ramsay
f23d47e5d2
upnp: keep a link
2017-10-04 17:19:49 -04:00
Zach Ramsay
d56b44f3a5
all: no more anonymous imports
2017-10-04 16:40:45 -04:00
Emmanuel Odeke
925696ca65
Merge branch 'p2p-prune-unused-IPRangeCount-funcs' into develop
2017-09-22 21:09:41 -06:00
Ethan Buchman
ddb3d8945d
p2p: allow listener with no external connection
2017-09-22 10:13:23 -04:00
Ethan Buchman
b50339e8e7
p2p: sw.AddPeer -> sw.addPeer
2017-09-21 15:47:41 -04:00
Ethan Buchman
aea8629272
peer interface
2017-09-15 18:40:59 -04:00
Emmanuel Odeke
5138bcb1c7
p2p: delete unused and untested *IPRangeCount functions
...
Fixes #602
Delete unused and untested functions:
- AddToIPRangeCounts
- CheckIPRangeCounts
2017-09-15 14:03:01 -06:00
Ethan Buchman
54c63726b0
p2p: minor comment fixes
2017-09-06 16:40:21 -04:00
Ethan Buchman
cb80ab2965
Merge remote-tracking branch 'orijtech/p2p-full-test-PeerSet' into develop
2017-09-06 16:40:07 -04:00
Emmanuel Odeke
c48e772115
p2p: fully test PeerSet, more docs, parallelize PeerSet tests
...
* Full test PeerSet and check its concurrent guarantees
* Improve the doc for PeerSet.Has and remove unnecessary
defer for a path that sets a variable, make it fast anyways.
* Parallelize PeerSet tests with t.Parallel()
* Document functions in peer_set.go more.
2017-09-06 02:47:31 -06:00
Ethan Buchman
cc2b418f7f
p2p: test fix
2017-09-05 17:10:11 -04:00
Ethan Buchman
88138c38cf
mempool: reactor test
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
caojingqi
086544e367
p2p: sw.peers.List() is empty in sw.OnStart
2017-07-10 20:43:38 -04:00
Ethan Buchman
75df0d91ba
comments from review
2017-07-10 13:39:23 -04:00
Ethan Buchman
5f6b996d22
breakup some long lines; add more comments to consensus reactor
2017-07-09 18:38:59 -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
e6cecb9595
p2p: fix test
2017-07-07 13:33:15 -04:00
Ethan Buchman
3c10f7a122
add p2p flush throttle to config
2017-07-07 13:08:52 -04:00
Ethan Buchman
0d1fa8e884
fixes from review
2017-06-28 11: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
bf5181d9ca
address PR comments
2017-05-30 13:27:08 -04:00
zramsay
cf31f8d06f
core: apply megacheck vet tool (unused, gosimple, staticcheck)
2017-05-29 23:11:40 -04:00
Anton Kaliaev
4fe67652ff
move SetLogger down
2017-05-14 00:24:58 +02:00
Anton Kaliaev
c5bccc5474
set missing logger on switch
...
```
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x882cec]
goroutine 328 [running]:
github.com/tendermint/tendermint/p2p.(*Switch).DialPeerWithAddress(0xc42000a500, 0xc4202088d0, 0xc420403500, 0x0, 0x0, 0x0)
/home/vagrant/go/src/github.com/tendermint/tendermint/p2p/switch.go:324 +0x2fc
github.com/tendermint/tendermint/p2p.(*PEXReactor).ensurePeers.func1(0xc4201663f0, 0xc4202088d0)
/home/vagrant/go/src/github.com/tendermint/tendermint/p2p/pex_reactor.go:280 +0x3e
created by github.com/tendermint/tendermint/p2p.(*PEXReactor).ensurePeers
/home/vagrant/go/src/github.com/tendermint/tendermint/p2p/pex_reactor.go:284 +0x5d4
```
2017-05-13 17:05:44 +02:00
Anton Kaliaev
f8fdbe3dbc
changes as per Bucky's review
2017-05-13 16:22:51 +02:00
Anton Kaliaev
c9cd8de9c6
set logger
2017-05-13 10:25:00 +02:00
Anton Kaliaev
bc4e6566e7
[p2p] refactor upnp to use new logger
2017-05-13 10:24:59 +02:00
Ethan Buchman
16509ac3db
p2p: fix race by peer.Start() before peers.Add()
2017-05-13 10:24:59 +02:00
Anton Kaliaev
f803544195
new logging
2017-05-13 10:24:58 +02:00
Ethan Frey
57527f9f67
One silly tests passes on osx, fails on linux... comment out so i can develop
2017-05-05 18:48:39 +02:00
Ethan Buchman
46151720f8
fix tests
2017-05-04 22:46:41 -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
57151d6043
p2p: use cmn instead of .
2017-05-04 22:43:55 -04:00
Ethan Buchman
5d660e073a
remove viper from p2p
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
Ethan Buchman
56c60fba23
go-p2p -> tendermint/p2p
2017-04-21 18:19:41 -04:00
Ethan Buchman
93c58d0b24
remove glide and license from rpc and p2p
2017-04-21 18:08:25 -04:00
Ethan Buchman
23a6a6f8fc
move into p2p package
2017-04-21 18:07:52 -04:00
Jae Kwon
c4ed55d801
Refactor to move common libraries out of project
2015-10-22 17:39:06 -07:00