gnunet-developers
[Top][All Lists]
Advanced

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

[GNUnet-developers] gnunet-go: Milestone #1 reached


From: Bernd Fix
Subject: [GNUnet-developers] gnunet-go: Milestone #1 reached
Date: Wed, 18 Sep 2019 15:49:05 +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 #1
=========================================

I am happy to announce the completion of the first milestone for the
GNUnet-Go project. The objective was to implement a simple
GNUnet-compatible GNS service in Go that can do non-recursive resolution
of names.

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 Git repository
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/...

(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 name resolution with the Go-based GNS service:
  $ gnunet-gns -t ANY -u myname.myzone -c gnunet-go.conf

The next milestone will handle recursive lookups.

Cheers, Bernd.



reply via email to

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