Skip to content

Commit 4d44519

Browse files
committed
docs: update dkg injection guide
1 parent 16f476d commit 4d44519

1 file changed

Lines changed: 40 additions & 37 deletions

File tree

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,64 @@
1-
# Dappnode Keypers: How to use DKG injection script
1+
# How to use the DKG injection script to restore the time capsule key shares into an existing DAppNode instance
22

3-
This guide describes the process for how **Dappnode** keypers can use the DKG injection script in the **shutter-api-1002** deployment.
3+
This guide describes the process to inject the Ethereum Time Capsule Key shares generated under the initial deployment of the Shutter API Keyper set and backed up under [the initial DAppNode deployment](https://github.com/shutter-network/DAppnodePackage-shutter-api/releases/tag/chiado%400.1.0_gnosis%400.1.5) ([DAppNode Explorer link](https://dappnode.github.io/explorer/#/repo/0x8928c414c10d5eeaf2eea30702b3a0c03d52ff6f/0.1.5))
44

5-
## Purpose
5+
This is needed to generate the time capsule decryption keys when the decryption timestamp is reached.
66

7-
To restore key material generated during previous deployment, necessary to fulfill pending decryption tasks.
8-
9-
---
10-
11-
**Initial Keypers**: Keypers who were active during **eon 11**. Timestamp range: Mar-24-2025 01:03:45 PM UTC (1742821425) - Dec-01-2025 11:25:35 AM UTC (1764588335).
12-
13-
---
7+
Initial Keypers refer to the Keypers who were active during eon 11 of the initial API Keyper deployment. Timestamp range: Mar-24-2025 01:03:45 PM UTC (1742821425) - Dec-01-2025 11:25:35 AM UTC (1764588335).
148

159
## Prerequisites
1610

17-
- Fully synced keyper running the shutter-api-1002 deployment version on Dappnode
18-
- The same signing keys used for initial keyper deployment
19-
- Dappnode backup from the initial keyper
20-
- Access to Dappnode instance via shell
21-
22-
---
11+
- Fully synced Keyper running the latest Shutter API 1002 DAppNode deployment version. [Release](https://github.com/shutter-network/DAppnodePackage-shutter-api/compare/chiado@v0.1.0_gnosis@v0.1.9...chiado@v0.1.0_gnosis@v0.1.10) | [DAppNode Explorer link](https://dappnode.github.io/explorer/#/repo/0x8928c414c10d5eeaf2eea30702b3a0c03d52ff6f/0.1.10)
12+
- The same Ethereum signing key used during the time capsule key collection.
13+
- DAppNode backup of the initial Keyper keys requested in November 2025.
14+
- Access to the DAppNode instance via shell.
2315

2416
## Process Steps
2517

26-
### 1. Run Keypers with Same Signing Keys
18+
### 1. Start a Keyper instance with the correct Ethereum key
2719

28-
In the **shutter-api-1002** deployment, run the keypers with the **same signing keys** that were used previously for the initial keypers deployment and wait for them to sync with the network.
20+
All Keypers have already been requested to start a new instance with the Ethereum signing key they used during the time capsule key generation.
2921

30-
Sync can be confirmed by this log line:
22+
This step has already been performed, and all Keypers are running the latest Shutter API 1002 DAppNode deployment with the Ethereum signing key used during the time capsule collection.
23+
24+
### 2. Check that your Keyper Gnosis chain is sufficiently synced
25+
26+
The syncing status can be confirmed if you see the below logs:
3127

3228
```
33-
synced registry contract end-block=20044460 num-discarded-events=0 num-inserted-events=0 start-block=20044460
29+
synced registry contract end-block=46640633 num-discarded-events=0 num-inserted-events=0 start-block=46640633
3430
```
3531

36-
The **end-block** should be (or greater than) the current head of the chain in the explorer.
32+
The **end-block** should be greater than block 44980000, which corresponds to Mar 4, 2026.
33+
34+
Note: Some Keypers have been running into rate-limiting issues and are not able to sync fully. This is currently not an issue as long as they are synced past the required activation block number, which they already are.
3735

38-
### 2. Ensure the backup is copied to the same instance
36+
## 3. SSH into DAppNode
3937

40-
Copy the backup to the same instance where the keyper is running.
38+
SSH into the DAppNode machine as described in the DAppNode docs:
4139

42-
### 3. Run DKG Injection Script (Dappnode)
40+
`ssh dappnode@<DAPPNODE_LOCAL_IP_ADDRESS>`
4341

44-
After a keyperset transition is done, run the Dappnode DKG injection script with the backup path:
42+
from the same network. Use the password set during onboarding.
4543

46-
```bash
44+
Source:
45+
https://docs.dappnode.io/docs/user/access-your-dappnode/terminal/
46+
47+
### 4. Ensure the backup is copied to your DAppNode machine
48+
49+
Copy the November Time Capsule DAppNode backup to your DAppNode machine, under a designated folder `<path_to_dappnode_backup>.`
50+
51+
### 5. Run the DAppNode DKG injection script
52+
53+
Run the DAppNode DKG injection script and provide the correct time capsule backup path:
54+
55+
```shell
4756
curl -fsSL https://raw.githubusercontent.com/shutter-network/DAppnodePackage-shutter-api/dkg-injection/dkg_injection/inject_dkg_result_dappnode.sh | bash -s -- <path_to_dappnode_backup>
4857
```
4958

50-
Replace `<path_to_dappnode_backup>` with the actual path to your Dappnode backup archive.
59+
Replace `<path_to_dappnode_backup>` with the actual path to your DAppNode time capsule backup archive.
5160

52-
Check if there is no error in running the script. The output should look something like this:
61+
Check that there is no error when running the script. The output should look something like this:
5362

5463
```
5564
==> Checking shuttermint sync block number >= 349800
@@ -61,20 +70,14 @@ Check if there is no error in running the script. The output should look somethi
6170
==> Checking if backup tables already exist
6271
==> Backing up tables
6372
==> Injecting DKG result
73+
==> Verifying injected data
6474
==> Done
6575
==> Stopping backup container
6676
==> Restarting keyper service (was running before)
6777
==> Keeping db service running (was running before)
6878
==> Removing temporary directory /tmp/tmp.7l26Tilq40
6979
```
7080

71-
---
72-
73-
## Summary Checklist
74-
75-
| Step | Action |
76-
|------|--------|
77-
| 1 | Run keypers in shutter-api-1002 with same signing keys as initial keypers and wait for keypers to sync |
78-
| 2 | Ensure the Dappnode backup archive is copied to the same instance |
79-
| 3 | Run the Dappnode DKG injection script with the backup archive path |
81+
### 6. Report the result of the script
8082

83+
Please report the result of the script to the Shutter team under your individual Keyper group.

0 commit comments

Comments
 (0)