1. 28 Feb, 2019 1 commit
  2. 15 Feb, 2019 1 commit
  3. 23 Jan, 2019 1 commit
  4. 02 Oct, 2018 1 commit
    • Lars Gierth's avatar
      Refactor and relax filtering of known undialable addresses · 0b06a5fe
      Lars Gierth authored
      This commit moves filtering of dial candidates into its own little function.
      Things that are being filtered: addresses configured to be blocked,
      IPv6 link-local addresses, addresses without a dial-capable transport,
      and addresses that we know to be our own. It's is an optimization to
      avoid wasting time on dials that we know are going to fail.
      
      This also relaxes the filtering of addresses that we consider our own.
      Previously, any address would get filtered that's registered in peerstore
      for or own PeerID. For e.g. /ip4/1.2.3.4/tcp/4001 that's fine, but for
      ephemeral ports it can already cause problems.
      
      In addition, now that go-libp2p-circuit is being fixed to handle its
      multiaddrs slightly differently, /p2p-circuit addresses won't contain
      the PeerID anymore. That means they stand for themselves, and would get
      filtered too. (/p2p-circuit is the address we want to dial, but it's
      also on of "our own addresses").
      
      In the future we'd want to use the mafmt package here, and also consider
      /quic, /ws, etc. addresses as our own.
      0b06a5fe
  5. 28 Aug, 2018 2 commits
  6. 16 Aug, 2018 1 commit
    • Kishan Sagathiya's avatar
      Issue #370 Check if empty peer ID · 59b12b42
      Kishan Sagathiya authored
      On trying to open a new stream against an empty peer ID, we get an
      error saying that failed to dial a peer.
      
      This commit changes that to a more informative error message:
      `empty peer ID`
      59b12b42
  7. 26 Jun, 2018 3 commits
    • Steven Allen's avatar
      remove redundant dial timeout · 1c4a7fd6
      Steven Allen authored
      This timeout is already set by the dial limiter.
      1c4a7fd6
    • Steven Allen's avatar
      switch to a per DialPeer/NewStream timeout defined in go-libp2p-net · 8071fe6c
      Steven Allen authored
      The global per-peer dial timeout had a significant drawback: When dialing many
      peers, this timeout could cause libp2p to cancel dials while they were still
      stuck in the limiter.
      
      A better but more complicated approach is a time budget system but we can
      implement that later.
      
      This change simply applies the limit to each `DialPeer`/`NewStream` call
      independently and makes it easy to override. While old timeout tried to
      account for how much we're willing to spend dialing a single peer, this new
      timeout tries to account for the amount of time a single "client" is willing to
      wait for a dial to complete before they no longer care.
      8071fe6c
    • Steven Allen's avatar
      add a per-dial transport-level dial timeout · d921f5c9
      Steven Allen authored
      d921f5c9
  8. 05 Jun, 2018 1 commit
    • Steven Allen's avatar
      refactor for new transports · f73db3de
      Steven Allen authored
      Removes:
      
      * go-libp2p-conn logic (moved to transports)
      * go-libp2p-peerstream (moved here)
      
      Changes:
      
      * New transport interface.
      * Explicit over implicit (the implicit automagic now all lives in go-libp2p):
        * No more default transports, muxers, etc.
        * No more fallback dialer. Transports are now *required*.
      * Stream opening:
        * Connection picking logic (instead of just picking the first).
        * Tries harder to open a stream of some connections happen to be closed.
      * Stream closing:
        * No longer treats half-closed streams as fully closed. Users *must* read the
          an EOF or reset the stream for it to be garbage collected.
      * No more polling for dead connections.
      * Multiplexers are now *non-optional*. Really, they haven't been optional for a
        while but we still pretended that they were.
      * No more Network type alias. It added a bunch of code and didn't really provide
        anything but an alternative set of methods that do the same thing.
      * Notifications:
        * New guarantee: connection open notifications will complete before connection
          close notifications begin.
        * Given that, notifications are now delivered in parallel. No more
          notification backlogs blocking connection closing/opening.
      f73db3de
  9. 09 Jan, 2018 1 commit
    • Steven Allen's avatar
      cleanup connection setup · 6287b47f
      Steven Allen authored
      We already setup the connection from within the new connection handler. No need
      to do it *again* on dial.
      6287b47f
  10. 03 Jan, 2018 1 commit
  11. 14 Nov, 2017 1 commit
  12. 18 Oct, 2017 1 commit
  13. 05 Sep, 2017 1 commit
  14. 17 Mar, 2017 1 commit
  15. 03 Feb, 2017 2 commits
  16. 11 Nov, 2016 1 commit
  17. 25 Oct, 2016 1 commit
  18. 05 Oct, 2016 1 commit
  19. 04 Oct, 2016 2 commits
  20. 18 Sep, 2016 1 commit
  21. 08 Sep, 2016 2 commits
  22. 05 Sep, 2016 1 commit
  23. 11 Aug, 2016 1 commit
  24. 10 Aug, 2016 1 commit
  25. 01 Jun, 2016 1 commit
  26. 31 May, 2016 2 commits
  27. 27 Apr, 2016 2 commits
  28. 12 Apr, 2016 1 commit
  29. 30 Mar, 2016 1 commit
  30. 03 Mar, 2016 1 commit
  31. 04 Jan, 2016 1 commit
  32. 07 Dec, 2015 1 commit
    • Jeromy's avatar
      WIP · 0f020c3c
      Jeromy authored
      0f020c3c