Comment by jopsen

21 hours ago

You don't need fully distributed database, do you?

You could just make a registry hosted as plain HTTP, with everything signed. And a special file that contains a list of mirrors.

Clients request the mirror list and the signed hash of the last entry in the Merkel tree. Then they go talk to a random mirror.

Maybe, you central service requires user sign-in for publishing and reading, while mirrors can't publish, but mirrors don't require sign-in.

Obviously, you'd have to validate that mirrors are up and populated. But that's it.

You can start by self hosting a mirror.

One could go with signing schemes inspired by: https://theupdateframework.io/

Or one could omit signing all together, so long as you have a Merkel tree with hashes for all publishing events. And the latest hash entry is always fetched from your server along with the mirror list.

Having all publishing go through a single service is probably desirable. You'll eventually need to do moderation, etc. And hosting your service or a mirror becomes a legal nightmare if there is not moderation.

Disclaimer: opinions are my own.