Group: Guix/GSoC-2023

From LibrePlanet
Jump to: navigation, search
(Let there be a page for GSoC 2023)
 
(Add "Project: Decentralized substitute distribution")
Line 1: Line 1:
 
= GNU Guix Google Summer of Code ideas page for 2023 =
 
= 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 (see [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:
 +
 +
* 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 [https://issues.guix.gnu.org/33899]
 +
* [https://libreplanet.org/wiki/Group:Guix/GSoC-2019#GNUnet_integration GNUnet integration]
 +
 +
More recently, there has been a proposal to use ERIS [http://purl.org/eris], [https://issues.guix.gnu.org/52555]]: This allows multiple transport protocols (e.g HTTP, CoAP [https://www.rfc-editor.org/rfc/rfc7252], 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 [https://issues.guix.gnu.org/52555]
 +
* The Encoding for Robust Immutable Storage (ERIS) [http://purl.org/eris]
 +
 +
'''Skills''': Interest in decentralized protocols and networks.
 +
 +
Mentors: pukkamustard and ...
  
 
== Ideas from 2021 ==
 
== Ideas from 2021 ==

Revision as of 04:06, 10 February 2023

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 (see [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:

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

Ideas from 2020

Ideas from 2019

Ideas from 2018