> For the complete documentation index, see [llms.txt](https://ceramic-zhong-wen-wen-dang.gitbook.io/ceramic-zhong-wen-wen-dang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ceramic-zhong-wen-wen-dang.gitbook.io/ceramic-zhong-wen-wen-dang/ceramic-xie-yi/stream-shi-jian-liu/sheng-ming-zhou-qi.md).

# 生命周期

## **写生命周期**

**创建**当一个[初始化事件](https://developers.ceramic.network/protocol/streams/event-log/)被创建和发布时一个流会被创建，这个流在网络中通过由**初始化事件**推导出的[StreamId](https://developers.ceramic.network/protocol/streams/uri-scheme/)唯一引用**修改**流的更新包括创建和发布数据事件或时间戳事件。在创建这些事件时，它们必须在流中引用最新的事件或Tip。如果有多个最新事件，则通过本地遵循冲突解决和[共识规则](https://k0mkpk5019.feishu.cn/docx/Vln7dmN34ovHzGxtu8Pc3FIGn2c#J31VdsN87oa50zx4bnMc91Msnvd)来确定最新的事件。当前更新协议在[此处进一步](https://k0mkpk5019.feishu.cn/docx/Vln7dmN34ovHzGxtu8Pc3FIGn2c#BSjvdHSicoYyoKxnsS2cDTC6nZf)描述。数据事件是一个签名事件，预计由给定流的控制器创建和发布。时间戳事件在另一方面可以被网络中的任何参与者创建，只要它是有效的时间戳证明。通常在Ceramic网络中，它们将由时间戳服务创建和发布。

## **读生命周期**

**查询**可以通过StreamId查询网络以发现任何流的最新。知道StreamId和tip，任何节点都可以同步流。查询请求会广播到整个网络，以发现具有任何给定流的Tip的节点。未来的查询协议可以进行优化，并包括其他流属性和值以发现流和流tip。当前的查询协议在[此处](https://k0mkpk5019.feishu.cn/docx/Vln7dmN34ovHzGxtu8Pc3FIGn2c#R0fadr6IzoLSMhx8HVRc6DPfnFc)进一步描述。

## **同步**

通过知道StreamId和最新事件（tip），流可以被同步和加载。给定最新的tip，您可以按顺序从一个事件到另一个事件遍历流事件日志，直到达到初始化事件。每个事件都可以从网络中的节点被加载，任何具有tip的节点都可以拥有完整的事件流日志。当前的同步协议在[此处](https://k0mkpk5019.feishu.cn/docx/Vln7dmN34ovHzGxtu8Pc3FIGn2c#UGmwdY4ijoDe06xl3u4ckXgKnpg)进一步描述。**持久化**每个流都是一组[事件](https://k0mkpk5019.feishu.cn/docx/Vln7dmN34ovHzGxtu8Pc3FIGn2c#H06VdLwc8oH6L5xrQ1XcubcfnAq)，这些事件存储在IPFS节点中。只要整个事件集被固定并刊登在IPFS DHT上，相应的流就可以被检索到。如果你的应用程序依赖于流保持可用状态，则需要负责维护和存储其所有事件。这可以通过运行自己的IPFS节点或使用IPFS固定服务来完成。通常情况下，您将会使用Ceramic运行一个IPFS节点。如果某些事件在特定时间不可用，并不意味着该流已被删除。拥有那些事件副本的节点可能暂时离线，并且可能会在未来某个时间返回。网络中的其他节点可以针对你或任何其他人的流固定（维护和存储）其中的事件。如果发生数据丢失，可能有其他节点保存了您的数据。常用的流及其相关事件很可能存储在网络中许多节点上。
