Skip to content

Commit 05d7e67

Browse files
committed
update docs
1 parent f2c4dd4 commit 05d7e67

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

docs/architecture/adr-026-ibc-client-recovery-mechanisms.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- 2020/06/23: Initial version
66
- 2020/08/06: Revisions per review & to reference version
77
- 2021/01/15: Revision to support substitute clients for unfreezing
8+
- 2021/05/20: Revision to simplify consensus state copying, remove initial height
89

910
## Status
1011

@@ -42,11 +43,10 @@ We elect not to deal with chains which have actually halted, which is necessaril
4243
1. Require Tendermint light clients (ICS 07) to expose the following additional state mutation functions
4344
1. `Unfreeze()`, which unfreezes a light client after misbehaviour and clears any frozen height previously set
4445
1. Add a new governance proposal type, `ClientUpdateProposal`, in the `x/ibc` module
45-
1. Extend the base `Proposal` with two client identifiers (`string`) and an initial height ('exported.Height').
46+
1. Extend the base `Proposal` with two client identifiers (`string`).
4647
1. The first client identifier is the proposed client to be updated. This client must be either frozen or expired.
4748
1. The second client is a substitute client. It carries all the state for the client which may be updated. It must have identitical client and chain parameters to the client which may be updated (except for latest height, frozen height, and chain-id). It should be continually updated during the voting period.
48-
1. The initial height represents the starting height consensus states which will be copied from the substitute client to the frozen/expired client.
49-
1. If this governance proposal passes, the client on trial will be updated with all the state of the substitute, if and only if:
49+
1. If this governance proposal passes, the client on trial will be updated to the latest state of the substitute, if and only if:
5050
1. `allow_governance_override_after_expiry` is true and the client has expired (`Expired()` returns true)
5151
1. `allow_governance_override_after_misbehaviour` is true and the client has been frozen (`Frozen()` returns true)
5252
1. In this case, additionally, the client is unfrozen by calling `Unfreeze()`

docs/ibc/proposals.md

+7-8
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,10 @@ ultimately lead the on-chain light client to become expired.
3232

3333
In the case that a highly valued light client is frozen, expired, or rendered non-updateable, a
3434
governance proposal may be submitted to update this client, known as the subject client. The
35-
proposal includes the client identifier for the subject, the client identifier for a substitute
36-
client, and an initial height to reference the substitute client from. Light client implementations
37-
may implement custom updating logic, but in most cases, the subject will be updated with information
38-
from the substitute client, if the proposal passes. The substitute client is used as a "stand in"
39-
while the subject is on trial. It is best practice to create a substitute client *after* the subject
40-
has become frozen to avoid the substitute from also becoming frozen. An active substitute client
41-
allows headers to be submitted during the voting period to prevent accidental expiry once the proposal
42-
passes.
35+
proposal includes the client identifier for the subject and the client identifier for a substitute
36+
client. Light client implementations may implement custom updating logic, but in most cases,
37+
the subject will be updated to the latest consensus state of the substitute client, if the proposal passes.
38+
The substitute client is used as a "stand in" while the subject is on trial. It is best practice to create
39+
a substitute client *after* the subject has become frozen to avoid the substitute from also becoming frozen.
40+
An active substitute client allows headers to be submitted during the voting period to prevent accidental expiry
41+
once the proposal passes.

0 commit comments

Comments
 (0)