Skip to content

Instantly share code, notes, and snippets.

@RubenKelevra
Created January 20, 2020 20:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RubenKelevra/7a913f379afe758b083c3867c0ee5827 to your computer and use it in GitHub Desktop.
Save RubenKelevra/7a913f379afe758b083c3867c0ee5827 to your computer and use it in GitHub Desktop.
I understand that there's the ability to build a cluster with ipfs-cluster, with friends. But this is a shared storage space (everybody can delete stuff - not very good).
How about adding the ability to add peers as friends to a list, and give them the ability to store a given amount of bytes on my hard drive?
This could create a Web of Trust.
When the friend will pin a file, the file can be sharded and replicated according to his specifications to his list of peers - I will get also some parts of the file.
To acknowledge (somewhat reliably) that a "friend" peer still holds the data, he can be asked like once a day to XOR a salt to the file and send me the checksum. A list of salted-checksums can be calculated before seeding, avoiding that the data has to remain "local" to ask the nodes that they still hold our chunks reliably.
To avoid that a peer can read the data, the files could be preprocessed to just send every n bit to a given peer, that the peer ends up with scrambled data which cannot be used without having data from other peers. This doesn't replace true encryption - but is extremely cheap to do on a CPU and has the advantage that changed content may be transmitted via diff updates.
The user should be asked if he wants to scramble, encrypt or share the data plainly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment