Slashdot Mirror


Why Freenet is Complicated (or not)

JohnBE writes "'This article is primarily a friendly rebuttal to Steven Hazel's CodeCon 2002 talk entitled "libfreenet: a case study in horrors incomprehensible to the mind of man, and other secure protocol design mistakes". Hazel presents the Freenet protocol as an overly complicated, self designed crypto layer. In fact, though somewhat complicated, literally every step in the protocol was carefully thought out to resist certain attacks and to increase certain properties desirable for Freenet operators and the network as a whole.' Interesting in light of Peek-a-booty, this article covers many of the issues involved with creating a anonymous P2P system."

6 of 153 comments (clear)

  1. I could have sworn I read this verbatim before by DebtAngel · · Score: 2, Redundant

    http://www.kuro5hin.org/?op=displaystory;sid=2002/ 2/17/203032/375

    It would have been nice for the person who submitted the article to at least include the link to the article that paragraph came from...

    --

    Is this post not nifty? Sluggy Freelance. Worshi

  2. Freenet is not perfect! by Andreas(R) · · Score: 0, Redundant

    My bias out of the way: I like freenet. A Lot. I run a freesite (Fishland).

    This being said, I'm sorry, but parts of freenet, right now, are a complete train wreck, and the only thing keeping me around is basically the lack of another solution which achieves the goals that I want to see.

    The main freenet developers are good at designing protocols. It's often been said that it's a real testiment to the freenet protocol spec, that freenet works in spite of it's codebase and lack of documentation. Those of you who've seen the freenet code will most likely agree with me, that many of the freenet developers couldn't code their way out of a wet paper bag.

    (And no, it's not about java vs. C - it's entierly possible to write good java, but java isn't a magic bullet that makes your code good without any effort. Freenet is proof of this ;))

    Freenet 0.4 may be beta, but it is a deployed network which people are encouraged to use. There is no 0.3 download at freenetproject.org anymore, which leads me to believe that therefore, 0.4 is the network that you all want me to publish into. And if this is the case, you don't get to say "Oh, but it's the development network" as an excuse for fucking everyone who tries to actully do something with it in the ass.

    Similarly, development is no damn excuse for no documentation at all, in face, development is when you *should* be creating the documentation for something as important as FNP, not as some afterthought. FCP is NOT a substitue for FNP, it only allows me to talk to my own node. There are some very good reasons sometimes to not do that. Moreover, since we have had but one set of mandatory upgrades since august 2001 (in january this year), FNP must be pretty static... older nodes seem to interoperate, for the most part, so the node->node protocol can't have changed that dramatically.

    You say documentation is a priority. But the actions and words of the freenet teams scream in my face until they are blue, that if I want documentation, then I can go and fuck myself.

    This is really the attitude that is percieved... that if one isn't happy with the current situation, then one should go and fuck ones self, if one isn't happy that we get mandatory upgrades with no notice at all on the web page or anywhere else a normal freenetter would look, then one should just go and fuck ones self. If one isn't happy that the general attitude of the freenet developers is that the people who are creating tools for the network, and content for the network don't fucking matter, then one should go fuck ones self.

    One day, all of the freesite and freeapp authors will do exactly that, and then where will your network be?

    1. Re:Freenet is not perfect! by amlutias · · Score: 0, Redundant

      god damnit, you posted this on kuro5hin too. pick one.

    2. Re:Freenet is not perfect! by keesh · · Score: 0, Redundant
      Those of you who've seen the freenet code will most likely agree with me, that many of the freenet developers couldn't code their way out of a wet paper bag.


      Yes, I ran "eleganceCheck" on the Freenet code and got 3.2, oh, sorry, there is no such thing. While I am clearly biased, the sheer complexity of what is achieved by the current Freenet codebase would make most software engineers give up before they had started. Connection pooling, real-time unwrapping, progressive hash checking, splitting, and rewrapping of encrypted streams, incorporation of a servlet architecture, threadpooling, unit tests, the list goes on, this is a massively sophisticated piece of software, the code is well commented, and as soon as the inter-node protocols are finalized, they will be documented (in fact, Adam Langley is working on this as we speak). Yes, the code and protocol are complicated, but no more-so than they need to be.

      The development team has worked hard to make life easier for third-party developers by creating the Freenet Client Protocol (FCP), a simple protocol which anyone can use to allow third-party applications to talk to the Freenet node. The only protocol that is as-yet undocumented is the protocol used by nodes to talk to each-other. Such documentation is only of use to people hoping to develop their own Freenet node. So far, only one person has seriously attempted to do this, Adam Langley, and lack of protocol documentation didn't stand in his way (the core developers were very forthcoming with the information he needed).

      In-case you are thinking how unreasonable it is for us to create a reference implementation before we document the protocol, note that the only reason everyone uses the BSD reference implementation of the TCP stack is that the TCP specification isn't worth the paper it is written on!

      You say documentation is a priority. But the actions and words of the freenet teams scream in my face until they are blue, that if I want documentation, then I can go and fuck myself.


      This is an Open Source project, people are working on their own time. If you want something done that badly, then the onus is on you to do it yourself. Why didn't you start work on documentation of the FNP protocol? I am sure the core developers would have given you all of the information you need. Criticising others who are already devoting huge amounts of time to a project for not doing the stuff that you want is like criticising someone for not giving enough to a charity while giving none yourself.

      If one isn't happy that the general attitude of the freenet developers is that the people who are creating tools for the network, and content for the network don't fucking matter, then one should go fuck ones self.

      You really need to take a reality check. The Freenet core development team spend hours of each and every day, their own spare time, working on Freenet, not for themselves, but for its users, yet all you can do is bitch about the fact that they aren't working on the things that you think they should work on first.
  3. Freenet is not complicated by HanzoSan · · Score: 1, Redundant



    When you compare it to stuff like gnutella, mojonation and others, freenet is about average.

    Freenet's not hard to write programs for at all, Freenet itself is whats complicated.

    Currently I know C, VB, and I'm learning Java.

    Freenet is not that complicated. Its just not documented as well as it could be.

    --
    If you use Linux, please help development of Autopac
  4. Freenet project official website... by 42forty-two42 · · Score: 0, Redundant