[Top][All Lists]

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

Re: [GSoC] Guix + GNUnet: what’s next

From: Rémi Birot-Delrue
Subject: Re: [GSoC] Guix + GNUnet: what’s next
Date: Thu, 02 Jul 2015 18:49:08 +0200

Ludovic Courtès writes:

> I’m not completely clear on how search for substitutes will work,
> though.  Currently, when the user wants to build /gnu/store/xyz, ‘guix
> substitute’ simply fetches  How will
> that work with GNUnet?  Are we going to look up their /gnu/store file
> name?

I’ve considered a solution for that: GNUnet allows one to create
specific namespace and publish files under this namespace. Unlike
publishing under the “global namespace” where keywords are used to
identify a file, when publishing under a specific namespace files are
identified with a choosen identifier. Moreover, as a namespace is
basically a cryptographic key pair, and publishing a file under your
namespace means signing, one’s assured nobody else will publish under
her or his namespace. By the way, the private key associated with a
namespace is named “ego” or “pseudonym”.

It’s easy to test this feature:

    # create a `test` ego/namespace
    $ gnunet-identity -C test

    # list the known egos in the form: `name - public key`
    $ gnunet-identity -d

    # index the file `foo.txt` under the `test` namespace
    $ gnunet-publish -P test -t foobarbaz foo.txt

    # find the file `foo.txt`
    $ gnunet-search gnunet://fs/sks/M2OC987U9LFJHQ8LC9SLCV4…/foobarbaz
    gnunet-download -o "foo.txt" gnunet://fs/chk/PL217ODD8EDSMOIQ3UT0…

Now if Alice wants to publish her binaries, she creates an ego/namespace
and publishes everything under it; Bob adds her namespace’s public key
to his authorized substitutes list, and when installing `/gnu/store/xyz`
the substitute will search for `gnunet://fs/sks/<Alice’s key>/xyz`.

Instead of publishing an archive we might also directly publish/index
the build, but I don’t know if it’s viable.

Does it seem right to you?
Rémi Birot-Delrue

reply via email to

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