Diese Idee kam vor einigen Jahren auf, wurde aber nie vollständig umgesetzt. Ich hab mich dem angenommen und einen schnellen Server in Deutschland aufgesetzt und die nötigen Scripte für den inkrementellen Import von Updates in IPFS (Interplanetary FileSystem) geschrieben.
IPFS kann zudem in einem Cluster ausgeführt werden. Dabei kann man einen oder mehrere Server definieren, die schreiben dürfen, aber jeder kann dem Cluster "Folgen" und eine weitere Kopie speichern, Aktualisierungen vom Cluster erhalten und so Speicherplatz und Traffic für den Cluster bereitstellen.
Zudem funktioniert IPFS ähnlich wie Bittorrent, jeder der einen Teil heruntergeladen hat, bietet diesen auch wieder im Netzwerk an. Somit bekommt jeder einen viel schnelleren Download, als von einzelnen Servern und lokalere Quellen mit niedrigerem Ping werden bevorzugt bezogen.
Wenn ihr einen Server habt, mit dem ihr dem Cluster Speicherplatz und Traffic zur Verfügung stellen wollt, könnt ihr das gern tun - weitere Infos im Link am Ende.
Benutzung vom IPFS-Spiegelservers:
Ihr braucht einen IPFS-Dienst auf eurem System (
Weitere Infos dazu im englischen Wiki).
Danach könnt ihr das lokal laufende Web-Gateway vom IPFS-Dienst als Quelle in der Pacman-Mirrorlist angeben, plus den Pfad der den Spiegelserver definiert:
# IPFS
Server = http://127.0.0.1:8080/ipns/pkg.pacman.store/arch/$arch/default/$repo
IPFS kann zudem zu anderen Computern im Lokalen Netzwerk eine Verbindung aufbauen, um die Daten lokal auszutauschen, anstatt sie erneut aus dem Internet zu laden. Das funktioniert mit mDNS und ist standardmäßig eingeschaltet, das reduziert also eure Downloadzeiten für Updates, da ihr unter Umständen den Download schon auf einem anderen Computer im Netzwerk durchgeführt habt.
Standardmäßig hält IPFS bis zu 10 GB in seinem Cache, das kann in den IPFS-Einstellungen verändert werden, wenn dir das zu wenig oder zu viel vorkommt. Dieser Cache wird automatisch aufgeräumt, wenn er voll ist.
Weitere Informationen zu dem Projekt findet ihr im Git:
pacman.store.