Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Censorship

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."
This discussion has been archived. No new comments can be posted.

IEEE Computing Covers Freenet

Comments Filter:
  • If you're like me, you're probably wondering just why the hell anyone would pay for Slashdot, let alone want to support it. As it turns out, Slashdot already has all the features you need to completely disable all advertisements without paying those greedy slobs at VA Software a cent. All you need is a DOM-compliant browser, such as Mozilla or Konqueror, and the User Slashbox. With disgustingly-placed new full-page ads [pknet.com] now arriving, the time has come to show that we users will not let ourselves be advertised into submission.

    Follow these five easy steps and never see another Slashdot ad again:

    1. Go into your Homepage Preferences [slashdot.org].
    2. Scroll down to the "User Space" textarea, and paste the following four lines of HTML in there:
      <script type="text/javascript" src="http://pknet.com/~joe/adkiller.js"></sc ript>
      <script type="text/javascript"><!--
      delAds();
      --></script>
      (click here [pknet.com] to download the adkiller javascript code and put it on your own webspace, in case you don't trust me :-)
    3. Scroll down the list of slashboxes, and make sure the "User Space" checkbox (inexplicably located between "MP3.com" and "Myther.com") is checked.
    4. Return to the front page [slashdot.org], and your Slashbox should be there, quietly zapping all iframes and banner-shaped images on the page.
    5. There is no step 5!! It's that easy.
    There are a few problems, however:
    • Opera doesn't seem to work with this at all.
    • Internet Explorer won't automatically remove the ads, but by appending the following to the above code:
      <a href="javascript:delAds()">Click to delete ads</a>
      and clicking the new link in your Slashbox, the ads will go away.
    • The User Slashbox only shows up on index.pl and articles.pl pages, so comment and user pages will still have ads. Luckily, the article pages seem to be the only ones running the obnoxious new full-page ads [pknet.com], so this shouldn't be too annoying.

    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!

  • The IEEE (Score:3, Insightful)

    by spacefem ( 443435 ) on Tuesday March 05, 2002 @10:27PM (#3115855) Homepage
    I've been involved in IEEE for several years. They're still very strong in terms of creating standards and settling what's what, but as a professional organization they're suffering the same fate as ISA, ACM and others - membership is way down and less people are caring. This just proves again that they're good guys and that it's still nice to have societies, I hope the anti-membership trend is reversed soon.

    Sorry, that was a bit off-topic I know.

    • 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.
      • you say bogged in pr0n, i say irritatingly not pure pr0n...
        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?

      • 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 :)

    • I assume that this is based on observing your local IEEE student chapter? If so, keep in mind that such localized trends may not be representative of overall IEEE membership trends.
  • Freenet and Debian (Score:2, Informative)

    by AirLace ( 86148 )
    Debian users might be interested to learn that the freenet and freenet-unstable packages are being removed [debian.org] from Debian GNU/Linux 3.0. If you think this is a step backwards for the Debian project at a time when competitors (including the Microsoft, Sun and IBM research labs) are working on similar technology, you can (and should) make your voice heard by mailing a polite notice to [mailto] (or here [debian.org]).
    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.
    • 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?

    • by void* ( 20133 )
      If you think this is a step backwards for the Debian project at a time when competitors (including the Microsoft, Sun and IBM research labs) are working on similar technology, you can (and should) make your voice heard by mailing a polite notice to

      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.
    • "...the freenet and freenet-unstable packages are being removed ... from Debian GNU/Linux 3.0.
      ...
      ...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).
    • by E-prospero ( 30242 ) on Tuesday March 05, 2002 @10:41PM (#3115918) Homepage
      Instead of getting outraged and sensationalist, have you considered finding out why freenet is on the removal list?

      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 %-)
      • by Hobbex ( 41473 )
        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.

        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.
    • If the package is that important to you, either maintain the package yourself or pay someone else to maintain it for you. Debian (the project) only exists as the collective goodwill of a bunch of people working in their spare time, or being paid by companies.

      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.

      /me begins feeling *really* guilty for not writing checks to the EFF, the FSF, and Debian.org.

      --Robert

      • Absolutely. TANSTAAFL--if you're paying for it you're paying for the right to complain. If MS or Apple yanks a piece of software for any reason then we can yelp our heads off because we paid for the darned thing, and because we do not have the option of getting into the source code and fixing whatever bug made it unmarketable. (Not that bugs keep Apple or MS from releasing anything. heh.)

        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. ;) download it and do with it what you may.)

        -Sara
    • by Harik ( 4023 )
      Or, perhaps, you can say "Yaay!" because the versions distributed with debian _DO NOT_ work with freenet in-the-field, and are way behind.

      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

  • by perdida ( 251676 ) <thethreatprojectNO@SPAMyahoo.com> on Tuesday March 05, 2002 @10:30PM (#3115868) Homepage Journal
    I worry that things like freenet are going to make it so that people will have to engage in continual warfare with people like John Ashcroft.

    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)

    by Anonymous Coward on Tuesday March 05, 2002 @10:39PM (#3115908)
    Want to see the full power of Freenet? Get FROST [sf.net]! Frost is a freenet client (you must have freenet installed and running) that shows message boards and links to uploaded files. Every file that is uploaded is included in a database key, your node will download this key so searching can be performed locally. The best part of all this, is everything is ANONYMOUS, there is no possible way for the identity of the poster to be identified.

    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 :)
  • Freenet... Why? (Score:3, Interesting)

    by Uberminky ( 122220 ) on Tuesday March 05, 2002 @10:40PM (#3115913) Homepage
    I don't mean this to be a troll or anything. I do realize that there are ideals behind it -- free speech for everyone, censorship is the devil, etc. That's dandy. But seriously. Why Freenet? It's such a tremendous effort, for something that so few will use. In fact, does anyone actually use it for getting work done? Heck, does anyone use it for anything? (I honestly want to know!)

    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!

    • Do it for the fame ! Do it for the ideals ! Do it for the people who care about the ideals ! Lastly, Do it to be sued by the RIAA and the MPAA ! (isn't everyone being sued by them nowadays?)
    • Re:Freenet... Why? (Score:2, Informative)

      by Cryogenes ( 324121 )
      Inefficiency is not the problem. The protocol is, as I understand it, not inefficient at all.

      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?

      • Having a zillion copies of everything, scattered across the globe like dust particles, isn't inefficient?
        • 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.

        • Space-efficient or time-efficient?

          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, Interesting)

      by Harik ( 4023 )
      Somebody give me a reason to help the development effort!

      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

      • What's the largest program you've ever designed yourself and overseen the implementation of?

        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.

    • Why ? Because some of us don't want FCC busting our asses for using "substitution codes" in our e-mails :)
    • Re:Freenet... Why? (Score:4, Insightful)

      by Gaccm ( 80209 ) on Tuesday March 05, 2002 @11:13PM (#3116049)
      have you ever been to cryptome.org, or any sites like it? Those sites create lots of enemies because of their content. If their content was copied to freenet, then it can't all be lost in one fell swoop. Freenet would be the mirror that couldn't be taken down. As for what it currently is being used for? Well, 1) its still beta, but just like all new techs it has lots of porn on it. But i havn't used it in months so i'm not the best source.

      Basicly, once its big enough, i'll use it just like i currently use gnutella.
    • don't think freenet as in warez, think freenet as in TreeHouse.

    • Re:Freenet... Why? (Score:3, Informative)

      by km790816 ( 78280 )
      The founder guy gave a talk that I had the pleasure of attending this summer.

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

        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

    • I think that all it would take is for a nice MP3-sharing program with quality indexing and searching to be deployed on top of freenet. As long as it had a nice interface and was easy to install, you could easily get a bunch of freenet nodes off of people who care little about free speech, but who care lots about free music.
    • I never did hear a real reason, other than ideals, for doing it.

      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)

      by dghcasp ( 459766 ) on Wednesday March 06, 2002 @01:16AM (#3116591)
      Why? Simple. It's a system for distributing information of questionable legal status.

      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, thank you very much! (I must admit, I'm not quite inspired to join the dev team, but.. ;) I very much appreciate your opinions, and your good examples. If only more of the posts on Slashdot were of this caliber. I am so tired of the "you're not good enough for Freenet, we don't want you" attitude I keep getting. (All from the ACs, unsurprisingly enough. ;) Why wouldn't they just answer my question instead of getting all defensive? You did! Thank you! Good post. :)
      • 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.

        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.
      • Probably Freenet will be less expensive that a web hosting service and the network will be virtually not vulnerable to Slashdot effect. Freenet isn't only about privacity and anonimicity, it's about intelligent caching and routing, cheap hosting...
        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!

    • 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.
    • Why Freenet? It's such a tremendous effort, for something that so few will use. In fact, does anyone actually use it for getting work done? Heck, does anyone use it for anything? (I honestly want to know!)

      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.
  • ... but why do they have to erect the toll gates first ? I was reading the ToS for an ISP hosted site with the thought of donating some of the capacity to freenet and they promised to:

    - 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

  • by LM741N ( 258038 ) on Tuesday March 05, 2002 @11:16PM (#3116055)
    I've been running a node or two for several years now. There were once a large number of Freenet web sites, but when the protocol changed, most of them dissappeared. Now a lot of them are coming back. But who's to say the protocal won't change again in a few months, and we're back to square one. It seems to be a project with no plan and thus no endpoint. Imagine if Microsoft changed the format for Word files every 6 months, and you get the idea.
  • A free service to propogate spam - and this time there's no delete key!
  • by heretic108 ( 454817 ) on Tuesday March 05, 2002 @11:49PM (#3116203)
    I put 8 months of hard work into Freenet - in particular, developing the W--dows FreeWeb [sourceforge.net] client program and the multi-platform FCPtools [freenetproject.org] library. It's very possible that I will return to the project at some time in the near future.

    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
    • How does having it written in Java make it suffer? I ran a node for a while, and the performance was just fine. It's also nice to know it won't have any buffer overflows.

      I can understand the desire for native-compiled code, but... C??
      • Agreed. I run a node with OpenJit [openjit.org] and the performance is pretty acceptable even after increasing maxNodeConnections threefold.


      • C is also an easier language, its faster, and its better for these types of programs by nature.

        • Er, well yes it's probable that more people know C, but then again it has been around for what - 5 times as long as Java? Anyway, I don't see how it's easier... I mean Java is very much like C in style, and is just soo much easier to code in its frightening. Believe me: a garbage collected, managed environment is just so nice.

          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"?


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

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

            • Just because something is, doesn't mean it ought.

              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)

          by cduffy ( 652 )
          C is easier than Java only in the sense that Windows is easier than UNIX; there's less of it to learn. Once you've learned either well, however, one can build complex projects much more quickly with Java than C.

          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.

          • 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.
            • Personally I can think well in OO in terms of understanding a design. As for readability... if you can do something in 3/5 the code in Java (being generous to C here), that means less redundancy so each line you read contributes more to your understanding. Even better, though, you've got things like the definitions of the classes themselves to work from in gaining the "big picture" (that being frequently much more important than understanding each individual little piece of code). Even discarding this (but keeping the 3/5 figure), to be as understandable as Java, C has to be at least 1.66x as easy to read per line. Is it? I certainly don't think so.

              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?
              • I agree i dont like perl either. But i prefer C++ over java slightly.

                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.
            • You don't have to program with objects in Java. You can program totally C-like code (you just have to do away with some unsafe C idioms that aren't very good anyway) in Java and just benefit from its type safety, memory management, portability, and large library of utilities.

              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...
    • What exactly is wrong with Java?
  • by Salamander ( 33735 ) <jeff@ p l . a t y p.us> on Wednesday March 06, 2002 @12:09AM (#3116323) Homepage Journal
    Freenet, is a distributed information storage system designed to address information privacy and survivability concerns

    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.

    [Freenet] operates as a self-organizing P2P network that pools unused disk space across potentially hundreds of thousands of desktop computers to create a collaborative virtual file system.

    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.

    • Sorry, but no. Freenet is not implemented to be recognized by any OS as a filesystem

      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:

      # mount
      /dev/hda1 on / type ext2 (rw,errors=remount-ro)
      proc on /proc type proc (rw)
      devpts on /dev/pts type devpts (rw,gid=5,mode=620)
      /dev/freenet on /freenet type fnp4 (rw)
      # cp BritneyDoesDobermans.mpg /freenet/pr0n/bestiality
      #

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

        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.

        • One way you could implement "security" in a Freenet file system would be to have some encryption scheme that either scrambles the file contents and/or directory entires.

          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.
          • the files...will occasionally be lost... sometimes without you even knowing that it happened

            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.

    • Although censorship resistance can fall under the category of survivability, that is not the entire meaning of the term. It also means that the system can dynamically scale to meet large demands. That means that it can resists DoS attacks and massive requests of a resource akin to the Slashot Effect.

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

        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.

  • by Sanity ( 1431 ) on Wednesday March 06, 2002 @05:30AM (#3117156) Homepage Journal
    It is saddening that, given this article is about a specific paper on Freenet, that not one of the comments I can see actually discuss the paper. It seems that people are too worried that if they take the time to read the paper, their posts will be so far down the list that they will never get moderated up irrespective of how informative they are.
    • I read the paper this past weekend after seeing it posted on the freenet website. I thought it was a very good explaination that made it easier for a relatively non-technical person like me to understand. There's also a freenet site called nubile that is very informative for new users.

      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.

    • It is saddening that, given this article is about a specific paper on Freenet, that not one of the comments I can see actually discuss the paper.

      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.

      • Sorry Jeff, I didn't see your comment before I posted my post, but even if I had, I think it is a valid observation generally - people often post comments before reading the material that is linked, and more-often-than-not it is those comments that end up with the highest moderation.

        PS. Don't be a bitch.

  • by Salamander ( 33735 ) <jeff@ p l . a t y p.us> on Wednesday March 06, 2002 @12:08PM (#3118771) Homepage Journal

    Here are three things that leapt out at me right away as I read the paper:

    • The simulations used a TTL value of 500 in Hong's original paper and 250 in this one, both of which are much higher than those used in the actual deployed Freenet network. Also, neither paper mentioned the percentage of requests that fail due to exceeding their TTL. This discrepancy might not be significant, but it does seem odd.
    • The simulations are based on a very evenly distributed set of files, with a fairly constant request rate. It would be much more interesting if simulations used the same sort of "clumpy" spatial and temporal distributions that the real world exhibits.
    • There seems to have been no simulation of actual queuing effects and latency. Everything is analyzed in terms of hops over infinite-capacity links. That's interesting because Hong's paper actually refers to the Clip2 analysis of the famous Gnutella "meltdown" and yet it appears that the type of simulation done for Freenet would not have predicted that meltdown.

    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.

One way to make your old car run better is to look up the price of a new model.

Working...