https://gitlab.com/spritely/golem
This is a demo for Golem, one of the Spritely demos.
Each Spritely demo tries to demonstrate a key idea on how
to “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 ActivityPub
specification?
By encrypting the file and splitting it into chunks distributed
through the network and only sharing the decryption key with the
intended recipient, and by using a URI scheme that captures the
appropriate information, we can accomplish all the above.
Golem uses the magenc extension of the magnet URI scheme to
accomplish the above.
Why the name “Golem”?
In folklore and fantasy literature (the name here can apply to either
but borrows more from the fantasy literature tradition, but the idea
originates in Jewish folklore), a Golem is assembled from inanimate
parts, and only through the casting of magic words is it brought to
life.
Likewise, here encrypted chunks are distributed inanimately through
the network, and the magic words uttered are the decryption key,
known only to the intended recipients (and, well, anyone they choose
to pass them on to).