Peer Cloud
Peer Cloud is used to distribute static resources
Resource Request
The most basic request takes a hash and returns the resource that matches it.
Partials
This is meant for efficiently distributing larger files or breaking up the sharing. A resource map can be requested which will break the resource up into 10k chunks and produce a Merkle tree. Individual chunks can then be requested.
Resource Pointers
A resource pointer allows for a resource to be referenced that has not yet been defined.
A resource pointer is built around a keypair. The PKHID is used as the pointer. To resolve the pointer, a record is created with the full public key, and the hash of the resource being pointed to signed with the corresponding private key.
Privacy
There are some significant privacy challenges here. Peer Cloud can't just fulfill requests blindly.
Alice and Bob are friends but they don't want Eve to know. Eve suspects this and want to confirm it. Eve gets Alice to send her an email Eve is not online and Bob is. If Bob has a copy of that email, Even can now conclude they are friends. Rather than requesting a copy of the email through a public channel (which would provide Bob with anonymity), Eve directly sends a request for the email.
I believe this is going to take several iterations of improvement to really get it working. For starters each resource can be tagged for transmission. Any resource can be sent anonymously. Only resources appropriately tagged can be sent directly. Any application wishing to access Peer Cloud needs to indicate whether the request is anonymous.