One of the talks at FOSDEM 2020 covered "GNUnet basics, the GNU Name System and other applications" [0]:
> GNUnet: A network protocol stack for building secure, distributed, and privacy-preserving applications
> In this talk we will give a brief introduction into the GNUnet peer-to-peer framework, its architecture and existing applications. This includes details on the p2p overlay, double-ratchet messaging channels (CADET) the GNU Name System (GNS) and a selection of other applications and features. We present the current status of the project, the roadmap as well as ways to participate and use GNUnet.
I took the opportunity to work with GNUnet with the Google Summer of Code project, and I really recommend this project to anyone interested in Distributed Systems, networks or just working on a great project. Everyone was very nice, Prof. Grothoff is one of the best mentor I ever had!
GnuNET is one of those open source projects that really is a research project and focuses on getting things right instead of focusing on getting users.
There is something to be said for this approach, but personally I'm not sure that 19 years since initial release (according to wikipedia) and still not having something end users are expected to use is promising for the future.
Anyway, these guys are trying to do a much better version of anonymous routing. Something that Tor is most known for. Tor has plenty of issues though, so there is something to be said for more research less marketing.
> There is something to be said for this approach, but personally I'm not sure that 19 years since initial release (according to wikipedia) and still not having something end users are expected to use is promising for the future.
I share both your enthusiasm and your scepticism! But I do wonder:
Why is it not possible for GNUnet to / why doesn't GNUnet offer a high-level API that could be consumed by every-day apps and that stays stable across releases? That way, chat apps & file sharing apps and the like wouldn't break right away when a new version of GNUnet comes around…
> Why is it not possible for GNUnet to / why doesn't GNUnet offer a high-level API that could be consumed by every-day apps and that stays stable across releases?
This isn't possible because GNUnet does not work, and AFAICT has never been in a working state. They won't find the time to build an API when they can't find the time to actually produce working software.
I have been watching the project for a decade at least and I can conclusively say that GNUnet is a waste of time for everyone involved.
The GUI was never the problem. The problem is that this thing does not have any focus. Lots of dev work is done by students, BA, MA or PhD, who disappear after their thesis is done. The others always get sidetracked to numerous unrelated side-projects and features, which are interesting and generate research papers, but do not address the main problems for the overall project.
Oh, they did find time to build APIs and bindings. But again, no focus, esoteric languages such as nim and guile. Rust had one student working, who left of course. The python port was using DBUS (!!) as an additional intermediate inter-process-communication, instead of just using the IPC they already had (which is basically bare C structs over unix pipes). Obviously, after that student left, nobody cared, and the pain to maintain two layers of indirection is just to high for anyone else to step up. Oh, and you can't automatically generate bindings, because their C interface definitions are just too littered with "elegant" macros.
Besides, what would you have that API for? There is nothing at least a bit useful. Nothing the most technically oriented person would even want to just play around.
I really like those ideas and the overall goal, and I really want to be optimistic, but in the end, you may be right.
If I was a 3-letter agency, I'd love this style of privacy project btw.
This shows it is really hard to make a product in this space. Real decentralisation and zero-server architectures are hard. Also, scientific publications in this field died up, due to lack of popularity.
> Instead of sharing common components and tools for building P2P systems, every P2P project seems to re-invent the wheel. This heightens the effort and increases the potential number of vulnerabilities.
I think the way to be successful here is to first make a killer app that uses the stack. Then since it's wildly successful and the framework is open can gain adoption for other applications.
> GNUnet: A network protocol stack for building secure, distributed, and privacy-preserving applications
> In this talk we will give a brief introduction into the GNUnet peer-to-peer framework, its architecture and existing applications. This includes details on the p2p overlay, double-ratchet messaging channels (CADET) the GNU Name System (GNS) and a selection of other applications and features. We present the current status of the project, the roadmap as well as ways to participate and use GNUnet.
--
[0]: https://archive.fosdem.org/2020/schedule/event/dip_gnunet/