libp2p::autonat

Module v2

Available on crate features autonat and v2 only.
Expand description

The second version of the autonat protocol.

The implementation follows the libp2p spec.

The new version fixes the issues of the first version:

  • The server now always dials back over a newly allocated port. This greatly reduces the risk of false positives that often occurred in the first version, when the clinet-server connection occurred over a hole-punched port.
  • The server protects against DoS attacks by requiring the client to send more data to the server then the dial back puts on the client, thus making the protocol unatractive for an attacker.

The protocol is seperated into two parts:

  • The client part, which is implemented in the client module. (The client is the party that wants to check if it is reachable from the outside.)
  • The server part, which is implemented in the server module. (The server is the party performing reachability checks on behalf of the client.)

The two can be used together.

Modulesยง