I was thinking the other day, which in itself is a dangerous activity, and started wondering about merging pacman and bit torrent. Let me preface this by saying I am just tossing out an idea, I am just bouncing my idea off the rest of the community. I am also not suggesting that the already overworked devs jump to complete this, or that this project should even be started. Finally I am not volunteering myself as I do not have any of the knowledge necessary to undertake this project.
I have no doubt that the current bandwidth cost is quite large for Arch Linux, even with all the mirrors. While downloading cds for new installs may account for a portion of this I suspect that the large chunk of bandwidth consumption comes from pacman and system updates. I starting thinking about how to help Judd out.
While I do try and click on the Google ads above as often as I can I suspect the majority of people do not. I decided that it would be pretty cool to merge pacman and bit torrent instead to create a p2p distributed update system, or at least help to alleviate some of the pain the server must feel.
I am wondering if we could not modify pacman to allow for it to share packages in the cache over a very small portion of bandwidth, and make this totally optional. Say that by default it is off, but it could be turned on to upload only 5kbs over a limited amount of connections. I would imagine this would help a great deal, particularly for the Arch base. When new updates are released they would quickly be seeded by an immense amount of clients which would effectively create speedy, free transfers. Now this would have to be a totally optional option and would probably only work if there are quite a few people willing to seed, but even with low bandwidth uploads I imagine this would be a very nice way to distribute recent downloads.
Any input? I think I may have heard of another distrobution doing this, but cannot find it on distrowatch and certainly don't remember the name off the top of my head.
I hinted for a distributed approach for package distribution, but it wasn't wanted, so I don't think it will come. Anyway, it's not part of Pacman anyway, the only part you need is the file downloading which can be done with anything you want thanks to the XferCommand option. I asked for traffic stats, but they don't have them.
Google-ads are blocked by me, although they're non-intrusive I never click on them anyway.
Bandwidth is cheap, 1$ or 2$ a gig, networks are fast, while the weakest point is the upload of users. I download less than one gig of data a year with Pacman, other people probably more, but all in all it's better to just make a small donation or to find a mirror for them.
I've no idea how bittorent practically works (theoretic part is nothing new, except yet another abuse of the http protocol, but I never used it), but all you need is a commandline bittorent client which can download specific files (the bare minimum for any file downloader if you ask me), so it should be already possible to use the XferCommand option without changing anything.
There are also other considerations to bear in mind. I have a internet connection that differentiates internation and national traffic and sports different limits and prices for each one. I must say, having a mirror of arch linux in my country really is handy. So, at least to me, having a distributed package system would not be very useful, as much as I'd like to alleviate the burden on archlinux main servers, but that I already do by using the aforementioned mirror.
Another thing is that to my knowledge, the packages are really quite small. I think Bittorrent really excels in transferring very large files, so I'm not sure about the practicality of that idea.
Anyway, that's just how I see it.
Your post is more thought out of course. I posted my message on a dare.
"Contrary to popular belief, penguins are not the salvation of modern technology. Neither do they throw parties for the urban proletariat."
Ah, I did not remember than contrasutra. Okay then, I think Dale shot you down pretty well there and it all applies to me to.
<i>I may have heard of another distrobution doing this, but cannot find it on distrowatch and certainly don't remember the name off the top of my head.</i>
Rubyx? They use a custom p2p client called WhiteWater. It differs from BitTorrent in that it can also fetch packages from caches, not just from computers that happen to run a WhiteWater client.
Yes it was Rubyx indeed. Thanks for filling in my blank.