Subject: [bug#44199] [PATCH 0/1] An origin method for GNUnet FS URI's

From: zimoun <[email-masked]>
Date: Wed, 18 Nov 2020 23:40:13 +0100

Dear,

On Wed, 18 Nov 2020 at 21:28, Maxime Devos <[email-masked]> wrote:

> (btw it's Maxim*e*, not Maxim. The ‘e’ isn't pronounced but it's still
> written.)

Sorry.

>> From my understanding, this is a show stopper.  It has to be solved

> first going further, IMHO.  It is not possible to write manually the
> URI for all the packages.  And as perhaps you read with the project
> ’disassemble’, it is not straightforward.
>
> I agree! I see three straightforward answers to this.

Thanks for sharing your views.

> a) Fancy
>
> Write a GNUnet service using the DHT to map the hashes used in origin
> specifications (*) to URI's for the FS system. To let the local
> contribution to the DHT survive peer restarts, maintain a database
> (e.g. SQlite) of (Guix hash -> GNUnet hash) (^), that is expanded with
> each successful source (or binary) substitution or build.
>
> (Alternatively, as the DHT isn't anonymous,
> place hash -> GNUnet hash references into some well-known name space.
> Then hash lookup + FS should automatically be anonymous when desired.)

Yeah, for sure but both are a piece of tough work though.

> b) Simple, slow introduction (no additional GNUnet services required)
>
> Extend (origin ...) with an optional gnunet-hash field.
> Adjust ‘guix download’, ‘guix refresh’ and ‘guix import’
> to emit the gnunet-hash (%) field. Plumb this field to the guix daemon
> somehow. Same approach is possible for IPFS.

Guix is not doing that for Software Heritage id for example (that’s why
dissamble exists :-)).  So I am really doubtful that Guix will do it for
the more-experimental GNUnet.

However, if you want to implement proof-of-concept, you can use the
field ’properties’ which is more or less free.  I mean, you can add
whatever you want in.

> c) Not scalable, but may reduce network traffic to ci.guix.gnu.org & co
>
> Like in a) keep a database of known (Guix hash -> GNUnet FS URI).
> Perhaps make this available through a web interface or git repository
> ... wait, this sounds familiar ... this seems to fit well into the
> ‘disarchive’ project!

The most traffic issue is about substitutes, not really about sources.
And about substitutes, this patch #33899 [1] implements the support of
IPFS.  Once it is ready, the pieces will be there somehow, so adding
GNUnet to distribute susbtitutes maybe would be an option.

Please join the conference [2] on this Sunday, a session to discuss all
this will be dedicated.

1: <http://issues.guix.gnu.org/issue/33899>
2: <https://guix.gnu.org/en/blog/2020/online-guix-day-announce-2/>

All the best,
simon