unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Sree Harsha Totakura <sreeharsha@totakura.in>
Cc: guix-devel <guix-devel@gnu.org>,
	gnunet-developers@gnu.org, Pierre-Antoine Rault <par@rigelk.eu>
Subject: Re: Guix - GNUnet binary ditribution roadmap
Date: Wed, 12 Mar 2014 21:56:53 +0100	[thread overview]
Message-ID: <87siqndtka.fsf@gnu.org> (raw)
In-Reply-To: <5320AE0E.2020203@totakura.in> (Sree Harsha Totakura's message of "Wed, 12 Mar 2014 19:57:18 +0100")

Sree Harsha Totakura <sreeharsha@totakura.in> skribis:

> On 03/11/2014 08:14 PM, Pierre-Antoine Rault wrote:
>> Hi,
>>
>> Sorry for contacting you directly (without the guix mailing list),
>> but Ludovic Courtès recommanded me to contact you as I would like
>> to work [1] on integrating GNUnet in Guix as a binary deployment
>> and sharing system.
>>
>> [1]
>> http://lists.gnu.org/archive/html/guix-devel/2014-03/msg00106.html
>
> No problem; I was also following your thread on guix-devel.

Cross-posting is fine for this discussion, IMO.

>> For now I'm afraid I have to catch up with what has been said and
>> thus made the following requirements/ideas list (all ideas are not
>> from me): * required: users may run a server to share binaries
>> (HTTP or GNUnet server).
> Let's just stick with the GNUnet server (we call such a server as a
> service in GNUnet, let's call it Guix service) as of now.  HTTP can be
> done optionally.  Moreover the currently binary distribution is made
> through a HTTP server.

Yeah, let’s keep HTTP optional.  The requirement will be to have a
server over GNUnet’s MESH, right?

>> * required: users should use a gpg key to sign their packages.
> OK, sounds good.

For consistency, I’d prefer to use our SPKI-style infrastructure (info
"(guix) Invoking guix archive").

>> * required: users would look for hashes on a dht node (GNUnet node)
>> to find user servers.
> I am assuming the hash lookup will be against the package and the
> result will contain the peers offering the package.  This requires all
> nodes which are running the Guix service to publish into DHT the
> packages they built or downloaded from others.
>
>> * required: users should be able to add/remove keys to their
>> keyring of trusted keys (which would have official keys as a
>> basis).
>
> Yes.

Again, SPKI:

  http://lists.gnu.org/archive/html/guix-devel/2013-12/msg00135.html
  http://theworld.com/~cme/spki.txt
  http://lists.gnu.org/archive/html/guix-devel/2013-12/msg00141.html

SPKI is very flexible, and would allow users to publish “delegation
certificates”.  For instance, I could sign a certificate that says “I
trust packages signed with this key.”  That’s a very useful feature.

(It’s of course similar to OpenPGP’s web of trust, except that OpenPGP
is engineered to handle specifically email/key bindings.)

>> * optional: users' servers could be dht nodes themselves.
> This may not be possible.  If you are running the Guix server, you
> would want to publish the packages you built into the DHT and for this
> you need to run the DHT service.

To me “could be DHT nodes” is the same as could “run the DHT service”.
I think you’re saying the same thing, no?  :-)

> The requirements from Guix side are missing here.  IMO, you have to:
> * Understand the current protocol used over HTTP to search and
> download packages from Guix Hydra server.
> * Implement a equivalent client/downloader in Guix using Guile to
> download the packages using GNUnet.
> * Extend the Guix daemon to publish package updates into GNUnet DHT,
> whenever new packages are added to the Guix store.

I think guix-daemon would remain unchanged.  Instead, the package
publisher could (say) periodically ask for the list of live store items
(as per ‘guix gc --list-live’) and publish those.

> The roadmap should contain a plan for implementing these requirements,
> the order in which the implementation happens and estimates of how
> long each step takes.

Agreed.

However, I think the protocol could be different from, and simpler than
Hydra’s.

Ideally, I imagine you could do something like:

  dht-get /gnu/store/ykmg6ydrmlkn600wklriw3wzc1z3dcli-emacs-24.3

and get as a reply (roughly) a tuple containing:

  1. a signature (as a canonical s-expression);

  2. a reference to a MESH channel from which to download the archive of
     that store item;

  3. additional information about the archive (see the <narinfo>
     structure at
     <http://git.savannah.gnu.org/cgit/guix.git/tree/guix/scripts/substitute-binary.scm#n192>).

I’m not sure I’m using the right GNUnet terminology/concepts, so do
clarify this.  :-)

> To begin with, I suggest you should start experimenting with GNUnet's
> DHT by writing an service which publishes periodically some (key,
> value) pairs.  In parallel, you may also try to understand the Hydra
> protocol.

Sounds good.  Don’t hesitate to ask questions here and on IRC.

Thanks,
Ludo’.

_______________________________________________
GNUnet-developers mailing list
GNUnet-developers@gnu.org
https://lists.gnu.org/mailman/listinfo/gnunet-developers

  reply	other threads:[~2014-03-12 20:56 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <531F607F.7080208@rigelk.eu>
2014-03-12 18:57 ` Guix - GNUnet binary ditribution roadmap Sree Harsha Totakura
2014-03-12 20:56   ` Ludovic Courtès [this message]
2014-03-12 22:53     ` [GNUnet-developers] " Sree Harsha Totakura
2014-03-12 23:15       ` Ludovic Courtès
2014-03-13  8:23         ` Sree Harsha Totakura
2014-03-13  9:46     ` Christian Grothoff
2014-03-13 23:08       ` Ludovic Courtès
2014-03-13 23:58         ` Christian Grothoff
2014-03-14 13:27           ` Ludovic Courtès
2014-03-14 14:31             ` Christian Grothoff
2014-03-14 16:13               ` Ludovic Courtès
2014-03-18 11:00                 ` Ludovic Courtès
2014-03-13 14:06     ` Mark H Weaver
2014-03-13 14:14       ` Ludovic Courtès
2014-03-13 14:30         ` Mark H Weaver
2014-03-13 14:44           ` Christian Grothoff
2014-03-18 19:48   ` Pierre-Antoine Rault
2014-03-18 20:59     ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87siqndtka.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=gnunet-developers@gnu.org \
    --cc=guix-devel@gnu.org \
    --cc=par@rigelk.eu \
    --cc=sreeharsha@totakura.in \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).