ERIS key backend for git-annex

I have a long term goal of storing my music collection in a content-addressed key-value store, and ERIS is my method of choice for splitting block and refering back to content. Current I'm using git-annex to store my music, so what does it take to combine the two?

https://purl.org/eris

https://git-annex.branchable.com/

The first step is to replace the hash function used by git-annex with ERIS read-capabilities (a string of base32 describing encrypted blocks, a key, and a description of the tree of blocks). That turns out to be a simple, write a backend program that generates keys for files using a simple protocol. Put it in the PATH env-var and its done. To implement this in Nim was about a hundred lines of code.

git-annex/ design/ external backend protocol

git_annex_backend_XERISX2.nim

Add the `* annex.backend=XERISX2` to the .gitattributes file in your annex repository and git-annex will start refering to files by ERIS capabilities.

This only the first step, and when the ERIS spec is finalized any ERISX2 keys will need to be replaced by ERIS2. When ERIS storage backends are ready the following step is to create "special remotes" that annex can use to synchronize content.

git-annex/ special remotes