unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: Fwd: [gnu-soc] GNU Guix Project: Decentralized substitute distribution
       [not found] ` <CAAa6HdeNxxMkn9fwzPZU7wyaKR21Q5LJpQRi3WEVmo4hbyZEYw@mail.gmail.com>
@ 2023-03-03 17:33   ` Csepp
  2023-03-05  7:39     ` pukkamustard
  0 siblings, 1 reply; 3+ messages in thread
From: Csepp @ 2023-03-03 17:33 UTC (permalink / raw)
  To: Shivam Madlani; +Cc: guix-devel, pukkamustard


Shivam Madlani <shivammadlani5@gmail.com> writes:

> ---------- Forwarded message ---------
> From: Shivam Madlani <shivammadlani5@gmail.com>
> Date: Fri, 3 Mar 2023 at 12:42
> Subject: [gnu-soc] GNU Guix Project: Decentralized substitute distribution
> To: <summer-of-code@gnu.org>
>
> Hello all,
> My name is Shivam Madlani aiming for GSoC'23, and I am particularly
> interested in The Guix project. I took a look at the project idea and
> installed a fresh version of Guix on a VM and started playing around in it.
> I have a few questions regarding the project which I think you guys can
> help me with:
>
> 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)?
> 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?
> 3) What would be the duration of the project? (175hrs/350hrs).
>
> Thank you all and I hope to hear from you soon. :)
>
> Regards

Moving this to guix-devel, since this is more a development focused
question, not a user support one.

See this issue for some related code:
https://issues.guix.gnu.org/52555

As for languages, you would definitely need to write Guile Scheme on the
Guix side, but it would probably make use of libraries written in other
languages, which would likely include C and C++, but also quite possibly
Rust and Go, since a lot of newer decentralized file distribution
protocols have implementations written in them.

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.

ps.: Personally I'd really love to see NDN based substitutes, but NDN is
not even packaged in Guix yet, so my guess is that at first it's best if
you added support for something that already works on Guix System, like
IPFS.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Fwd: [gnu-soc] GNU Guix Project: Decentralized substitute distribution
  2023-03-03 17:33   ` Fwd: [gnu-soc] GNU Guix Project: Decentralized substitute distribution Csepp
@ 2023-03-05  7:39     ` pukkamustard
  2023-03-06 16:57       ` Shivam Madlani
  0 siblings, 1 reply; 3+ messages in thread
From: pukkamustard @ 2023-03-05  7:39 UTC (permalink / raw)
  To: Shivam Madlani; +Cc: Csepp, guix-devel, Attila Lendvai


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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Fwd: [gnu-soc] GNU Guix Project: Decentralized substitute distribution
  2023-03-05  7:39     ` pukkamustard
@ 2023-03-06 16:57       ` Shivam Madlani
  0 siblings, 0 replies; 3+ messages in thread
From: Shivam Madlani @ 2023-03-06 16:57 UTC (permalink / raw)
  To: pukkamustard; +Cc: Csepp, guix-devel, Attila Lendvai

[-- Attachment #1: Type: text/plain, Size: 3056 bytes --]

Thanks a lot for the resources. I am currently going through them to clear
out my basic concepts. Also, it would be great if you could share some more
project related resources so I could play around with them a bit and
experiment.

Shivam

On Sun, 5 Mar 2023 at 13:36, pukkamustard <pukkamustard@posteo.net> wrote:

>
> 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
>

[-- Attachment #2: Type: text/html, Size: 4055 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-03-06 17:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CAAa6HdfHSv2StzmLQ=78vzUqyJSyQMy64saGXWZFGQ5o7DThtg@mail.gmail.com>
     [not found] ` <CAAa6HdeNxxMkn9fwzPZU7wyaKR21Q5LJpQRi3WEVmo4hbyZEYw@mail.gmail.com>
2023-03-03 17:33   ` Fwd: [gnu-soc] GNU Guix Project: Decentralized substitute distribution Csepp
2023-03-05  7:39     ` pukkamustard
2023-03-06 16:57       ` Shivam Madlani

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).