I heard about FreeNet about 1 year ago and have come back to look at it every couple of months. I have had a thought bouncing around in the back of my head and it goes something like this.
One can consider the Internet, in a sense, to simply be a huge library of content. The problem is that the library is held in buildings all over the world and there is no Dewey decimal system. If someone wants to publish content, they simply hang it out on a URL. If they want the public at large to be able to actually *find* this content, they register it with one or more search engines. As a user trying to find something, the only way you can typically find good content consistently is to be told out of bandwidth by the person doing the hosting about the content and where it is located. Otherwise, you are left wade through page after page of search engine results only to find that what you downloaded was not worth the bandwidth it used. Joe user wants to be able to simply choose a category representing what he is looking for, type in a couple keywords to narrow it down and get a short list of highly relevant content. I have thought hard about FreeNet and think that I am starting to "get it". I think that an application could be written that uses FreeNet and gives Joe User what he wants. It addresses two issues many people raise with FreeNet � (1) content falling out of the data pipe if no one it is not requested frequently and (2) the lack of searching on FreeNet. Here is the idea� (1) Create a content hierarchy system that is delivered as an XML file. This is an XML file containing a list of categories that goes up to 10 levels deep. The first iteration could be built on the Dewey Decimal System. Anything you could ever possibly want to download will fit into one of these categories. This is a file that would be publicly distributed but preferably from a single �authoritative� source. Note that this file does not actually contain anything other than the category hierarchy. This file by itself will not give you any content. (2) Publishing content creates an XML Header file. When you go to publish content, you create a Header file for that content. This header is in XML format and contains information like: a unique identifier for the document, the category the content is assigned to, a rating of the content, the public key of the publisher, a text description, keywords, etc. The SOURCE field would be optional to allow for �total anonymous publication�. (3) The header file is pushed out into FreeNet along with the content. This header file is now out into distribution on FreeNet. The header will have a TTL that the publisher can set and each node will have the option of reducing the TTL of a header to their maximum setting before passing it on. The higher the TTL, the farther the Header is passed along. (4) Nodes can keep their own catalog of header files they have received. Each node looks at incoming files as is able to identify a header for what it is. The user has the option of maintaining their own master index of content by storing these headers into a database. This should be done using a category/rating/source filter. For example, I may set up my filter to only log headers of content published in the Java Development sub-category that has a PG rating or lower and does not have an anonymous source. I might add another filter to store headers in the PC Hardware sub-category with no rating limit and allow anonymous. I will now be storing my own catalog of content for that category with each header file being stored for an amount of time I set, be it 1 week or 1 year. (5) Users are able to search using the header files. A user is able to enter a search screen, enter a category and some keywords along with a TTL. The higher the TTL, the more nodes the search will pass through. The application now passes the search request out onto FreeNet. Other nodes will see this request and respond with the headers of any content they have that matches the search criteria. The will pass on the request to their nodes until TTL=0. If the search category is one that the user�s node is setup to capture, they will also add any results to their catalog before passing the header files back to the requester. (6) The application is able to persist content by re-publishing requested content. Because each header file contains a unique key, the publisher has the option of storing a list of the unique keys of what they have published and what content it is assigned to. If someone actually requests his or her specific item on FreeNet, the application will see this request and re-publish the content to FreeNet. This should provide a �almost cure� to the perceived problem of content �falling out� of FreeNet if no one requests it for a while. At the same time, it still keeps the publisher anonymous. (7) The application should also include a rating system. This is the icing on the cake. After downloading a piece of content, the user is able to assign a rating to it. This rating is now attached to the header file representing the content. The rating should include the user�s public key so that other users know who did the rating and can filter whether or not they agree with the tastes of other individual users. Once this is implemented, a search not only returns back the header pointing the user to appropriate content, but also includes a rating of that content. (8) The application should support multiple public keys, each able to be used as an alias. I should be able to have multiple public keys that represent me as a user to the outside world. In this way, if I wanted to establish an online identity to publish material and have a different id for downloading, that would be no problem. No one would ever be able to tie the two together without looking at my PC. Example: I am a starving musician who records a MP3 of my band. We publish the content to FreeNet using the application. Being nobody, it is downloaded by a handful of friends and promptly falls off of FreeNet. Before that happens, however, a local DJ who lurks that category hears it and decides he likes it. He contacts us and gives us some airtime. Suddenly, everyone in our town wants to hear our song and they search for it using the application. There are now bootleg copies of our song showing up, but once we publicly link ourselves to our public key, our new fans are able to search for the �real� song. Since the real thing is available, there is no incentive for anyone to bootleg it and the bootleg files fall off of FreeNet. A music critic hears our song on the radio and decides to download it. After listening to it a couple of times, she adds our song�s unique key to a �hot new music� list she publishes on her website every week. That Friday, the slashdot effect kicks in and tens of thousands of people are trying to download our song. FreeNet being FreeNet, it is already pretty well distributed and there is no problem finding our song and downloading it. Meanwhile, a guy on the other side of the country also monitors the category. He has previously downloaded some of the things the music critic said was good and has added the music critic to his �good reviewer� list. That evening, he clicks on the recent review list and, since the header file for our song passed through his node, sees that our song was giving a high rating. Without even going to the music critic�s website, he gets the review and downloads the song too. Months go by and the song falls out of favor and falls off FreeNet. We are off working on an album using the money donated to the band on our website by fans that downloaded our song. Hearing our talent, they were willing to pitch in $1 to get more of our music. Meanwhile, there is a gal in another country who just heard of us and wants to download our song. She sends out a search request and quickly hits a node that contains a header file for our song. She reads the reviews and requests our file. It is not in FreeNet, but several finds of ours have �persisted� the file in their application. Their nodes see the request and re-publish the file back out into FreeNet. What do you think? Is there any glaring holes to this that I have missed? __________________________________________________ Do You Yahoo!? Buy the perfect holiday gifts at Yahoo! Shopping. http://shopping.yahoo.com _______________________________________________ freenet-tech mailing list [EMAIL PROTECTED] http://lists.freenetproject.org/mailman/listinfo/tech
