I have updated apt-p2p to version 0.1.3, which is available now in unstable and my repository (see my previous post introducing apt-p2p).

This update brings mostly speed improvements to finding peers to download from, and performing the download. Nodes in the DHT are now checked for responsiveness more thoroughly before adding them to the routing table, and rechecked more frequently afterwards. This should prevent bad nodes from propagating through the system, and departing nodes remaining in the system long after they have left. Downloading from peers is also quicker, as bad peers are dropped with a quicker timeout value and after a small number of errors. There was also a bug revealed by about 10% of the mirrors that caused downloads to fail, and was fixed in version 0.1.2.

This update is STRONGLY recommended, as keeping unresponsive nodes out of the DHT will make everyone's experience better. If you tried apt-p2p and had some problems, I hope you'll consider trying again now. Unfortunately, these are enhancements I could not predict needing before releasing to the public, as the problems they solve are all caused by having a larger number of users, some of which are unresponsive.

There are still a large number of peers (maybe 50% of them) that are unreachable, and so can not share any files with other peers. I don't have a good way to check yet, but you can go to sites such as this one to probe your client for you. Just enter the remote IP address and port (available on the status page) of your client in the form http://ipaddress:port/ (e.g. http://1.2.3.4:9977/). If the check returns any HTTP headers (even a 404 Not Found response) then you're fine, but if it doesn't return anything then your peer is firewalled or NATted and should probably be fixed.

Here are the changelog entries for 0.1.2 and 0.1.3:

  • Speed up downloading from peers
    • Set a new peer's ranking values so they don't get an unfair advantage.
    • Reduce the HTTP connection timeout to 10s.
    • Drop peers after a limited number of errors.
  • Speed up the DHT requests when nodes fail
    • Schedule a re-ping message after adding a new node.
    • When a node fails, schedule a future ping to check again.
    • Send periodic finds to nodes that are stale.
    • Increase the stored value redundancy to 6.
    • Increase the concurrency of DHT requests to 8.
    • Add early termination and ignoring slow responses to recursive DHT actions when timeouts occur.
  • Remove the debconf note about port forwarding (Closes:#479492)
    • Add a NEWS entry for port forwarding
  • Fixed a bug in the HTTP downloader that caused errors with some mirrors that always close the connections (Closes: #479455)