Radicle Architecture
Therefore, in order for everyone to agree on the current state of a machine, we need to communicate two things:
We then end up with several machines \(M\), \(N\), etc. with starting states \(M_0\), \(N_0\), evolving according to the various inputs they receive:
Rather than come up with a separate way to formally specify machine definitions, Radicle starts from a single root machine \(R\), a special machine which may eventually behave like any other, given the correct inputs:
In this way a Radicle machine’s definition and its operation are coincident. To materialize a Radicle machine, the pointer is resolved, fetching data from IPFS, and the resulting set of expressions is evaluated. The owner’s radicle daemon subscribes to an IPFS pubsub channel, and anyone who wants to submit new inputs to a machine sends their input to the relevant pubsub channel, so that the owner can add it to IPFS and update the machine’s pointer.
Source: radicle.xyz