1. 01 Jun, 2015 1 commit
  2. 18 May, 2015 1 commit
  3. 12 May, 2015 1 commit
    • Juan Batiz-Benet's avatar
      net/p2p + secio: parallelize crypto handshake · 95198430
      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
      95198430
  4. 30 Apr, 2015 1 commit
  5. 28 Apr, 2015 1 commit
  6. 20 Apr, 2015 1 commit
    • Juan Batiz-Benet's avatar
      remove debugerrors · b5957350
      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.
      b5957350
  7. 17 Apr, 2015 1 commit
  8. 12 Apr, 2015 1 commit
  9. 08 Apr, 2015 1 commit
    • Juan Batiz-Benet's avatar
      reuseport: env var to turn it off · 9dbbe6db
      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.
      9dbbe6db
  10. 01 Apr, 2015 1 commit
    • Jeromy's avatar
      bandwidth metering on streams · 44309cd5
      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
      44309cd5
  11. 31 Mar, 2015 1 commit
  12. 07 Mar, 2015 1 commit
  13. 25 Feb, 2015 1 commit
    • Henry's avatar
      rewrote import paths of go.net/context to use golang.org/x/context · e73da92c
      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
      e73da92c
  14. 20 Feb, 2015 1 commit
  15. 11 Feb, 2015 1 commit
  16. 10 Feb, 2015 1 commit
  17. 06 Feb, 2015 1 commit
    • Juan Batiz-Benet's avatar
      ratelimiter: fixing rate limiter use · 8a81975c
      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))
      8a81975c
  18. 03 Feb, 2015 6 commits
  19. 02 Feb, 2015 1 commit
  20. 01 Feb, 2015 1 commit
  21. 31 Jan, 2015 1 commit
    • Juan Batiz-Benet's avatar
      p2p/net: notify on listens · 93655b42
      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.
      93655b42
  22. 30 Jan, 2015 2 commits
    • Juan Batiz-Benet's avatar
      p2p/net: network interface Listen func · bfe998f3
      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.
      bfe998f3
    • Juan Batiz-Benet's avatar
      p2p/net: network interface Listen func · f97f60a3
      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.
      f97f60a3
  23. 29 Jan, 2015 1 commit
  24. 28 Jan, 2015 3 commits
  25. 27 Jan, 2015 3 commits
    • Juan Batiz-Benet's avatar
      p2p/net: dial log -> events · d53edf17
      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.
      d53edf17
    • Juan Batiz-Benet's avatar
      dropped down log.Errors · e598cf2b
      Juan Batiz-Benet authored
      e598cf2b
    • Juan Batiz-Benet's avatar
      user friendliness in logs + output · ae0386cf
      Juan Batiz-Benet authored
      ae0386cf
  26. 26 Jan, 2015 2 commits
  27. 24 Jan, 2015 3 commits