On 09/25/2014 07:27 AM, Lachlan Phillips wrote:
> I have been on the lookout for a way to create "Updatable Torrents". The
> reason is simple: An Updateable Torrent is a P2P Web.
>
> Someone mentioned ClearSkies to me, and it looks amazing! Great work.
> I'm wondering if we could discuss the likelihood that this technology
> could be forked to achieve this P2P web.
>
> Let's imagine for a second that you visit a website and it caches, not
> just to your local drive, but to a torrent (or clearskies).
> Then imagine someone else seeks out that website, but it's down.
> Suddenly they're redirected to the P2P version. (via their trust networks)
This is also something I have interest in. In my case, it was during a
wikipedia fundraiser that I was wondering if there could be some way for
people to donate bandwidth instead of money. Any solution that worked
for wikipedia would work for similar static-content sites.
The way I've envisioned this working would be that a hash of the
publisher's public key would replace the hostname in the URL. Something
like:
p2ptp://970d880e67f1bf7e92f7fcfd674eb95d/static-page.html
Now, only the "publisher" can update the content, but any peer can
mirror it.
>
> Interestingly enough the original version becomes less important.
> Updates could be done through an author signature validation so you know
> the content is "signed" and authentic. The servers become the secondary
> source.
>
> From here you have a censorship proof, all time, all version inclusive
> addressable P2P web.
> I'd love to hear your thoughts on whether ClearSkies technology could be
> modified to achieve such an outcome.
Clearskies is designed around friend-to-friend interactions and so I
don't believe that it is a good fit, although there might be some pieces
that could be borrowed from it. The main problem is that clearskies is
designed to form long-term bonds between peers, and isn't designed to
scale to very many nodes in a single peer group. It also doesn't
attempt to provide any sort of censorship proofing.
I think the biggest problem with a "peer cache" is the updatability
part. Unless the peers are actively trying to refresh their cached
content, a new peer would usually get stale data. You'd have to bake
into the peer discovery mechanism a version number so that you'd favor
the peers with the latest set of data.
Have you looked at fproxy from the freenet project? It is very close to
what you want to build, is documented, and is in real use today. It
might make a reasonable starting point or base to build upon.
Also, in case you haven't seen them, there is syncnet [1] and vole [2],
which are built on top of bittorrent sync.
Modern browsers already have a fair amount of useful p2p code built-in,
due to WebRTC. It isn't quite capable of what you want to do, since it
requires cooperation from a central server to set up the peer
connections, but a solution that reused those abilities would probably
have the best chance of being adopted by browser vendors.
Best of luck with your endeavor. Do you have a blog or website where
you are gathering the results of your research? It might also be a good
place to write your vision of what you want to have built to help gather
like-minded individuals.
Steven
[1]:
http://jack.minardi.org/software/syncnet-a-decentralized-web-browser/
[2]:
http://vole.cc