Kuro5hin.org: technology and culture, from the trenches
create account | help/FAQ | contact | links | search | IRC | site news
[ Everything | Diaries | Technology | Science | Culture | Politics | Media | News | Internet | Op-Ed | Fiction | Meta | MLP ]
We need your support: buy an ad | premium membership

[P]
Why Freenet is Complicated (or not)

By scgmille in Technology
Mon Feb 18, 2002 at 02:25:45 AM EST
Tags: Freedom (all tags)
Freedom

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 protocol. 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.


Well-analyzed primitives

First, not all of the components of the protocol were designed by Freenet developers. Whenever possible, analyzed cryptographic components were used. The entire key exchange protocol, for example, is the Station-To-Station (STS) protocol, modified only slightly to allow for a mode of operation called Silent-Bob (which allows nodes to masquerade as other TCP services until a valid Freenet node is cryptographically detected).

Differences between 0.3 and 0.4

The primary link-level change was the finally merge of a full public/private-key encryption system to prevent Man-in-the-Middle attacks. With this capability, we make it difficult for an attacker to become a cancer node by generating its own keyspace. The keyspace discovery protocol Hazel alludes to attempts to involve enough nodes (and spread far enough across the network) to include one non-malicious node. It is designed such that if one non-malicious node involved the resulting keyspace will be sufficiently random. In addition, it 'bootstraps' nodes into the network in a way that very quickly makes a new node useful for storage.

Freenet Client Protocol

Freenet developers realized quite quickly that the node-level protocol was too difficult for use by general client developers. So, in February of 2001 (yes, that long ago), the Freenet Client Protocol was developed. This is a simple protocol that is trivial to implement, uses no crypto, and speaks only between a client and the locally running Freenet node to handle all aspects of Freenet required by a client. This includes insertion, retrieval, key generation. It hides nearly all the complexity of document structure, metadata, file splitting, etc. FCP has already been written as a library for several languages.

Other points of note

  1. Informal unit testing has been in the code since very early in the development. For the 0.4 iteration, formal unit testing was adopted, by writing to the JUnit framework.
  2. Freenet uses strong cryptography. Much of this cryptography relies on secure random numbers. Early on a decision was made (for the reference implementation) to implement the Yarrow PRNG from Counterpane Labs. One characteristic of the Yarrow generator is that it frequently rekeys the block-ciphers it uses. When choosing between AES and Twofish, the choice was easy, as Twofish has an expensive rekeying stage. Rekeying often was a severe performance bottleneck to the PRNG. Once AES was chosen there, it was decided that using it pervasively throughout the protocol would save implementers time.
  3. Twofish was originally used as the Document level cipher to hint to developers that more than one cipher may be used, and to prevent those developers hard coding their systems for any particular one. The Document level cipher is configurable however, and AES can be used there as well.
  4. Cryptographic primitives can be difficult to implement. In the 0.4 and 0.3 protocols, all used primitives could be implemented by calling other libraries, such as OpenSSL. Only one primitive in 0.4 cannot be implemented this way, the DHAES signature algorithm. However, that algorithm is built on top of primitives also provided by OpenSSL, so implementing and verifying it would take no more than a day or two.
  5. Why not just use SSL? The SSL relies on PKI for encryption, which does not allow the flexibility in trust that Freenet's crypto allows. SSL is also a far more complicated protocol than the Freenet link-level protocol. Secondly, some concerns about the anonymity lost when using SSL have been raised. These are a matter of discussion.
  6. Hazel comments on the difficulty of finding implementations of Ciphers. A quick trip to Counterpane labs reveals three C, two VB, one Java, and 3 Assembly implementations. As an AES candidate, a reference implementation was required in portable C and Java, for two more. Rijndael? 5 C implementations, several assembly implementations, Delphi, Perl, Matlab, VB, Java, the NIST requirements, Ada95, and Emacs Lisp! These libraries aren't difficult to use either, check them out sometime.
  7. Hats off to the audience member who pointed out some of the *real* reasons for unique-id's and the connection agnosticity. Reliability, efficiency, and the ability to easily move to other transport layers (even non IP based protocols).
  8. We are *not* implementing TCP over TCP. TCP is a complicated protocol that provides reliability and congestion control. Freenet's protocol does not attempt to reinvent any of this. Freenet's logic allows for reliability from dropped connections, and efficiency from connection pooling. Freenet is not unique in this. Check out the Blocks protocol which does many of the same things (and much more, more than Freenet needed).
  9. Base64 in URI's was decided because of the length of Freenet URI's. Cryptographically protected URI's have at least 23 bytes of data to encode. Hex encoding is the first choice, but this means a 46 character URI before adding optional components like the plain-text path of Signed-subspace keys. Base64 gave us the most bang for the buck. And the change hazel refers to? Removing characters that don't play well with the browser and replacing them with ones that do. Nearly all implementations of Base64 have a char[] with the Base64 character set. Getting an implementation to work would require less than 10 keystrokes. Besides, a client needn't do this anyway, as FCP handles all key generation and parsing.
  10. Documentation is difficult for a non-stable piece of software. Documenting significantly always resulted in out-of date documents that help no-one. However, documentation is a priority, and is likely to appear sometime after the 0.5 release.
  11. With respect to experimentation. The reference implementation is not a platform for experimentation. When experimenting with network behavior, the developers use simulation tools. The reference implementation therefor is meant to have a respectable level of performance and reliability.
  12. Some perceived minor irritations may arise due to the implementation of Freenet in Java. Java is not like C, so some porting issues are bound to arise. Porting is hard sometimes.
  13. An audience member mentioned the Java Messaging Specification, or JMS. JMS, firstly, is a relatively new standard (Aug 2001) was not around when Freenet started, in fact, it didn't appear until well after the 0.3 release. Secondly, Freenet, by policy, does not rely on any code with a restrictive license and a non-free implementation. And re-implementing JMS was not a good use of any developer's time.

There are few projects with requirements for security and anonymity as strong as those found in Freenet. There is no way around some amount of complexity to meet these goals. The developers of Freenet know this, and also know that complexity is a barrier to entry. The protocol is made only as complicated as necessary to meet its requirements and to allow flexible implementation. We realize that the inter-node protocol is too complicated for general client use. The Freenet Client Protocol was designed to provide a simple client-to-node protocol that could be implemented easily. Its unfortunate that Steven became frustrated writing to a moving target, but watering down the protocol to make it easy to implement would produce an ineffective system. In short, software development is hard sometimes.

Sponsors

Voxel dot net
o Managed Hosting
o VoxCAST Content Delivery
o Raw Infrastructure

Login

Related Links
o Also by scgmille


Display: Sort:
Why Freenet is Complicated (or not) | 64 comments (60 topical, 4 editorial, 0 hidden)
Link me, will you? (4.50 / 2) (#2)
by Pac on Sun Feb 17, 2002 at 08:41:01 PM EST

libfreenet
Codecon

Evolution doesn't take prisoners


The real complication of Freenet (4.60 / 5) (#6)
by Ebon Praetor on Sun Feb 17, 2002 at 11:50:19 PM EST

The problem with Freenet does not lie in its protocol or security, but in its inconvenience to users. Information simply disappears off of the network, making it almost impossible for regular use. While it was not designed for sharing music and porn, thats what most people think p2p networks are for these days. As a result, the oppressed people that the project was designed for can't use the system. The initial concept that one cannot store information on their system was good, but is being abused by too many people. There simply are not enough permanent connections with enough disk space to support the current incarnation of Freenet.

The second problem is the inability to find information. Even if it does exist, very few people know how to find it. Until the key indices are completed and a uniform naming system is accepted, information will just sit there, and be as good as lost.

I apologize for this being somewhat offtopic and please correct me if either of these problems have been solved. I'd really love to see Freenet take off, but it seems that it may be dead on arrival being too difficult to use for end users.



Evidence? (4.50 / 4) (#8)
by sanity on Mon Feb 18, 2002 at 01:19:01 AM EST

You fail to support any of your claims. Yes information does fall off the system, that is by design. When you are using other people's hard disks (essential to maintain author-anonymity), why should unpopular data take up other people's space? If you had demonstrated that the rate at which data falls off Freenet is too excessive for it to be useful, that would be a different story, but you haven't, and in my experience, it doesn't. You also don't support your claim that people are abusing the system.

As for your second criticism, finding information is a client issue. For example, to find information via fproxy (the http interface), you simply click on hyperlinks, just as you do with the WWW. With Frost, you can do keyword searching.

The things you describe as "problems" are simply facts of life about how the architecture works, I can only assume that the reasons you see them as problems is because you want Freenet to be something it is not, nor was it designed to be.

[ Parent ]

Unpopular data (4.50 / 4) (#10)
by delmoi on Mon Feb 18, 2002 at 03:20:48 AM EST

why should unpopular data take up other people's space?

IMO, you totaly blow the "protector of free speech" argument by the fact that unpopular data falls off the network. Some movements start small. The Chinese Communist Party for example started with only 5 or 6 guys. (but then again they did manage to take over a country with 900 million people in 20 years...)

Clearly the most "popular" stuff out there is not the most important. If freenet does become a success it'll end up being a repository for britany spears mp3s.
--
"'argumentation' is not a word, idiot." -- thelizman
[ Parent ]
free speech (4.00 / 1) (#17)
by boomi on Mon Feb 18, 2002 at 07:17:38 AM EST

Someone here pointed it out already: You have a right to speak, but none to be heard.

A website must be linked to in order to be accessedd. If you can't get at least one other site linking to you, then your site is worth shit.
If some people access your freesite, it's distributed nicely over the net and won't just fall off.

Those 5 or 6 guys in the Chinese Communist Party had to create their own network to let the people hear their voices, Freenet already does this.

What's so bad about freenet being a repository for popular stuff?
At least on the WWW you can choose if you want Britney or the Communists Manifest, which is already a big step away from content pushers like TV. Freenet takes this to the extreme in the way that the publisher doesn't require better equipement than the reader.
ANYONE with access to Freenet can publish.




[ Parent ]
Hard evidence. (3.33 / 3) (#12)
by a life in hell on Mon Feb 18, 2002 at 03:25:41 AM EST

Ian, try running a freesite for a week, and see how many people can actully access it. That should be all of the evidence that you need. Just trying to pretend that the current excessive problems with DataNotFound errors don't exist is like trying to pretend that you're not going to die when someone puts a bullet through your head.

- From fish with love ^_^



[ Parent ]
Not my fault... (4.00 / 1) (#27)
by sanity on Mon Feb 18, 2002 at 01:50:53 PM EST

...that nobody looks at your Freesite ;-P

[ Parent ]
But.. but.. that SUCKS! (5.00 / 4) (#13)
by arcade on Mon Feb 18, 2002 at 03:31:11 AM EST

Yes information does fall off the system, that is by design.

And that is why I think freenet sucks. If I want to inject my webpages into freenet, and store'em on my OWN node all the time, then I should be allowed to do that.

The freenet server-part should have to directories:

local
cached

where the 'local' part is what you yourself want to distribute over freenet. the 'cached' part is what you cache for others, which you cannot browse and edit.

The 'local' part looks just like the 'cached' part to other servers, so that *others* can't see that you're the one that stores it locally. The point is that you can see it yourself. Of course, there should still be a way to just 'inject' the information into the network, and not store it locally too, just like now, but you should _always_ have the ability to 'make sure' that the information you want distributed, is available from your own node.

--
arcade
[ Parent ]

It breaks anonymity (3.33 / 3) (#15)
by a life in hell on Mon Feb 18, 2002 at 05:43:49 AM EST

I can find out which data is yours just by flooding your node, and seeing which data doens't drop off. At this point, you lose plausable deniability, you lose anonymity, and if your government is hostile, you lose your freedom of speech or much worse. if you don't care about that stuff, you've already got the web.

[ Parent ]
Oh, so you don't expect Freenet to grow? (5.00 / 2) (#16)
by arcade on Mon Feb 18, 2002 at 07:10:29 AM EST

Yes, your angle of attack is possible. However.. its completely unlikely.

First of, you do not have any way of knowing wheter others have requested the information through my node at the same time as you tried to flood it.

Secondly, if you first attempt is to check wheter some information is available, then you have to decide to ask MY node, out of all the freenet out there, that are currently - and will be. Your attack is only feasible if there is nothing more than a handful of nodes.

Third, the flooder has no way of knowing how big the persons harddisk is. Most people can allocate gigabytes of diskspace, but only have mediocre bandwidth.

Now, why isn't the above really relevant? First of, it should be a _choice_ for the node operators what risks they want to take. They don't _need_ to publish anything locally, but if there are information they want to have available at all times, they should not be refused that by freenet. FreeNet should be about transporting things anonymously, caching things, and giving people the oportunity to be anonymous. It should't _force_ people to be anonymous. Oh, and you get _far_ more protection by freenet, than you get by the web, if you publish things. One has to flood _your specific node_ to know wheter you are the one distributing some controversial content. To do that, you have to FIND your specific node.. sheez.

And finally, a solution to the above mentioned non-problem: If/when freenet grows, as we all hope it will, one can make implementations that cache what hostnames has requested what, and wheter some hostnames are flooding you with requests. If there are requestfloods, the protocol should rather implement a 'Go away flooder' reply.

--
arcade
[ Parent ]

doesn't help (3.00 / 1) (#18)
by boomi on Mon Feb 18, 2002 at 07:29:48 AM EST

This approach does not help much. It's not likely that just your node will be asked for the files you insert locally (although the routing incrases the possibility a bit).
One node with the files doesn't help, freenet is random and expects redundancy.

You have to repeatedly insert your files to keep them up even if there's no demand.
Cron does a good job at repeating jobs, use the tools!

[ Parent ]
Please elaborate.. (4.50 / 2) (#20)
by arcade on Mon Feb 18, 2002 at 07:38:10 AM EST

Interesting.

Could you please elaborate on this? Does files _need_ to be stored on a multitude of nodes to be available? Shouldn't a request 'roll on' until a timeout has occured, or the material has been found? And thus spread because of that?

--
arcade
[ Parent ]

no clear evidence... (4.33 / 3) (#21)
by boomi on Mon Feb 18, 2002 at 08:10:05 AM EST

If you first insert a file, you insert it with a certain HTL (Hops To Live). The file is sent from node to node until the HTL expires.
A file inserted with a HTL of 5 will be stored on a chain of five nodes initially.

Requests work with HTLs too, the nodes route the request to the node that is the most likely to contain the data. The nodes have not much information to judge on, the routing is pretty random then ;)
The routing of a request stops when its HTL expires or the data is found, the data or failure notice is sent back the same route.

If your node is pretty unknown in the network, it's unlikely that the nodes will ask your node for data, they don't expect it on your node.

Freenet 0.4 uses a default request HTL of 25, inserts are done with at least a HTL of 5.

Once every node except yours has lost your data, you'd have to reinsert it anyway.








[ Parent ]
Automatic requests (none / 0) (#32)
by Salamander on Mon Feb 18, 2002 at 05:29:43 PM EST

You have to repeatedly insert your files to keep them up even if there's no demand.

I address this quite explicitly in my Freenet FIQ (Frequently Ignored Questions). Short version: it doesn't guarantee anything, it wastes network resources, and sooner or later Freenet itself will probably prevent you from doing it.



[ Parent ]
clients (3.25 / 4) (#14)
by chia on Mon Feb 18, 2002 at 03:55:54 AM EST

Yes, complicated systems dont, by implication, require complicated clients. under the hood they may be complicated, but its simple to make the presentation easy enough, that's how everything works.

the only problem with freenet is that the web works so well and at the end of the day, i can still get my illegal dl's and i'm not that worried about my privacy / illegal doings as every1 else is doing it to. it's not like theyre going to arrest every1 now is it? the only hope for freenet is that governments get a whole lot more draconian than they are now. and we dont want that now do we? ;) maybe in 20yrs time.


Most people are other people. Their thoughts are someone else's opinions, their lives a mimicry, their passions a quotation. O Wilde
[ Parent ]
Containing complexity (none / 0) (#33)
by Salamander on Mon Feb 18, 2002 at 05:32:41 PM EST

complicated systems dont, by implication, require complicated clients. under the hood they may be complicated, but its simple to make the presentation easy enough, that's how everything works.

Thank you! That is one of the most important design principles that I wish I could brand into unruly programmers' heads. Modding you up, for sure.



[ Parent ]
Nice try (1.33 / 3) (#23)
by hardburn on Mon Feb 18, 2002 at 09:39:46 AM EST

Nice try, Ian. We all know that any network that randomly loses data will never take off. Maybe these people can teach you a thing or two about making scaleable networks.

It's so nice to be a troll.


----
while($story = K5::Story->new()) { $story->vote(-1) if($story->section() == $POLITICS); }


[ Parent ]
Thanks for posting attributed this time (none / 0) (#34)
by Salamander on Mon Feb 18, 2002 at 05:35:04 PM EST

Last time, I got blamed for it. Not that I mind getting another excuse to put Ian on the spot about this.



[ Parent ]
Hey, no problem :) (none / 0) (#36)
by hardburn on Mon Feb 18, 2002 at 06:14:24 PM EST

Not like K5 gives me much choice in the matter (bring back Anonymous Heros!)

Last time I posted that, I hoped on the Freenet IRC channel a few hours later and confessed my "sin of trolling". Ian was on the channel, but I wasn't sure if he was awake or not (many of the Freenet developers keep themselves logged into the channel all day without actualy looking at it). Just thought I'd dig out that troll again :)

BTW--I agree with many of your points about Freenet, in so far as Ian tends to misrepresent Freenet a lot. I choose not to go after Ian with such vigor as you do, though, probably because I've seen him having to put up with a barrage of journalists over the years. Those people tend to make your mind turn to mush after a while . . .


----
while($story = K5::Story->new()) { $story->vote(-1) if($story->section() == $POLITICS); }


[ Parent ]
Same old *in*Sanity (1.00 / 1) (#31)
by Salamander on Mon Feb 18, 2002 at 05:24:30 PM EST

If you had demonstrated that the rate at which data falls off Freenet is too excessive for it to be useful, that would be a different story, but you haven't, and in my experience, it doesn't.

"Disproving" one anecdotal and unsupported claim with another? Tsk, tsk.

I can only assume that the reasons you see them as problems is because you want Freenet to be something it is not, nor was it designed to be.

Could we please have a single authoritative statement about what Freenet was designed to be, then? Without evasions, prioritizing its many goals against one another once and for all? Can we hold you (or the other developers) to such a statement a year from now, or will the mission statement have changed yet again?



[ Parent ]
Change the record (1.00 / 1) (#38)
by sanity on Mon Feb 18, 2002 at 07:51:39 PM EST

This is tedious. You accuse me of claiming that Freenet doesn't lose data, I ask you to provide a single example, and you fall back to claiming that I imply that Freenet doesn't lose data, I challenge you to prove that, and you fall back to claiming that I don't place sufficient emphasis on the fact that it loses data.

Suddenly we are both in an unwinable/unlosable argument about exactly how much emphasis I should be placing on the fact that Freenet loses data. I am, quite frankly, bored of it.

[ Parent ]

not enough servers? (3.50 / 2) (#9)
by krogoth on Mon Feb 18, 2002 at 02:24:13 AM EST

I ran a freenet server for a while around last october. I installed it, let it have 500MB, and put a couple of files in. A few weeks later, it hadn't stored anything else, and I couldn't see any signs of it being used, so I killed it. I know my small server on a dsl connection won't solve everything, but you'd think if there was any lack, extra resources would be used.
--
"If you've never removed your pants and climbed into a tree to swear drunkenly at stuck-up rich kids, I highly recommend it."
:wq
[ Parent ]
Actions... (3.00 / 1) (#19)
by boomi on Mon Feb 18, 2002 at 07:37:28 AM EST

Did you even try to retrieve something? I mean, did it work?

[ Parent ]
It's been a while... (none / 0) (#29)
by krogoth on Mon Feb 18, 2002 at 02:46:47 PM EST

I don't remember what I did, but I would have tried it out... I don't recall really getting anything off of it, but that was probably for lack of keys to try :)
--
"If you've never removed your pants and climbed into a tree to swear drunkenly at stuck-up rich kids, I highly recommend it."
:wq
[ Parent ]
Requests (4.00 / 1) (#22)
by hardburn on Mon Feb 18, 2002 at 09:36:30 AM EST

For Freenet to work well, you need to make some requests. Requests tell other nodes "Hi, I exist at ip x.x.x.x port y". If you haven't made any requests, you aren't really part of the network.


----
while($story = K5::Story->new()) { $story->vote(-1) if($story->section() == $POLITICS); }


[ Parent ]
Enable announcements! (none / 0) (#42)
by Vs on Tue Feb 19, 2002 at 06:05:55 AM EST

There's a special option in the config file you have to enable so that your node announces itself to the other nodes he knows about (from the seed-file).

Or, as others already have pointed out, actively use your node.
--
Where are the immoderate submissions?
[ Parent ]
Freenet should incorporate a rating system. (none / 0) (#63)
by johwsun on Thu Feb 21, 2002 at 05:52:16 AM EST

The "wrong" thing with freenet is that it does not create any kind of community, like scoop does.
It is inevitable for freenet to become a porn or crack database for people who want to do illegal activities.
This "problem" can be solved only if someone of us applies a rating system on top of freenet, similiar to the scoop rating system.

Iasson

[ Parent ]
Freenet is the most important program ever (3.50 / 4) (#7)
by mlinksva on Mon Feb 18, 2002 at 12:50:49 AM EST

Hazel presents the Freenet protocol as an overly complicated, self designed protocol.
--
imagoodbitizen adobe unisys badcitizens
Freenet is not perfect. (4.60 / 5) (#11)
by a life in hell on Mon Feb 18, 2002 at 03:22:52 AM EST

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?



Stop whining - we aren't paid to do this (4.75 / 4) (#25)
by sanity on Mon Feb 18, 2002 at 01:42:09 PM EST

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.

[ Parent ]
Hrm? (none / 0) (#30)
by delmoi on Mon Feb 18, 2002 at 04:15:25 PM EST

I thought that a few guys were getting paid to work on freenet.
--
"'argumentation' is not a word, idiot." -- thelizman
[ Parent ]
Hmmm (4.00 / 3) (#35)
by Salamander on Mon Feb 18, 2002 at 05:47:27 PM EST

the sheer complexity of what is achieved by the current Freenet codebase would make most software engineers give up before they had started

Get over yourself. There are several comparable projects involving only one or two programmers over a shorter time period. People have rewritten major sections of the Linux kernel in one tenth as many person-hours as ever-unfinished Freenet has already consumed. What Freenet has achieved is well beyond Programming 101, but it's not the pinnacle of programming studliness that you make it out to be.

You really need to take a reality check.

Don't worry about the mote in the other guy's eye so much, Ian.



[ Parent ]
Apples and Oranges (4.00 / 1) (#37)
by sanity on Mon Feb 18, 2002 at 07:25:03 PM EST

Get over yourself. There are several comparable projects involving only one or two programmers over a shorter time period. People have rewritten major sections of the Linux kernel in one tenth as many person-hours as ever-unfinished Freenet has already consumed.
Apples and oranges. Freenet is exploring new ideas in computer science (application of emergent principles to distributed networking), the Linux kernel, while impressive, is simply a reimplementation of a well-understood architecture (namely Unix).

[ Parent ]
Apples and Apples (2.00 / 1) (#43)
by Salamander on Tue Feb 19, 2002 at 08:31:13 AM EST

Freenet is exploring new ideas in computer science (application of emergent principles to distributed networking)

Are you trying to imply that CFS, SFS, MojoNation/MNet and others are not also exploring new ideas - often the same ones? How much of Freenet developers' time is spent on exploring these new ideas vs. "mere implementation"? Even if we exclude time spent on the former, dozens of person-years seem to've spent on Freenet implementing and reimplementing already-understood technology. Lame excuse, Ian.

the Linux kernel, while impressive, is simply a reimplementation of a well-understood architecture

That doesn't make it easy. The ideas in Linux, while often not truly new, are new enough to require the same sort of exploration/experimentation as occurs in Freenet (where many of the ideas are not truly new either). Kernel development typically takes 5-10x as long as user-space development, which you'd know if you'd ever done any. So how is it that Linux kernel developers manage to make progress so much faster than those oh-so-talented Freenet developers?

Here's a concrete example for you, just to drive the point home. My own project is fully comparable to Freenet in both functionality and technical innovation. It's also fully integrated into the kernel on not one but two very different OS platforms. Total time? One guy, one year. The shift from prototype to enterprise-class released software will probably take less than that. So how is it that dozens of people have worked several years on Freenet to no better result?

Again, Ian: get over yourself.



[ Parent ]
wrong (none / 0) (#44)
by sanity on Tue Feb 19, 2002 at 01:04:41 PM EST

That doesn't make it easy. The ideas in Linux, while often not truly new, are new enough to require the same sort of exploration/experimentation as occurs in Freenet (where many of the ideas are not truly new either).
Again, Linux developers are working to a much better defined idea of what their code should do, however I would argue that application of emergent principles to computer communication, "silent bob" communication, bi-directional connection pooling, subspaces, and numerous other innovations are largely unique to Freenet, you are welcome to find prior-art in each of these areas to disprove this contention. Generally most new techniques in the Linux kernel are simply implementations of well-understood techniques.
Kernel development typically takes 5-10x as long as user-space development, which you'd know if you'd ever done any. So how is it that Linux kernel developers manage to make progress so much faster than those oh-so-talented Freenet developers?
Your bitterness drips off every word you write - it never ceases to amuse me. You are perhaps the living embodiment of "sour grapes". Anyway: exactly how are you measuring progress? The first release of the Linux kernel (0.01) was on 17th September 1991, but 1.0 wasn't released until 13th March 1994, that is over 3 years. The first version of Freenet was released around March 2000, we still have a year to reach 1.0 (or a version equivalent to the Linux kernel) before we are "behind" the kernel developers. Of course, this is a crass measurement of progress, but if you can find a better one, you are welcome to use it.
Here's a concrete example for you, just to drive the point home. My own project is fully comparable to Freenet in both functionality and technical innovation [...] Total time? One guy, one year
Ah, now we get a glimpse into the source of your bitterness - "I am smarter than these Freenet guys, therefore the only thing which can explain my relative obscurity is if Freenet are shameless publicity hounds, who lie about their project's capabilities". It is on this axiom that all of your arguments rest. I have no familiarity with your software, nor can I find any information on it - so, completely aside from the fact that there is no objective measurement of the relative difficulty of software engineering problems, it is meaningless to make the comparison.

Quite frankly, your bitterness and inability to make a technical argument without resorting to personal insults are a serious de-motivation to spending time debating with you. If it weren't for the danger that someone might accept your venom at face-value, I would be much happier ignoring you completely.

[ Parent ]

Bullshit, Ian (none / 0) (#45)
by Salamander on Tue Feb 19, 2002 at 03:21:28 PM EST

I would argue that application of emergent principles to computer communication...are largely unique to Freenet

In a fucking pig's eye. Many of those properties you list are held in common with at least a half-dozen other projects, from MojoNation/MNet to FreeHaven to OceanStore. And then they innovate in ways that Freenet doesn't...erasure codes, attenuated Bloom-filter routing, versioning and consistency, etc. The question is not whether Freenet contains anything innovative. It does. The question is whether Freenet is more innovative than these other projects, to justify more person-hours in implementation. It's not.

we still have a year to reach 1.0 (or a version equivalent to the Linux kernel) before we are "behind" the kernel developers

Will you make it to 1.0 in that year? No. Besides, how many people were working on Linux that early, and how many are working on Freenet. It's person-days that count, not just days.

I also noticed that you sidestepped the issue of kernel development being more difficult than user-space development. Do you deny that there's a 5-10x multiplier? On what basis? If you can't refute that claim - which is not unique to me but quite well accepted throughout the industry - then Freenet is even further behind relative to Linux.

have no familiarity with your software, nor can I find any information on it

OK, I'll pick a different example. OceanStore. Way more ambitious than Freenet technically, started later, fewer FTEs working on it...and it'll still reach 1.0 before Freenet. How do you explain that? How does that fit in with your "Freenet is the only project making progress on hard problems" theory?

your bitterness and inability to make a technical argument without resorting to personal insults are a serious de-motivation to spending time debating with you

No, the fact that I consistently kick your ass all over the debate room is probably the real demotivator. You haven't provided a a single shred of evidence to justify your claim that "the sheer complexity of what is achieved by the current Freenet codebase would make most software engineers give up before they had started". Instead, you've demonstrated your own inability to make a technical argument by devoting 2/3 of your reply to a lengthy ad hominem attack about my supposed bitterness. How ironic. You're pathetic, Ian. You expect to make people back down with sheer bluster, but when it comes down to nuts and bolts you don't have the technical chops to back up a single thing you say.



[ Parent ]
It is you that are pathetic (none / 0) (#46)
by sanity on Tue Feb 19, 2002 at 04:43:12 PM EST

In a fucking pig's eye. Many of those properties you list are held in common with at least a half-dozen other projects, from MojoNation/MNet to FreeHaven to OceanStore.
MojoNation is an impressive and worthwhile project, I am good friends with some of those behind it and we have a mutual respect for each-other, but it solves a very different problem to Freenet, and doesn't really address the core question of how to locate information efficiently and anonymously in a completely decentralized architecture.

OceanStore is also impressive, but again it is an apples and oranges comparison. OceanStore's routing is based on Plaxton routing which is a well established algorithm. Freenet's routing algorithm is (as yet) unique to Freenet and is being refined as part of our development effort. None of the architectures you refer to rely on emergent properties by any definition of the word.

OK, I'll pick a different example. OceanStore. Way more ambitious than Freenet technically, started later, fewer FTEs working on it...and it'll still reach 1.0 before Freenet. How do you explain that? How does that fit in with your "Freenet is the only project making progress on hard problems" theory?
Firstly, I never said that Freenet is the only project making progress on hard problems. OceanStore is impressive, but it is a combination of several well-known techniques including Plaxton routing and Bloom filters, although they are being used in innovative ways.
No, the fact that I consistently kick your ass all over the debate room is probably the real demotivator.
Hah! Now it is time for you to get over yourself. I know children that know how to make an argument without resorting to the venomous and bitchy insults that you lace your argument with. Even if you thought Freenet was pure bullshit, it still wouldn't justify the tone with which you make your arguments.
Instead, you've demonstrated your own inability to make a technical argument by devoting 2/3 of your reply to a lengthy ad hominem attack about my supposed bitterness.
It is you who opened the ad hominem can of worms by accusing me of being a shameless self-publicist - willing to advance Freenet's interests with no regard to the truth, and the rest of the development team of ineptitude. I responded to all of the points you raised, and have clarified them above, I reserve the right, having done that, to point out the childishness of your argumentative style.
How ironic. You're pathetic, Ian
Pathetic is devoting so much effort to poo-poo-ing the hard unpaid work of others while making personal insults and unfounded assumptions about their character (remember when you accused me of "selling out" to Intel? Don't you feel like an idiot for making such a stupid statement?).
You expect to make people back down with sheer bluster, but when it comes down to nuts and bolts you don't have the technical chops to back up a single thing you say.
You have not substantiated any of your initial claims (that Freenet's developers are somehow inferior to those in other projects). To do this you must demonstrate that other projects have achieved thinks of equivolent difficulty in less time. You have not done so.

I would really hate to live in your jealousy-driven world - it is you that are pathetic, devoting so much time to insulting those who are working hard to realize something that could make the world a better place. If you are such a genius relative to the Freenet development team, why not join the project to help solve the problems, and prove your comparative skills, rather than sniping from the peanut gallery?

[ Parent ]

Complex Systems (none / 0) (#47)
by Salamander on Tue Feb 19, 2002 at 05:30:27 PM EST

MojoNation is an impressive and worthwhile project...but it solves a very different problem to Freenet

It's not relevant whether it solves the same problems, only whether it's of comparable complexity. Stop evading the point.

OceanStore is also impressive, but again it is an apples and oranges comparison.

See above. Stop evading the point.

OceanStore's routing is based on Plaxton routing which is a well established algorithm. Freenet's routing algorithm is (as yet) unique to Freenet and is being refined as part of our development effort.

What lovely plays on words. OceanStore's routing is "based on" Plaxton, as though they haven't made any innovations beyond that. Freenet's routing is "being refined" as though it's almost done. Fact is, both are works in progress, and both represent advances in the state of the art. Most people who've examined them would say OceanStore's routing is much more sophisticated, and it's certainly more complex. It's much more true that OceanStore is pushing the boundary of manageable complexity than (your claim) that Freenet is.

OceanStore is impressive, but it is a combination of several well-known techniques including Plaxton routing and Bloom filters, although they are being used in innovative ways.

OK, could everyone in the audience who understands Plaxton routing, Bloom filters, erasure codes and Byzantine agreement please raise their hand? Hm. Thought so. Not exactly well-known techniques after all, and they've hardly been thrown together without careful thought about how to create an integrated whole. No more than Freenet fits that description. What was that about sour grapes, Ian?

I responded to all of the points you raised

You haven't even tried, let alone succeeded. You're apparently much more interested in dredging up unrelated conversations and launching new ad hominem attacks. At least try to stay on topic, please.

Pathetic is...poo-poo-ing the hard unpaid work of others

Perhaps you should apologize to the OceanStore folks, then. You've maligned them more than I've maligned the Freenet developers. There's a difference between disagreeing that Freenet is the apex of software engineering and trying to claim that OceanStore is "nothing special".

You have not substantiated any of your initial claims

Do you know the difference between refuting someone else's claim and making one of your own, Ian? You're the one who claimed that the complexity in Freenet was so great that most other programmers would have given up before they started. I have provided several counterexamples where other developers on projects of equal complexity have not in fact given up. The only burden of proof that exists here is yours, not mine, because you're the one making the claim. Do you still believe, or expect others to believe, that Freenet's complexity is as intimidating (relative to that of other projects) as you claimed earlier? If so, it's high time you stopped attacking people's character and started providing some evidence to back up your statement.



[ Parent ]
burden of proof (none / 0) (#48)
by sanity on Tue Feb 19, 2002 at 06:03:35 PM EST

The only burden of proof that exists here is yours, not mine, because you're the one making the claim.
Will you make it to 1.0 in that year? No.
Sounds like a claim - supported? No

OK, I'll pick a different example. OceanStore. Way more ambitious than Freenet technically...
Erm, another claim - supported? No

So how is it that Linux kernel developers manage to make progress so much faster than those oh-so-talented Freenet developers?

And, yes, here we have it, yet another claim, in fact the core claim I am challenging you to support, and which you are evading by trying to place the burden of proof on me, an impossible burden since it would require an objective way to measure the relative complexity of various projects, a classic rhetorical strategy (try to persude someone that their argument rests on an impossible burden of proof).

Of course, it is you that made this claim, so this burden is on you. Good luck in supporting it.

You're the one who claimed that the complexity in Freenet was so great that most other programmers would have given up before they started.
If you weren't choosing to ignore the context of that statement, you would know that my point was to highlight the difficulty of what had been achieved in Freenet. My assertion is that if anyone (including most of Freenet's developers) had started out with the intention to support Freenet's current feature-set, they probably wouldn't have started, it would be too-daunting a task. It was not a claim that Freenet's developers are the best programmers in the world, but in my opinion, they are among the best, and the number of man-hours spent getting Freenet to where it is now is no more (and probably no-less) than were any other talented software developer doing this work.

[ Parent ]
Debate Lesson for Ian (none / 0) (#50)
by Salamander on Tue Feb 19, 2002 at 07:11:38 PM EST

Unlike you, I'll try to keep it brief.

Will you make it to 1.0 in that year? No.
Sounds like a claim - supported? No

Do you disagree? Are you ready to claim that you will make 1.0 within a year?

So how is it that Linux kernel developers manage to make progress so much faster than those oh-so-talented Freenet developers?
And, yes, here we have it, yet another claim, in fact the core claim I am challenging you to support

It's a claim, but not the claim. Basic debate, Ian: the burden of proof remains with the maker of the original claim. This is the only accepted way to avoid the problem alluded to here (please read the entire list some day). When A has been claimed, accepted responses to a contrary claim B include disproving B or disproving its relevance/admissibility, but not demanding that B be proven. Failure to prove B does not prove A, and it's proof of A that is the standard in debate.

If you weren't choosing to ignore the context of that statement, you would know that my point was to highlight the difficulty of what had been achieved in Freenet.

And yet, regardless of context, you made that self-aggrandizing statement. Context is no excuse for falsehood.



[ Parent ]
Life lesson for Jeff (none / 0) (#51)
by sanity on Tue Feb 19, 2002 at 07:38:54 PM EST

Do you disagree? Are you ready to claim that you will make 1.0 within a year?
I don't know - but I would certainly claim that Freenet will be useful in a year, in fact, it is useful now, that is the core of the argument. Many excellent software projects have huge user-bases despite not-yet reaching 1.0 (WindowMaker being a perfect example).
It's a claim, but not the claim. Basic debate, Ian: the burden of proof remains with the maker of the original claim.
Thanks for the free lesson in rhetoric, perhaps you can answer a question oh teacher: If someone makes a claim to support a response to a claim, can they not be challenged to support that claim? Of course they can.

But this is beside the point. Your obsession with rhetorical mechanics is little more than a smoke-screen to hide the fact that your nit-picking of my language is motivated by personal dislike (you couldn't even write a simple FAQ without offering a disclaimer to this effect - admitting that you can't separate truth from a jealousy-inspired grudge).

And yet, regardless of context, you made that self-aggrandizing statement.
Again, here we see your logic, and at its core is your own inflated ego. We have seen that you believe yourself to be superior to the Freenet development team ("My own project is fully comparable to Freenet ... Total time? One guy, one year."). Clearly, Freenet has received much more publicity than you have. The only conclusion you can draw is that I must be a lying self-aggrandizing self-publicist.

It must be horrible to have your ego so-challenged, do you get solice from nit-picking my every sentence while throwing insults at every available opportunity?

[ Parent ]

Debate Lesson II (none / 0) (#52)
by Salamander on Tue Feb 19, 2002 at 07:58:13 PM EST

perhaps you can answer a question oh teacher: If someone makes a claim to support a response to a claim, can they not be challenged to support that claim? Of course they can.

Actually, that would be considered bad form at best. The original claim remains the focus. Anything whatsoever to do with the response would be a digression unless it was strictly necessary to address the response in order to prove or disprove the original claim. In this example, you can prove or disprove all you like about Linux, but it doesn't help prove your point about the complexity of Freenet because there are zillions of other projects to consider as well. Therefore, demanding proof re: Linux is a mere diversionary tactic and would be judged as such.

You're welcome.

your nit-picking of my language is motivated by personal dislike

Motivated? Certainly. But motivation is not relevant; it doesn't make my statements about you or Freenet any more or less true. Would you like to put a name to that fallacy, Grasshopper?

If you want to show good faith and genuine interest in discussing real issues, you have three choices:

  1. Identify just one project that fits your criterion of the developers having given up before they started because they faced complexity comparable to Freenet, thus proving your point and winning the debate.
  2. Admit that you were engaging in hyperbole.
  3. Shut up.

All three are still possible. All three would be thoroughly acceptable. I'll even offer you another drink if you can manage the first. But if you insist on digressing and/or attacking instead of discussing, expect me to keep pointing it out. I don't care what people think of me; people need to see and understand what sort of person you are, so they won't be misled further.



[ Parent ]
really getting tedious (none / 0) (#53)
by sanity on Tue Feb 19, 2002 at 08:27:43 PM EST

perhaps you can answer a question oh teacher: If someone makes a claim to support a response to a claim, can they not be challenged to support that claim? Of course they can.

Actually, that would be considered bad form at best.

You must be joking. So, I make a claim, you make a counter-claim, and it is bad form for me to challenge your counter-claim? Bullshit.
your nit-picking of my language is motivated by personal dislike

Motivated? Certainly. But motivation is not relevant; it doesn't make my statements about you or Freenet any more or less true

Strictly speaking - no, but it does make you an asshole. I am quite content to demonstrate that if nothing else, since I have every confidence that this argument will be won or lost based on Freenet's success, or lack-thereof, not as a result of the tedious and pointless process of getting into meta-debates with you, particuarly when you lace those debates with childish and unsubstantiated insults.
1. Identify just one project that fits your criterion of the developers having given up before they started because they faced complexity comparable to Freenet, thus proving your point and winning the debate.
Too easy, I prefer Belgian beer. How about 90% of the 34,275 registered projects on Sourceforge, almost all of which gave up despite most of them having goals much less ambitious than Freenet? Just to be exact, here is one project, with complexity comparable to Freenet, that was registered a year ago and never released a single file.

2. Admit that you were engaging in hyperbole.
Even if I was, only someone with a serious chip on their shoulder would feel compelled to whine about it.
But if you insist on digressing and/or attacking instead of discussing, expect me to keep pointing it out
I have many conversations with many people which don't descend into personal grudge matches. You are one of the few people who, for reasons on which I have already spectulated, can't seem to have a rational discussion without filling it with childish and superfluous insults (you remember when you accused me of being uneducated, of "selling out" because I accepted an investment from Intel, the list goes on). Why do you feel the need to do that? Unless you can provide another explanation, I will continue to believe that it is simple jealousy.

[ Parent ]
*yawn* (none / 0) (#54)
by Salamander on Tue Feb 19, 2002 at 08:57:13 PM EST

here is one project, with complexity comparable to Freenet, that was registered a year ago and never released a single file.

It only counts if the project died specifically because the author realized it was too complex. Do you know if that was the reason, or if the author became too busy IRL, had a kid, died, whatever? Was the author even, realistically, a software engineer? You specifically mentioned software engineers in the original claim so some college kid who got into something over their head doesn't count either.

Harder than you thought, isn't it?

I have many conversations with many people which don't descend into personal grudge matches.

Glad to hear it. I've heard Stalin could be quite charming sometimes as well. Not that I'm really comparing you to Stalin; just making the point that being civil occasionally doesn't mean you can't be a prick frequently, and certainly doesn't lend any extra credence to any claims you might make about me. Just another ad hominem attack in lieu of argument, I guess. Are you going to return to the point someday?



[ Parent ]
still more tedious (none / 0) (#55)
by sanity on Tue Feb 19, 2002 at 10:14:05 PM EST

It only counts if the project died specifically because the author realized it was too complex. Do you know if that was the reason, or if the author became too busy IRL, had a kid, died, whatever?
What a dumb little game, if I did you would probably want me to prove that he isn't lying. Loathe as I am to indulge your silly game, I do like free beer, so how about libfreenet? There is little question that he didn't die or have a kid. As for being too busy, how do you propose to separate that motivation from the difficulty of implementing the software?
just making the point that being civil occasionally doesn't mean you can't be a prick frequently
Yes, at least there is evidence that I am not always a prick, I see little evidence that you are capable of not being an asshole.

I don't rely on the fact that, unlike you, I am often capable of civil debate, to point out your inability to do the same. It is absolutely clear to anyone who reads our previous debates where I struggle to be polite as you accuse me of being an uneducated sellout.

[ Parent ]

Wrong again (none / 0) (#56)
by Salamander on Tue Feb 19, 2002 at 10:41:35 PM EST

how about libfreenet? There is little question that he didn't die or have a kid.

There is even less question that he did not give up before you started. Here's your original statement:

the sheer complexity of what is achieved by the current Freenet codebase would make most software engineers give up before they had started

Not only did he start, but his work seems to've reached a pretty reasonable state of completion. Strike two.

Yes, at least there is evidence that I am not always a prick, I see little evidence that you are capable of not being an asshole.

You might be forgiven that impression if your only knowledge is of the exchanges we've had. You do seem to bring out the worst in people...your cohorts even more than your enemies. On the other hand, a few hundred of my posts on Slashdot (your clone WNight notwithstanding), a few dozen here, I don't even remember how many on Usenet or elsewhere over the last decade and a half, are still around to demonstrate that I am indeed capable of not being an asshole and that you are incorrect again. Remember, Ian: the one consistent feature of all of your disappointing relationships is you.



[ Parent ]
Free beer seeming less worth the boredom... (none / 0) (#57)
by sanity on Tue Feb 19, 2002 at 10:55:26 PM EST

There is even less question that he did not give up before you started.
Now you really are being pedantic to the point of severe boredom. Clearly, it is harder for someone to give up after devoting a large amount of time to something (and even having some success), than to never start in the first place.
You do seem to bring out the worst in people...your cohorts even more than your enemies.
Firstly, it probably isn't a bad thing to bring out the worst in your enemies, I certainly hope I have brought out the worst in you. As for my "cohorts", If that were true I doubt I would still be running a voluntary project after two years to which very smart people devote huge amounts of their time.
are still around to demonstrate that I am indeed capable of not being an asshole and that you are incorrect again
Incorrect how? I said: "I see little evidence that you are capable of not being an asshole", what is incorrect about that?
the one consistent feature of all of your disappointing relationships is you.
That is a pointless truism.

[ Parent ]
Dear Sanity: (none / 0) (#58)
by Ken Pompadour on Wed Feb 20, 2002 at 10:18:50 AM EST

Freenet sucks. You've wasted your time.

No, really. Any software engineer worth their salt would know that quantity of code equate 'complexity'; instead, it usually indicates a naive designer.



...The target is countrymen, friends and family... they have to die too. - candid trhurler
[ Parent ]
Dear Ken: (none / 0) (#60)
by sanity on Wed Feb 20, 2002 at 12:56:47 PM EST

And where exactly did I argue that quantity of code equates complexity?

[ Parent ]
Slather it on (none / 0) (#62)
by Ken Pompadour on Wed Feb 20, 2002 at 01:02:35 PM EST

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.

That's the sort of thing a clueless amateur high-school student would say. Implicit in this statement is the assertation that "lots of shit is good, Freenet is gggggggggreat!"

Jumping up and down and saying "The more shit we put in it, the better it is!" It's an incredibly naive approach to software design.



...The target is countrymen, friends and family... they have to die too. - candid trhurler
[ Parent ]
Really, Ian (none / 0) (#59)
by Salamander on Wed Feb 20, 2002 at 10:45:15 AM EST

I see little evidence that you are capable of not being an asshole

You don't read freenet-tech? How interesting. Over the last few days I've been involved in quite a detailed discussion there, touching on many of the issues where I think Freenet has gone astray, and I think I can say with confidence that I have not been an asshole. What you're attempting here is variously referred to as argument by laziness, invincible ignorance, or argument from ignorance. Note that all three sources (you're welcome, again) identify it as a fallacy.

the one consistent feature of all of your disappointing relationships is you.
That is a pointless truism.

It's a joke, son. Only a...what was that phrase again? Oh yeah. Only only someone with a serious chip on their shoulder would feel compelled to whine about it. Stop worrying about the mote so much.



[ Parent ]
groan (none / 0) (#61)
by sanity on Wed Feb 20, 2002 at 12:59:04 PM EST

Over the last few days I've been involved in quite a detailed discussion there
Do you expect congratulations because you are capable of opening your mouth without insulting people? The point is not the way in which you convey information, it is the way you conduct yourself in debate. Your conversation on freenet-tech could hardly be characterised as a heated debate.

[ Parent ]
you are both lame (1.00 / 1) (#64)
by valency on Sat Feb 23, 2002 at 07:06:45 AM EST

Wow, this is the most painful thread I've ever seen.

---
If you disagree, and somebody has already posted the exact rebuttal that you would use: moderate, don't post.
[ Parent ]
Issues with FCP (5.00 / 1) (#24)
by hardburn on Mon Feb 18, 2002 at 01:30:01 PM EST

I have some issues with the FCP protocol, which I have stated directly to the developers on occation, but I will go over them here for the benifit of the K5 community.

My biggest complaint about FCP is tearing down the connection after each transaction. This is no big deal for the typical target client of FCP (a client running on the same machine as the node or perhaps on the same LAN). Where it becomes a problem is for situations where it isn't practical to have a node running on the same machine (such as an embedded device). Incidently, having non-persitant connections was a major concern for HTTP 0.9.

Tearing down the connection means redoing the TCP three-way handshake. It also means any stateful firewall rules (where the administrator automatically allows any packets which are part of a current connection) are also redone and the new connection must pass through the normal firewall chain once again.

Personally, I think the client protocol should have been designed around HTTP 1.1. This would allow current HTTP clients to use Freenet transparently. Yes, there is already FProxy, but FProxy treats HTTP like a gateway protocol, whereas I'm talking about using HTTP as a native client protocol.

This could be accomplished by allowing Freenet clients to set a "X-Freenet: true" HTTP header, which would tell the node that the client understands special Freenet-specific HTTP headers. Lacking this header, the node sends only information any old HTTP client would understand.


----
while($story = K5::Story->new()) { $story->vote(-1) if($story->section() == $POLITICS); }


You say it yourself.. (5.00 / 1) (#26)
by sanity on Mon Feb 18, 2002 at 01:49:36 PM EST

My biggest complaint about FCP is tearing down the connection after each transaction. This is no big deal for the typical target client of FCP (a client running on the same machine as the node or perhaps on the same LAN).
This is the core point, FCP is only (except in very rare situations) supposed to be used over the local loopback connection, where set-up and tear-down costs are insignificant.

Certainly, basing the client protocol on HTTP 1.1 is an interesting idea, and there is nothing to prevent creating a servlet which does exactly that, and can be plugged in to the Freenet architecture.

[ Parent ]

Not a safe assumption (5.00 / 1) (#28)
by hardburn on Mon Feb 18, 2002 at 02:44:57 PM EST

I just don't think it is safe to assume that loopback will always be used. Like I orginally said, embedded devices are almost always going to be pure clients, so you need to have a protocol that can handle that sort of situation. Persitant connections would go a long way twards solving this situation. If this change would harm current implementations of FCP designed for loopback use, I could see the problem, but as long as node support it use (but not make it mandatory), I don't see the problem. This is the same route HTTP 1.1 took to solve the problem (or was it v. 1.0?)

Oh, and I am thinking of making an HTTP client servlet for EOF, along with a full specification for using HTTP as a Freenet client meathod.


----
while($story = K5::Story->new()) { $story->vote(-1) if($story->section() == $POLITICS); }


[ Parent ]
Concrete example (4.00 / 1) (#39)
by sanity on Mon Feb 18, 2002 at 08:00:11 PM EST

I have been trying to think of a single example where an embedded device would run a freenet client that would talk to a remote freenet node via FCP (rather than simply using HTTP to talk to the remote node via FProxy). I can't.

[ Parent ]
I can think of many situations... (none / 0) (#40)
by boomi on Tue Feb 19, 2002 at 03:18:14 AM EST

Run Frost on your PDA for example?

[ Parent ]
A client node is what you want (none / 0) (#41)
by BlckKnght on Tue Feb 19, 2002 at 04:26:46 AM EST

This is pure speculation on my part. I'm not a freenet hacker, and if I'm way off base I hope I'll be corrected by some one more knowledgeable.

What I mean by "client node" is a node with no data store, that only forwards FCP inserts and requests to other "real" nodes, and refuses requests and inserts from the net. Though not really good for freenet as a whole, this kind of minimal node could be best for people who only want to use FCP clients and not have a node of their own.

A minimal client node would probably be runnable on an embedded device (though it would surely be slow at doing crypto on low powered machines). And if you would do it that way, your PDA would be a true member of Freenet and would not require any insecure FCP link to a real node.

I don't mean this to imply that improvements to FCP are a bad idea (I don't know much the issues raised in this thread). But I think this idea is a better general solution than using FCP between seperate machines, since it offers a lot more security.

-- 
Error: .signature: No such file or directory


[ Parent ]
Client Nodes (none / 0) (#49)
by hardburn on Tue Feb 19, 2002 at 06:20:49 PM EST

What I mean by "client node" is a node with no data store, that only forwards FCP inserts and requests to other "real" nodes . . .

All software that uses FCP can be configured to point at some machine other than localhost, so as you describe them, they are "client nodes" already.

What I'm basically argueing is that, since FCP was desgined to only be used on localhost, it is totally ill suited for any kind of embedded device or other situations where we might want to do things remotely. In other words, it should have been designed with remote access in mind even if it should be used only on localhost on anything more than a PDA.

(though it would surely be slow at doing crypto on low powered machines).

Everything transfered over FCP is in plaintext. This is part of the problem, as you'll need encryption over a remote link if you want to keep Freenet's privacy features. Even so, a session key using AES or Twofish exchanged via RSA should not place too much of a burden on small devices (IF you have presitant connections).


----
while($story = K5::Story->new()) { $story->vote(-1) if($story->section() == $POLITICS); }


[ Parent ]
Why Freenet is Complicated (or not) | 64 comments (60 topical, 4 editorial, 0 hidden)
Display: Sort:

kuro5hin.org

[XML]
All trademarks and copyrights on this page are owned by their respective companies. The Rest 2000 - Present Kuro5hin.org Inc.
See our legalese page for copyright policies. Please also read our Privacy Policy.
Kuro5hin.org is powered by Free Software, including Apache, Perl, and Linux, The Scoop Engine that runs this site is freely available, under the terms of the GPL.
Need some help? Email help@kuro5hin.org.
My heart's the long stairs.

Powered by Scoop create account | help/FAQ | mission | links | search | IRC | YOU choose the stories!