3 ms·
I actually posted the protocol spec somewhere a few months ago, but it might have gotten taken down when I flipped the beta site into the production site. Mim
by rolleiflex 8y ago
I actually posted the protocol spec somewhere a few months ago, but it might have gotten taken down when I flipped the beta site into the production site.
Mim (comes from 'mime' from 'to replicate') is a HTTP based stateless protocol where the nodes communicate with each other via bog-standard HTTP GET and POST requests. The nodes can create caches for oft-requested data. c0 is a subprotocol of Mim that defines six graph objects, boards, threads, posts, userkeys, votes and truststates. the first four are obvious, the vote is a userkey > b|t|p relation, a trustste is a userkey > userkey relation. It creates a directed graph that is mostly acyclic.
It allows for efficient flood-network propagation of this graph based on time intervals, and it comes with certain patch semantics, so given a delta communicated from one node to another, there is always a way to apply that delta into the local node's graph in a way that does not create merge conflicts.