guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fwd: [gnu-soc] GNU Guix Project: Decentralized substitute distributi


From: pukkamustard
Subject: Re: Fwd: [gnu-soc] GNU Guix Project: Decentralized substitute distribution
Date: Sun, 05 Mar 2023 07:39:58 +0000

Hi Shivam,

Thanks for your interest!

Shivam Madlani <shivammadlani5@gmail.com> writes:

> 1) The project title states "decentralized"... which i don't get. How
> exactly is it decentralized? Similar to a P2P file sharing tech or
> something else (BitTorrent)?

Actually it is similar to P2P file sharing exactly like BitTorrent :)

The terms "centralized", "decentralized" and "distributed" are a bit
confusing. I like to think of them as illustrated in a paper by P. Baran
from 1964 [1]:

- Centralized means that all nodes connect to one single central node.
- Decentralized means that nodes connect to a smaller set of nodes that
  may be interconnected. This is similar to what is sometimes called
  "federated" networks.
- Distributed means that all nodes are equivalent and connect to many
  other nodes (like a grid or mesh).

[1] 
https://www.rand.org/content/dam/rand/pubs/research_memoranda/2006/RM3420.pdf#page=16&zoom=90,-494,792

The goal of the project is to make Guix substitute distribution
something more in-between decentralied and distributed. Currently it
resembels something between centralized and decentralized.

The project will work atop of previous work to make substitute
distribution decentralized: https://issues.guix.gnu.org/52555

The idea is to use an encoding of content that allows the content, in
this case substitutes, to be distributed over many different protocols
and transport mediums including IPFS, GNUnet, NDN, CoAP, HTTP. The basic
ideas are very similar to BitTorrent.

There are a few directions in which a project go (quote from the project
description):

- Improving the user experience and integration
- Adding more transport protocols (e.g. IPFS, GNUnet, NDN, CoAP,...)
- Conducting performance evaluations

> 2) As per the project idea I interpreted that the technologies involved
> would be c/c++, shell and a bit of networking. Is this correct or am I
> missing something?

The main programming language involved is Guile Scheme (as already
mentioned by Csepp).

There might be some interaction with existing tools and libraries that
would require programming in other languages (e.g. C/C++/Rust/Go) but
that is not the focus or main task of the project.

> 3) What would be the duration of the project? (175hrs/350hrs).

I think 175h should be enough to do interesting and meaningfull work.

Csepp <raingloom@riseup.net> writes:

> As for other details, I CC'd Pukkamustard, who will be the mentor for
> this project if I'm not mistaken, and should be able to fill in the
> blanks.

Thanks for the CC, also CCing Attila who might co-mentor (yay!).

-pukkamustard



reply via email to

[Prev in Thread] Current Thread [Next in Thread]