Milestones 2+3 completed (NLnet-funded project "R5N (2021-02-038)")

Bernd Fix <[email protected]>
Newsgroups gmane.network.gnunet.devel
Message-ID <[email protected]>
Dear GNUnet community,

I am happy to announce the completion of milestones 2 and 3 for the "Go 
implementation of the R5N DHT" which is a NLnet-funded project "R5N 
(2021-02-038)".

The source code is written for Go1.18+ (it makes use of generics in some 
places); it can be found in the GNUnet Repository at 
"https://git.gnunet.org/gnunet-go.git/" with tag "v0.1.30" in the master 
branch.

As others started to (re-)use `gnunet-go` in their own code base (see 
https://git.taler.net/taldir.git/ for example), the README contains a 
final chapter on how to easily integrate `gnunet-go` into your own 
projects. If you are a developer, you might want to take a look at that 
documentation.


The code for Milestones 2 and 3 covers the following areas:

# Milestone 2

## Bloomfilter

with optional mutator to randomize recurring filters. 
[`gnunet/service/dht/blocks/filters.go`]

## Service messages

defined DHT_P2P_GET, DHT_P2P_PUT, DHT_P2P_RESULT and DHT_P2P_HELLO 
messages [`gnunet/message/msg_dht_p2p.go`] and implemented handling 
[`gnunet/service/dht/messages.go`]

## Managing routing tables:

* processing messages for peer visibility
* add/update peers
* remove dead peers
* handling of expired peers
* Recursive lookup
* Approximate lookup
* Replication

see [`gnunet/service/dht/routingtable.go`]

# Milestone 3

## Path signatures

creating, tracking and verifying path signatures 
[`gnunet/service/dht/path`] and integration of pathes into 
DHT-P2P-GET/PUT/RESULT processes [`gnunet/service/dht/messages.go`]

We are now ready to start intergration tests between the Go- and C-based 
implementations which for sure will uncover quite a few undiscovered 
bugs and glitches.

I think that the Go implementation (as a clean-room implementation only 
based on the LSD0004 draft of the protocol) helped a lot in ironing out 
the protocol; draft- and code-wise. If one day the Go implementation 
speaks TNG, it will be possible to run GNUnet as a pure-Go 
implementation with GNS support.

Cheers, Bernd.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.