knocte / udtRs

UDP/UDT hole punching component fully written in RUST
0 stars 0 forks source link

Create a pure-Rust UDT/UDP hole-punching implementation #1

Open knocte opened 5 years ago

knocte commented 5 years ago

By "pure rust" we mean: no other dependencies other than the Rust base class libraries (because we want this to work on all OSs: Linux, Windows, Mac, Android, iOS).

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 0.554 ETH (172.04 USD @ $310.54/ETH) attached to it.

jirislav commented 5 years ago

Hi there, I'd be interested into this.

But could you please specify more on the implementation?

I suppose you want both client & server to be implemented. So that the hole-punching scheme would look like this: Client A connects to publicly available server C. Client B connects to publicly available server C. Server C sends NAT IP and established port of A to B. Server C sends NAT IP and established port of B to A. A connects to B and vice versa. Server C is not needed for further A <-> B communication (as long as the connection is alive, thus at least periodically sending empty UDP data packets).

If the connection is lost, both A & B again connect to C to determine their NAT IPs & ports.

However, a few questions arises:

If you want executable program, there is a few questions that arise:

If you want a library, there is also a few questions to answer:

Have a good day!

xiaods commented 5 years ago

any update?

xiaods commented 5 years ago

@knocte what's update on your purpose?

tcrowe commented 5 years ago

Just to lend a hand, here are some libraries I've used which you can draw inspiration from: https://github.com/mafintosh/utp https://github.com/basarevych/utp-punch https://github.com/mafintosh/hyperdht

xiaods commented 5 years ago

@tcrowe cool.

xiaods commented 5 years ago

hi, i found have two p2p lib to implement the udp hole-punching protocol. please check it.

https://docs.rs/p2p/0.6.0/p2p/ https://github.com/maidsafe/tokio_utp/

we don't need reinvent the wheel.

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Cancelled


The funding of 0.554 ETH (98.74 USD @ $178.23/ETH) attached to this issue has been cancelled by the bounty submitter