I am currently working on decentralised networks for my master thesis by comparing different approaches, and I found quic-p2p. I want to set up a prove of concept with some hardware and quic-p2p, to show how the NAT traversal works and do some performance testing. Therefore I wanted to set up a network with some NAT’s and nodes that run quic-p2p. I found the github page but based on the documentation, it is not clear to me, how to actually use it.
Has anyone experience with that or has done it before ?
Of course I would like to share the outcomes of my testing.
No, they must know the public IP of some node, not each others. That is a STUN like mechanism (rendezvous connector). If you check out STUN you will see how that operates.
thank you for your help already. I know what STUN does and I kinda know what a Rendevouz Server does, but as far as I can see, the actual problem of a decentralised Network with NAT Traversal is just shifted from the STUN Server to the Rendevouz Server, as one still needs a “hard-coded” Server that can be reached by both peers.
Maybe I am totally wrong and I just do not get the NAT traversal process right for this crate
Ah I see the confusion. All you need to be able to do is connect to any peer you know that has a stun service (so still decentralised) and your other peer does the same to another peer with a STUN service. Both the STUN services tell each side what IP:port you should connect and and they can then connect.
So no need for hard coded servers, just use any peer you can speak to that has a STUN service running, so save them up as you go along and use them as needed.
Ahhhhh, so some peers function as peers and “stun-server”… and those are stored with a special flag in a distributed hash table or something?
Is there a documentation on how to set up a quic-p2p App like the Chat Example with crate ?
Because I am struggling to get it going.
Maybe we could setup a repository.
best regards,
Chris
P.S: I am still struggling with the hour zero of the network. When the first peer wants to join the network, there are no other peers to function as a STUN… sorry for being retarded ^^
first peer means a peer that could not bootstrap. It sets its own config to always start on same port etc. Other join in and can reboostrap there. It gets less required as time goes on.
Pretty much, you store them as stun capable.
Love to but time is a killer for me these days. I m 100% in launch mode.
Quic more or less replaced Crust from my understanding.
You’re lucky you received as many replies from David as you did! He really is super busy I think. IMO, you’ll need to put on your waders and work most of it out yourself.