Show HN: Freenet, a peer-to-peer platform for decentralized apps
freenet.org320 points by sanity a day ago
320 points by sanity a day ago
For the past 5 years or so I've been working on a ground-up redesign of Freenet, my peer-to-peer project from the early 2000s (now renamed Hyphanet).
The new Freenet has been up and running since December along with some early applications like River[1], our decentralized group chat and Delta - a decentralized CMS. Users have already started to build their own apps on Freenet including games, and we have some interesting apps in development like Atlas, a search/recommendation engine.
Architecturally, this new Freenet is a global, decentralized key-value store where keys are webassembly contracts which define what values (aka "state") are valid for that key, how or when the values can be mutated, and how the state can be efficiently synchronized between peers.
We've developed a unique (AFAIK) solution to the consistency problem, every contract must define a "merge" operation for the contract's associated state. This operation must be commutative, meaning that you can merge multiple states in any order and you'll get the same end result.
This approach allows state updates to spread through the network like a virus[2], which typically achieves consistent global state in a few seconds or less.
Like the world wide web, Freenet applications can be downloaded from the network itself and run in a web browser - similar to single-page apps on the normal web. However, rather than connecting back to an API running in a datacenter, the webapp connects locally to the Freenet peer and interacts with Freenet contracts and delegates over a local websocket connection.
If you'd like to try Freenet we have convenient installers for the major desktop OSs but not yet mobile, and you can be chatting with other users on River within seconds[3]. Happy to answer any questions, you're also welcome to read our FAQ[4], or watch a talk I gave back in March[5].
[1] https://github.com/freenet/river
[2] https://freenet.org/about/news/summary-delta-sync/
[3] https://freenet.org/quickstart/
[5] https://youtu.be/3SxNBz1VTE0
Notably this project was conceived by a backroom decision to dump the original Freenet development team's work, in favor of a rewrite from different developers, without asking anyone on the original team. It was an ivory tower decision which was announced on the mailing list without prior discussion. The old team did not agree, yet it was forced through by a decision of the "board". The "board" was a group of people which had not been active on the project for over a decade. https://www.mail-archive.com/devl@freenetproject.org/msg5526... The funding of the existing, original "Freenet" was repurposed for the new one of course. The new "Freenet" does not have anonymity as a design goal anymore, while the old one continues to exist and is maintained under its new name "Hyphanet" at: Yeah, I'm not a fan.
Feels like this project is trying to get popular off of Freenet's name recognition rather than its own merits. The submitter is the creator of the original Freenet. If anybody gets to decide what we will call Freenet, it’s him. I'd agree if this was more like a Freenet v3, but it's an entirely different project with completely different goals. So what's the different between Hyphanet and Freenet? Only some anonymity?
I have try the River chat. I'm not sure how to find a people chat in here. It's hard. How are the goals different? I've abstained form interfering until now... but have you honestly forgotten? Please explain how "the new freenet" tackles censorship resistance. https://web.archive.org/web/20001017133926/http://freenetpro...
"Freenet is a peer-to-peer network designed to allow the distribution of information over the Internet in an efficient manner, without fear of censorship." https://web.archive.org/web/20050201110519/http://freenetpro...
"Freenet is free software which lets you publish and obtain information on the Internet without fear of censorship." https://web.archive.org/web/20150206152355/https://freenetpr...
"Share files, chat on forums, browse and publish, anonymously and without fear of blocking or censorship!" today:
"Hyphanet is peer-to-peer network for censorship-resistant and privacy-respecting publishing and communication." the new freenet:
?!? > Please explain how "the new freenet" tackles censorship resistance. Primarily through the same core mechanism as the original Freenet design: decentralization and relaying requests through multiple peers such that no individual peer sees the entire request path. The new design also supports pluggable anonymity systems such as mixnets and onion routing. In some respects these are stronger than Hyphanet's approach because relay selection can be chosen intentionally by the user's node rather than emerging implicitly from network topology. The main architectural change is that anonymity is no longer treated as a single mandatory mechanism baked into every layer of the system. Different applications can make different tradeoffs depending on their requirements. Are there any success stories about Hyphanet's censorship resistance mattering? Beyond serving run-of-the mill copyrigh violations (and probably child porn) I never heard anything about the content on Hyphanet. Even now when people in the US are organising against a fascist regime it's mostly WhatsApp and maybe Signal. There actually are: among the darknets, Hyphanet is the only one that has a main use for "deviant data resistant to censorship": Example publication: https://journals.sagepub.com/doi/abs/10.1177/135485651880663... > What are the content patterns on Freenet? Four patterns were identified. Freenet is (1) an archive of deviant data resistant to censorship (2) a space dominated by content associated with masculinity, (3) a nonmarket space where commercial exchange is non-existent, and (4) an empty space with many requests not returning information, and many flogs abandoned. We asked a third question: How does the analysis of Freenet inform current understandings of hacker culture? Freenet, we suggest, can be understood as a type of digital “wilderness”. It is a singular darknet space, supporting a distinct set of hacker practices Practically: people in Hyphanet blog about stuff they dare not blog about in the clearnet -- anything from radical politics (from all kinds, left, right, libertarian, …) over personal opinion pages to wilder stuff like magick (yes, in that spelling). Not to forget the Russian Poet who’s posting daily poems with the goal (as he wrote) that those poems still survive after police knocked at his door. (besides talk about hyphanet and privacy tech) So yes: I don’t understand the downvotes either, because it’s a legitimate question with a pretty clear answer: yes. Thank you for the downvotes. You're moving the debate here. The question was "How are the goals different?" from the project leader (who ought to know better), not whether moving them makes sense. > The question was "How are the goals different?" A question you haven't answered. Well I guess you think the important part of the goals is to make censorship technically difficult, without regard to if the software actually facilitates political speech at all. Others could argue that software nobody uses for its stated purpose has failed; but you are right that is technically a different discussion than the one you started. "Anonymity: While the previous version was designed with a focus on anonymity, the current version does not offer built-in anonymity but allows for a choice of anonymizing systems to be layered on top." How is offering the user more choice with respect to anonymity changing the goals of the project? the _point_ of freenet was that you could anonymously share/store information. For better or worse, that was the point of it. It also drove the UX and tradeoffs for the network. It was slower than Kazaa/bittorrent, but it was far harder to work out who was shareing what. (if memory serves it also chunked files up so they weren;t on the same machine, but that could be me misremembering) > the _point_ of freenet was that you could anonymously share/store information. As you can with the new Freenet, you just get a menu of options instead of being forced to use a one-size-fits-all approach to anonymity. yes, it chunks files, and aggregates multiple chunks per packet, and pads packets it sends around, so size analysis by the ISP cannot trace the path. I kind of see "focus" in the FAQ and "goals" in this thread as interchangeable. It would surprise me if this would not be a common interpretation of these texts alone among the readers here. As for the general reputation of the OG Freenet in this lineage, to the extent I'm aware, anonymity was pretty much the defining characteristic. More or less everything else in the user experience suffered to some extent compared to other chat and file sharing services because of this "focus". If we're doing archaeology, my original 1999 paper was called "A Distributed Decentralized Information Storage and Retrieval System". > If anybody gets to decide what we will call Freenet, it’s him. Perhaps. Though reusing the name for an entirely different project with a different codebase is disingenuous to say the least. That won't do his reputation any good, especially in a field where reputation matters. > Though reusing the name for an entirely different project with a different codebase is disingenuous to say the least. Same project, same goals, and it's not even the first time we started with a fresh codebase - we did it in 2008. > That won't do his reputation any good, especially in a field where reputation matters. This drama never comes up anywhere except HN where it seems to be the obsession of a small number of vocal people who never have anything to say about the substance of the project. I don't lose any sleep over it. That’s not how contributing money to the success of a specific thing should be able to work at all. Does he though? Yes It's ironic that you are the one who made an argument appealing to a vague principle of "authority of the original development team" OVER the actual authority of the board. The original creator convinced the board to change direction, so he literally got to decide what people will call Freenet. I don't think appealing to this vague principle (that people haven't agreed on) is a convincing argument. I think you should appeal to the values of censorship-resistance and privacy instead and how this new incarnation of Freenet abandons them and why you think that's important. > Notably this project was conceived by a backroom decision to dump the original Freenet development team's work, This is a false narrative, from the Freenet FAQ[1]: Why was Freenet rearchitected and rebranded? In 2019, Ian began developing a successor to the original Freenet, internally named “Locutus.” This redesign was a ground-up reimagining, incorporating lessons learned from the original Freenet and addressing modern challenges. The original Freenet, although groundbreaking, was built for an earlier era. This isn’t the first time Freenet has undergone significant changes. Around 2005, we transitioned from version 0.5 to 0.7, which was a complete rewrite introducing “friend-to-friend” networking. In March 2023, the original Freenet (developed from 2005 onwards) was spun off into an independent project called “Hyphanet” under its existing maintainers. Concurrently, “Locutus” was rebranded as “Freenet,” also known as “Freenet 2023,” to signal this new direction and focus. The rearchitected Freenet is faster, more flexible, and better equipped to offer a robust, decentralized alternative to the increasingly centralized web. To ease the transition the old freenetproject.org domain was redirected to hyphanet’s website, while the recently acquired freenet.org domain was used for the new architecture. It is important to note that the maintainers of the original Freenet did not agree with the decision to rearchitect and rebrand. However, as the architect of the Freenet Project, and after over a year of debate, Ian felt this was the necessary path forward to ensure the project’s continued relevance and success in a world far different than when he designed the previous architecture. > The new "Freenet" does not have anonymity as a design goal anymore, Because the new Freenet will have a menu of anonymity options rather than committing to a one-size-fits-all approach, while also addressing the issue of illegal content[2]. [1] https://freenet.org/about/faq/#why-was-freenet-rearchitected... [2] https://freenet.org/about/faq/#how-does-freenet-handle-harmf... > and after over a year of debate There was no "year of debate". You came to the mailing list and announced it for the first time as a finalized decision already, without any prior debate with the original team. The "board" you cited as the body which allegedly discussed it did neither join the mailing list discussion, nor were you willing to hand out their contact info. It's all public for anyone to see on the mailing list archive: https://www.mail-archive.com/devl@freenetproject.org/msg5526... WTF. These are some of the first things I clicked through on that page: - https://www.mail-archive.com/devl@freenetproject.org/msg5534... - https://www.mail-archive.com/devl@freenetproject.org/msg5534... Gee, I can't imagine how that mailing list could ever be toxic. Why is it always people like this who run projects that should be good? SimpleX, Xlibre, Freenet Locutus, that's three, and I'm sure there are more. Edit: do they all like the letter X, too? I think in this list it's just a coincidence, but maybe? Edit because I can't post a new comment: https://news.ycombinator.com/item?id=46608061 Wild theory: maybe it's because in order to stay focused, passionate and dedicated to a project, you have to have a passionate mind dedicated to a narrower viewpoint. The more open-minded you are, the more likely you accept that detractors might have a point, and then increasingly realize that it's impossible to please everyone. Disagreeable, passionate people are passionate about doing projects that go against the grain. It's really obvious to anybody actually asking the question instead of just being rhetorical and not giving it any actual thought. The answer is a commpetely obvious one, but one which makes some people uncomfortable, such that they'd rather not confront it, lest they have to confront its implications. If his definition of woke mind virus is "identitarianism", then it's agree that it's fucking awful. But I wouldn't call it "woke mind virus". Identitarianism is a cancer, that has been fed via social media algorithms. We seem to have invented a machine for rewarding all of the wrong incentives. Who would have thought that phenomena like audience capture & polarised thought bubbles would be in the palm of the hand, directing thoughts and forming unbreakable opinions on an array of issues that otherwise wouldn't even be on the radar? I don't think that this is a left, right or in between thing. Identitarianism had infected the entire political spectrum. BTW: Perhaps I'm wrong but I don't take the Wikipedia definition of "identitarian movement" and identitarianism. I'm thinking entirely about identity politics. "If you're associated with person X you must be Y", or "If you believe A you must be a B". Highly policed thought bubbles. Ostracism. Cancelling. As a result, today, with technology that can enable mass communication of thought, there are important conversations that can no longer happen in society. As your average progressive, I agree that I don’t like identarianism. When you have 8-15 years old putting a lot of effort into defining themselves as a “non binary, trans feminist pansexual” it gutturally feels wrong. These kids should not be wasting their time and energy on asinine pursuits like this at that age over performing well academically and over developing their physical prowess. I preferred the 00s where it was generally considered taboo to talk/ask about ethnicity/religion/sexuality. Unfortunately with that perspective, I end in in the same camp as unabashed bigots and real Nazis. Not sure what you mean but I stand by every word I said in that thread. A wise boss of mine, after reading a set of threads that I wrote like this, asked me to go think for a day on the difference between "being right" and "being effective." Some of the things you say in these threads might be "right" but I can assure you that many of them are not effective, which is counterproductive to the goal you are trying to achieve. I prefer to say what I believe to be true rather than live in fear of how people looking to take offense might misconstrue something. A culture where people are expected to constantly self-censor to avoid bad-faith interpretations is unhealthy and corrosive. This reminds me of something someone said. Something about assume everyone is coming from a place of good intent. Even if they are not, you can communicate with people more effectively without bringing in a form of bias that ends up infecting everything. Just because you have a belief about something doesn't make it right to always assume the worst from people and that you always have the best answer. I tend to avoid people that don't come from a place of good faith. And I feel that attacking people because you might be right about something is coming from a place of bad faith and isn't always the best course of action. There is a place for that, when it comes to your freedom being violated or something, but when it comes to having discussions with people, we are all human. Ego can be a determinant. > I prefer to say what I believe to be true rather than live in fear of how people looking Again, as we are wondering into tumblr style debates here (ie not listening and just saying what you think they said) There is a difference between being "right" and being "effective" Or to put it another way: "perfect is the enemy of good" However I will break it down a bit more. You agree with me that there is such thing as a horizon of "acceptable opinion" for people? Some have larger windows, some much narrower. If we agree on that, I would ask, what happens if someone goes in hard (rhetorically) with a viewpoint that is outside of "acceptable opinion"? You begin to discount their opinion, regardless of evidence. Or it requires a much high bar to accept _any_ opinion from that person. Which leads back to the original point, you may be correct, but you are unable to persuade anyone else that you are correct, because you are not speaking the same language and gently pulling them to your viewpoint. Hence the "you can be right, or you can be effective" I, for one, don’t think I’ve misconstrued anything — you’ve shown exactly who you are relatively clearly in those posts.
qcl820DV34 - 18 hours ago
pikdum - 17 hours ago
koolba - 14 hours ago
pikdum - 11 hours ago
Alex_toani - 5 hours ago
sanity - 10 hours ago
nextgens - 8 hours ago
sanity - an hour ago
SiempreViernes - 7 hours ago
ArneBab - 4 hours ago
nextgens - 7 hours ago
sanity - 43 minutes ago
SiempreViernes - 5 hours ago
cess11 - 8 hours ago
sanity - 8 hours ago
KaiserPro - 7 hours ago
sanity - 38 minutes ago
ArneBab - 4 hours ago
cess11 - 6 hours ago
sanity - 9 minutes ago
GJim - 5 hours ago
sanity - 13 minutes ago
DANmode - an hour ago
cheesecompiler - 12 hours ago
chipdale - 27 minutes ago
sanity - 18 hours ago
qcl820DV34 - 18 hours ago
kstrauser - 15 hours ago
tardedmeme - 8 hours ago
Timwi - 7 hours ago
SuperNinKenDo - an hour ago
raffraffraff - 7 hours ago
dyauspitr - 12 minutes ago
sanity - 15 hours ago
outside2344 - 15 hours ago
sanity - 15 hours ago
trinsic2 - 10 hours ago
KaiserPro - 7 hours ago
angoragoats - 14 hours ago