# Gérer un noeud validateur

## Qu'est-ce qu'un nœud validateur ?&#x20;

Pour devenir [un validateur](https://docs.chiliz.com/fr/apprendre/a-propos-des-validateurs/comment-devenir-un-validateur) de Chiliz Chain, vous devez disposer d'une configuration matérielle spécifique et être capable d'exécuter un nœud validateur. \
Un nœud est un système informatique configuré spécifiquement pour valider les transactions avant de les valider sur la Chiliz Chain.&#x20;

{% hint style="info" %}
Veuillez noter que nous avons une page de documentation plus générique sur l'exécution d'un nœud :&#x20;

[gerer-un-noeud-chiliz-chain](https://docs.chiliz.com/fr/demarrage-rapide/gerer-un-noeud-chiliz-chain "mention")
{% endhint %}

## En résumé&#x20;

Pour exécuter un nœud Validateur, vous devez configurer les paramètres suivants :

```bash
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--mine \
--chiliz \ # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
--datadir=/datadir \
--password=/datadir/password.txt \
--allow-insecure-unlock \
--unlock=REPLACE_WITH_VALIDATOR_ADDRESS \
--syncmode=full \
--gcmode=archive \
--miner.etherbase=REPLACE_WIT
--nodekeyhex=2668f377e69de_EXAMPLE_REPLACE_WITH_YOUR_VALUE_c88bea3e337446ed73 \
--nat=extip:140.250.140.250 \ # This is just an example.
--verbosity=4

```

{% hint style="warning" %}
N'utilisez pas ce code tel quel !

Assurez-vous de mettre à jour les paramètres unlock, miner.etherbase et nodekeyhex !
{% endhint %}

## Prérequis&#x20;

Pour exécuter le nœud validateur de la Chiliz Chain, vous devez avoir installé Docker Engine soit sur votre machine, soit sur votre serveur.

Vous pouvez utiliser un fournisseur de cloud tel que Amazon Web Services, Google Cloud Platform ou Microsoft Azure, ou vous pouvez configurer votre propre serveur (voir ci-dessous).

Veuillez [installer Docker](https://docs.docker.com/engine/install/) avant de continuer.

### Configuration requise

Vous aurez besoin d'un serveur dédié pour exécuter votre nœud validateur :

* **CPU :** Au moins 2 cœurs de processeur.
* **Mémoire :** Au moins 4 Go de RAM.
* **Disque :** Utilisez un disque SSD (solid-state drive) pour des performances optimales.
  * Nous recommandons d'avoir au moins 300 Go d'espace disque libre pour la synchronisation avec la chaîne.
* **Bande passante réseau :** Au moins 10 Gbit/s.

## Images Docker pré-construites&#x20;

Consultez ou utilisez les images Docker pré-construites à partir du référentiel public de [Chiliz Chain 2.0 sur Docker Hub pour Mainnet](https://hub.docker.com/repository/docker/chilizchain/ccv2-geth).

## Lancer un noeud validateur et démarrer la synchronisation&#x20;

Le point de départ recommandé pour exécuter un nœud validateur de Chiliz Chain est avec le volume de données monté. Si cette méthode est utilisée pour recréer un conteneur Docker, les données sont stockées dans le répertoire et peuvent facilement être réutilisées ou clonées sur un autre validateur.&#x20;

{% hint style="info" %}
En tant que fork d'Ethereum, la Chiliz Chain s'appuie sur [Geth](https://geth.ethereum.org/) pour ses serveurs de nœuds.

Go-ethereum (alias Geth) est un client Ethereum développé en Go. L'exécution de Geth aux côtés d'un client de consensus transforme un ordinateur en un nœud. C'est donc un élément essentiel de votre nœud.

Nous avons forké Geth en `ccv2-geth`, comme vous le verrez ci-dessous.
{% endhint %}

### Créez l'adresse du validateur&#x20;

Créez le nœud validateur avec la commande suivante :&#x20;

```bash
docker run --rm -ti \
-v $(pwd)/keystore:/root/.ethereum/keystore/ \
chilizchain/ccv2-geth:latest \
--chiliz \  # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
account new
```

Vous devrez taper un mot de passe pour le fichier de clé secrète.&#x20;

* **Adresse publique de la clé :** En exécutant le validateur, cette adresse sera utilisée pour définir le paramètre `--unlock`.

```bash
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
...
--unlock=REPLACE_WITH_VALIDATOR_ADDRESS # This is just an example.
```

* **Chemin du fichier de clé secrète :** Ce fichier doit être déplacé dans le répertoire "keystore" à l'intérieur du datadir `$(pwd)/my-datadir` que vous avez créé lors des étapes précédentes, de sorte que le chemin final du fichier soit "`$(pwd)/my-datadir/keystore/UTC–(TIMESTAMP)-(ADRESSE)"`. **NE changez PAS** le nom du fichier.&#x20;
* **Mot de passe :** Le mot de passe que vous avez tapé lors de l'exécution de la commande précédente doit être stocké dans un fichier : \
  `$(pwd)/my-datadir/password.txt` \
  Ce fichier sera utilisé pour définir le paramètre `--password` lors de l'exécution du nœud validateur. \
  N'oubliez pas que tous les fichiers dans le chemin de l'hôte `$(pwd)/my-datadir` seront situés dans le conteneur dans le répertoire `/datadir`, c'est pourquoi le paramètre de mot de passe doit être défini comme dans l'exemple suivant :&#x20;

```bash
docker run \
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
...
--password=/datadir/password.txt
...


```

Il est très important de garder à l'esprit les recommandations suivantes :

* Vous pouvez partager votre **adresse publique** avec n'importe qui. Les autres en ont besoin pour interagir avec vous.
* Vous ne devez **JAMAIS** partager la clé secrète avec qui que ce soit ! La clé contrôle l'accès à vos fonds !
* Vous devez **SAUVEGARDER** votre fichier de clé ! Sans la clé, il est impossible d'accéder aux fonds du compte !
* Vous devez vous **SOUVENIR** de votre mot de passe ! Sans le mot de passe, il est impossible de déchiffrer la clé !

### Générer la clé du nœud validateur&#x20;

*Cette section est facultative.*&#x20;

Il est recommandé de générer une chaîne hexadécimale aléatoire pour le nœud. \
Cela est utile pour la traçabilité dans les journaux et pour éviter les problèmes de liaison avec la chaîne.

Pour ce faire, vous pouvez utiliser <https://www.browserling.com/tools/random-hex> et générer une clé hexadécimale avec 64 caractères par nœud.&#x20;

Lorsque vous exécutez un nœud validateur, vous pouvez définir `--nodekeyhex` avec cette valeur. Cela garantira que lorsque vous redémarrez le nœud, il aura la même adresse de nœud (appelée "adresse enode") et cela facilitera les futures opérations de débogage ou de recherche de pannes.

```bash
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
cchilizchain/ccv2-geth:latest \
...
--nodekeyhex=2668f377e69de_EXAMPLE_REPLACE_WITH_YOUR_VALUE_c88bea3e337446ed73 # example
...
```

### Régler le mécanisme de mapping de port NAT de Geth

Selon la documentation de Geth, le paramètre `--nat` dispose de différentes options : `any`, `none`, `upnp`, `pmp`, et `extip:<IP>`. La valeur par défaut est `any`. [Lisez la documentation de Geth pour plus d'information](https://geth.ethereum.org/docs/fundamentals/command-line-options).

Nous recommandons d'utiliser `extip:<IP>`, où IP est l'adresse IPv4 publique où le validateur est lancé.

```bash
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
...
--nat=extip:140.250.140.250 # This is just an example.
...
```

### Définir la verbosité&#x20;

Pour un dépannage plus approfondi, la verbosité des journaux peut être réglée comme suit :&#x20;

* 0=silencieux&#x20;
* 1=erreur&#x20;
* 2=avertissement&#x20;
* 3=info&#x20;
* 4=débogage&#x20;
* 5=détail&#x20;

La valeur par défaut du paramètre `--verbosity` est 3.&#x20;

Nous recommandons d'utiliser 4.

```bash
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 30303:30303 \
chilizchain/ccv2-geth:latest \
--chiliz \ # for Chiliz Mainnet. Use --spicy for Spicy Testnet.
...
--verbosity=4 # This is just an example.
...
```

## Changer le propriétaire d'un nœud ↔️

Il peut arriver un moment où vous ne souhaitez plus gérer un nœud validateur. Vous pouvez alors le transférer à quelqu'un d'autre.

Pour ce faire, suivez ces étapes :

1. **Connectez votre portefeuille** à la [dApp de Staking Chiliz](https://governance.chilizchain.com/staking).
2. Cliquez sur le bouton **« Changer de propriétaire »** (`Change owner`).

<figure><img src="https://717588929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWWfo5F0mDNuaj9Q0zciq%2Fuploads%2Fd3Tt2pFt540YcEGgJFp0%2Fimage.png?alt=media&#x26;token=ee9da9ed-1b9f-457e-ad37-fbffb5b854aa" alt=""><figcaption></figcaption></figure>

3. Dans la fenêtre qui s'ouvre, indiquez l'**adresse actuelle** du nœud dont vous voulez changer le propriétaire, ainsi que sa **nouvelle adresse** (fournie par le nouveau propriétaire).

<figure><img src="https://717588929-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWWfo5F0mDNuaj9Q0zciq%2Fuploads%2F91ZvOpKcWMN3BiEn8r00%2Fimage.png?alt=media&#x26;token=67001739-a502-448e-aa90-9a6a5d2742a3" alt=""><figcaption></figcaption></figure>

Une fois la demande soumise, le changement s'appliquera immédiatement.
