1. 30 Mar, 2021 1 commit
  2. 19 Mar, 2021 1 commit
  3. 18 Feb, 2021 1 commit
  4. 12 Feb, 2021 1 commit
  5. 09 Feb, 2021 1 commit
    • Marten Seemann's avatar
      prevent dialing addresses that we're listening on · 88c64b72
      Marten Seemann authored
      It's impossible to run two nodes on the same IP:port, so we know for
      sure that any dial to an address that we're listening on will fail (as
      the peer IDs won't match).
      In practice, this will be most useful for preventing dials to localhost
      for nodes that are listening on the default port.
      88c64b72
  6. 02 Sep, 2020 1 commit
  7. 20 May, 2020 1 commit
  8. 15 May, 2020 1 commit
  9. 02 Apr, 2020 3 commits
  10. 01 Apr, 2020 2 commits
  11. 18 Mar, 2020 1 commit
  12. 04 Nov, 2019 2 commits
  13. 27 Oct, 2019 1 commit
  14. 26 May, 2019 1 commit
  15. 24 Apr, 2019 1 commit
  16. 05 Apr, 2019 1 commit
  17. 13 Mar, 2019 1 commit
  18. 08 Mar, 2019 2 commits
  19. 28 Feb, 2019 1 commit
  20. 15 Feb, 2019 1 commit
  21. 23 Jan, 2019 1 commit
  22. 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
  23. 28 Aug, 2018 2 commits
  24. 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
  25. 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
  26. 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
  27. 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
  28. 03 Jan, 2018 1 commit
  29. 14 Nov, 2017 1 commit
  30. 18 Oct, 2017 1 commit
  31. 05 Sep, 2017 1 commit
  32. 17 Mar, 2017 1 commit