#+TITLE: Spritely Golem: Secure, p2p distributable contentThis is a demo for Golem, one of the [[https://gitlab.com/spritely/][Spritely]] demos.Each Spritely demo tries to demonstrate a key idea on howto "level up" the fediverse.The problems this demo is trying to address is: - Nodes go down, and their content tends to go with them. How can we have content that survives? Content which is distributable over a peer to peer network seems like it would help. - Except if an entire network is helping hold onto and distribute content, how do we keep private content private? - How to do this in a way that is compatible with the [[https://www.w3.org/TR/activitypub/][ActivityPub]] specification?By encrypting the file and splitting it into chunks distributedthrough the network and only sharing the decryption key with theintended recipient, and by using a URI scheme that captures theappropriate information, we can accomplish all the above.Golem uses the [[https://github.com/WebOfTrustInfo/rwot7/blob/master/topics-and-advance-readings/magenc.md][magenc]] extension of the [[https://en.wikipedia.org/wiki/Magnet_uri][magnet URI scheme]] toaccomplish the above.Why the name "Golem"?In fantasy literature and folklore, a Golem is assembled frominanimate parts, and only through the casting of magic words isit brought to life.Likewise, here encrypted chunks are distributed inanimately throughthe network, and the magic words uttered are the decryption key,known only to the intended recipients (and, well, anyone they chooseto pass them on to).*NOTE:* This demo is not intended for production deployments.The purpose of this demo is to explain its core ideas to federatedsocial web implementors.As such, the demo takes many shortcuts for the sake of brevity.It is intended to be simple enough to be read and understood ina single evening.