架构决策记录(ADR)

这里用于记录 ibc-go 项目中的所有高层架构决策。 你可以在这篇博客文章中了解更多关于 ADR 概念的内容。 一份 ADR 应当提供:
  • 相关目标及当前状态的背景
  • 为实现目标而提出的变更
  • 优缺点总结
  • 参考资料
  • 变更日志
请注意 ADR 与规范文档之间的区别。ADR 提供的是架构变更的背景、直觉、推理和论证,或者某个新事物架构的背景、直觉、推理和论证。规范文档则是对现状或应有状态的高度压缩且更为精炼的总结。 如果已记录的决策后来被证明存在不足,请组织讨论,在此记录新的决策,然后修改代码以与之保持一致。 请注意,上下文/背景部分应使用现在时编写。 如需提出 ADR,请使用提供的ADR 模板。

目录

ADR 编号描述状态
001ICS-20 代币面额格式已接受,已实施
002Go 模块版本控制已接受
003ICS27 确认格式已接受
004ICS29 模块在托管余额失衡时锁定已接受
005UpdateClient 事件 - ClientState 共识高度已接受
006ICS02 客户端重构已接受
007ICS06 Solo machine 签名字节已接受
008对 IBC 参与方的回调已接受
009ICS27 消息服务器新增已接受
010将 IBC 轻客户端作为 SDK 模块已接受
011用于记录托管中代币总量的 ICS20 状态条目已接受
015IBC 数据包路由已接受
025IBC 被动通道已弃用
026IBC 客户端恢复机制已接受
027基于 Wasm 的轻客户端已接受

Architecture Decision Records (ADR)

This is a location to record all high-level architecture decisions in the ibc-go project. You can read more about the ADR concept in this blog post. An ADR should provide:
  • Context on the relevant goals and the current state
  • Proposed changes to achieve the goals
  • Summary of pros and cons
  • References
  • Changelog
Note the distinction between an ADR and a spec. The ADR provides the context, intuition, reasoning, and justification for a change in architecture, or for the architecture of something new. The spec is much more compressed and streamlined summary of everything as it is or should be. If recorded decisions turned out to be lacking, convene a discussion, record the new decisions here, and then modify the code to match. Note the context/background should be written in the present tense. To suggest an ADR, please make use of the ADR template provided.

Table of Contents

ADR #DescriptionStatus
001ICS-20 coin denomination formatAccepted, Implemented
002Go module versioningAccepted
003ICS27 acknowledgement formatAccepted
004ICS29 module locking upon escrow out of balanceAccepted
005UpdateClient events - ClientState consensus heightsAccepted
006ICS02 client refactorAccepted
007ICS06 Solo machine sign bytesAccepted
008Callback to IBC ActorsAccepted
009ICS27 message server additionAccepted
010IBC light clients as SDK modulesAccepted
011ICS20 state entry for total amount of tokens in escrowAccepted
015IBC Packet RoutingAccepted
025IBC passive channelsDeprecated
026IBC client recovery mechanismsAccepted
027Wasm based light clientsAccepted