or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Kusama corrupted ledgers recovery
We outline the i) current state of the corrupted ledgers; 2) steps to recover all corrupted and double bonded ledgers; 3) the state after the recovery (i.e. executing the recovery referendum).
Current state
Instructions to re-run the report in github/polkadot-js-report.
TL;DR: The solution to restore the corrupted ledgers and bonds in Polkadot consists of caling the following extrinsics:
Staking.restore_ledger(ESGsxFePah1qb96ooTU4QJMxMKUG7NZvgTig3eJxP9f3wLa, None, None, None)
Staking.restore_ledger(DggTJdwWEbPS4gERc3SRQL4heQufMeayrZGDpjHNC1iEiui, None, None)
Staking.restore_ledger(Du2LiHk1D1kAoaQ8wsx5jiNEG5CNRQEg6xME5iYtGkeQAJP, None, None)
1. Corrupted
ESG
Current state:
Bonded(ESG) = EVe3hL6XumVKNyrjrjqK5LHNSETvM4djs25wMi9nYr5VMqv
Ledger(ESG) = None
Balances.locks.staking(ESG) = 3,696,202,520
For
EVe3hL6XumVKNyrjrjqK5LHNSETvM4djs25wMi9nYr5VMqv
: (OK ✅)Bonded(EVe) = EVe3hL6XumVKNyrjrjqK5LHNSETvM4djs25wMi9nYr5VMqv
Ledger(EVe) =
Ledger {stash: EVe.., total: 14,902,603,086,185}Balances.locks.staking(EVe) = 14,902,603,086,185
Solution:
✅ State after recovery:
Bonded(ESG) = ESGsxFePah1qb96ooTU4QJMxMKUG7NZvgTig3eJxP9f3wLa
Ledger(ESG) = Ledger {stash: ESG.., total: 3,696,202,520}
Balances.locks.staking(ESG) = 3,696,202,520
2. Corrupted
Dgg
Current state:
Bonded(Dgg) = EyXct79ZDWdQfcSgJTG5texKM9wJj3quyh1ugPDVSkSt3Xm
Ledger(Dgg) = None
Balances.locks.staking(Dgg) = 187,908,199,001
For
EyXct79ZDWdQfcSgJTG5texKM9wJj3quyh1ugPDVSkSt3Xm
(OK ✅)Bonded(EyX) = EyXct79ZDWdQfcSgJTG5texKM9wJj3quyh1ugPDVSkSt3Xm
Ledger(EyX) =
Ledger {stash: EyX.., total: 900,000,000,000,000}Balances.locks.staking(EyX) = 900,000,000,000,000
Solution:
✅ State after recovery:
Bonded(Dgg) = DggTJdwWEbPS4gERc3SRQL4heQufMeayrZGDpjHNC1iEiui
Ledger(Dgg) = Ledger { stash: Dgg.., total: 187,908,199,001}
Balances.locks.staking(Dgg) = 187,908,199,001
3. Corrupted
Du2
Current state:
Bonded(Du2) = E7o2xM99q6ckmFbKJmmmvVyKzs1FDEbLZHjKbPy7mMG9KKt
Ledger(Du2) = None
For
E7o2xM99q6ckmFbKJmmmvVyKzs1FDEbLZHjKbPy7mMG9KKt
(OK ✅)Bonded(E7o) = EyXct79ZDWdQfcSgJTG5texKM9wJj3quyh1ugPDVSkSt3Xm
Ledger(E7o) =
Ledger {stash: E7o.., total: 580,422,150,385,340}Balances.locks.staking(E7o) = 580,422,150,385,340
Solution:
✅ State after recovery:
Bonded(Du2) = Du2LiHk1D1kAoaQ8wsx5jiNEG5CNRQEg6xME5iYtGkeQAJP
Ledger(Du2) = Ledger {stash: Du2.., total: 741,524,914}
Overall state after recovery
Instructions to re-run the report in github/polkadot-js-report.
Note: the remaining
None
ledgers are not related to the ledger corruption issue and it is a storage inconsistency that can be solved later on.Note 2: the overall number of bonded/ledgers/payee items may differ at the time of running the report script, but the important factor is that they are all in sync after the ledger recovery.