Modify apt to use BitTorrent, making downloading updates MUCH faster, and easier on the servers

Registered by Andrew Paulin

Use BitTorrent for pushing out updates. Doing this would keep from melting mirrors when an update/release goes out, and speed up download speeds for the users. It may not seem like much, but what happens if we fix bug #1?

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

I assume you mean making BT (bt://) an alternative to the existing file://, http:// and ftp:// download methods?
- kgoetz

Please check debtorrent (to be included in hardy) for this functionality. (http://debtorrent.alioth.debian.org/)

All you need to do to get debtorrent working is install it and replace http:// of each line in sources.list with debtorrent://localhost:9988/. From what I've seen, debtorrent simultaneously downloads all requested packages by treating the original http locations as webseeds (making them look like peers to the protocol), while also downloading from peers. Debtorrent runs in the background, so it would be wise to provide a GUI menu for settings such as: upload rate, upload slots, connections, times to run during when not downloading, and memory use for cache (mine is at 150MB right now). What might also help is to use several mirrors instead of only one, just set each package you need from each mirror as a webseed, although one will need to be used as a primary source for repository info (versions).
~Chinoto Vokro

@Chinoto: While I'm sure that works, I think you're missing the intent. The OP had an implicit requirement of enabling bt by *default*. There's two reasons I think this. First, notice that there are no conditionals ( if, when ) to be found. Also, bittorrent by its nature only works very well when there are large numbers of users (such as the full ubuntu user base). Giving debtorrent good default behavior so that the user doesn't have to worry about mucking with config files or network usage or memory usage is at the core of this issue / solution.
- Buck

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.