If anyone's interested in seeing a simple implementation of something like this, but without the payment protocol implemented, I made a toy implementation earlier this year[1].
It encrypts files client-side, uses a "wallet" file to store your encryption keys, and performs challenges at regular intervals to ensure files are being held appropriately and automatically restoring redundancy if not.
Code rot aside, it should still be working, at least if there were any servers/nodes set up.