Skip to content

Commit 7b29743

Browse files
validator rewards claim (#171)
* validator rewards claim Add the Validator Rewards page and its nav entry. Purely additive — no existing pages, nav entries, or config removed. * Update Validator Rewards.md * Update Validator Rewards.md * Update Validator Rewards.md * Update Validator Rewards.md * chore: auto-translate docs --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 968e819 commit 7b29743

9 files changed

Lines changed: 1401 additions & 0 deletions

docs/Validator Rewards.es.md

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
# Recompensas para Validadores
2+
!!! warning "Al conectarse a DoubleZero, acepto los [Términos de Uso de DoubleZero](https://doublezero.xyz/terms-protocol)"
3+
4+
Los validadores que publican leader shreds en DoubleZero Edge obtienen recompensas en cada epoch. Antes de que las recompensas puedan ser pagadas, cada validador debe registrar **dónde** se enviarán las recompensas configurando una cuenta `ValidatorPublisherRewards` en Solana. Dicha cuenta almacena:
5+
6+
- el **mint de recompensas** — el token en el que se pagan las recompensas `2z` (a menos que se cambie manualmente)
7+
- el **propietario de recompensas** — la wallet que posee la Cuenta de Token Asociada (ATA) que recibe las recompensas
8+
9+
El comando `configure` establecerá estos campos, y los pagos automáticos se realizarán epoch a epoch a partir de ese momento. Puede volver a ejecutar `configure` más adelante para cambiar cualquiera de los campos.
10+
11+
!!! info "Si aún no ha completado la [Configuración](setup.md), la [Conexión del Validador a Mainnet-Beta](DZ%20Mainnet-beta%20Connection.md) y la [Conexión Multicast del Validador](Validator%20Multicast%20Connection.md), hágalo primero."
12+
13+
## Requisitos previos
14+
15+
- Validadores publicando leader shreds — consulte [Conexión Multicast del Validador](Validator%20Multicast%20Connection.md).
16+
- La última versión del CLI `doublezero-solana`: `sudo apt update && sudo apt install doublezero-solana`, como mínimo `0.5.6`.
17+
- Acceso al **keypair de identidad del validador**, ya sea en la misma máquina o mantenido offline con la capacidad de firmar un mensaje.
18+
- Una pubkey de wallet de destino que será propietaria de la ATA de recompensas.
19+
20+
---
21+
22+
## 1. Elija una ruta de autenticación
23+
24+
Configurar la cuenta de recompensas requiere autorización de la clave de identidad del validador. Hay dos formas de proporcionarla:
25+
26+
| Ruta | Cuándo usarla |
27+
|---|---|
28+
| **Directa** | El keypair de identidad del validador está en la máquina desde la que ejecuta los comandos. |
29+
| **Offchain** | El keypair de identidad del validador se mantiene offline o en una máquina diferente a la de la wallet que paga las comisiones. |
30+
31+
---
32+
33+
## 2a. Ruta directa
34+
35+
Ejecute `configure` con el keypair de identidad del validador como `-k`.
36+
37+
```bash
38+
doublezero-solana shreds publisher-rewards configure \
39+
--node-id <ValidatorIdentity111111111111111111111111111> \
40+
--rewards-token-owner <Wallet567Identity111111111111111111111111111> \
41+
-k <path-to-validator-identity-keypair.json>
42+
```
43+
Salida de ejemplo
44+
```bash
45+
Shred subscription - Configure Validator Publisher Rewards
46+
Node ID: ValidatorIdentity111111111111111111111111111
47+
Rewards owner: ValidatorIdentity111111111111111111111111111
48+
Rewards mint: J6pQQ3FAcJQeWPPGppWRb4nM8jU3wLyYbRrLh7feMfvd
49+
Rewards ATA: 11111111111Pt3PatTj59dG5BhYuqPb9QJDUr1111111
50+
Auth path: direct
51+
Configured validator publisher rewards: 41111111ntmoBTnvcKcP1g2a1111111HPoN3z5uf11111112jjzBJsr1B2JrTRff4dSGe1pdM1111111TMADi3Nz
52+
```
53+
`Configured validator publisher rewards: ` muestra la transacción que puede visualizar en un explorador de bloques.
54+
55+
| Flag | Descripción |
56+
|---|---|
57+
| `--node-id` | Pubkey de identidad del nodo validador. |
58+
| `--rewards-token-owner` | Wallet que será propietaria de la ATA receptora. |
59+
| `--rewards-token-mint` | El token en el que se recibirán las recompensas de la wallet `2z`. Los tokens compatibles también incluyen `usdc` y `wsol`. |
60+
| `-k` | Ruta al keypair de identidad del validador. En la ruta directa, la pubkey del keypair debe coincidir con `--node-id` o el comando dará error e indicará que cambie a la ruta offchain. |
61+
62+
La ATA se inicializa automáticamente en la misma transacción si aún no existe.
63+
64+
Continúe directamente al [paso 3](#3-verificar-la-configuracion).
65+
66+
---
67+
68+
## 2b. Ruta offchain
69+
70+
Tres subpasos: preparar, firmar, configurar.
71+
72+
### 2b.i. Preparar el mensaje offchain
73+
74+
Ejecute esto en cualquier lugar — es de solo lectura y no necesita el keypair de identidad del validador. Imprime el blob hexadecimal a firmar y el slot absoluto en el que expira la firma.
75+
76+
```bash
77+
doublezero-solana shreds publisher-rewards prepare-offchain-message \
78+
--node-id <ValidatorIdentity111111111111111111111111111> \
79+
--rewards-token-owner <Wallet567Identity111111111111111111111111111> \
80+
--valid-for 1h
81+
```
82+
Salida de ejemplo
83+
84+
```bash
85+
Hex message: 123457fc138f556a2578bdb079dc923342cc4e4a376683dc4c6cb923051e0be3
86+
Deadline slot: 422954444
87+
88+
Sign with:
89+
solana sign-offchain-message 123457fc138f556a2578bdb079dc923342cc4e4a376683dc4c6cb923051e0be3 --keypair <validator-identity>
90+
91+
Then submit:
92+
doublezero-solana shreds publisher-rewards configure \
93+
--node-id ValidatorIdentity111111111111111111111111111 --rewards-token-mint J6pQQ3FAcJQeWPPGppWRb4nM8jU3wLyYbRrLh7feMfvd --rewards-token-owner Wallet567Identity111111111111111111111111111 \
94+
--deadline-slot 422954444 --signature <BASE58>
95+
```
96+
97+
98+
| Flag | Descripción |
99+
|---|---|
100+
| `--node-id` | Pubkey de identidad del nodo validador. |
101+
| `--rewards-token-owner` | Wallet que será propietaria de la ATA receptora. |
102+
| `--rewards-token-mint` | El token en el que se recibirán las recompensas de la wallet `2z`. Los tokens compatibles también incluyen `usdc` y `wsol`. |
103+
| `--valid-for` | Tiempo de vida de la firma relativo al slot actual. Acepta `<n>s`, `<n>m` o `<n>h`. Valor predeterminado: `1h`. |
104+
| `--deadline-slot` | Alternativa a `--valid-for`: slot absoluto en el que expira la autorización. Mutuamente excluyente con `--valid-for`. |
105+
| `--json` | Emite JSON (`{ hex, deadline_slot }`) en lugar del resumen legible. |
106+
107+
El comando imprime el mensaje de autorización codificado en hexadecimal, el slot límite resuelto y fragmentos de shell listos para ejecutar para los dos pasos siguientes.
108+
109+
### 2b.ii. Firmar el mensaje
110+
111+
En la máquina que contiene el keypair de identidad del validador:
112+
113+
```bash
114+
solana sign-offchain-message <123457fc138f556a2578bdb079dc923342cc4e4a376683dc4c6cb923051e0be3> \
115+
--keypair <path-to-validator-identity-keypair.json>
116+
```
117+
118+
Esto imprime una firma en base58.
119+
120+
Salida de ejemplo
121+
122+
```bash
123+
SignatureTBUwGq511mPLMCEE4f5fNsmX1PQrozXBBJeCdSrcbhqSX1MwFp8NsNZbhCNMZ1kPWakjsLL9e3GUxxp
124+
```
125+
126+
### 2b.iii. Enviar `configure`
127+
128+
De vuelta en la máquina con su wallet pagadora de comisiones:
129+
130+
```bash
131+
doublezero-solana shreds publisher-rewards configure \
132+
--node-id <ValidatorIdentity111111111111111111111111111> \
133+
--rewards-token-owner <Wallet567Identity111111111111111111111111111> \
134+
--signature <SignatureTBUwGq511mPLMCEE4f5fNsmX1PQrozXBBJeCdSrcbhqSX1MwFp8NsNZbhCNMZ1kPWakjsLL9e3GUxxp> \
135+
--deadline-slot <DEADLINE_SLOT>
136+
```
137+
138+
`--signature` y `--deadline-slot` deben pasarse juntos. Los valores deben coincidir con los producidos en los pasos 2b.i y 2b.ii.
139+
140+
La ATA se inicializa automáticamente en la misma transacción si aún no existe.
141+
142+
143+
Salida de ejemplo
144+
145+
```bash
146+
Shred subscription - Configure Validator Publisher Rewards
147+
Node ID: ValidatorIdentity111111111111111111111111111
148+
Rewards owner: ValidatorIdentity111111111111111111111111111
149+
Rewards mint: J6pQQ3FAcJQeWPPGppWRb4nM8jU3wLyYbRrLh7feMfvd
150+
Rewards ATA: 11111111111Pt3PatTj59dG5BhYuqPb9QJDUr1111111
151+
Auth path: offchain
152+
Configured validator publisher rewards: 41111111ntmoBTnvcKcP1g2a1111111HPoN3z5uf11111112jjzBJsr1B2JrTRff4dSGe1pdM1111111TMADi3Nz
153+
```
154+
155+
---
156+
157+
## 3. Verificar la configuración
158+
159+
```bash
160+
doublezero-solana shreds publisher-rewards show --node-id <NODE_ID>
161+
```
162+
163+
El comando imprime el `Node ID`, `Rewards owner`, `Rewards mint`, la dirección ATA resuelta y el estado de la ATA. La **ATA resuelta** es la dirección determinística derivada del propietario de recompensas + mint de recompensas — es donde se depositarán las recompensas en cada epoch.
164+
165+
---
166+
167+
## Solución de problemas
168+
169+
### Ruta directa: la pubkey de `-k` no coincide con `--node-id`
170+
171+
El keypair pagador de comisiones que proporcionó no es la identidad del validador. Pase el keypair de identidad del validador como `-k`, o cambie a la [ruta offchain](#2b-ruta-offchain).
172+
173+
### Firma expirada
174+
175+
Cada firma offchain tiene un slot límite. Si pasa demasiado tiempo entre `prepare-offchain-message` y `configure`, vuelva a ejecutar `prepare-offchain-message`, firme nuevamente y reenvíe. La validez predeterminada es de 1 hora — extiéndala con `--valid-for 4h` o similar si necesita más tiempo para un flujo de firma offline.

docs/Validator Rewards.fr.md

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
# Récompenses des validateurs
2+
!!! warning "En me connectant à DoubleZero, j'accepte les [Conditions d'utilisation de DoubleZero](https://doublezero.xyz/terms-protocol)"
3+
4+
Les validateurs qui publient des leader shreds vers DoubleZero Edge reçoivent des récompenses à chaque époque. Avant que les récompenses puissent être versées, chaque validateur doit enregistrer **** les récompenses sont envoyées en configurant un compte `ValidatorPublisherRewards` sur Solana. Ce compte stocke :
5+
6+
- le **mint des récompenses** — le jeton dans lequel les récompenses sont versées, 2z (sauf modification manuelle)
7+
- le **propriétaire des récompenses** — le portefeuille qui détient le compte de jetons associé (ATA) recevant les récompenses
8+
9+
La commande `configure` définira ces champs, et les versements automatiques se feront époque par époque par la suite. Vous pouvez relancer `configure` ultérieurement pour modifier l'un ou l'autre champ.
10+
11+
!!! info "Si vous n'avez pas encore terminé la [Configuration](setup.md), la [Connexion Validateur Mainnet-Beta](DZ%20Mainnet-beta%20Connection.md) et la [Connexion Multicast Validateur](Validator%20Multicast%20Connection.md), faites-le d'abord."
12+
13+
## Prérequis
14+
15+
- Validateurs publiant des leader shreds — voir [Connexion Multicast Validateur](Validator%20Multicast%20Connection.md).
16+
- La dernière version du CLI `doublezero-solana` : `sudo apt update && sudo apt install doublezero-solana`, au minimum `0.5.6`.
17+
- Accès à la **paire de clés d'identité du validateur**, soit sur la même machine, soit conservée hors ligne avec la possibilité de signer un message.
18+
- Une clé publique de portefeuille de destination qui détiendra l'ATA des récompenses.
19+
20+
---
21+
22+
## 1. Choisir un chemin d'authentification
23+
24+
La configuration du compte de récompenses nécessite une autorisation de la clé d'identité du validateur. Il existe deux façons de la fournir :
25+
26+
| Chemin | Quand l'utiliser |
27+
|---|---|
28+
| **Direct** | La paire de clés d'identité du validateur se trouve sur la machine depuis laquelle vous exécutez les commandes. |
29+
| **Hors chaîne** | La paire de clés d'identité du validateur est conservée hors ligne ou sur une machine distincte de celle du portefeuille payeur de frais. |
30+
31+
---
32+
33+
## 2a. Chemin direct
34+
35+
Exécutez `configure` avec la paire de clés d'identité du validateur en tant que `-k`.
36+
37+
```bash
38+
doublezero-solana shreds publisher-rewards configure \
39+
--node-id <ValidatorIdentity111111111111111111111111111> \
40+
--rewards-token-owner <Wallet567Identity111111111111111111111111111> \
41+
-k <path-to-validator-identity-keypair.json>
42+
```
43+
Exemple de sortie
44+
```bash
45+
Shred subscription - Configure Validator Publisher Rewards
46+
Node ID: ValidatorIdentity111111111111111111111111111
47+
Rewards owner: ValidatorIdentity111111111111111111111111111
48+
Rewards mint: J6pQQ3FAcJQeWPPGppWRb4nM8jU3wLyYbRrLh7feMfvd
49+
Rewards ATA: 11111111111Pt3PatTj59dG5BhYuqPb9QJDUr1111111
50+
Auth path: direct
51+
Configured validator publisher rewards: 41111111ntmoBTnvcKcP1g2a1111111HPoN3z5uf11111112jjzBJsr1B2JrTRff4dSGe1pdM1111111TMADi3Nz
52+
```
53+
`Configured validator publisher rewards: ` affiche la transaction que vous pouvez consulter dans un explorateur de blocs.
54+
55+
| Drapeau | Description |
56+
|---|---|
57+
| `--node-id` | Clé publique d'identité du nœud validateur. |
58+
| `--rewards-token-owner` | Portefeuille qui détiendra l'ATA recevant les récompenses. |
59+
| `--rewards-token-mint` | Le jeton dans lequel les récompenses seront reçues, `2z`. Les jetons pris en charge incluent également `usdc` et `wsol`. |
60+
| `-k` | Chemin vers la paire de clés d'identité du validateur. Sur le chemin direct, la clé publique de la paire de clés doit correspondre à `--node-id`, sinon la commande échouera et vous indiquera de passer au chemin hors chaîne. |
61+
62+
L'ATA est automatiquement initialisé dans la même transaction s'il n'existe pas encore.
63+
64+
Passez directement à l'[étape 3](#3-verifier-la-configuration).
65+
66+
---
67+
68+
## 2b. Chemin hors chaîne
69+
70+
Trois sous-étapes : préparer, signer, configurer.
71+
72+
### 2b.i. Préparer le message hors chaîne
73+
74+
Exécutez ceci n'importe où — c'est en lecture seule et ne nécessite pas la paire de clés d'identité du validateur. La commande affiche le blob hexadécimal à signer et le slot absolu auquel la signature expire.
75+
76+
```bash
77+
doublezero-solana shreds publisher-rewards prepare-offchain-message \
78+
--node-id <ValidatorIdentity111111111111111111111111111> \
79+
--rewards-token-owner <Wallet567Identity111111111111111111111111111> \
80+
--valid-for 1h
81+
```
82+
Exemple de sortie
83+
84+
```bash
85+
Hex message: 123457fc138f556a2578bdb079dc923342cc4e4a376683dc4c6cb923051e0be3
86+
Deadline slot: 422954444
87+
88+
Sign with:
89+
solana sign-offchain-message 123457fc138f556a2578bdb079dc923342cc4e4a376683dc4c6cb923051e0be3 --keypair <validator-identity>
90+
91+
Then submit:
92+
doublezero-solana shreds publisher-rewards configure \
93+
--node-id ValidatorIdentity111111111111111111111111111 --rewards-token-mint J6pQQ3FAcJQeWPPGppWRb4nM8jU3wLyYbRrLh7feMfvd --rewards-token-owner Wallet567Identity111111111111111111111111111 \
94+
--deadline-slot 422954444 --signature <BASE58>
95+
```
96+
97+
98+
| Drapeau | Description |
99+
|---|---|
100+
| `--node-id` | Clé publique d'identité du nœud validateur. |
101+
| `--rewards-token-owner` | Portefeuille qui détiendra l'ATA recevant les récompenses. |
102+
| `--rewards-token-mint` | Le jeton dans lequel les récompenses seront reçues, `2z`. Les jetons pris en charge incluent également `usdc` et `wsol`. |
103+
| `--valid-for` | Durée de vie de la signature relative au slot actuel. Accepte `<n>s`, `<n>m` ou `<n>h`. Par défaut : `1h`. |
104+
| `--deadline-slot` | Alternative à `--valid-for` : slot absolu auquel l'autorisation expire. Mutuellement exclusif avec `--valid-for`. |
105+
| `--json` | Émet du JSON (`{ hex, deadline_slot }`) au lieu du résumé lisible. |
106+
107+
La commande affiche le message d'authentification encodé en hexadécimal, le slot limite résolu et des extraits de commandes shell prêts à l'emploi pour les deux étapes suivantes.
108+
109+
### 2b.ii. Signer le message
110+
111+
Sur la machine qui détient la paire de clés d'identité du validateur :
112+
113+
```bash
114+
solana sign-offchain-message <123457fc138f556a2578bdb079dc923342cc4e4a376683dc4c6cb923051e0be3> \
115+
--keypair <path-to-validator-identity-keypair.json>
116+
```
117+
118+
Cela affiche une signature en base58.
119+
120+
Exemple de sortie
121+
122+
```bash
123+
SignatureTBUwGq511mPLMCEE4f5fNsmX1PQrozXBBJeCdSrcbhqSX1MwFp8NsNZbhCNMZ1kPWakjsLL9e3GUxxp
124+
```
125+
126+
### 2b.iii. Soumettre `configure`
127+
128+
De retour sur la machine avec votre portefeuille payeur de frais :
129+
130+
```bash
131+
doublezero-solana shreds publisher-rewards configure \
132+
--node-id <ValidatorIdentity111111111111111111111111111> \
133+
--rewards-token-owner <Wallet567Identity111111111111111111111111111> \
134+
--signature <SignatureTBUwGq511mPLMCEE4f5fNsmX1PQrozXBBJeCdSrcbhqSX1MwFp8NsNZbhCNMZ1kPWakjsLL9e3GUxxp> \
135+
--deadline-slot <DEADLINE_SLOT>
136+
```
137+
138+
`--signature` et `--deadline-slot` doivent être passés ensemble. Les valeurs doivent correspondre à celles produites aux étapes 2b.i et 2b.ii.
139+
140+
L'ATA est automatiquement initialisé dans la même transaction s'il n'existe pas encore.
141+
142+
143+
Exemple de sortie
144+
145+
```bash
146+
Shred subscription - Configure Validator Publisher Rewards
147+
Node ID: ValidatorIdentity111111111111111111111111111
148+
Rewards owner: ValidatorIdentity111111111111111111111111111
149+
Rewards mint: J6pQQ3FAcJQeWPPGppWRb4nM8jU3wLyYbRrLh7feMfvd
150+
Rewards ATA: 11111111111Pt3PatTj59dG5BhYuqPb9QJDUr1111111
151+
Auth path: offchain
152+
Configured validator publisher rewards: 41111111ntmoBTnvcKcP1g2a1111111HPoN3z5uf11111112jjzBJsr1B2JrTRff4dSGe1pdM1111111TMADi3Nz
153+
```
154+
155+
---
156+
157+
## 3. Vérifier la configuration
158+
159+
```bash
160+
doublezero-solana shreds publisher-rewards show --node-id <NODE_ID>
161+
```
162+
163+
La commande affiche le `Node ID`, le `Rewards owner`, le `Rewards mint`, l'adresse ATA résolue et le statut de l'ATA. Le **Resolved ATA** est l'adresse déterministe dérivée du propriétaire des récompenses + du mint des récompenses — c'est là que les récompenses seront déposées à chaque époque.
164+
165+
---
166+
167+
## Dépannage
168+
169+
### Chemin direct : la clé publique de `-k` ne correspond pas à `--node-id`
170+
171+
La paire de clés du payeur de frais que vous avez fournie n'est pas l'identité du validateur. Passez soit la paire de clés d'identité du validateur en tant que `-k`, soit basculez vers le [chemin hors chaîne](#2b-chemin-hors-chaine).
172+
173+
### Signature expirée
174+
175+
Chaque signature hors chaîne a un slot limite. Si trop de temps s'écoule entre `prepare-offchain-message` et `configure`, relancez `prepare-offchain-message`, re-signez et re-soumettez. La validité par défaut est de 1 heure — prolongez avec `--valid-for 4h` ou similaire si vous avez besoin de plus de temps pour un processus de signature hors ligne.

0 commit comments

Comments
 (0)