Hello all,

I would like to propose an adapter that would "webify" Freenet.
I believe this will increase adoption since browsing is an activity that
is well-understood by the average user.

* Required features

The following server-side features are assumed:
    - CHKs
    - SVKs
    - Ability to update SVK'd documents

No server-side changes are necessary.

* Goals

A familiar URL structure is desirable to ease navigation and content
creation.  Plug-and-play with current (unmodified) browsers is also
important, although in the future I can see browser plugins being written
for Freenet.

I would also like the namespace to have a "flat-top", so that there is
no land-grabbing of desirable top-level names.  DNS is the opposite of
this, where the top-level is narrow (only a limited number of top-level
domains).

* General architecture

The initial implementation of this Adapter would be a rewriting
HTTP proxy, similar to the Anonymizer and Crit proxies (see
http://www.anonymizer.com and http://crit.org/ ).  Any requests for a
Freenet URL is rewritten to point to the proxy.  The proxy is intended
to be installed on client machines.

* URL

Web URLs are hierarchical in nature.  The roots of the HTTP scheme are
hosts.  Under hosts we have an arbitrary string of nested directories.
Since Web URLs are dependent on DNS, they suffer from centralized control
and "land-grabbing".

I would like to propose a new URL scheme, with the scheme string
"freenet".  An example URL is as follows:

  freenet://<key>.svk/freeweb/docs/traffic.html

the root is a CHK or SVK in text form (or any future key type).  This
means that there is no competition for top-level domains.  A domain is
a key.

* Directory structure

The directory structure under a key is maintained with Directory
documents.  These documents are interpreted by the Adapter.  An example
of such a document is:

    Last-modified: <date>
    Author: John Doe
    Comment: This is the freeweb home page 

    freeweb=freenet://<key1>.svk/
    myprojects=freenet://<key2>.svk/
    overview.html=freenet://<key3>.chk/

Directory documents will normally be SVK, since they are likely to be
updated regularly.  The Adapter drills-down through the directories by
matching the directory and file names to entries in these documents.

* Top-level directory mounting

The user is able to mount (bookmark) keys through a simple interface.
These mounts are visible only to the user.  For example, if the user
mounts "<key1>.svk" to "//freeweb", then the user will be able to access
the following URL: "freenet://freeweb/docs/traffic.html".

* HTML rewriting

In addition to rewriting Directory documents as HTML, the Adapter is also
able to rewrite any HTML that passes through it, replacing references
to the freenet URL scheme with HTTP references to itself.

For example, "freenet://<key1>.svk/docs/traffic.html" would be rewritten
to "http://localhost:7777/get?url=//<key1>.svk/docs/traffic.html".
Relative URLs would be rewritten apropriately.

This means that any web page (on Freenet or off) can embed Freenet urls
and they will work if the page is viewed through the proxy.

* Uploading/updating

Proxied pages have added form elements that allow the user to perform
the following authoring functions:

      - Get the freenet url of the current page (relative and absolute)
      - Upload a CHK document
      - Upload an SVK document
      - Update an SVK document
      - Modify an SVK Directory document (insert/delete/rename)

See http://crit.org/ for en example how this might look like (the top
toolbar was added by the proxy).

The Adapter remembers CHKs and SVKs authored by the user.  It will also
remember the private keys for SVKs.  The user's key store is encrypted
and can be purged.

--

That's it.  Sorry about using a pseudonym, but mailing list archives
are forever...

-- 
Dev Random
Fingerprint: 3ABC FCEF 1BCE 4528 E4FD  15EB 173A 76D2 6959 DAF1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20000806/b410dcb3/attachment.pgp>

Reply via email to