GNUnet 0.21 Rolls Out New Transport Layer For Building Decentralized, Distributed Apps

Written by Michael Larabel in GNU on 7 March 2024 at 11:00 AM EST. 3 Comments
GNU
GNUnet 0.21 has been released as a major update to this GNU project building a network stack for secure, decentralized, and privacy-preserving distributed applications. GNUnet continues striving for a "GNU internet" and with the v0.21 release has rolled out a new transport layer and working to address prior design shortcomings.

GNUnet 0.21 is a big update for this decentralized peer-to-peer networking software. The GNU release announcement for the new version reads:
"This release marks a noteworthy milestone in that it includes a completely new transport layer. It lays the groundwork for fixing some major design issues and may also already alleviate a variety of issues seen in previous releases related to connectivity. This change also deprecates our testbed and ATS subsystem.

This is a new major release. It breaks protocol compatibility with the 0.20.x versions. Please be aware that Git master is thus henceforth (and has been for a while) INCOMPATIBLE with the 0.20.x GNUnet network, and interactions between old and new peers will result in issues. In terms of usability, users should be aware that there are still a number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.21.0 release is still only suitable for early adopters with some reasonable pain tolerance."

The NEWS entry within the software goes on to lay out some of the changes as:
v0.21.0:
- Reworked PEERSTORE API
- Added record flag for maintenance records
- ensure traits can be generated with subsystem-specific prefixes for the symbols
- libgnunettesting first major testing NG refactor towards getting dependency structure streamlined
- Remove single-use API macro GNUNET_VA_ARG_ENUM
- major revision of blind signature API
- Introduced closure to hold store context when caling function to add hello in peerstore.
- Added DDLs for handling GNUNET_PEERSTORE_StoreHelloContext
- Removed old hello functionality.
- Refactoring components under src/ into lib/, plugin/, cli/ and service/
- add support for encoding/decoding double values as part of JSON to libgnunetjson
- Changed method GNUNET_HELLO_builder_get_expiration_time to not need parameter GNUNET_HELLO_Builder.
- Code moved to the core package to get rid of circular dependencies.
- Moved code to testing to have more generic test setup, which can be used not only from within transport.
- The old hello design replaced by the new hello design.
- Added api to get notified when hellos are stored with peerstore service.
- Added api to store hellos with peerstore service.
- Changed new hello uri api to allow to change the expiration time
- Moved start peer command to testing subsystem.
- Removed all usage of old transport api, beside peerinfo tool, gnunet-transport cli and usage in transport layer itself.
- Added __attribute__((deprecated)) to the old transport API

Those wanting to learn more about the v0.21 release or GNUnet in general can do so via GNUnet.org.

GNUnet logo

Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week