Skip to content

Commit

Permalink
Add documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
umgefahren committed Aug 4, 2024
1 parent 0a566d4 commit 3e85ffb
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions protocols/autonat/src/v2.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
//! The second version of the autonat protocol.
//!
//! The implementation follows the [libp2p spec](https://github.com/libp2p/specs/blob/03718ef0f2dea4a756a85ba716ee33f97e4a6d6c/autonat/autonat-v2.md).
//!
//! 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 occured in the first version, when the clinet-server connection
//! occured 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.

use libp2p_swarm::StreamProtocol;

pub mod client;
Expand Down

0 comments on commit 3e85ffb

Please sign in to comment.