[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnunet-go: Milestone #2 reached
From: |
Bernd Fix |
Subject: |
gnunet-go: Milestone #2 reached |
Date: |
Thu, 2 Jan 2020 12:07:55 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 |
=========================================
GNUnet-Go: Status report for Milestone #2
=========================================
I am happy to announce the completion of the 2nd milestone for the
GNUnet-Go project. The objective was to implement recursive resolution
of GNS names and to handle special GNS record types like PKEY, GNS2DNS,
BOX and others.
N.B.: This release is using the new GNUnet crypto for version 0.12 (in
some ways GNUnet-Go triggered these changes) and is NOT COMPATIBLE with
older versions of GNUnet.
If you want to check out for yourself, here is how to do it on a Linux box:
(1) A running GNUnet node:
--------------------------
Something all of you should have already... ;) You should also have
created a GNS zone with some names and records in it.
(2) Install Go1.13 on you computer:
-----------------------------------
Either install a binary version at https://golang.org/dl/ or compile
from sources after cloning the repo https://github.com/golang/go. Make
sure the required environment variables are setup correctly (check with
'set | grep "^GO"' for meaningful settings).
(3) Install required dependencies:
----------------------------------
$ go get -u golang.org/x/crypto/...
$ go get -u golang.org/x/text/...
$ go get -u github.com/bfix/gospel/...
$ go get -u github.com/miekg/dns/...
(4) Clone the gnunet-go repository and compile:
-----------------------------------------------
$ git clone https://gnunet.org/git/gnunet-go.git
$ cd gnunet-go
$ ./build.sh
(5) Run the gnunet-go-gns service:
----------------------------------
* The executable 'gnunet-service-gns-go' is found in the bin/ folder;
copy it anywhere you like - it does not have dependencies (statically
linked).
* Copy the file "<repo>/src/config/gnunet-config.json" to the folder you
want to use as the working directory for the service. This is the config
file for Go-based GNUnet services. You can look at it (it is very small
at the moment), but there should be no need to change something.
* Start the service from the working directory; it will create a new
socket 'gnunet-service-gns-go.sock' for message exchange (requests). The
service will run as a foreground process and output log messages
directly to the console (best to run it in a separate screen).
* Create a small new GNUnet config file to tell GNUnet utilities which
GNS socket to use; we want them to use our new socket. Easiest is to
copy the existing gnunet.conf to gnunet-go.conf and add the following entry:
[gns]
UNIXPATH=/tmp/gnunet-system-runtime/gnunet-service-gns-go.sock
Don't change the master gnunet.conf as it will for sure break your
existing GNUnet node!
* Do recursive name resolution with the Go-based GNS service, for example:
$ gnunet-gns -t TLSA -u _443._tcp.myweb.myzone -c gnunet-go.conf
The next milestone will handle revocation of zone keys: the GNS service
will check for non-revoked PKEYs during resolution and GNUnet-Go will
get its second service implementation (REVOCATION).
Cheers, Bernd.
P.S.: Please let me know if you are are testing GNUnet-Go and have
problems, suggestions or errors. Feedback is appreciated! >Y<
- gnunet-go: Milestone #2 reached,
Bernd Fix <=