[Infotropique] small notes/scribles regarding gnunet system …

Delete this message

Reply to this message
Author: ng0
Date:  
To: infotropique
Subject: [Infotropique] small notes/scribles regarding gnunet system service
As discussed in the chat today, here's a short status update / todo
list on the service for shepherd on GuixSD. It is mostly a copy and paste
from off-list messages with some edits:

My crashed attempt (it used to work ;)) I have so far should be either
gnunet-service or gnunet-service2 branch at
https://gitweb.krosos.org/ng0_guix/guix.git (it is big, many branches).

You can take a look at it for inspiration or completely ditch it and
take a look at OpenRC service I contributed to
https://gnunet.org/git/youbroketheinternet-overlay.git/tree/net-misc/gnunet/files
(the .conf and .initd files) for how it could work and write your own
thing from scratch (probably better anyway, given the messed up state of
my attempt which is the 4th rewrite). I can help debugging.

What I visioned was this roughly something like this:

step 1: a functional service for canonical release in Guix (0.10.1). It
starts.
step 1.1: You can interact with it as a user, group "gnunet".
step 1.2: we check against current HEAD of gnunet git what changed, if
the service works as intended (it should work without any changes).
step 2: we write micro additions to the service. This step could be
ignored and we'd just go this way:
version 1: provide a simple config via file-like object.
version 2: like the git-daemon-service, with options.
version 3: we add something which is similar to tor-service addition
"hidden-service", but for gnunet.. I had some more concrete ideas, this
is just written from memory. Once we get there I can tell you more.

Of course these are just my ideas.. I value ideas, opinions and the
person who implements the service at first can do it like they want.
Fixes and additions can still be made later on.


My idea for infotropique OS is to have snapshots of GNUnet, "gnunet" is
either the release or something as stable as a release. We freeze / save a
commitid when the hashformat in gnunet-fs will change or other functions
which could render data of people using it unusable. This way you have
the option (in theory) to get data back even if the format changed.
(More on this later in the re-written documentation)



> Then I'll get engaged with the actual thing. I hope that the step through
> the current stable version iis not necessary
>
> I'd love to start directly from a (reasonably woring) git checkout


The thing is, the basic service is easy. It just needs to start gnunet
and you need to be able to do some basic functions with it (you'll see
it anyway if it doesn't start).
The problem is that I was unable to get Guix to include a git checkout
of GNUnet. In 2015 some fixes included suid related commits, and in
2017 again (in GNUnet).
Because this is for Guix, we need to thing Guix first and infotropique OS
last. The adjustment of 'gnunet' is just a change of the 'package' value
in the system-config.
So it's easier to work with the 0.10.1 and hope that the last gnunet bug
in 0.11/0.10.2 gets closed soon enough.

Regarding the "suid" comment: There are some notes on suid in Guix, and most
of my notes on them are in the gnunet service for Gentoo.

There's also a slight chance that I have experienced https://gnunet.org/bugs/view.php?id=3806
when I tried to create the service or that I have just been not thinking
very logical (the mentioned bug should be gone with recent gnURL versions,
but I haven't had time to have GNUnet actually running for some time (on GuixSD) other
than builds and test suites).

--
ng0
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
GnuPG: https://n0is.noblogs.org/my-keys
https://www.infotropique.org https://krosos.org