libp2p / specs

Technical specifications for the libp2p networking stack
https://libp2p.io
1.59k stars 276 forks source link

document smart dialing and black hole detection #559

Open marten-seemann opened 1 year ago

marten-seemann commented 1 year ago

It would be great if we could write up the logic that go-libp2p uses, so other implementations can easily implement something similar. This is mostly non-normative, although we could say something like “An implementation MUST NOT dial more than 4 (?) addresses in parallel.”

thomaseizinger commented 1 year ago

I'd be in favor of a place where different implementations can collaborate and document, how they did things and what seems to be working well / not so well.

Almost like an implementation guide.

Another interesting topic would be the "address pipeline". Even though implementations are obviously free to do what they want, I think we could save some effort by documenting the thought process. For example, in rust-libp2p, we ended making a system where every module can emit external address candidates which can then be picked up by something like autonat to go and verify and emit confirmed external addresses.