Some checks failed
CodeQL / Analyze (push) Waiting to run
Docker Build & Push Simapp (main) / docker-build (push) Waiting to run
golangci-lint / lint (push) Waiting to run
Tests / Code Coverage / build (amd64) (push) Waiting to run
Tests / Code Coverage / build (arm64) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[additional-args:-tags="test_e2e" name:e2e path:./e2e]) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[name:08-wasm path:./modules/light-clients/08-wasm]) (push) Waiting to run
Tests / Code Coverage / unit-tests (map[name:ibc-go path:.]) (push) Waiting to run
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
Buf-Push / push (push) Has been cancelled
48 lines
2.5 KiB
Markdown
48 lines
2.5 KiB
Markdown
---
|
|
sidebar_position: 1
|
|
---
|
|
|
|
# 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](https://product.reverb.com/documenting-architecture-decisions-the-reverb-way-a3563bb24bd0#.78xhdix6t).
|
|
|
|
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](https://github.com/cosmos/ibc-go/blob/main/docs/architecture/adr.template.md) provided.
|
|
|
|
## Table of Contents
|
|
|
|
| ADR \# | Description | Status |
|
|
| ------ | ----------- | ------ |
|
|
| [001](./adr-001-coin-source-tracing.md) | ICS-20 coin denomination format | Accepted, Implemented |
|
|
| [002](./adr-002-go-module-versioning.md) | Go module versioning | Accepted |
|
|
| [003](./adr-003-ics27-acknowledgement.md) | ICS27 acknowledgement format | Accepted |
|
|
| [004](./adr-004-ics29-lock-fee-module.md) | ICS29 module locking upon escrow out of balance | Accepted |
|
|
| [005](./adr-005-consensus-height-events.md) | `UpdateClient` events - `ClientState` consensus heights | Accepted |
|
|
| [006](./adr-006-02-client-refactor.md) | ICS02 client refactor | Accepted |
|
|
| [007](./adr-007-solomachine-signbytes.md) | ICS06 Solo machine sign bytes | Accepted |
|
|
| [008](./adr-008-app-caller-cbs.md) | Callback to IBC Actors | Accepted |
|
|
| [009](./adr-009-v6-ics27-msgserver.md) | ICS27 message server addition | Accepted |
|
|
| [010](./adr-010-light-clients-as-sdk-modules.md) | IBC light clients as SDK modules | Accepted |
|
|
| [011](./adr-011-transfer-total-escrow-state-entry.md) | ICS20 state entry for total amount of tokens in escrow | Accepted |
|
|
| [015](./adr-015-ibc-packet-receiver.md) | IBC Packet Routing | Accepted |
|
|
| [025](./adr-025-ibc-passive-channels.md) | IBC passive channels | Deprecated |
|
|
| [026](./adr-026-ibc-client-recovery-mechanisms.md) | IBC client recovery mechanisms | Accepted |
|
|
| [027](./adr-027-ibc-wasm.md) | Wasm based light clients | Accepted |
|