# Serving and downloading distfiles through torrents?



## BlueCoder (May 19, 2013)

Has anyone thought about or implemented ports' distfiles through torrents?


----------



## ShelLuser (May 21, 2013)

I think such a setup would bring too much overhead to make it a feasible solution. The idea is of course a good one; trying to spread the load of hosting the FreeBSD software. But I don't think the BitTorrent protocol is the best solution here.

For starters; a torrent is basically a collection of its own. While that would be perfect for providing ports/distfiles there is one problem; in most cases people who use this service don't want the whole collection but one (or more) files from it.

Then there's another problem: _updates_. You can't "update" a torrent, you can only make a new one. And then you're looking at a chicken and egg problem: you're using a torrent to distribute new updates, but in order to make it work you'd first need to distribute the torrent itself. And that can't be done over the existing BitTorrent powered connections.

I'm not an expert on BitTorrent so it is possible that I'm overlooking specific new developments, but in general I think it's not the right tool for the job at hand.


----------



## kpa (May 21, 2013)

Agreed, too much overhead and no way to create an updated torrent that could be distributed in place of the old one since every torrent is unique by id.


----------



## dvdmandt (May 21, 2013)

You would probably need to host different torrents for each distfile in order for it to be realistic at all. Using magnet links stored in the ports could work. The problem is that you would need a service to create and seed them. I doubt very much that the port maintainers would like to create a torrent and seed it every time a new version is released. At the moment, all distfiles are downloaded from their project website or some mirror service, FreeBSD does not (as far as I know at least) have any service which hosts such files. While setting up such a service is not necessarily difficult, it requires some resources (tons of disk space and fast connectivity).


----------



## BlueCoder (May 21, 2013)

Each file would indeed be it's own torrent. And you would use magnet links so need for any dedicated servers. Only difference would be a custom torrent server/client specifically for this or customizing an existing one so that legitimate and illegitimate activities are partitioned/segregated. Preferably the former as I think as it would likely including some customizations to optimize it for distfiles. Maybe a revoking mechanism just for zero administration.

The way I understand how it works and to oversimplify it... Imagine distributed FTP with checksums for filenames.


----------



## dvdmandt (May 21, 2013)

Someone still needs to create the torrent, distribute it (and/or the magnet link) and seed the content (that is the distfile) until there are enough users seeding it. I may very well be wrong here, but I also believe that two users creating torrents with the same content can end up with different torrent IDs/checksums/whatever. If that is the case, you would need to clearly define who is to create the torrents, and putting that responsibility on the port maintainers is not going to be popular. Having a centralized service which updates the port collection, downloads the new distfiles, creates the torrents and then seeds seems to be like the only remotely reasonable way to implement this, especially since it to my understanding could be implemented without modifying the port files.

There is another P2P network called eDonkey2000 (not sure about correct casing etc) or in short ed2k which is possibly more suited for this, from a technical perspective. The problem is that the ed2k network is very uncontrolled and filled with stuff you don't want anywhere near your computers or networks. The advantage is that you can never end up with multiple different torrents for the same file, meaning that all downloaders could potentially be served by all uploaders sharing that file.

[edit]
I forgot to mention something, there might be licensing problems for some ports as well. While probably quite rare if even existing, care needs to be taken to respect such licensing restrictions if an automated system is to be implemented.

Also, since distfiles are not FreeBSD specific, the entire open source community could greatly benefit from a service like this. Perhaps one even exists already? In that case, adding support for FreeBSD ports to use that as a download source is much more realistic.


----------

