gnunet-developers
[Top][All Lists]
Advanced

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

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


From: Bernd Fix
Subject: Milestones 2+3 completed (NLnet-funded project "R5N (2021-02-038)")
Date: Mon, 15 Aug 2022 12:40:43 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0

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.



reply via email to

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