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

Reply via email to