ceramic

we live in a time great innovation in distributed systems. bitcoin, ethereum, IPFS, and many others worth tracking. self-sovereign identity (SSI) in particular is an area under development which has the potential to allow the creation of forms of authentication that allow the user to be in full control of their identity.

ceramic builds on what IPFS has established, adds SSI, and streams. IPFS is a layer for static files, with IPLD for graph-structured content. a recent ceramic blog does a better job laying it out:

Ceramic enables static files to be composed into higher-order mutable data structures, programmed to behave in any desired manner, and whose resulting state is stored and replicated across a decentralized network of nodes. Ceramic builds upon and extends the IPFS file system and underlying persistence networks, as well as other open standards in the decentralized ecosystem, with a general-purpose decentralized content computation substrate. Due to Ceramic’s permissionless design and unified global network, anyone in the world can openly create, discover, query, and build upon existing data without needing to trust a centralized server, integrate one-off APIs, or worry if the state of information being returned is correct.

the ceramic approach to streams is most interesting to me, and seems to suggest a strong contender for an implementation of distributed RSS:

Ceramic’s decentralized content computation network is modeled after various real-time stream processing frameworks found in Web2. In these types of systems, events are ingested, processed in real-time, and the resulting output is applied to a log. When queried and reduced, this log represents the current state of a piece of information. This is an appropriate framework for conceptualizing how dynamic information should be modeled on the decentralized web. Furthermore because the function that processes incoming events on any particular stream can be custom written with logic for any use case, it provides the general-purpose flexibility and extensibility needed to represent the diversity of information that may exist on the web.

On Ceramic, each piece of information is represented as an append-only log of commits, called a Stream. Each stream is a DAG stored in IPLD, with an immutable name called a StreamID, and a verifiable state called a StreamState. Streams are similar in concept to Git trees, and each stream can be thought of as its own blockchain, ledger, or event log.

I’m experimenting with ceramic now. if you are out there, thinking about RSS, distributed systems, SSI, and similar, I’d like to hear from you. twitter is a good way to start @plantimals.