Group: Guix/GSoC-2023
Popcornchief (talk | contribs) (Add "Project: Decentralized substitute distribution") |
Popcornchief (talk | contribs) m |
||
Line 5: | Line 5: | ||
Guix supports transparent source/binary deployment, which means that it can either build things locally, or download pre-built items from a server, or both. We call these pre-built items substitutes—they are substitutes for local build results. In many cases, downloading a substitute is much faster than building things locally. | Guix supports transparent source/binary deployment, which means that it can either build things locally, or download pre-built items from a server, or both. We call these pre-built items substitutes—they are substitutes for local build results. In many cases, downloading a substitute is much faster than building things locally. | ||
− | The two default sources for substitutes are the front-ends of the official build farms: ci.guix.gnu.org and bordeaux.guix.gnu.org. Although Guix allows more substitute servers to be configured | + | The two default sources for substitutes are the front-ends of the official build farms: ci.guix.gnu.org and bordeaux.guix.gnu.org. Although Guix allows more substitute servers to be configured [https://guix.gnu.org/manual/en/html_node/Getting-Substitutes-from-Other-Servers.html], the two official build farms remain the primary source for many users - and also the primary points of failure. |
We would like to increase the robustness of substitute distribution by using a more decentralized approach. Substitutes should be downloadable from a much larger set of servers and peers that are potentially automatically discovered. Advantages of such an approach might include: | We would like to increase the robustness of substitute distribution by using a more decentralized approach. Substitutes should be downloadable from a much larger set of servers and peers that are potentially automatically discovered. Advantages of such an approach might include: |
Revision as of 04:07, 10 February 2023
Contents
GNU Guix Google Summer of Code ideas page for 2023
Project: Decentralized substitute distribution
Guix supports transparent source/binary deployment, which means that it can either build things locally, or download pre-built items from a server, or both. We call these pre-built items substitutes—they are substitutes for local build results. In many cases, downloading a substitute is much faster than building things locally.
The two default sources for substitutes are the front-ends of the official build farms: ci.guix.gnu.org and bordeaux.guix.gnu.org. Although Guix allows more substitute servers to be configured [1], the two official build farms remain the primary source for many users - and also the primary points of failure.
We would like to increase the robustness of substitute distribution by using a more decentralized approach. Substitutes should be downloadable from a much larger set of servers and peers that are potentially automatically discovered. Advantages of such an approach might include:
- Increase reliability of substitute downloading by relying on a larger set of servers/peers.
- Reduce load on build farm
- Reduce network usage by being able to use substitutes available closer (e.g. on local network)
- Allow air-gaped substitute distribution via USB sticks or similar
Previous work on decentralized substitute distribution includes:
- Distributing substitutes over IPFS [2]
- GNUnet integration
More recently, there has been a proposal to use ERIS [3], [4]]: This allows multiple transport protocols (e.g HTTP, CoAP [5], IPFS, GNUnet) to be used for downloading substitutes.
There are many opportunities for contributing to this effort. Some ideas include:
- Improving the user experience and integration
- Adding more transport protocols (e.g. GNUnet or automatically detected portable media)
- Conducting performance evaluations
We value contributions in advance of GSoC, even if they're just little ones. During the application period we expect interaction with us, so do not leave it to the last minute.
For more information see:
- Decentralized substitute distribution with ERIS [6]
- The Encoding for Robust Immutable Storage (ERIS) [7]
Skills: Interest in decentralized protocols and networks.
Mentors: pukkamustard and ...
Ideas from 2021
- Trusted computing: Goblins for GNU Guix
- Guix Data Service revision processing instrumentation and performance
Ideas from 2020
- Guile based build tool
- GNU Guix system monitor
- Booting via network
- Syntax and semantics of systemd units in the Shepherd
- Shepherd: Add an extensible event loop is this still a thing?