Hacker News new | ask | show | jobs
by ivanjermakov 931 days ago
Does it support sharing downloaded pieces (responds to `request` packets) and track DHT properly?

If it's download-only, then it's harmful for BitTorrent swarms as it is not contributing for actual data sharing.

And in order for uploading to work client must either expose open port or implement uTP and holepunch extension, which is not trivial.

2 comments

At the moment, it doesn't listen for bittorent downloads on neither UDP nor TCP, so external peers can't connect to it.

It only listens on UDP for DHT requests.

So if it connects by itself (only TCP is supported), then it can upload. In reality, this makes uploading rare.

For "being a good citizen" of the network, a couple days ago I implemented storing peer information, so that it can be returned back when DHT nodes query for it. It has limitations though, e.g. only storing 1000 peers at the moment, and not cleaning up old peers once the peer store is full.

Listening on UDP for torrent requests seems like a big change, maybe someday.

> implement uTP and holepunch extension, which is not trivial

I wonder if there are any Rust crates specifically focused on providing only this functionality.

Would be useful for P2P chat and P2P multiplayer games.