生命周期
写生命周期
创建当一个初始化事件被创建和发布时一个流会被创建,这个流在网络中通过由初始化事件推导出的StreamId唯一引用修改流的更新包括创建和发布数据事件或时间戳事件。在创建这些事件时,它们必须在流中引用最新的事件或Tip。如果有多个最新事件,则通过本地遵循冲突解决和共识规则来确定最新的事件。当前更新协议在此处进一步描述。数据事件是一个签名事件,预计由给定流的控制器创建和发布。时间戳事件在另一方面可以被网络中的任何参与者创建,只要它是有效的时间戳证明。通常在Ceramic网络中,它们将由时间戳服务创建和发布。
读生命周期
查询可以通过StreamId查询网络以发现任何流的最新。知道StreamId和tip,任何节点都可以同步流。查询请求会广播到整个网络,以发现具有任何给定流的Tip的节点。未来的查询协议可以进行优化,并包括其他流属性和值以发现流和流tip。当前的查询协议在此处进一步描述。
同步
通过知道StreamId和最新事件(tip),流可以被同步和加载。给定最新的tip,您可以按顺序从一个事件到另一个事件遍历流事件日志,直到达到初始化事件。每个事件都可以从网络中的节点被加载,任何具有tip的节点都可以拥有完整的事件流日志。当前的同步协议在此处进一步描述。持久化每个流都是一组事件,这些事件存储在IPFS节点中。只要整个事件集被固定并刊登在IPFS DHT上,相应的流就可以被检索到。如果你的应用程序依赖于流保持可用状态,则需要负责维护和存储其所有事件。这可以通过运行自己的IPFS节点或使用IPFS固定服务来完成。通常情况下,您将会使用Ceramic运行一个IPFS节点。如果某些事件在特定时间不可用,并不意味着该流已被删除。拥有那些事件副本的节点可能暂时离线,并且可能会在未来某个时间返回。网络中的其他节点可以针对你或任何其他人的流固定(维护和存储)其中的事件。如果发生数据丢失,可能有其他节点保存了您的数据。常用的流及其相关事件很可能存储在网络中许多节点上。
Last updated