webtorrent / bittorrent-tracker

🌊 Simple, robust, BitTorrent tracker (client & server) implementation
https://webtorrent.io
MIT License
1.77k stars 317 forks source link

BEP for WebTorrent #463

Closed frink closed 1 year ago

frink commented 1 year ago

With the inclusion of websockets in several large libraries including libtorrent it is really important that the spec be cataloged for the community to avoid divergence. After 10 years of promising a BEP is forthcoming we just need to get that done. Asking developers to grok the original JS code is not comparable to formal specification.

BACKGROUND: I was recently trying to write a good golang server for webtorrent because nothing seemed to exist. You don't realize until you get into this level of development that the BEP is missing. What should have been an afternoon development has dragged on much longer. I got frustrated at this and just came back to it . Figured I should say something to squeak the wheel.

To be clear, I'm very willing to help here...

What is needed to get the BEP in draft form?

ThaUnknown commented 1 year ago

duplicate of https://github.com/webtorrent/webtorrent/issues/168

ThaUnknown commented 1 year ago

aquatic supports webtorrent quite well, and its really fast, so you can use that if u want a performant wt tracker

Power2All commented 11 months ago

Why do you need to use Websocket for announce and scrape requests ? Clients using WebRTC can also do HTTP/HTTPS requests to those trackers, and retrieve IP and port data from there, so I kind of see no point in implementing WSS for such purpose, other then that it creates even more overhead of data then HTTP or HTTPS. qBitorrent (Libtorrent) and such browser clients support WebRTC now as well since 2020, so I sincerely would like to know, what extra does a Websocket announce and scrape request give, over HTTP/HTTPS and UDP requests, other then that UDP is not supported by a web browser (well, Chrome had a implementation going on, but got discontinued).

Or am I missing the picture here, that WebTorrent clients exchange more data other then an IP and port ?

I'm just curious, as I'm also a developer for Torrust-Actix, a tracker I've been working on since a long time, and supporting Torrust-Tracker (the origin iteration that Torrust-Actix was build on) who had the same question as to why we should implement WebSocket announce and scrape requests. So would be nice to know if the use of this protocol, with it's overhead compared to HTTP/HTTPS/UDP, is needed anyhow, cause I still see no reason to implement it.