2.0.10 • Published 8 months ago

@libp2p/dcutr v2.0.10

Weekly downloads
-
License
Apache-2.0 OR MIT
Repository
github
Last release
8 months ago

@libp2p/dcutr

libp2p.io Discuss codecov CI

Implementation of the DCUtR Protocol

About

Direct Connection Upgrade through Relay (DCUtR) is a protocol that allows two nodes to connect to each other who would otherwise be prevented doing so due to being behind NATed connections or firewalls.

The protocol involves making a relayed connection between the two peers and using the relay to synchronise connection timings so that they dial each other at precisely the same moment.

Example

import { createLibp2p } from 'libp2p'
import { circuitRelayTransport } from '@libp2p/circuit-relay-v2'
import { tcp } from '@libp2p/tcp'
import { identify } from '@libp2p/identify'
import { dcutr } from '@libp2p/dcutr'
import { multiaddr } from '@multiformats/multiaddr'

const node = await createLibp2p({
  transports: [
    circuitRelayTransport(),
    tcp()
  ],
  services: {
    identify: identify(),
    dcutr: dcutr()
  }
})

// QmTarget is a peer that is behind a NAT, supports TCP and has a relay
// reservation
const ma = multiaddr('/ip4/.../p2p/QmRelay/p2p-circuit/p2p/QmTarget')
await node.dial(ma)

// after a while the connection should automatically get upgraded to a
// direct connection (e.g. non-limited)
while (true) {
  const connections = node.getConnections()

  if (connections.find(conn => conn.limits == null)) {
    console.info('have direct connection')
    break
  } else {
    console.info('have relayed connection')

    // wait a few seconds to see if it's succeeded yet
    await new Promise<void>((resolve) => {
      setTimeout(() => resolve(), 5000)
    })
  }
}

Install

$ npm i @libp2p/dcutr

Browser <script> tag

Loading this module through a script tag will make it's exports available as Libp2pDcutr in the global namespace.

<script src="https://unpkg.com/@libp2p/dcutr/dist/index.min.js"></script>

API Docs

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

2.0.10-c2ff2e454

8 months ago

2.0.10-0a3406a05

8 months ago

2.0.10-a5cd8cfbe

8 months ago

2.0.10

8 months ago

2.0.9-a657bbd2e

8 months ago

2.0.9-d34642db1

8 months ago

2.0.9-7383821e1

8 months ago

2.0.10-ad5cfd66a

8 months ago

2.0.9-717731e49

8 months ago

2.0.8-3bc9769b8

9 months ago

2.0.8-3244ed086

9 months ago

2.0.9

9 months ago

2.0.8-aa8de9fd3

9 months ago

2.0.8-4521cf1f7

9 months ago

2.0.8-75301ac7d

9 months ago

2.0.8-e6b4158c6

9 months ago

2.0.5-a390db4a4

9 months ago

2.0.6-58784abf7

9 months ago

2.0.6-27b2fa6b6

9 months ago

2.0.6-b4f02a637

9 months ago

2.0.6-d9c7e0f7e

9 months ago

2.0.6-35b48025c

9 months ago

2.0.7-0d326d102

9 months ago

2.0.6-32c176fd5

9 months ago

2.0.7-e99e8f448

9 months ago

2.0.8-5d199f9b6

9 months ago

2.0.7-d7a818e8e

9 months ago

2.0.7

9 months ago

2.0.6

9 months ago

2.0.8

9 months ago

2.0.6-24fa1d5af

9 months ago

2.0.7-934a891f9

9 months ago

2.0.5-82bd42bcf

9 months ago

2.0.6-661d6586a

9 months ago

2.0.5-dad979f9b

9 months ago

2.0.6-80e798cdc

9 months ago

2.0.7-d4da56961

9 months ago

2.0.4-c5988cce8

9 months ago

2.0.4-fa83ee1c7

9 months ago

2.0.5

9 months ago

2.0.4-980038477

9 months ago

2.0.4-0c5957836

9 months ago

2.0.3-c258b35af

9 months ago

2.0.2-7f7ec82ae

10 months ago

2.0.2-b3272cfce

10 months ago

2.0.3

10 months ago

2.0.4

9 months ago

2.0.1-21fe841f2

10 months ago

2.0.2

10 months ago

2.0.1-c628c44c5

10 months ago

2.0.1-6ccbb06f0

10 months ago

2.0.1-4fd7eb2e1

10 months ago

2.0.1-34455b5f2

10 months ago

2.0.1

10 months ago

2.0.0-18dd3cb26

10 months ago

2.0.0-1210884ed

10 months ago

1.1.5-a142bb642

10 months ago

1.1.5-2bbaf4361

10 months ago

1.1.5-5214dec4a

10 months ago

1.1.5-e1ca9cced

10 months ago

2.0.0-d101aac4b

10 months ago

2.0.0

10 months ago

1.1.5-c010d575c

10 months ago

1.1.5-81ebe4e47

10 months ago

1.1.5-71e5f7a5b

10 months ago

2.0.0-7cd984569

10 months ago

1.1.5-b6681bd25

10 months ago

1.1.5-dd7b329c4

10 months ago

1.1.5-df330695a

10 months ago

1.1.5-737b3ea5b

10 months ago

1.1.5-2265e59ba

10 months ago

1.1.5-1675adee2

10 months ago

1.1.5-e211b46cc

10 months ago

1.1.5-50b897139

10 months ago

1.1.5-7655e5200

10 months ago

1.1.0-b0b6cae12

1 year ago

1.1.1-e9b6a242a

12 months ago

1.1.4-1dfb74e79

11 months ago

1.1.2-a130993ed

12 months ago

1.1.1-e1f0b307c

12 months ago

1.1.0-3b9cbf7d8

1 year ago

1.1.5-359265a3a

11 months ago

1.1.2-34cf1f7cd

11 months ago

1.1.3-f30e2ee8d

11 months ago

1.1.0-abb9f90c7

1 year ago

1.1.2-928801a80

12 months ago

1.1.1-151bc46fb

12 months ago

1.1.0-af85a7cad

1 year ago

1.1.5-3c8dd5bbf

11 months ago

1.1.4-c5dba70a9

11 months ago

1.1.2-73f2b6b6d

12 months ago

1.1.2-a8ec2bcb7

11 months ago

1.1.3-944935f8d

11 months ago

1.1.1-ce6da9896

12 months ago

1.1.1

1 year ago

1.1.0

1 year ago

1.1.5

11 months ago

1.1.4

11 months ago

1.1.3

11 months ago

1.1.2

12 months ago

1.1.4-0edbfe7af

11 months ago

1.1.0-0b55625d1

1 year ago

1.1.0-15eb66428

1 year ago

1.1.2-8b3114292

12 months ago

1.1.2-40902d99b

12 months ago

1.0.22

1 year ago

1.1.2-a82ff8221

11 months ago

1.1.4-7939dbd5c

11 months ago

1.1.0-21cf7bc56

1 year ago

1.1.1-3319ff41e

12 months ago

1.0.22-44791342

1 year ago

1.1.2-4a994c5ef

12 months ago

1.1.0-6573cb8b0

1 year ago

1.1.1-d1aec4d9f

12 months ago

1.0.21

1 year ago

1.0.20

1 year ago

1.0.19

1 year ago

1.0.18

1 year ago

1.0.17

1 year ago

1.0.16

1 year ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.11

1 year ago

1.0.12

1 year ago

1.0.9-f4dda4a3c

1 year ago

1.0.9-dbc92ab74

1 year ago

1.0.9-2e464c099

1 year ago

1.0.9-72f0e09f7

1 year ago

1.0.9-74fb5671d

1 year ago

1.0.10

1 year ago

1.0.9-3e47d88fd

1 year ago

1.0.9-f27138ca1

1 year ago

1.0.9-8c6654c3a

1 year ago

1.0.9-9376e61a1

1 year ago

1.0.9-08f6f607d

1 year ago

1.0.9-74477f6ea

1 year ago

1.0.9

1 year ago

1.0.8-092861e23

1 year ago

1.0.8

1 year ago

1.0.7-856ccd708

1 year ago

1.0.7-ddaa59a60

1 year ago

1.0.8-8bbd43628

1 year ago

1.0.7-4691f4173

1 year ago

1.0.7-ee7ffe9b9

1 year ago

1.0.7-821a38e24

1 year ago

1.0.7-900236724

1 year ago

1.0.7

1 year ago

1.0.6-528d73781

1 year ago

1.0.6-444d83751

1 year ago

1.0.6-d011f6130

1 year ago

1.0.6-581574d6d

1 year ago

1.0.6-ba7089984

2 years ago

1.0.6-388d02b33

2 years ago

1.0.6

2 years ago

1.0.5-5d1f68e92

2 years ago

1.0.5-28587d24f

2 years ago

1.0.5-4e0135c7d

2 years ago

1.0.5-6fd681d09

2 years ago

1.0.5-178fe2671

2 years ago

1.0.5-cd8cafcd5

2 years ago

1.0.5-c00378909

2 years ago

1.0.5-83dfc7dc8

2 years ago

1.0.5-f71f2e14e

2 years ago

1.0.5-984f13e42

2 years ago

1.0.5-07f3afe2d

2 years ago

1.0.5-ad6f70bf3

2 years ago

1.0.5-9eff7eff0

2 years ago

1.0.5-a7c6a93c6

2 years ago

1.0.5-230afea4b

2 years ago

1.0.5-f81be145a

2 years ago

1.0.5-01e9a5fe4

2 years ago

1.0.5

2 years ago

1.0.5-742915567

2 years ago

1.0.4-341581166

2 years ago

1.0.4-6d11e8268

2 years ago

1.0.3-d10506189

2 years ago

1.0.4

2 years ago

1.0.3-64a915ae9

2 years ago

1.0.3-3bf6387ff

2 years ago

1.0.3-93890c8f9

2 years ago

1.0.3-16588d27c

2 years ago

1.0.3-887c6ffe1

2 years ago

1.0.3-bcfa15993

2 years ago

1.0.3-10ea19700

2 years ago

1.0.3-09dd02987

2 years ago

1.0.3-5a9362e21

2 years ago

1.0.3

2 years ago

1.0.2-738dd40f1

2 years ago

1.0.2

2 years ago

1.0.1-7861ed882

2 years ago

1.0.1-9197f10ba

2 years ago

1.0.1-e7167fe52

2 years ago

1.0.1-f537b3731

2 years ago

1.0.1-8c169db1b

2 years ago

1.0.1-561797a89

2 years ago

1.0.1-cf963694f

2 years ago

1.0.1-bca8d6e68

2 years ago

1.0.1

2 years ago

1.0.1-53224004f

2 years ago

1.0.0-273d8177c

2 years ago

1.0.1-6c1f0ee81

2 years ago

1.0.0-a32e70bac

2 years ago

1.0.0-06e6d235f

2 years ago

1.0.0-bcf18265e

2 years ago

1.0.0-8e4fbe13a

2 years ago

1.0.0-7682861f9

2 years ago

1.0.0-551622a96

2 years ago

1.0.0

2 years ago

0.0.0-8f921ee97

2 years ago

0.0.0-74e84bc29

2 years ago

0.0.0-8bb6d5333

2 years ago

0.0.0-7877a50e0

2 years ago

0.0.0-68db79f6b

2 years ago

0.0.0-e2267d437

2 years ago

0.0.0-4a474d54d

2 years ago

0.0.0-0b4a2ee79

2 years ago

0.0.0-6b6ba9ab7

2 years ago

0.0.0-d729d66a5

2 years ago

0.0.0-bb6ceb192

2 years ago

0.0.0-d8f5bc211

2 years ago

0.0.0-13a870cbe

2 years ago

0.0.0-3dee5df4d

2 years ago

0.0.0-adea7bbbf

2 years ago

0.0.0-6625a27fc

2 years ago

0.0.0-9c67c5b3d

2 years ago

0.0.0-05b52d69c

2 years ago

0.0.0-97ab31c0c

2 years ago

0.0.0

2 years ago