I apologise for replying before I at least had a proper look at the website! 
This is in fact fascinating and there may well be things we can do together or 
at least inspiration we can draw from one another.

Lets get detailed, technical, and concise, about what would be involved in 
Freenet working with Unhosted, as one of many options for transport etc. Sorry 
for the general waffle last time, it's worth reading though.

The basic principle of Unhosted from a freenet-ish angle is:
- Websites are static and therefore can be hosted absolutely anywhere.
- The website is a (large?) javascript applet. The client trusts the author of 
the website, within reason.
- Data is encrypted by the client.
- Data is stored on a separate storage server.
- CORS allows this (this requires relevant request headers)
- The PKI sounds very strange! On Freenet we always pass the hashes of the 
pubkeys... :|

Now, compare to Freenet:
- Freenet is reasonably good at hosting static content.
- It strips out javascript in order to preserve security. This happens at the 
fproxy level; if the app is trusted it could be whitelisted or something.
- Data is stored by clients for themselves, which is easy on Freenet, or it is 
routed between clients via queues, which is somewhat harder: Because of spam 
problems, we need to announce identities and establish a web of trust between 
them, or at least that's how current stuff works; we could use CAPTCHAs or some 
similar scarcity mechanism directly on a per message basis, but once a 
relationship is established it is unnecessary, and there are serious worries 
about the long term viability of CAPTCHAs.
- Your PKI sounds rather strange... We could probably provide a WoT-based 
lookup service and be API-compatible though...

There are some interesting sandboxing options. The big difficulty preventing 
Freenet from allowing Javascript is not the difficulty of writing a javascript 
filter (although that is a hard problem it is a solvable problem); it is the 
difficulty of defining a safe API for it to call. Freenet only provides request 
and insert - fetch and put - but with that alone, a malicious app author can do 
a lot of mischief. I wonder if we could build a usable sandbox based on 
Unhosted principles, i.e. an app can download and upload data specific to its 
user, and can talk to other users. We could even provide a confirmation 
mechanism per-user for more paranoid users, which could smoothly integrate into 
the app's UI if we are really good, including CAPTCHA-based introductions ... 
hmmmm, there could be something in this ... might need API changes though, how 
do you deal with introductions now? Such principles may be valuable to Freenet 
even if we have to break compatibility with Unhosted... Thoughts?

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Devl mailing list
Devl@freenetproject.org
http://freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to