Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@hoprnet/hopr-connect

hoprnet3.8kGPL-3.0-onlydeprecated1.93.7-next.1TypeScript support: included

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

A libp2p-complaint transport module that handles NAT traversal by using WebRTC

nat-traversal, libp2p, webrtc

readme

changelog

0.2.45 (2021-11-01)

Changes:

  • migration from dependabot to renovate
  • huge code deduplication, now using more shared code from hopr-utils (#349,#338,#335)
  • reduce control-flow debug output and control-flow enhancements (#333)

0.2.43 (2021-10-08)

Changes:

  • add more try / catch blocks to prevent from uncaught errors
  • package upgrades

0.2.42 (2021-09-10)

Changes:

  • remove type hacks (#308)
  • handle stream pipeline errors (#300)
  • fix infinite loop error (#295)
  • package upgrades

0.2.41 (2021-08-13)

Changes:

  • improved STUN logic, now filtering STUN responses containing local addresses (#283)
  • package upgrade: `ts-node@10.2.0`

0.2.40 (2021-07-28)

Changes:

  • deprecate Node 14, now exclusively using Node 16
  • changed relay management API (#271)

0.2.35 (2021-07-23)

Changes:

  • less strict node version (#258)
  • use native yarn caching in GH actions (#257)

0.2.34 (2021-07-23)

Changes:

  • dependency cleanup (#251)

0.2.33 (2021-07-22)

Changes:

  • upgrade to `libp2p@0.32.1` (#249)
  • fix automated relay CI test (#242)
  • improved logging (#248)

0.2.32 (2021-07-21)

Changes:

0.2.31 (2021-07-21)

Breaking changes:

  • Changed configuration object:
new HoprConnect(upgrader, {
  publicNodes, // EventEmitter
  initialNodes // Multiaddr[], list of already known nodes
})

The property bootstrapNodes is ignored.

New features:

  • support for relay slots, actively limitting maximum number of simultaneous relayed connections (#237)
  • relay management API: dynamically add and remove potential relays and use them to bypass NATs (#243, #231)
  • improved CI testing (#222, #227, #230, #232, #233, #234, #235)

Fixes:

  • fix hangUp() producing hanging promise (#240)

0.2.30 (2021-07-02)

Bugfix release

  • see (#193) for improvements and bugfixes
  • stricter testing
  • improved socket tracking
  • show meaningful message when connecting to wrong node
  • show available addresses (#187)
  • limit STUN request to reasonable amount (#185)
  • package upgrades (#204)

0.2.29 (2021-06-15)

  • fix STUN request failing on DNS failures
  • minor bugfixes in STUN code

0.2.28 (2021-06-10)

  • adds node-pre-gyp as dependency to make sure that hopr-connect includes all necessary dependencies for a standalone install
  • fixes wrtc missing dependency node-pre-gyp

0.2.27 (2021-06-10)

  • control-flow fixes
  • remove console.log and console.trace

0.2.26 (2021-06-09)

  • package upgrades
  • correctly distinguish private and link-locale addresses from public addresses
  • minor refactoring

0.2.25 (2021-05-11)

Upgrades:

0.2.23 (2021-03-01)

Fixes

  • close relayed connections if counterparty is not reachable

Breaking changes

  • Subnet detection: Nodes are able to detect whether the dialed address is a private address which is not in their reachable subnets.
  • Nodes do not consider link-locale IP addresses as dialable

Addressing

Before `hopr-connect@0.2.22` the follwoing addresses were valid

  • Multiaddr("/ip4/127.0.0.1/tcp/0/p2p/16Uiu2HAmCPgzWWQWNAn2E3UXx1G3CMzxbPfLr1SFzKqnFjDcbdwg")
  • Multiaddr("/p2p/16Uiu2HAmCPgzWWQWNAn2E3UXx1G3CMzxbPfLr1SFzKqnFjDcbdwg")

Since `hopr-connect@0.2.22`, nodes need to explicitly name the relay behind which they are accessible

  • Multiaddr("/ip4/127.0.0.1/tcp/0/p2p/16Uiu2HAmCPgzWWQWNAn2E3UXx1G3CMzxbPfLr1SFzKqnFjDcbdwg")
  • Multiaddr("/p2p/16Uiu2HAkyvdVZtG8btak5SLrxP31npfJo6maopj8xwx5XQhKfspb/p2p-circuit/p2p/16Uiu2HAmCPgzWWQWNAn2E3UXx1G3CMzxbPfLr1SFzKqnFjDcbdwg")

Nodes will automatically dial given bootstrap addresses and check whether they can reach them and announce them ordered by latency to other nodes.

Default export to named export

Before `hopr-connect@0.2.23, the main class HoprConnect was a default export, sincehopr-connect@0.2.23` it is a named export.

0.2.21 (2021-02-16)

Fixes

  • Fix STUN issues that prevent bootstap node from publishing public IPv4 addresses (#86)

0.2.20 (2021-02-12)

Fixes

  • don't detect STUN timeouts as bidirectional NAT
  • package upgrades

0.2.12 (2021-02-03)

Fixes

  • properly expose own TCP address as e.g. /ip4/127.0.0.1/tcp/12345/p2p/<MyPeerId>

Changes

  • Node.JS 12 -> Node.JS 14
  • libp2p 0.29 -> Node.JS 0.30 (only for testing)
  • libp2p-secio -> libp2p-noise (only for testing)

0.2.11 (2021-01-29)

Fixes

  • refactored internal communication
  • less verbose debug output

0.2.10 (2021-01-28)

Breaking changes

Addressing

Before `hopr-connect@0.2.10`, the following addresses were valid:

  • Multiaddr("/ip4/127.0.0.1/tcp/0")
  • Multiaddr("/ip4/127.0.0.1/tcp/0/p2p/16Uiu2HAmCPgzWWQWNAn2E3UXx1G3CMzxbPfLr1SFzKqnFjDcbdwg")
  • Multiaddr("/p2p/16Uiu2HAmCPgzWWQWNAn2E3UXx1G3CMzxbPfLr1SFzKqnFjDcbdwg")

Since `hopr-connect@0.2.10`, only addresses that include a PeerId are considered valid, namely:

  • Multiaddr("/ip4/127.0.0.1/tcp/0/p2p/16Uiu2HAmCPgzWWQWNAn2E3UXx1G3CMzxbPfLr1SFzKqnFjDcbdwg")
  • Multiaddr("/p2p/16Uiu2HAmCPgzWWQWNAn2E3UXx1G3CMzxbPfLr1SFzKqnFjDcbdwg")

Fixes

  • Always detect self-dial attempts

0.2.8 (2021-01-27)

Fixes

  • Various fixes
  • Reduced console output

0.2.4 (2021-01-26)

Fixes

  • Prefix WebRTC stream to make sure it gets closed

0.2.2 (2021-01-25)

Fixes

  • Not removing WebRTC error listener to catch connection aborts

0.2.1 (2021-01-24)

Fixes

  • Control flow bug that lead to unintended connection closes

0.2.0 (2020-01-22)

Enhancements

  • Strong typing & less code
  • Flexible upgrade handover sequence
  • Priorisation of signalling messages over payload messages
  • First integration of libp2p test suite

0.1.2 (2020-12-15)

Fixes

  • improved addressing and effective countermeasures against self-dials
  • stronger typing
  • various control-flow fixes

0.1.1 (2020-12-04)

Fixes

  • use hopr-connect in Debug strings

0.1 (2020-12-04)

Features

  • implements PeerDiscovery
  • type-checking for implemented interfaces, namely Connection, Transport, PeerDiscovery
  • minor improvements

  • resolve multiaddrs before dial (#782) (093c0ea)

Initial release

Features

  • automatic usage of WebRTC
  • integration of STUN & TURN
  • automatic handover between WebRTC and relayed connection
  • proper handling of reconnects