Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upImplement µTP extension (BEP29) #68
Comments
This comment has been minimized.
This comment has been minimized.
|
I bet supporting uTP would help mitigate some of the router overload issues we've seen. |
This comment has been minimized.
This comment has been minimized.
|
Is https://github.com/mafintosh/utp helpful ? |
This comment has been minimized.
This comment has been minimized.
|
Yes, but it sounds like there are some performance issues with that module. See: mafintosh/torrent-stream#54 Still, it might be worth implementing to have more peers to pick from on torrents without many seeders. |
This comment has been minimized.
This comment has been minimized.
|
There's a PR out for uTP support on peerflix here: mafintosh/peer-wire-swarm#11 Looks pretty straightforward to pull this into WebTorrent (or bittorrent-swarm, more specifically). This would make an excellent first bug for someone looking to get involved in WebTorrent. :) |
This comment has been minimized.
This comment has been minimized.
|
@feross I plan on porting in uTP and MSE once they are both merged into torrent-stream. I'm working on MSE at the moment and I have a PR in for uTP already :) |
This comment has been minimized.
This comment has been minimized.
|
@Xeoncore That is excellent. Looking forward to your PR! |
This comment has been minimized.
This comment has been minimized.
|
i was experimenting with a combination of utp and bittorrent dht's implied_port option to see if I could get peers behind a NAT to work well. It wasn't quite enough. To take advantage of implied_port, you need the dht and the peer wire on the same port, which requires socket multiplexing, something vanilla dgram sockets don't support. They allow you to bind the same port, but only one socket will receive messages. To reuse the dht's port for the peer wire, I hacked together sock-plex, and it seemed to work well - bittorrent-dht & bittorrent-swarm (with utp) were sharing a port, and the wire was able to take advantage of the hole punching done by the dht. I was using it in a p2p otr chat module zlorp and a torrent-based replication module bitkeeper-js with pretty good results. Right now sock-plex is not very subtle (it rewires dgram), but if this is an interesting direction, I can teach it some manners. Is this something interesting for webtorrent? |
Micro Transport Protocol or µTP is a UDP-based variant of the standard bittorrent protocol intended to mitigate poor latency and other congestion control issues found in conventional bittorrent over TCP, while providing reliable, ordered delivery.
Resources: