I’m working on a simple decentralized concept for tagged image galleries which essentially provides users the ability to create a shared catalog of image sets.
Moving away from the centralized concept took quite some thought, but I think I have something that will work, and perhaps is best when operating in an untrusted environment.
Each user who wants to create content will manage their own catalogs and publish updates. Users subscribe to these catalogs and can potentially merge them together at the local level. Users should be able to retrieve older versions of catalogs and “fork” in the event that they disagree with the owner’s changes.
A “global” database will not work because it implies administration responsibilities. In this model, each user tailors their feeds to their own tastes and effectively administrate themselves.
This design is somewhat analogous to Linux’s package repository systems.
Most image gallery systems provide a user-policed tagging system. This can cleanly be solved in two different ways.
- Have the owner of the catalog also manage a server which receives votes for tags.
- Use a holochain-based approach, where partial consensus can reached by eventually aggregating votes from other users.
The second approach is “obviously” better from a decentralized network perspective, and it allows the possibility to build in a peer reputation system for preventing sybil attacks. However, it is my impression that hash-chain-based technologies do not fit the idea of a “simple decentralized concept”, and is incompatible with an MVP.
A fairly straight forward PWA which connects to the REST API of a running backend. Why? Designing cross-platform IPFS applications that can run on mobile and desktop is not a well documented path.
I believe I can use the PubSub system to notify downstream users of catalog changes. Catalogs are likely pinned as normal files in IPFS, and are perhaps written using JSON or YAML syntax.
If I were to write a rudimentary tagging service in the backend (not holochain), I’m not sure what I would use as a fingerprint.