- 18 May, 2015 1 commit
-
-
rht authored
-
- 12 May, 2015 1 commit
-
-
Juan Batiz-Benet authored
We had a very nasty problem: handshakes were serial so incoming dials would wait for each other to finish handshaking. this was particularly problematic when handshakes hung-- nodes would not recover quickly. This led to gateways not bootstrapping peers fast enough. The approach taken here is to do what crypto/tls does: defer the handshake until Read/Write[1]. There are a number of reasons why this is _the right thing to do_: - it delays handshaking until it is known to be necessary (doing io) - it "accepts" before the handshake, getting the handshake out of the critical path entirely. - it defers to the user's parallelization of conn handling. users must implement this in some way already so use that, instead of picking constants surely to be wrong (how many handshakes to run in parallel?) [0] http://golang.org/src/crypto/tls/conn.go#L886
-
- 30 Apr, 2015 1 commit
-
-
Jeromy Johnson authored
-
- 28 Apr, 2015 1 commit
-
-
Jeromy authored
-
- 20 Apr, 2015 1 commit
-
-
Juan Batiz-Benet authored
We now consider debugerrors harmful: we've run into cases where debugerror.Wrap() hid valuable error information (err == io.EOF?). I've removed them from the main code, but left them in some tests. Go errors are lacking, but unfortunately, this isn't the solution. It is possible that debugerros.New or debugerrors.Errorf should remain still (i.e. only remove debugerrors.Wrap) but we don't use these errors often enough to keep.
-
- 17 Apr, 2015 1 commit
-
-
Jeromy authored
-
- 12 Apr, 2015 1 commit
-
-
Jeromy authored
-
- 08 Apr, 2015 1 commit
-
-
Juan Batiz-Benet authored
reuseport is a hack. It is necessary for us to do certain kinds of tcp nat traversal. Ideally, reuseport would be available in go: https://github.com/golang/go/issues/9661 But until that issue is fixed, we're stuck with this. In some cases, reuseport is strictly a detriment: nodes are not NATed. This commit introduces an ENV var IPFS_REUSEPORT that can be set to false to avoid using reuseport entirely: IPFS_REUSEPORT=false ipfs daemon This approach addresses our current need. It could become a config var if necessary. If reuseport continues to give problems, we should look into improving it.
-
- 01 Apr, 2015 1 commit
-
-
Jeromy authored
humanize bandwidth output instrument conn.Conn for bandwidth metrics add poll command for continuous bandwidth reporting move bandwidth tracking onto multiaddr net connections another mild refactor of recording locations address concerns from PR lower mock nodes in race test due to increased goroutines per connection
-
- 31 Mar, 2015 1 commit
-
-
Ho-Sheng Hsiao authored
- Modified Godeps/Godeps.json by hand - [TEST] Updated welcome docs hash to sharness - [TEST] Updated contact doc - [TEST] disabled breaking test (t0080-repo refs local)
-
- 07 Mar, 2015 1 commit
-
-
Juan Batiz-Benet authored
-
- 25 Feb, 2015 1 commit
-
-
Henry authored
- updated go-ctxgroup and goprocess ctxgroup: AddChildGroup was changed to AddChild. Used in two files: - p2p/net/mock/mock_net.go - routing/dht/dht.go - updated context from hg repo to git prev. commit in hg was ad01a6fcc8a19d3a4478c836895ffe883bd2ceab. (context: make parentCancelCtx iterative) represents commit 84f8955a887232b6308d79c68b8db44f64df455c in git repo - updated context to master (b6fdb7d8a4ccefede406f8fe0f017fb58265054c) Aaron Jacobs (2): net/context: Don't accept a context in the DoSomethingSlow example. context: Be clear that users must cancel the result of WithCancel. Andrew Gerrand (1): go.net: use golang.org/x/... import paths Bryan C. Mills (1): net/context: Don't leak goroutines in Done example. Damien Neil (1): context: fix removal of cancelled timer contexts from parent David Symonds (2): context: Fix WithValue example code. net: add import comments. Sameer Ajmani (1): context: fix TestAllocs to account for ints in interfaces
-
- 20 Feb, 2015 1 commit
-
-
Jeromy authored
-
- 11 Feb, 2015 1 commit
-
-
Juan Batiz-Benet authored
We were half-way with this. there's no way for net.Dialers to respect contexts, so we have to let the dial finish in the background.
-
- 10 Feb, 2015 1 commit
-
-
Juan Batiz-Benet authored
thanks @whyrusleeping for finding these.
-
- 06 Feb, 2015 1 commit
-
-
Juan Batiz-Benet authored
Use of the ratelimiter should be conscious of the ratelimiter's potential closing. any loops that add work to ratelimiter should (a) only do so if the rate limiter is not closed, or (b) prevent limiter while work is added (i.e. use limiter.Go(addWorkHere))
-
- 03 Feb, 2015 6 commits
-
-
Juan Batiz-Benet authored
-
Juan Batiz-Benet authored
-
Juan Batiz-Benet authored
Let's save log.Error for things the user can take action on. Moved all our diagnostics to log.Debug. We can ideally reduce them even further.
-
Juan Batiz-Benet authored
so that we dont get stuck dialing bad addrs first always.
-
Juan Batiz-Benet authored
This will mitigate the fd explosion, but slow down dials majorly as any peer with more addresses than the rate limit will have to wait a whole dial timeout (~15s)
-
Juan Batiz-Benet authored
This addr manager should seriously help with the addrsplosion problem.
-
- 02 Feb, 2015 1 commit
-
-
Juan Batiz-Benet authored
-
- 01 Feb, 2015 1 commit
-
-
Juan Batiz-Benet authored
-
- 31 Jan, 2015 1 commit
-
-
Juan Batiz-Benet authored
Network now signals when it successfully listens on some address or when an address shuts down. This will be used to establish and close nat port mappings. It could also be used to notify peers of address changes.
-
- 30 Jan, 2015 2 commits
-
-
Juan Batiz-Benet authored
network interface now allows setting Listeners after the fact. This is useful to create the network and start listening as separate steps. And to keep the network up to date on new addresses the node might have to listen to.
-
Juan Batiz-Benet authored
network interface now allows setting Listeners after the fact. This is useful to create the network and start listening as separate steps. And to keep the network up to date on new addresses the node might have to listen to.
-
- 29 Jan, 2015 1 commit
-
-
Juan Batiz-Benet authored
dialing 4000 connections somehow keeps choking both travis and jenkins. dialing this down to 500
-
- 28 Jan, 2015 3 commits
-
-
Juan Batiz-Benet authored
- attempts set to 1 now. - timeouts must account for that.
-
Juan Batiz-Benet authored
+ fixed race
-
Juan Batiz-Benet authored
-
- 27 Jan, 2015 3 commits
-
-
Juan Batiz-Benet authored
This commit turns all dial logs into log.Events. Everything's great except for one problem: The LoggableMap I'm using does not print out things correctly. I gave it peer.IDs, and Multiaddrs and both got logged as nothing `{}` (didn't even call their String() methods!) So, for now, this function encodes it when called... This is wrong and should be fixed before being merged in. Otherwise we will be constantly encoding peer.IDs and Multiaddrs without needing to. @briantigerchow how do you suggest doing this? I don't know my way around your Loggable.
-
Juan Batiz-Benet authored
-
Juan Batiz-Benet authored
-
- 26 Jan, 2015 2 commits
-
-
Juan Batiz-Benet authored
-
Juan Batiz-Benet authored
should be returning false.
-
- 24 Jan, 2015 4 commits
-
-
Juan Batiz-Benet authored
increased the timeout for other CI too
-
Juan Batiz-Benet authored
-
Juan Batiz-Benet authored
-
Brian Tiger Chow authored
-