Reproducible build of Freenet do-it-yourself: verify-build demystified

You might know the reproducible-builds project, which tries to allow users to verify that what they install actually corresponds to the released source. Or GNU Guix, which provides transparent reproducible binaries — along with a challenge-function.

Given that Freenet is made for people with high expectations for integrity, it might not surprise you that it has been providing a reproducible build and a verification script since 2012. However until release 1481, it was a hassle to set up, and few people used it.

But now that we’re on gradle, verifying that what I release is actually what’s tagged in the source is much easier than before.

The following instructions are for GNU/Linux, and maybe other *nixes, allowing you to verify the test release of 1482. You can easily adapt them for future releases.

The Freenet Web of Trust keeps communication friendly with total anonymity

In the past decade there hasn’t been a year without a politician calling for real names on the internet. Some even want to force people to use real photos as profile pictures. All in the name of stopping online hate, though enforcing real names has long been shown to actually make the problem worse. This article presents another solution, one that has actually proven that it keeps communication friendly, even in the most anonymous environment in the fully decentralized Freenet project.

And it does it without enabling censorship.

Towards a deterministic upper bound for the network load of the fully decentralized Freenet spam filter

Goal: Re-design the decentralized spam filter in Freenet (WoT) to have deterministic network load, bounded to a low, constant number of subscriptions and fetches.

Originally written as a comment to bug 3816. The bug report said "someone SHOULD do the math". I then did the math. Here I’m sharing the results.

This proposal has two parts:

  1. Ensuring an upper bound on the network cost, and
  2. Limiting the cost due to checking stale IDs.

Freenet Interview with Zilion

Zilion Web conducted an Interview about Freenet with me. Zilion asked interesting questions and I kind of went overboard in answering them. They include:

  • When did you become a freenet developer? Why?
  • Freenet has 18 years of continuous development, from here to there, how do you see your growth?
  • Frost vs. FMS, what is your choice and why?
  • What do you think about people who use Freenet just for illegal purposes? And what is your concept of freedom about that?
  • What to expect from the future in Freenet?
  • Can you tell us how Opennet and Darknet works, and its pros and cons?

To see the answers, just head over to the article:

Interview with Freenet Developer (ArneBab)

And do install Freenet and then connect confidentially to your friends to build the darknet one friend at a time.

Answers to “I can't use Freenet”

Short answers to questions from a message in the anonymous Freenet Message System:

Ultra-short answer: Go to and run the installer. It’s fast and easy.

Now onward to the message:

psst@GdwO… wrote :

ArneBab@-jtT… wrote : Yes. And that’s one of the reasons why we need Freenet: to wrestle back control over our communication channel.

Good luck getting people to use it though.

Yes, that’s something we need to fix. And there’s a lot we can do for that. It’s just a lot of boring work.

Let’s go through your points and see which we could fix:

I can't use Freenet. It's illegal! It isn't? How do you know?

It’s created by a registered tax-exempt charity1, how can it be illegal?

  1. The Freenet Project Inc is a 501(c)(3) non-profit organization, with the mission "to assist in developing and disseminating technological solutions to further the open and democratic distribution of information". It is registered under EIN 95-4864038. 

Distributed censorship-resistant Wikipedia

Thanks to doublec, there are now distributed censorship-resistant Wikipedia mirrors in Freenet: Distributed Wikipedia Mirrors in Freenet

The current largest mirror is the Simple English Wikipedia (the obvious choice to fight censorship worldwide: it is readable with basic english skills).

With this mirror, information from Wikipedia can be accessed in high-censorship countries:


News of the day — and using Freenet as decentralized, pseudonymous communication backend for applications

This is a proposal I wrote for the NLnet Open call for funding 2016-12. It got into the short list but was not selected, so I’m sharing it here. Maybe it spikes your interest or serves as inspiration for something exciting you want to realize with Freenet. I still plan to do this, but in hobby-time it will likely take a few years to realize instead of the 6 months I had planned. Initial work is available in pyFreenet/

The project

Building the darknet one ref at a time

Freenet Logo: Follow the RabbitBuilding the darknet one ref at a time. That’s what we have to do. If you invite three people⁰ to Freenet and help those of your friends with similar interests to connect¹², and when the people you invited then do the same, we get exponential growth.

⁰: To invite a friend into Freenet, you can send an email like this:
    Let us talk over Freenet, so I can speak freely again.

¹: Helping your friends to connect works as follows:

Bitte aktiviert eure Freenet-Knoten

Wenn ihr mal mit mir über Freenet verbunden wart, bitte schaltet eure Knoten wieder an (oder schreibt mir eine Mail, damit wir euren neuen Knoten mit meinem verbinden können).

Ich würde gerne wieder vertraulich mit euch sprechen können. Gerade jetzt.

Solltet ihr die Mail verloren haben: Sie sagte in etwa das hier:

Über Freenet verbinden
Freenet Logo: Follow the Rabbit Freenet ermöglicht es uns, unsichtbare Nachrichten zu schreiben. Zusätzlich kannst du darüber unter Pseudonym schreiben. Um dich mit mir zu verbinden … (weiterlesen)

→ Freenet installieren ←

Über Freenet verbinden (E-Mail-Vorlage)

Beispiel-E-Mail mit der ich meine Freunde1 zu Freenet einlade. Fühlt euch frei, sie zu verwenden und weiterzugeben - gerne auch eure eigenen Fassungen.

Freenet ermöglicht es uns, unsichtbare Nachrichten zu schreiben.2 Zusätzlich kannst du darüber mit Pseudonym3 schreiben. Warum das wichtig ist habe ich in einer Präsentation zum SUMA-award festgehalten: Freenet nutzen: Technische Lösungen für freie Kommunikation im Internet (ab Folie 4 - ab Folie 7 praktische Lösungen)

Um dich mit mir zu verbinden:

  • Lade auf Freenet herunter und installiere es,
  • wähle im Wizard „nur Freunde“¹ und
  • kopiere dann unter den Textblock am Ende meiner E-Mail² in das Textfeld.
  • Schick mir dann den Text, den Freenet auf dieser Seite hier zeigt: (häng die Datei an eine E-Mail an oder kopier’ den Inhalt einfach in den Text der E-Mail)

Sobald ich den Text dann auch bei mir eingetragen habe, sind wir verbunden. Wir können uns von da an einfach über die Freundesseite schreiben:

  1. Ich lade Leute zu Freenet ein, die ich (a) aus anderen Gruppen kenne und bei denen ich (b) nicht denke, dass sie ihren Freenet-Knoten hacken würden, um mich auszuspionieren. Dazu gehören langjährige Freunde, Arbeitskollegen, Vereinsmitglieder, Leute die ich schon lange aus Online-Spielen oder -Foren kenne, usw. Etwas Interesse für ihre Privatsphäre müssen sie logischerweise auch haben. 

  2. Unsichtbare, vertrauliche Nachrichten zwischen Freunden heißen in Freenet node-to-node Nachrichten (N2NTM). Es ist bei diesen Nachrichten zwar sichtbar, dass eine Verbindung zwischen uns besteht, aber nicht wie, wann und wofür sie genutzt wird. 

  3. Pseudonym heißt, dass du eine anonyme Identität hast, mit der du wiederholt schreiben kannst. Andere wissen nur, dass du beim zweiten Artikel der oder die Gleiche bist wie beim Ersten, aber nicht wer du bist. 

pyFreenet 0.4.1 with auto-spawn support in fcpupload

I just put up a new pyFreenet release (github):

If you have Python3 and pip >= 8 you can get it with pip3 install -U --user --egg pyFreenet3. It provides a cleaned up fcpupload script with --spawn support (requires GNU/Linux):

pip3 install -U --user --egg pyFreenet3
echo 1 > testfile
fcpupload --spawn --fcpPort 9486 testfile 

I finally got the Freenet junit testsuite to run on Gentoo

Blindfolded Dog1

For years I developed Freenet partially blindfolded, because I could not get the tests to actually run on my Gentoo box.

As of today, that’s finally over: The testsuite runs successfully. My setup is still unclean, but it finally works. No more asking other contributors to run the tests for me.

To reproduce:

The Freenet social trust graph

Are trust relationships different in anonymous networks? This article should give you the tools to find out.

Update 2017: Now available from figshare with DOI 10.6084/m9.figshare.4725664

Recently we were asked in the #freenet IRC channel, whether we have a copy of the trust graph in the Web of Trust plugin (which provides service discovery and spam protection).

Freenet for Journalists, funding proposal

This is a funding proposal I sent to Open Technology Fund to make Freenet suitable for Journalists and their sources. Sadly it got rejected, but maybe it helps future proposals.

Project name: Freenet for Journalists
Duration: 24 months
Amount: 800000
Contact name: Arne Babenhauserheide
Contact email: arne_bab -ät- web -punkt- de


  • Status: It's basically done.

Mitigate the Pitch Black attack (the simulation works)

I fixed a small bug in the simulator of thesnark. With that, the simulator shows that the defense against the Pitch Black Attack works: A small number of attackers can no longer kill parts of the keyspace and can also no longer make certain parts of the keyspace inaccessible.

Attackers can still limit the convergence of the network towards a reproduction of the small world network, but since we know that Opennet works quite well with 30% backoff, this limited convergence should suffice for efficient routing.

peer distances under attack

Bitte installiert Freenet, Deutschland hat seit 2015 Vorratsdatenspeicherung

Die Bundesregierung hat am 16.10.2015 die Vorratsdatenspeicherung durchgewunken, nachdem sie zwei Tage vorher die Opposition durch rechtswidrige1 Erweiterung der Tagesordnung am Vortag ausgebremst hat (was das Bundesverfassungsgericht vor nicht einmal einem Monat verboten hat).2 Auf irgendwelche Fairness der aktuellen Regierung, oder auch nur Einhaltung geltenden Rechts, können wir daher offensichtlich nicht mehr vertrauen,3 und es wird Zeit, technische Lösungen zu nutzen.

Um zu verhindern, dass all eure Kommunikationspartner verwertbar aufgezeichnet werden, installiert bitte Freenet.

→ Freenet installieren (Direktlink) ←


  1. Die Erweiterung am Vortag verletzt laut Halina Wawzyniak die Geschäftsordnung des Bundestages, die eine Information über die Tagesordnung 3 Tage vor der Sitzung vorschreibt. Erweiterungen sind nur zulässig, wenn keine einzige Fraktion widerspricht, doch die Linke und die Grünen haben widersprochen. Der Widerspruch der Opposition zur Erweiterung wurde von den Regierungsfraktionen widerrechtlich ignoriert

  2. »Es stellt daher eine Verletzung von Rechten eines Abgeordneten dar, wenn dieser erforderliche Informationen so spät erhält, dass er nicht mehr in der Lage ist, sich fundiert mit diesen zu befassen und sich vor der Beratung oder Abstimmung eine Meinung zu dem Vorgang zu bilden.« — Bundesverfassungsgericht, Urteil vom 22. September 2015 - 2 BvE 1/11, 111 

  3. Trotzdem ist die Verfassungsklage von Digital Courage gegen die Vorratsdatenspeicherung 2015 umso wichtiger: Wenn wir starke Mittel aufgeben, weil andere versuchen, sie zu entwerten, verlieren wir an Handlungsmöglichkeiten. 

follow the blue rabbit

========= blue-rabbit =========
follow the blue rabbit
through the looking glass
to find your real self
========= looking glass =========

Australia gets mandatory data retention

Australia gets mandatory data retention — with unchecked access by roughly any local or federal police agency and “Any other agency the Attorney General publicly declares”. (So much for separation of powers)

And they can use that in court.

→ » Australia: Now is the time to go dark « ←

Dear Australians: This is what we have been talking about the past 10 years. The tech for confidential communication might still be cumbersome to use, but you now need it.

If you want to use Freenet for that, I’ll gladly help you set it up.

Freenet as backing store for sites on the clearnet (in use today)

Chris Double (bluishcoder) changed his main website to be served directly from Freenet:

Thanks to this, the same article is now available from my inproxy.

And, naturally, from Freenet:


Freenet Communication Primitives: Part 2, Service Discovery and Communication

Basic building blocks for communication in Freenet.

This is a guide to using Freenet as backend for communication solutions - suitable for anything from filesharing over chat up to decentrally hosted game content like level-data. It uses the Python interface to Freenet for its examples.

Mirror, Freenet Project, Arne Babenhauserheide, GPL
Freenet Project,
License: GPL.

This guide consists of several installments: Part 1 is about exchanging data, Part 2 is about confidential communication and finding people and services without drowning in spam and Part 3 ties it all together by harnessing existing plugins which already include all the hard work which distinguishes a quick hack from a real-world system (this is currently a work in progress, implemented in which provides real-world usable functionality).

Note: You need the current release of pyFreenet for the examples in this article (0.3.2). Get it from PyPI:

# with setuptools
easy_install --user --egg pyFreenet==0.4.0
# or pip
pip install --user --egg pyFreenet==0.4.0

This is part 2: Service Discovery and Communication. It shows how to find new people, build secure communication channels and create community forums. Back when I contributed to Gnutella, this was the holy grail of many p2p researchers (I still remember the service discovery papers). Here we’ll build it in 300 lines of Python.

Welcome to Freenet, where no one can watch you read!

Freenet Communication Primitives: Part 1, Files and Sites

Basic building blocks for communication in Freenet.

This is a guide to using Freenet as backend for communication solutions - suitable for anything from filesharing over chat up to decentrally hosted game content like level-data. It uses the Python interface to Freenet for its examples.

TheTim from Tim Moore, licensed under cc by
from Tim Moore,
License: cc by.

This guide consists of several installments: Part 1 (this text) is about exchanging data, Part 2 is about confidential communication and finding people and services without drowning in spam and Part 3 ties it all together by harnessing existing plugins which already include all the hard work which distinguishes a quick hack from a real-world system. Happy Hacking and welcome to Freenet, the forgotten cypherpunk paradise where no one can watch you read!

Vortrag: SUMA-Award für das Freenet-Projekt (Video)

Mein Vortrag beginnt bei 5:56.

Transkript / Untertitel

Ich bin dabei, den Text zu transkribieren, aber es wird noch etwas dauern, bis ich fertig bin. Sobald ich fertig bin, gibt es das als Untertitel-Datei. Was ich bisher habe als Text:

Mit Freenet sicher kommunizieren

Kannst du in wenigen Worten beschreiben, warum mit Freenet sicher zu kommunizieren ist?
— Falk Flak

Bei Freenet gibt es zwei Arten sicher zu kommunizieren:

  1. Du kannst dir ein Pseudonym erschaffen, unter dem du in Freenet-Internen Foren schreiben und anderen Nutzern anonyme, aber spamgeschützte E-Mails schreiben kannst. Die Daten werden dafür direkt zwischen Freenet Nutzenden über mehrere Schritte ausgetauscht, es gibt also keinen zentral kontrollierten Server. Du kannst Daten hochladen, die auch dann noch verfügbar sind, wenn du offline bist, aber nur für diejenigen, denen du den Link dazu gegeben hast.

  2. Du verbindest dich direkt mit Freunden. Von außen kann sichtbar sein, dass ihr euch kennt, aber nicht wann und über was ihr redet. Die Daten, die Freenet für den Normalbetrieb austauscht, sehen genauso aus wie Kommunikation zwischen dir und deinen Freunden, verdecken sie also.

Eine kurze Präsentation dazu: Freenet Nutzen: Technische Lösungen für freie Kommunikation im Internet

Es gibt auch einen längeren Vortrag zu Freenet aus der Chaotischen Viertelstunde bei Noname e.V.:

Secure communication with GnuPG and E-Mail

How E-Mail with GnuPG could hide when you talk, where you talk from and what you talk about.

or in technical terms:

E-Mail with perfect forward security, hidden subject and masked date using GnuPG and better frontends.

Update 2018: Some of these ideas are becoming real and widespread now with pΞp (pretty-easy-privacy) and the autocrypt-standard.

If you regularly read my articles, you’ll know that I’m a proponent of connecting over Freenet to regain confidential and pseudonymous communication.

Here I want to show how it would be possible to use E-Mail with GnuPG to get close to the confidentiality of Freenet friend-to-friend communication, because we have the tech (among the most heavily scrutinized and well-tested technology we use today) and we have the infrastructure. All it requires are more intelligent E-Mail clients. Better UI which makes the right thing easy.

Real Life Infocalypse

Freenet Logo: Follow the Rabbit DVCS in the Darknet. The decentralized p2p code repository.

In this guide I show by example how you can use the Infocalypse plugin for distributed development without central point of failure or reliance on unfree tools.12

If you think “I have no idea what this tool is for”: Infocalypse gives you fully decentralized Github with real anonymity, using only free software.

# freenet -> local
hg clone freenet://ArneBab/life-repo
# local -> freenet
hg clone life-repo real-life
hg clone real-life freenet://ArneBab/real-life
# send pull request
cd real-life
hg fn-pull-request --wot ArneBab/life-repo
(enter message)
# check for pull-requests
cd ../life-repo
sleep 1800 # (wait for confidential delivery)
hg fn-check-notifications --wot ArneBab

If you like this, please don’t only click like or +1, but share it with everyone who could be interested. The one who knows best how to reach your friends is you — and that’s how it should be.

  1. This guide shows the convenient way of working which has a higher barrier of entry. It uses WoT Pseudonyms to allow you to insert repositories by Pseudonym and repository name. If you can cope with inserting by private key and sending pull-requests manually, you can use it without the WoT, too, which reduces the setup effort quite a bit. Just skip the setup of the Web of Trust and Freemail and plugins. You can then clone the life repo via hg clone freenet://USK@6~ZDYdvAgMoUfG6M5Kwi7SQqyS-gTcyFeaNN1Pf3FvY,OSOT4OEeg4xyYnwcGECZUX6~lnmYrZsz05Km7G7bvOQ,AQACAAE/life-repo.R1/4 life-repo. See hg fn-genkey and hg help infocalypse for details. 

  2. Infocalypse shows one of many really interesting possibilities offered by Freenet. To get a feeling of how much more is possible, have a look at The Forgotten Cryptopunk Paradise

Freenet protects your DickPic!

Afraid that the NSA could steal your DickPic? Freenet to the rescue!

Freenet protects your DickPic!
(mirror via Freenet)

Unfug zu Freenet auf

→ Auf wurde heute ein … mäßig guter Artikel zu Freenet veröffentlicht. Die Zusammenfassung ist „Hauptsächlich Schmuddelinhalte, viele von 2008, mehrere Minuten Ladezeit, begrenzter Speicherplatz und wenig Anonymität außer mit Darknet“. Das hier ist meine höfliche Antwort.

Update: Nachdem ich mich auf Twitter beschwert habe, hat der Autor versprochen die im Artikel völlig fehlenden Kommunikationsprogramme zu erwähnen. Doch das einzige, was ich finde, ist die Zeile „So gibt es beispielsweise Foren (FMS), Microblogging-Dienste (Sone) oder Chat-Programme (FLIP), die nachgerüstet werden können.“ unter der Überschrift „Daten werden in Schlüsseln gespeichert“ - also da, wo niemand nach Kommunikationsprogrammen suchen würde. So sieht eine Minimalkorrektur aus, wenn man die Wirkung des Artikels nicht von Fakten trüben lassen will. Informieren, dass was fehlte? Änderungshinweis? Fehlanzeige. Nichtmal einen Kommentar im eigenen Forum war es wert.

Was im Beitrag fehlt sind die Bereiche, in denen Freenet-Nutzer sich praktisch austauschen: Die Foren (FMS), Microblogging (Sone) und Chat (FLIP).

Für neue Nutzer sind die nicht gleich sichtbar (Zusatzsoftware), aber sie sind der Grund, warum wenig in Blogs steht: In den Plugins und Foren findet die ganze Interaktivität statt.

Trotzdem listet Nerdageddon über 300 Seiten, die seit 2013 hochgeladen oder aktualisiert wurden, allerdings keine einzige von 2008 - ich weiß also nicht, woher die Information mit den alten Seiten kommt.

Freenet: The forgotten cryptopunk paradise


PDF (to print)

Org (source)

Text (for email)

A long time ago in a chatroom far away, select groups of crypto-anarchists gathered to discuss the death of privacy since the NSA could spy on all communications with ease. Among those who proposed technical solutions was a student going by the name sanity, and he published the widely regarded first paper on Freenet: A decentralized anonymous datastore which was meant to be a cypherpunk paradise: true censorship resistance, no central authority and long lifetime only for information which people were actually interested in.

Many years passed, two towers fell, the empire expanded its hunt for rebels all over the globe, and now, as the empire’s grip has become so horrid that even the most loyal servants of the emperors turn against them and expose their dark secrets to the masses, Freenet is still moving forward. Lost to the eye of the public, Freenet shaped and reshaped itself - all the while maintaining its focus to provide true freedom of the press in the internet.

Let us talk over Freenet, so I can speak freely again

I sent this email to many of my friends to regain confidential private communication. If you want to do the same, feel free to reuse the text-version (be sure to replace the noderef textblock with your own noderef from This text is also available in Freenet.

About 10% of my friends joined - which is enough to build the darknet and makes it possible for me to speak freely again.

First: The Essence of this text:

I’ve been censoring my emails for years. Not just what I write, but also whom and when.

Freenet allows me to write invisible messages to my friends. Those are messages I do not need to censor. They give me freedom. Surveillance can show that we could write, but not whether, when or what we actually write. If Freenet is used for that, it needs very little resources.

This is how to connect:

  1. Download and install Freenet from,
  2. in the automatically opened setup wizard select “only friends”
  3. Copy the textblock1 you got with my email and paste it into the textfield on
  4. Then just send me what Freenet shows on the page (attach it to an email or just copy it into the email)

As soon as I add you, too, we are connected. We can then write messages via the friends page (click my name):

  • Write message,:
  • Read messages:

  1. Censored version of my textblock (you’ll get an uncensored version by email) identity=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

„Lasst uns über Freenet kommunizieren, dann kann ich wieder frei sprechen“ — Mail an Freunde

Diese E-Mail habe ich im September an viele meiner Freunde geschickt,[^email][^freunde] weil ich gemerkt habe, dass ich elektronisch fast nichts Persönliches mehr geschrieben habe.[^selbstzensur] Wenn ihr das gleiche Problem habt, fühlt euch frei, meinen Text anzupassen und an eure Freunde zu schicken. Einen mit minimalen Anpassungen verschickbaren Text findet ihr unter 2014-11-01-ueber-freenet-verbinden-mail.html.[^anhang]

Die 6 eingerückten Absätze am Anfang enthalten die essenziellen Infos, wie ich sie für eine gute Freundin zusammengefasst habe. Die ursprüngliche Mail kommt danach.

Die Kurzform ist: Ich zensiere inzwischen meine Mails, sogar wann ich wem schreibe - nicht mehr nur aus Vorsicht, sondern auch emotional motiviert.

Freenet ermöglicht es, unsichtbare Nachrichten zu schreiben. Es ist zwar sichtbar, dass eine Verbindung besteht, aber nicht wie und wann sie genutzt wird. Und wenn es v.a. dafür genutzt wird, braucht es auch wenig Leistung.

Der Rest der Mail zeigt nur, wie es geht:

  1. Auf Freenet herunterladen und installieren,
  2. im Wizard „nur Freunde“ wählen und dann
  3. auf den Textblock1 in das Textfeld kopieren.
  4. Dann mir einfach schicken, was Freenet auf der Seite hier zeigt: (an eine Mail anhängen einfach in den Text der Mail kopieren)

Sobald ich das bei mir eingetragen habe, sind wir verbunden. Wir können uns dann einfach über die Freundesseite schreiben:

  • Schreiben:
  • Lesen:


Ich kommuniziere mehr und mehr über Freenet,2 v.a. mit Darknet-Kontakten, also Leuten, die ich persönlich kenne. Und das würde ich auch mit euch gerne machen. Dabei wird nämlich komplett verborgen, dass wir uns überhaupt unterhalten: Jede Nachricht untereinander wird in der allgemeinen Verschlüsselten Kommunikation von Freenet versteckt.

Wenn euch das schon überzeugt und ihr keine 2 Seiten Begründung lesen wollt, springt einfach vor zu Freenet Installieren: Uns zu verbinden braucht nur 5 Minuten und eine Antwort per E-Mail.

  1. Ausge-X-te Version meines Textblocks (steht in der Mail) identity=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  2. Freenet ist freie Software und wird seit 14 Jahren entwickelt - bleibt uns also vermutlich erhalten. Eine Kurzfassung seiner Möglichkeiten findet ihr in den Folien zu einem Vortrag beim Chaostreff Heidelberg (Info, Video). 

Inhalt abgleichen
Willkommen im Weltenwald!

Beliebte Inhalte news