
IEEE Computing Covers Freenet 295
Rayban writes: "From the Freenet Project homepage: IEEE Internet Computing has an article (pdf) entitled 'Protecting Free Expression Online with Freenet.' It provides an excellent technical introduction to the core ideas behind Freenet."
The Cheap Alternative to Subscribing (Score:2, Offtopic)
Follow these five easy steps and never see another Slashdot ad again:
If you are a Javascript wizard and know how to make this script work on Opera or IE, please tell me. Ad-free Slashdot should be available to everyone!
Re:Yes, you could... (Score:1)
Re:Why is this at -1? Re: The Cheap Alternative to (Score:1)
Yeah, it's for "security reasons" (Score:2)
The IEEE (Score:3, Insightful)
Sorry, that was a bit off-topic I know.
Re:The IEEE (Score:2)
A lot of non-US IEEE members left the IEEE when it started backing additional limitations to the number of engineers allowed to enter the US, claiming that overseas engineers were bad, of lower standard, willing to work for less, and should be kept out.
Not really a good look for an organisation that had presented itself as being internationally representative.
This is a great pity, since, as you say, organisations like this are EXACTLY what are needed in the current climate of knee-jerk anti-technology actions happening at present.
FreeNet seems a great idea, unfortunately it tends to be bogged in pr0n just like all other file sharing systems (although freenet is of course much more than a file sharing system), how can the usefulness of these systems be increased? the problem is reducing the 'wasted' content.
I would suggest that a system of 'targeted' freenets would be very interesting, for example perhaps an 'opensource' freenet which was actively culled of anything other than source, documentation, and installables of opensource software.
Re:The IEEE (Score:1)
lets not all forget what ageold killer app got the 'net in (almost) every home. now if only they'd make multi-angle HDTV pr0n channels...
oh shit, did i make that post out loud?
Re: IEEE-USA was nervous, not international IEEE (Score:2)
IIRC, it was the USA subdivision of the IEEE that was nervous about immigrants coming in and taking jobs at lower salaries than their native U.S. peers. While I do not believe that IEEE-USA should be outrightly be calling for a ban on visas, they should be concerned since other industries have cut costs by using foriegn immigrants in a similiar manner.
Granted, since the IEEE's main offices are in the U.S. (about an hour's travel from me), IEEE-USA's views could easily be constrewed as the IEEE's international views. But to date, the articles I have read suggest that IEEE international is trying to stay as little involved with IEEE-USA's local agendas as possible.
These views are my own; they are not those of the IEEE. Disclaimer necessary since I have a few IEEE papers published, and was taught by a few professors that are prominent in IEEE societies :)
Re:The IEEE (Score:1)
Freenet and Debian (Score:2, Informative)
I think it'd be sad to see the great amount of work that has gone into Freenet excluded from one of the leading Linux distributions, particularly as Debian is all about Freedom.
Re:Freenet and Debian (Score:2, Interesting)
A number of distributions have removed P2P file-sharing applications from their distros. As courts in both the US and Europe seem to have determined that P2P apps are illegal under DMCA-like statutes, the distributors do not want to have the status of the entire distribution jeopardized by one or two applications.
While this does not seem to be the reason for removal from Debian, it is why Mandrake has taken the Gnutella clients out of the core distro.
Isn't another issue with Freenet the fact that it only runs with Java? If Freenet only runs under Sun's JVM, it could be construed as depending on a non-free package, which would invalidate it as a part of Debian. Perhaps bugs in Kaffe are what is actually preventing Freenet from being in Woody?
Re:Freenet and Debian (Score:2, Informative)
No. If you think this is a step backwards for the Debian project at a time when competitors are working on similar technology, you can (and should) find and fix the release critical bugs [debian.org] that are keeping it from being included.
Re:Freenet and Debian (Score:1)
Re:Freenet and Debian (Score:1)
...
...you can (and should) make your voice heard by mailing a polite notice..."
No. You should make your voice heard by submitting patches fixing the bugs that are the reason that these packages are being removed from Debian/testing (there is no such thing as Debian 3.0).
Re:Freenet and Debian (Score:5, Insightful)
Debian is approaching a release. Debian doesn't release packages with release critical bugs. The Debian Freenet package has a release critical bug logged against it. Ergo, Freenet has been removed from the release list for the upcoming Debian release.
IIRC, Apache was given the same warning prior to the release of Potato. This served as an impetus to the Debian Apache team to get rid of the bugs.
The correct response to this news is "Well, lets get to work and fix these release critical bugs!", not "There's a great conspiracy of Debian developers to stifle Freenet."
Russ %-)
Re:Freenet and Debian (Score:3, Informative)
Actually, they dicussed it with us (the senior freenet developers) and we _asked_ them to remove the freenet package - it does not belong in a stable distribution, even if whatever outstanding bug they have at the moment is fixed.
So the correct response is probably: Go away. The "express your opinion on this injustice" people are just being an embarrassing nuisance.
Debian doesn't care. (Score:2)
I am always very courteous to package maintainers because I know that the work they are doing is a gift to the community. I don't have the mad C/C++ skillz needed to maintain any serious packages with debian, and I haven't had the free time to learn the ins and outs of creating .deb files.
If you think about it, Debian is one of the larger "gifts" that I personally have been a recipient of. It's a (usually) wonderful operating system, I'm (usually) able to apt-get install almost any package I hear talked about on slashdot or linuxgames, and ponder for just a second on the amount of bandwidth consumed by ftp.us.debian.org on a daily basis.
The sooner that people learn TANSTAAFL [jargon.net], the better the world will be.
--Robert
Re:Debian doesn't care. (Score:1)
Open source is like a community garden. If you don't help sow the seeds and water the plants don't complain if the tomatoes aren't up to quality when it comes time to harvest. Learn a programming language or two and pitch in.
One of the things I love about the open-source community is the fact that they are unwilling to release inferior-quality or insecure software on the public unlike many commercial vendors. If the software is insecure don't try to force them to include it anyway.
(And if the software is potentially illegal then don't even bring it up in connection to the distro's name. Big brother's watching.
-Sara
Re:Freenet and Debian (Score:2, Informative)
So you'd be on a freenet with a few clueless other users. Or not even that, since you have no way to find them, and no real node will talk to you!
--Dan
anonymization arms race (Score:5, Insightful)
Ashcroft is the guy who pulled lots of federal enviro data on pipeline locations and stuff from the Net. He will have to attack Google caches and stuff to completely hide this information.
Total lack of anonymity is next. How can Freenet survive if the service is branded as terrorist and the individual humans are pulled away from their terminals while servers are confiscated? No robustness of code can prevent this.
I love Freenet, but to protect anonymity we must acknowledge that not all solutions to civil liberties restrictions are code-based. We must back them up with aggressive defence of civil liberties in political and protest arenas.
Frost (Score:4, Informative)
Freenet is somewhat slow now, but the number of nodes increase the speed! The more Slashdot users that join, the faster the network will get, so help out guys
Re:Frost (Score:2, Informative)
Re:Frost (Score:1)
In other words, it just isn't that easy to attack.
And that doesn't create any need to "qualify who you're connecting to". There are already defenses against poison nodes (or anyone else) modifying data in-flight or doing other Nasty Stuff.
Freenet... Why? (Score:3, Interesting)
A year or two ago there was a presentation at my college about Freenet. One of the CS guys here was "on the development team" (whatever that means). I never did hear a real reason, other than ideals, for doing it. (In fact the kid that was talking about it was mentioning an effort to try moving it onto packet radio, thus freeing it from even the censorship of ISPs. This threw a huge red flag for me that he didn't know what he was talking about: this is blatantly illegal by FCC regulations, and anyone who tries it will lose their ham license! No encryption is allowed, in any form whatsoever. You can't even legally come up with a substitution cypher, like "beans" means "meet me in the parking lot" and "chicken" means "9:30pm". NOTHING. And the encryption issue is just the tip of it. Read up on it, get your ham radio license, it'll be immediately clear that doing anything even remotely resembling this is just not feasible on the ham bands in the US.)
So yeah, I'm veering off-topic. Anyway. Let me reiterate: I'm not telling anyone NOT to do work on something they're devoted to. I do appreciate the ideals that Freenet stands for. But seriously, what's going to make it succeed? What makes it worth the horrible inefficiencies designed into the protocol? Is it actually useful to anyone? Alright, enough from me. I hope someone can answer these, I'm very curious. Somebody give me a reason to help the development effort!
Re:Freenet... Why? (Score:1)
Re:Freenet... Why? (Score:2, Informative)
The problem is complexity. The Freenet protocol is more complex by orders of magnitude than protocols such as gnutella, FastTrack, edonkey, etc. Complex software is hard to write. Complex software that cannot be tested before release is almost impossible to write.
Do you believe in death after life?
Re:Freenet... Why? (Score:2)
Re:Freenet... Why? (Score:1)
No. Freenet makes a few copies of a document when it is inserteed.
Freenet makes copies of a document when it is requested (via nodes that don't have a copy).
Freenet forgets douments that are not requested.
The result is that popular documents are distributed all over the net which is a nice way of distributing the load of the requests. No Slashdot-Effect.
Unpopular documents are stored on fewer nodes so they take up not much of the available storage capacity. (If they are too unpopular they will drop out of the net.)
So freenet is not only resistant to censorship, it is also an efficient way to distribute documents that will be in high demand because freenet is a distributed cache.
Re:Freenet... Why? (Score:2)
If time-efficiency (or redundancy) is important, then having multiple copies is well worthwhile. Space is cheap. Availability isn't, always.
Re:Freenet... Why? (Score:2)
Redundancy IS storage-inefficient. My original question was, is this tradeoff worth it? What do you use Freenet for? Somebody, please answer the question!!
Re:Freenet... Why? (Score:1)
porn, what else?
Re:Freenet... Why? (Score:2)
What do you use Freenet for? Somebody, please answer the question!!
At the moment, not a whole lot. Some people apparently like to post inflammatory or politically incorrect comments to the authors of popular Freesites (like Content of Evil); and because the submission of this information is anonymous, they can say outrageous things without as much worry that someone in dark sunglasses will come knocking on their door tomorrow.
But it's rather easy to imagine some of the possible uses for Freenet. Consider a web comic. Most web comics are published daily, or N times per week where N is between 1 and 6. In order to do so, the comic author has to have a place to host the comic, for which he or she probably pays a monthly fee. The more popular the comic is, the more bandwidth the author will have to pay for. The current models of financing this business/hobby are advertisements, merchandise, and requests for donations. Most web comics are doing at least two of these; many do all three.
Now, consider what would happen if a web comic were published on Freenet instead of the World Wide Web. One of the most popular sites in Freenet, Content of Evil, is published by someone claiming to be a dial-up user! You don't have to pay bandwidth costs for Freenet publication. In fact, the more popular your site is, the better.
The "daily update" nature of most Freenet sites lends itself perfectly to web comics, which are also updated daily. (If you miss a day, your site will be unreachable for that day, but astute readers will know how to get yesterday's edition.)
I don't know of anyone who's using Freenet for such a purpose; I don't even know of anyone who's considering it yet. Freenet's not really stable enough for such an undertaking yet. It's also a bit newbie-unfriendly; most of the people who draw comics aren't geeky enough to understand Freenet's CHK, KSK, SSK, etc., let alone that insane "encode the date in hexadecimal" thing.
But there may come a day when Freenet is fast and stable, and it's relatively easy for an end-user to understand how to publish a Freenet site. (There is a fair amount of documentation floating around now; it varies in quality and up-to-dateness.) When that happens, a great number of assumptions that we take for granted may be overturned.
Re:Freenet... Why? (Score:1)
Re:Freenet... Why? (Score:1)
Let's suppose the existance of some individual involved in helping political refugees from Burma seek asylum in the United States and distributing suppressed (Christian) religious literature there. The ruling Burmese government, needless to say, doesn't like this -- and while this hypothetical acquaintance is presently operating from the United States, she might want to be able to go back to Burma for some reason. Even more important is the privacy of those individuals operating out of Burma presently.
Now, strong crypto is illegal in Burma, and they have the firewall thing going on just as China does (all email is delayed for a day for review) -- but just being able to move data anonymously between the involved individuals is a valuable thing in and of itself.
What they need more than something like Freenet, incidentally, is systems like PGP to encrypt internal documents (once again, mostly not in Burma -- illegal there -- but elsewhere; there's been an attempt to infect their machines with a modified Sircam version reporting back to the Burmese government). Now do you see why some people truly need privacy?
Re:Freenet... Why? (Score:2, Interesting)
Because someone like you won't let them do something stupid like store files uploaded at your node in plaintext before encrypting them... and _LEAVE_ them in the datastore plaintext, forgotten, just waiting for someone to come and find them.
Or how about not creating temporary files for large uploads? Would you do that? Would you just tell someone to 'delete them' afterwards, or would you go through and overwrite the contents with random data first?
Perhaps you would be able to create a block storage system with the simple requirement of storing files sized in powers-of-two that won't continually decide to eat it's own contents.
Then again, you might choose to implement speed-critical things like cyphers in a machine-native language (C), so the whole project will run at a reasonable speed.
Perhaps you might be inspired to write the WHOLE thing in a machine native language (C) and spend (gasp) 25 minutes writing some wrappers around the few OS-dependant things it has to do (Network sockets, mostly. Opening files is pretty standard)
No, someone like you better stay off the project, god forbid it be usable by now!
--Dan
Re:Freenet... Why? (Score:1)
I like C. I use C frequently -- on small projects (excluding those small projects on which I use Python; it too is frequently The Right Thing). Anything that's not small needs OO to help keep the design simple. Freenet is not small. It isn't huge, either, but its design is fairly complex. For most of us who use it, the point of Java-the-language isn't portability; the point of Java-the-language is having a consistant language with good runtime error-handling, proper OO support, garbage collection, a large high-quality standardized runtime library, etc. 25 minutes worth of wrappers won't do a thing to help those.
Let me ask you: Do you enjoy checking the return value of every function you call to see whether it succeeded? Or do you just not do it?
Further, let me mention that Freenet does run at a reasonable speed (particularly using a decent JIT runtime). For a time it had some bugs which caused it not to -- but they're fixed now. Criticizing a project because of the bugs it had at some point in its development (and here I'm referring also to the datastore bugs and others you mentioned) might be an easy way to score some points on slashdot, but it's hardly fair -- as anyone who's seen a project of some complexity through can tell.
Re:Freenet... Why? (Score:1)
Re:Freenet... Why? (Score:4, Insightful)
Basicly, once its big enough, i'll use it just like i currently use gnutella.
Re:Freenet... Why? (Score:1)
Re:Freenet... Why? (Score:3, Informative)
The coolest thing freenet is used for now: helping free speech in China. There is a version that fits on a floppy and it's used to spread information about things the Communist party doesn't like: basically anything that isn't pro-Communist party.
The funny thing: when pressed on what freenet is used most for, the answer came back: porn. Laughs all around at the talk, but the positive impact in China seems like a good example to me.
"To hold a grudge is to maintain an intense connection with someone you might not want to have a relationship with in the first place."
-Francine Prose
Re:Freenet... Why? (Score:1)
It may funny, but it is a good sign. If porn flourishes on this "medium" then this medium is probably going to be a success. Porn is the most censored type of "speach" out there. Look at the VCR industy. A major reason why Sony failed to get the Beta max out there was because it resisted the porn industry from using thier format. The Internet was widly used to distribute porn when it was just getting commercialized. Look at it now.
I think Freenet will take off when it becomes real easy for regular users to download and install the programs and not have to worry about how to set it up. Eventualy there might even be a commercial interest in doing this.
Go Freenet!
~Sean
How it could become Popular (Score:1)
Re:Freenet... Why? (Score:1)
Is there any better reason to do things than "ideals".
If you speculate a little bit about the future, there will be plenty of other reasons to have Freenet as an option when the RIAA and MPAA start going after individuals for sharing things they don't think you should (like decss for instance).
Re:Freenet... Why? (Score:4, Insightful)
If I wanted to put up pictures from my vacation, I'd use the web and HTTP protocol - everyone has it and there is no content problem with my pictures. I wouldn't ask my friends to download (and compile!) a tool and pass around PGP keys.
Freenet et al come into their own only when you want to put up content that you expect that people will try to force you to take down.
Sometimes that content does have some redeeming features even if illegal; the Xenu texts help show how ridiculous Scientology is at the higher levels, yet they're illegal (copyright violation.) The documents spirited out of the tobacco companies that proved everything they'd ever said about "no harmful effects" were lies and led to the huge settlements to the government: All private, controlled documents that were effectivly stolen and illegally published by the whistle-blowers.
These are the things people "think" when they think of how freenet, &c. will save free speech. Yes, they're illegal, but they're important.
Of course, the report compares their system to Napster, not whistle-blowing. Argue as you may, Napster was just another system for distributing material of questionable legality (i.e., if you had the CD, you could have burnt that MP3 yourself!) The whole report has a feel of "here's how we're not gonna be shut down like Napster was." I don't know the exact history, but didn't freenet really only take off when Napster started having problems?
Dose of reality: If anything actually useful does make it into the FreeNet (and ugh, couldn't they have picked a name that doesn't mean "Free Network BBS access" to anyone who'se been online > 10 years?), it'll never be found, expired away to make room for all the goat and child movies.
Excellent post. (Score:2)
Re:Freenet... Why? (Score:2)
Don't count on it, companies have successfully sued for copyright ownership of the image of their buildings. I believe the landmark case was the rock and roll hall of fame building, so at least if you went to Cleveland (he) you probably cannot freely post your pictures.
Re:Freenet... Why? (Score:1)
As it sounds... freenet, freedom network, freedom to publish websites without any fear of copyrights, without differences between rich people who can pay bandwidth and who not, without anybody controling the websites you visit, etc.
By the way, if you use Windows, it isn't useful at all. How can you require any privacity or anonimicity from a closed crappy os like Windows?
Luckily, you are (still) able to choose!
Do you like the SSSCA? (Score:2)
Well then, if you dont like the SSSCA, the RIAA, the DCMA, and you want to challenge it, write applications which are impossible to stop.
Gnutella isnt enough, eventually Gnutella will be attacked in some way and people will need somewhere to go,when this happens freenet has to be ready.
We already have a frost front end, and freenewsreader, we have the FreeWeb, as far as having a napster like app for freenet, thats not going to happen, but you will be able to share files on freenet in complete safety.
Re:Do you like the SSSCA? (Score:1)
A napster-like app using freenet has been in the works for some time. See espra [espra.net].
Espra is dead (Score:2)
Cheap content distribution (Score:2)
Forgetting about all the anonymity/freedom-related arguments in favor of freenet... it provides a means of allowing the users to pay for your content distribution!
This is great for folks running, say, a free webcomic who hitherto have had to pay $750 a month for their bandwidth. With freenet, the cost of distributing the content is paid by the users; the more the users use it, the more it's automatically distributed. That has a great deal of value. If I were running a non-commercial web site with a fair bit of traffic and couldn't find free hosting elsewhere, I'd probably run it on freenet myself (perhaps with a for-pay web version so folks who want to go that route can pay for the bandwidth themselves). If the webcomic authors wanted to take advantage of freenet's anonymity features (which they probably wouldn't -- getting credit for your work is a Good Thing), they could also avoid being sued by corporations angry about such things as, say, Jesus peanut butter cups [goats.com].
Sure, not many people use it right now. Once critical mass is reached (of either users or content), it's reasonable to expect that to change.
Re:Freenet... Why? (Score:2)
Seriously though. I've gotten a million replies saying "freedom of speech". But is it speech if nobody listens? I'm asking for an actual use. China, yeah yeah. (What do you do when they decide to put anyone using Freenet in prison? Fat lot of good that did you, eh?) Cryptome.. there's a million and one better ways to do it that are here now and working great.
I'm sorry. Maybe the replies I've gotten are perfectly great, and I'm just stubborn and unaccepting of them. It doesn't feel that way though. These answers are extremely unsatisfying to me. So, in response to all the other people who will repeat that I need to stay away from Freenet: don't bother, I already do. ;) (I am still welcoming any honest answers to my original question, though, from anyone who has more to say than that I am a retard for not understanding what "free speech" means. I look forward to reading them.)
Its not like that (Score:2)
I understand programmers can be esoteric. I took the chance to talk to some of them in IIRC, alot of them are cool. Certainly not as bad as the gnome programmers.
Anyhow, Why sould you develop for freenet? I'll tell you why, because you'll be helping a great deal of people, millions in fact, including yourself. Theres many reasons to use freenet, free storage for the masses is the most obvious reason. Webpages wont cost a dime anymore using freenet So you and many others would save money.
Popular websites would never be taken down, the more popular it is the better the connection is. Freenet works almost like the brain does, the most popular your data the more connections to it.
Work on freenet to make an alternative to the current world wide web if the ideals dont impress you do it for the technology aspect, make freenet a success and you could end up with millions of users who switch from the regular internet, because the regular internet is becoming more and more censored.
Hey i cant tell you what to do, but if i had the ability ( I dont know java ) I'd help make some kinda front end for freenet
Re:Freenet... Why? (Score:2)
Re:Freenet... Why? (Score:2)
Re:Freenet... Why? (Score:2)
Freenet-the-medium encourages the forum; that's all it can be expected to do. (Incidentally, message boards like Frost make having that forum even easier). Perhaps the forum doesn't exist yet (and perhaps it does) -- but by providing an underlying layer, Freenet makes it easier for those who wish to create it to do so; that's all that one can reasonably expect from any technology.
Ask yourself: Does the NNTP protocol itself, or any client or server for the same, actually create a forum in and of itself that anyone uses? How about TCP/IP (on top of which NNTP sits)? And if TCP/IP doesn't create a forum (but still provides a medium for applications like newsreaders which you might argue do), does that it make it less valuable, or more?
Thank Freenet=TCP/IP, and Frost=Usenet. Does that help any?
Re:Freenet... Why? (Score:2, Informative)
Re:Freenet... Why? (Score:2)
There isn't enough bandwidth in the HAM frequencies anyways. There are other bands that are completely unlicensed, though typically they are supposed to be limited to low range use (although at least here in Europe there are unlicensed walky-talky bands with typical usage over several kilometers).
It's great having an international freeway ... (Score:1)
- perv at (monitor activity) what I'm doing (item 1.3)
- refuse access at their discretion (item 2.8)
- pass on any liability due to fraudulent access (item3.5)
- censor any content deemed inappropriate (item 4.3);
- keep any left-over money paid in advance (item 5.2);
- and generally ask me trust them on any software they provide (item 6.4).
I know eternal vigilence is the price for freedom but it would be nice to nap a bit instead of continually maintaining your own system. Now if they can come up with a combo 802.11+freenet cache node and sell it, it might be a hit.
LL
Main problem now- Freenet is slow and in flux (Score:4, Informative)
Re:Main problem now- Freenet is slow and in flux (Score:2, Funny)
What do you mean 'imagine'?
Word 6 to Word2K to WordXP within 3 years, all with back-compatibility issues, far as I've seen.
Re:Main problem now- Freenet is slow and in flux (Score:1)
You mean they don't?!?
Re:Main problem now- Freenet is slow and in flux (Score:1)
If this doesn't mean anything to you, then pretend that your "endpoint" will coincide with release 1.0.
After 1.0, the plan should be quite definite, and hopefully at least as static as any given
Re:Main problem now- Freenet is slow and in flux (Score:1)
Is that supposed to make us feel better?
it's a spammer's wet dream (Score:1)
server push vs. client pull (Score:2, Interesting)
Spammers pollute. Freenet appears to be designed to allow for maximum pollution per unit of legitimate content.
I'd prefer to be proven wrong about this, but it looks to me like the bad apples are going to spoil this barrel even more so than we saw with usenet.
Re:server push vs. client pull (Score:1, Informative)
I'm sure protocols using freenet (in this case Text Over Freenet, which Frost uses) will develop more to a direction where messagers are identified by digital signatures (either with Freenet signatures like SSK-keys, which can be created only by knowing a private key, or by PGP/GPG-like methods) and getting rid of noise/spam is as easy as pressing a button "Show only a message signed by a friend" etc. Trusted keys can also be passed very easily as anyone familiar with keyservers know.
Currently Freenet protocol itself doesn't provide a method to securely pass a message to an SSK-key holder, which can't be read by anyone else.. but the other way aroud works very well. I'm sure this new keytype won't be added to Freenet since it would be another protocol change in the middle of 0.4 development. In 0.6 it could change again.
In Freenet 0.even are development and 0.odd are 'stable' in opposite of Linux Kernel development.
Re:server push vs. client pull (Score:2)
Simple.
The best is yet to come... (Score:5, Interesting)
In my mind, Freenet is still very much in its infancy. At present, it's mostly a prototype, suffering severely from being written in J---, but if gcj gets into a fit state (or some hard-assed hackers re-code it in C), the major problems will be overcome.
But to me, one of Freenet's greatest strengths is almost totally unknown - the bottom layer is designed so that almost anything can be easily slotted in and used as a transport - not just plain TCP/stream sessions, but UDP, or tunnels, or anything.
Because of this design foresight, it's very straightforward to write and plug in a few steganographic transport drivers which traffic keys in devious ways, eg usenet groups with graphics file carriers, or whitespace/grammatical stego in plaintext mailing lists or IRC, hidden packets within webcam feeds, even pirate radio (note that Freenet is high on redundancy and very fault-tolerant).
The way I see it, any determined effort at stamping Freenet out will bring the project alive like never before, and cause it to attract legions of talented and inspired developers to keep n steps ahead in the arms race.
"Repress a religion, and it will flourish"
-- James Herbert
Re:The best is yet to come... (Score:3, Interesting)
I can understand the desire for native-compiled code, but... C??
Re:The best is yet to come... (Score:2, Informative)
More people know C (Score:2)
C is also an easier language, its faster, and its better for these types of programs by nature.
Re:More people know C (Score:1)
As for performance, well sure, a piece of C code that does precisely what it needs to do and no more is going to be faster than a bit of Java code that by its very nature has at least one other thread running. That's bound to take something away, but frankly it's pretty minimal and a well-written piece of Java can be just as fast as a bit of C.
I've been involved in a web-site that is mostly written in Java (the bit that isn't is called Apache), we can easily service 1000 simultaneous connections (this is considered fairly high), and have serviced around 30 million hits a day with 5 servers (and the servers were barely breaking a sweat). In fact, our ISP's firewall keeled over long before the web servers were worried. Oh, before you ask - they're just twin processor UltraSPARCs not E10000s or anything.
So how is C "better for these types of programs by nature"?
Re:More people know C (Score:2)
Thats your opinion. C is not object oriented, its designed totally diffrent, in fact C and Java are opposites. You are comparing Java to C++.
C is a straight forward language, sure you can say that things in C have similar counter parts in java, Java has methods and objects, C has functions, header files, structures and unions.
C is more well known, theres BETTER C coders and very few good java coders (check out most java programs) Theres more documentation and tutorials for C, theres more C code written for refrence purposes and use in your projects.
Please dont make me laugh with this Website written in Java stuff, Java will never work for the web, it was a bad idea from the start, Java Applications however i think will be just fine.
A well written peice of Java can be as fast as C you say, yes thats true, but a well written C program can be as portible as Java.
The real benifit is the fact that everyone knows C, as far as using C for websites you can do that. Ive never done it myself but i know it can be done.
The benifit of Java and perhaps the only benifit i know of, your code may be alittle less buggy.
As far as your code being optimized, you'll never beat C here with java, Java code is not native, You can compile the C code to take advantage of your hardware, now maybe, MAYBE there is a way to get native speeds in java, but its still not as efficient as C.
My opinion is, for some programs object oriented languages may be better, take a look at KDE vs Gnome for a good example. But for others, i think you could write it faster in C.
Compare how you'd write a program in C, then compare it in C++, then Java, depending on the program, the size of it, and what its doing, it can be written faster in a certain language.
I'm no freenet programmer so i cannot say, but if the programmers say java is a problem and they are working on freenet, hey i guess java is a problem.
The only reason I'm not involved in freenet is because its Java, if it were C i may have gotten involved somehow.
I dont think i'm the only one.
Few computers know POSIX (Score:2)
a well written C program can be as portible as Java.
Not if you want to use advanced OS features such as sockets or a GUI and the most common workstation operating system [microsoft.net] on the most common consumer workstation [dell.com] doesn't support POSIX well, let alone X11. Or are you talking about emulating POSIX on a winbox [cygwin.com] (that is, the opposite of WINE)?
Java code is not native
Bull. GCJ [gnu.org] can compile Java language source code to a native binary using the same code generator G++ uses. Granted, you do lose a bit of performance to the GC thread.
Re:More people know C (Score:2)
The fact that more people use C says little about the language except that it is older and popular. (Lots of people here would be upset if you applied the same argument to Linux versus Windows.)
For a network app, it is ludicrous to write in C. You have to deal with buffer overflows, memory leaks, cumbersome char*-handling routines, and portability problems. Out of it you get a whole lot more code for a lot more time and headache, and also some speed increase. During the same time, you could have been optimizing your Java (or whatever) program and improving things like data structures and algorithms (which as we all know is what *really* matters in performance).
I ran a freenet node for a while and speed was not a problem. Ease of development and security are much more important, and Java (or other, better modern languages) win hands down for these.
"Easier"? (Score:2, Insightful)
C is certainly faster. C is without question better in most cases for low-level code -- whoever thought of writing an OS in Java should be shot.
On the other hand, Java makes it much easier to assemble (fairly) large, complex projects -- which, in case you haven't noticed, Freenet is. Network and stream handling is genuinely easier in Java than in C; the same goes for many other tasks. SQL is another that jumps to mind, though it's not particularly relevant here; proper exception handling is Yet Another Java Advantage (don't you hate checking every function's return value in C? Or worse yet, do you just not do it?), and not having to worry about buffer overflows or accumulating unfree()'d memory over days of operation is damn nice.
Understand -- almost all the code I write is in C, Java or Python, and I respect all three for the things they're good at. Freenet is certainly not a Python project, and (due to the need to structure its design effectively and do correct error handling easily) it strikes me as more of a Java project than a C one.
Yes, more people know C -- but if it takes them twice as long to get to release (tracking and removing all the memory leaks and potential buffer overruns, recreating the network code Java does for them, &c) or just takes newcomers twice as long to understand the program's structure (something OO, when done right, makes easy), that's no killer advantage.
Well duh (Score:2)
Java is object oriented, the whole point of the object oriented design,is to help with complex BIG projects.
However freenet while its complex, i dont think its a "BIG" project. KDE is a big project and its not nearly as complex as freenet.
Big projects benifit from using objects.
As far as if C is easier than Java, to me C is easier, Java has"MORE" syntax than C, its a totally diffrent way of thinking (Object Oriented)
Theres alot of confusing things about Java.
As for bugs yes Java can handle bugs. I just dont think Freenet benifits from the Object Oriented style, please tell me how.
You are right about memory leaks, you are right about buffer overrun, what you forget is how much C code is already written, people wouldnt have to reinvent the wheel for alot of things like they will have to do in Java.
You are right it will take them longer to release at first the foundation, however once that is complete i think C would be nice. If it were C it would also be much easier for Windows users, and Linux users, even Mac users because it could be intergrated very well into the OS.
As far as understanding structure, I think C code is more unstandable but thats just me, anyhow my point is, If its written in C it would have more developers, the project might have been more on the scale of gnutella instead of what it is now.
It would be easy to write a freenet frontend in visual basic for windows but as for java, how do you write a front end for that.
I dont know, I think java has its advantaged but if they needed object oriented i still think C++ would have been better. But if they dont need object oriented, C would have been my choice.
My choice doesnt mean much though does it.
Re:Well duh (Score:1)
Also, if you expect folks to need to reinvent the wheel in Java, I don't think you've looked at much of the code out there. Quite a bit of the stuff you need to resort to weird libraries to in C (and in doing so limiting your portability) is included in Java's runtime library (and has a consistant level of quality and coding style).
[RANT]
C++? C++ is an inconsistant POS language (just try using its more unusual features like RTTI or inhereting from templates and seeing how differently "standard" compilers will treat your code) with a (relatively) lousy runtime library. It isn't OO, it isn't procedural... what it is is Ugly And Bad. There aren't many languages I actively dislike -- but C++, like Perl, is among them.
[END RANT]
As for integrating into the OS, that's why Freenet has FCP (the Freenet Client Protocol). Folks can write their clients natively, as they like (even in VB for Windows, as you mention) and use a very simple protocol to communicate with the local Freenet node. Easy 'nuff, no?
Re:Well duh (Score:2)
Java just doesnt feel like a real language to me, it almost reminds me of visual basic, I know its a real language but, I dont like it.
Perl makes no sense, follows no standards, its just weird, it is good for stuff dealing with strings but thats about it.
Re:Well duh (Score:2)
I think maybe you just haven't had enough experience with Java? Having no core dumps, memory leaks, or buffer overflows really is a nice thing, especially for network apps...
Re:The best is yet to come... (Score:1)
Re:The best is yet to come... (Score:1)
I thought being a professional Software Engineer developing in both Java and C++ would somehow make my comment worth reading, but I guess not
Re:The best is yet to come... (Score:2)
My benchmarks showed that the Java program would require 12 years to complete the job. I rewrote the program in C++ and the time dropped to 12 hours.
So, yes, I think Java is slow for some tasks. As you say, those tight loops seem to be something that Java isn't good for.
Re:The best is yet to come... (Score:2)
So, obviously you were doing some trivial problem that Java could deliver passable performance on.
Re:The best is yet to come... (Score:2)
I repeat once again: splitting files and such was the trivial part of the task. It's the other things that had to be done that were the killer. If you simply read what I wrote, then you'd have avoided embarassing yourself.
Re:The best is yet to come... (Score:2)
You started jumping all over me without knowing the basic facts. In effect, what you did was hear the first sentence spoken in a meeting and then proceed to tell all your coworkers how idiotic they are.
So, since you're so smart, can you tell me
1) what the platform was
2) wat the dataset was
3) what the transformations were
4) what optimizations were tried on the Java side
5) what the JDK version was
6) what the network parameters were
7) what the database connectivity software was
Uh oh, you spoke without knowing a DAMN THING! That makes you an idiot.
For the problem at hand, the C++ tools available really were that much better than the shitty Java tools available.
As I said in the very first post I put there, there are things that Java is adequate for. This just didn't happen to be one of them. Live with it.
Same old exaggerations (Score:4, Insightful)
What they really mean by "survivability" is "censorship resistance". It's absurd to say that Freenet - which can drop data without notice or recourse as soon as the herd starts requesting something else - addresses survivability, as though it were some sort of permanent archival data store like Eternity, Elephant, or OceanStore. Freenet: we protect your data...errr, until we throw it away, that is.
Sorry, but no. Freenet is not implemented to be recognized by any OS as a filesystem. It does not support the semantics expected of a filesystem as that term is commonly understood in the computing or computer science communities. It's not a filesystem. Sure, it's a system that has something to do with files, but that's like saying a car delivering hockey pucks is a disk driver. Certain words and combinations of words have specific - sometimes counterintuitive - meanings in this business. "Filesystem" is one such term, and Freenet does not meet the criteria.
Re:Same old exaggerations (Score:2, Interesting)
But, it can be !
It is totally feasible to write a client program which acts as a driver and implements a genuine file system over Freenet. Some serious kernel patching would allow for a block driver module which implements insertion into/retrieval from Freenet. Instead of mapping blocks to freenet keys, it would perhaps be wiser to map a tree directory/file hierarchy into a Freesite using MSK or enumerated keys.
However, this mapping would not be able to address all the content of Freenet - only those keys which are written via the 'filesystem'.
Nevertheless, I reckon a scenario like the following would be totally kewl:
Re:Same old exaggerations (Score:3, Insightful)
It would indeed be feasible to implement a kernel interface to Freenet, though it should really be done at the VFS level rather than the block-device level and have to be based on something other than Freenet's current Java-based implementation. However, that only solves half of the problem of becoming a "real filesystem"; the other half involves implementing filesystem semantics, and that's the part that might be intractable. You'd probably have to punt on security by just setting up a dummy user to own all Freenet files and have them all be world-writable. I'm sure you could develop some sort of mapping between directories and Freenet subspace keys. Lacking sub-file-granularity access you wouldn't be able to do memory mapping or executable/library activation from the Freenet filesystem, and the data-loss issue is going to cause some serious pain when entries are still in the inode cache but the filesystem module finds that the data went away. Frankly, I'd still consider it something less than a "real filesystem" but it would certainly be a huge step in the right direction. I agree that it would be a cool thing to have.
No, I'm not volunteering to work on it. ;-) As I've told Ian every time he's tried to recruit me, I have other fish to fry.
Security in Freenet (Score:2)
The user/workgroup (with different keys for each workgroup) would have to authenticate through some outside means, such as a configuration app on the client side.
Keep in mind that the file system app would be a client application using Freenet, not necessarily an integral part of Freenet.
Authentication keys can also be generated to simulate the behavior of a Read-Only environment, which would also provide for authentication of the integrety of the file contents (which IS a feature of Freenet).
World accessability is also possible, including world Read-Only access (through SSK key features of Freenet).
I think this would be a very good idea, and I wouldn't mind trying to implement a file system of this nature myself. The only real problem with this method of implementing a file system is that the files don't have the permanence of a hard-drive and will occasionally be lost... sometimes without you even knowing that it happened. Of course, hard drives fail as well, as do many other file storage systems, but this would happen much more frequently than many people would like (at least with the current setup of Freenet) These issues are still being debated though in the Freenet forums.
Re:Security in Freenet (Score:2)
Just to reiterate, recovery from this scenario in a kernel filesystem implementation can be extremely difficult, depending on where exactly in the code path the discovery is made. Backing out can be very tricky indeed. On the other hand, the hairiest cases tend to involve paging and a FreenetFS probably wouldn't be able to support that anyway, so maybe the remaining cases are manageable. This, BTW, is why it's a mistake to have the page cache in the normal-I/O path - a direction that both Solaris and Linux have taken to their own great detriment.
Exaggerations? (Score:2)
In this case survivability does not seem to carry the same connotations as a static web site or the Eternity service. The Freenet Project is not ideally suited to long term storage of historically important documents like a government's constitution. That is not to say it couldn't meet such demands, but that it is not the best available of accomplishing that goal.
As for your second point, yes "Certain words and combinations of words have specific" meanings. The combination "virtual filesystem" is specifically different than the word "Filesystem". I can see how "virtual" in this case can convey an abstraction from any specific OS.
Nonetheless, I have to disagree about Freenet not supporting the semantics expected of a filesystem. Specifically, there is a specific stream of data, and metadata which includes a title used to refer to the data. This title metadata is quite unlike the 8.3 filename of the FAT filesystem, but not unlike many other filesytems.
While you seem to dislike the Freenet project, or at least feel that it cannot live up to its claims, I fail to see how either of these two points can be considered examples of exaggeration. Even if you disregard my post, your posts would have pointed out factual errors, and not embellishment.
-castlan
Re:Exaggerations? (Score:2)
I'll try to clarify. Every modern OS has a "virtual filesystem layer" which indeed serves as an abstraction layer. What it's abstracting is the nature of the underlying storage, not the expected semantics. Those semantics are remarkably similar across systems. Even Linux -which was late to the VFS party and implemented what I call the "VFS layer from Mars" - and Windows have similar expectations and requirements with regard to hierarchical structure, access control, coherency, etc. for all fileystems. Prepending terms like "virtual" or "distributed" (the common and correct term in this context, BTW) does not change the meaning of "filesystem", and Freenet does not meet the expectations that people on any platform have for any filesystem.
Re:Let me help you out here. (Score:2)
OK, you're right. Semantically, Freenet is roughly equivalent to FAT, minus sub-file granularity access and consistency. Happy?
Did anyone actually read the paper? (Score:5, Insightful)
Re:Did anyone actually read the paper? (Score:2)
I've been playing around with freenet for a few weeks now. It's incredibly slow right now, but still useful. The speed is understandable given that it's still under development, and I have high hopes for its future. Is there any word on how the development is going? There was talk about hiring a full time programmer a while back, but I don't see anything on the website about it anymore.
Re:Did anyone actually read the paper? (Score:3)
Perceive selectively much, Ian? Your complaint is mostly valid, but I had already posted this [slashdot.org] at 11:09PM yesterday, not only responding to but quoting from the IEEE article, and it had been modded up to 3 before you posted at 4:30AM today. You might not like it, but it was there for you to read (unless you were reading at 4+, in which case you're generalizing from a very small sample).
I have since posted a second, slightly more substantial, response [slashdot.org] for your viewing pleasure. "Be careful what you wish for" is a phrase that comes quickly to mind.
Re:Did anyone actually read the paper? (Score:2)
PS. Don't be a bitch.
Comments on the performance analysis (Score:5, Interesting)
Here are three things that leapt out at me right away as I read the paper:
I'm left wondering how applicable these performance and scalability measurements are to the real world. Wouldn't it be better to study these same metrics in the live Freenet network, or at least duplicate more of its characteristics in the simulation? It's not at all clear from the analysis provided that Freenet will not be afflicted by bottlenecks for any but the most ideal workloads and topologies.