1
- # @libp2p/autonat
2
-
3
1
# @libp2p/autonat-v2
4
2
5
3
[ ![ libp2p.io] ( https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square )] ( http://libp2p.io/ )
6
4
[ ![ Discuss] ( https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg?style=flat-square )] ( https://discuss.libp2p.io )
7
5
[ ![ codecov] ( https://img.shields.io/codecov/c/github/libp2p/js-libp2p.svg?style=flat-square )] ( https://codecov.io/gh/libp2p/js-libp2p )
8
6
[ ![ CI] ( https://img.shields.io/github/actions/workflow/status/libp2p/js-libp2p/main.yml?branch=main\& style=flat-square )] ( https://github.com/libp2p/js-libp2p/actions/workflows/main.yml?query=branch%3Amain )
9
7
10
- > Implementation of the Autonat Protocol v2
8
+ > Implementation of the AutoNAT Protocol v2
11
9
12
10
# About
13
11
@@ -26,31 +24,22 @@ repo and examine the changes made.
26
24
27
25
-->
28
26
29
- The AutoNAT service uses the [ AutoNAT protocol] ( https://docs.libp2p.io/concepts/nat/autonat/ ) .
30
- The service confirms addresses are dialable by remote peers, and updates the list it advertises.
31
-
32
- The service dials randomly selected peers with a request to verify it's external addresses.
33
- The request includes a list of public multiaddrs (addressManager.getObservedAddrs()).
34
- The remote peers dial that list and respond with the results.
35
-
36
- The AutoNAT service uses those responses to either:
37
-
38
- - addressManager.confirmObservedAddr(addr)
39
- - addressManager.removeObservedAddr(addr)
27
+ The AutoNATv2 service implements the [ AutoNAT v2 protocol] ( https://github.com/libp2p/specs/blob/master/autonat/autonat-v2.md )
28
+ to confirm whether addresses the node is listening on are dialable by remote
29
+ peers.
40
30
41
- The result list of candidates and confirmed addresses can be found
42
- at addressManager.getObservedAddrs()
31
+ It does not implement NAT hole punching.
43
32
44
33
## Example
45
34
46
35
``` typescript
47
36
import { createLibp2p } from ' libp2p'
48
- import { autoNAT } from ' @libp2p/autonat'
37
+ import { autoNATv2 } from ' @libp2p/autonat-v2 '
49
38
50
39
const node = await createLibp2p ({
51
40
// ...other options
52
41
services: {
53
- autoNAT: autoNAT ()
42
+ autoNAT: autoNATv2 ()
54
43
}
55
44
})
56
45
```
0 commit comments