Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Validator Upgrade Guide #3

Merged
merged 4 commits into from
Dec 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pages/docs/node/validator/_meta.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"requirements": "Start Validating",
"upgrade-node": "Upgrade your Validator",
"proxyaccount": "Proxy Accounts",
"validator-rewards": "Rewards"
}
58 changes: 58 additions & 0 deletions pages/docs/node/validator/upgrade-node.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Validator Upgrade Guide

## Introduction

Validators are crucial to the stability and security of the Tangle Network. This guide provides detailed steps for upgrading validators while maintaining strict uptime requirements to avoid slashing.

## Preparation

- Stay informed [about new releases](https://github.com/webb-tools/tangle/) from the Tangle Network community. We publish these on the [Webb twitter, and in Discord.](../../community.mdx)
- Plan the upgrade process to minimize downtime.

## Key Components

### Session Keys

- Stored in the client, linking your node to the staking proxy.
- Changing keys requires waiting for the current session to finish plus two more sessions.

### Keystore

- Located at `/chains/Tangle/keystore`.
- Contains private keys for signing transactions.
- **Do not clone or copy** the keystore; generate new keys for each validator instance.

## Upgrade Steps

### Setting Up Validator B (Your New Validator)

1. Start and sync a second node (Validator B) with the `--validator` flag.
2. Generate session keys for Validator B.
3. Submit a `set_key` extrinsic from your staking proxy with Validator B’s session key.
4. Note the session when this extrinsic is executed.
5. Keep Validator A running until two full sessions have elapsed after the current one.

### Switching to Validator B

1. After Session N+3, Validator B will act as your validator.
2. Perform maintenance on Validator A.

### Restoring Validator A

1. Restart Validator A with the `--validator` flag and sync it.
2. Generate new session keys for Validator A.
3. Submit a `set_key` extrinsic with Validator A’s new session key.
4. Keep Validator B running until two full sessions have elapsed after the current session.

## Monitoring the Transition

Verify the session change by looking for log messages like:

```
2019-10-28 21:44:13 Applying authority set change scheduled at block #450092
2019-10-28 21:44:13 Applying GRANDPA set change to new set with 20 authorities
```

## Troubleshooting and Support

For additional support, [join our Validator channel in Discord.](../../community.mdx)