Cosmos 分叉检测与 IBC 分叉检测
状态
这部分内容仍在持续完善中。 本目录汇集了在 Cosmos 轻节点场景以及 IBC 场景下,围绕分叉检测所进行的持续工作与讨论。它包含以下文件:detection.md
轻节点分叉检测的草案,包括“分叉证明”的定义,也就是向全节点提交证据所使用的数据结构。discussions.md
近期讨论中的一些想法与直觉的汇总- 最近讨论的结果
- 轻客户端 supervisor 的草图,用于说明分叉检测发生的上下文
- 关于 lightstore 语义的讨论
req-ibc-detection.md
- IBC 场景下分叉检测需求的汇总。特别地,其中包含一个“ICS 007 所需变更”章节,说明为支持 Cosmos 分叉检测而必须对 ICS 007 进行的更新
draft-functions.md
为了满足已收集的这些需求,我们开始勾勒未来在更详细规范以下内容时所需的一些函数:- 分叉检测
- 分叉证明生成
- 分叉证明验证
- IBC 链上组件
- Relayer
待办事项
我们决定在仍有若干开放问题需要处理的情况下先合并这些文件,以记录当前状态并继续推进。特别是,以下问题仍需解决:- https://github.com/informalsystems/tendermint-rs/pull/479#discussion_r466504876
- https://github.com/informalsystems/tendermint-rs/pull/479#discussion_r466493900
- https://github.com/informalsystems/tendermint-rs/pull/479#discussion_r466489045
- https://github.com/informalsystems/tendermint-rs/pull/479#discussion_r466491471
Cosmos fork detection and IBC fork detection
Status
This is a work in progress. This directory captures the ongoing work and discussion on fork detection both in the context of a Cosmos light node and in the context of IBC. It contains the following filesdetection.md
a draft of the light node fork detection including “proof of fork” definition, that is, the data structure to submit evidence to full nodes.discussions.md
A collection of ideas and intuitions from recent discussions- the outcome of recent discussion
- a sketch of the light client supervisor to provide the context in which fork detection happens
- a discussion about lightstore semantics
req-ibc-detection.md
- a collection of requirements for fork detection in the IBC context. In particular it contains a section “Required Changes in ICS 007” with necessary updates to ICS 007 to support Cosmos fork detection
draft-functions.md
In order to address the collected requirements, we started to sketch some functions that we will need in the future when we specify in more detail the- fork detections
- proof of fork generation
- proof of fork verification
- IBC on-chain components
- Relayer
TODOs
We decided to merge the files while there are still open points to address to record the current state an move forward. In particular, the following points need to be addressed:- https://github.com/informalsystems/tendermint-rs/pull/479#discussion_r466504876
- https://github.com/informalsystems/tendermint-rs/pull/479#discussion_r466493900
- https://github.com/informalsystems/tendermint-rs/pull/479#discussion_r466489045
- https://github.com/informalsystems/tendermint-rs/pull/479#discussion_r466491471