Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AutoNAT v2 #4524

Closed
3 of 7 tasks
thomaseizinger opened this issue Sep 20, 2023 · 2 comments · Fixed by #5526
Closed
3 of 7 tasks

AutoNAT v2 #4524

thomaseizinger opened this issue Sep 20, 2023 · 2 comments · Fixed by #5526
Assignees
Labels
tracking-issue Issues which are the entry point to bigger projects.

Comments

@thomaseizinger
Copy link
Contributor

thomaseizinger commented Sep 20, 2023

Preliminary tracking issue around all the work that needs to happen around AutoNATv2 or issues that are associated with it.

Implementation tasks

Follow-up work

Known bugs

  1. bug
  2. bug
  3. bug
  4. bug
@thomaseizinger thomaseizinger added the tracking-issue Issues which are the entry point to bigger projects. label Sep 20, 2023
@umgefahren
Copy link
Contributor

Since this is my grant work, could you please assign me?

@mxinden
Copy link
Member

mxinden commented Sep 27, 2023

For others to follow along, grant proposal: filecoin-project/devgrants#1421

@mergify mergify bot closed this as completed in #5526 Aug 8, 2024
@mergify mergify bot closed this as completed in 848e2e9 Aug 8, 2024
TimTinkers pushed a commit to unattended-backpack/rust-libp2p that referenced this issue Sep 14, 2024
Closes: libp2p#4524

This is the implementation of the evolved AutoNAT protocol, named AutonatV2 as defined in the [spec](https://github.com/libp2p/specs/blob/03718ef0f2dea4a756a85ba716ee33f97e4a6d6c/autonat/autonat-v2.md).
The stabilization PR for the spec can be found under libp2p/specs#538.

The work on the Rust implementation can be found in the PR to my fork: umgefahren#1.

The implementation has been smoke-tested with the Go implementation (PR: libp2p/go-libp2p#2469).

The new protocol addresses shortcomings of the original AutoNAT protocol:

- Since the server now always dials back over a newly allocated port, this made libp2p#4568 necessary; the client can be sure of the reachability state for other peers, even if the connection to the server was made through a hole punch.
- The server can now test addresses different from the observed address (i.e., the connection to the server was made through a `p2p-circuit`). To mitigate against DDoS attacks, the client has to send more data to the server than the dial-back costs.

Pull-Request: libp2p#5526.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tracking-issue Issues which are the entry point to bigger projects.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants