[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.
- Milestones 2+3 completed (NLnet-funded project "R5N (2021-02-038)"),
Bernd Fix <=