# Exécuter un nœud Chiliz Chain

Exécuter votre propre nœud Chiliz Chain offre un meilleur contrôle, une plus grande confidentialité et une fiabilité accrue, mais nécessite davantage d’expertise technique et de ressources que l’utilisation d’un point de terminaison RPC existant.

Cela vous permet de réaliser des transactions et de communiquer avec des contrats intelligents sur la Chiliz Chain

{% hint style="info" %}
Notez qu’il existe une page de documentation spécifique à l’exécution d’un nœud pour les validateurs : [Exécuter un nœud validateur](/fr-ai/learn/about-validators/running-a-validator-node.md)
{% endhint %}

## **Prérequis**

Pour exécuter le nœud Chiliz Chain, vous devez avoir [Docker](https://www.docker.com/) installé, soit sur votre machine, soit sur votre serveur. Veuillez donc terminer l [installation de Docker](https://docs.docker.com/engine/install/) avant de poursuivre.

### **Images Docker préconstruites**

Vous pouvez utiliser les images Docker préconstruites depuis le [répertoire public Chiliz Chain 2.0 sur Docker Hub](https://hub.docker.com/repository/docker/chilizchain/ccv2-geth).

## **Lancer un nœud et démarrer la synchronisation**

Le point de départ recommandé pour exécuter un nœud Chiliz Chain est d’utiliser 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 vers un autre nœud.

### **Étape 1 : Créer un répertoire**

Créez un répertoire et pointez-le dans le `-v` paramètre dans la commande suivante :

```bash
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 8545:8545 \
-p 8546:8546 \
chilizchain/ccv2-geth:latest \
--chiliz # pour Chiliz Mainnet. Utilisez --spicy pour Spicy Testnet.
--datadir=/datadir \
--ipcdisable
```

### **Étape 2 : Connecter le client**

Pour connecter un client à un nœud, vous devez activer les serveurs RPC HTTP et/ou WebSocket en spécifiant les groupes de paramètres `--http` et/ou `--ws` respectivement.

Par exemple :

```bash
docker run \
-v $(pwd)/my-datadir:/datadir \
--name ccv2-node \
-p 8545:8545 \
-p 8546:8546 \
chilizchain/ccv2-geth:latest \
--chiliz \ # pour Chiliz Mainnet. Utilisez --spicy pour Spicy Testnet.
--datadir=/datadir \
--ipcdisable \
--http \
--http.addr=0.0.0.0 \
--http.api=eth,net,web3,debug,txpool \
--http.port=8545 \
--http.corsdomain="*" \
--http.vhosts="*" \
--ws \
--ws.addr=0.0.0.0 \
--ws.api=eth,net,web3,debug,txpool \
--ws.port=8546 \
--ws.origins="*" \
```

{% hint style="warning" %}
**ATTENTION**

Pour des raisons de sécurité, veillez à définir des valeurs appropriées pour les paramètres suivants :

`--http.corsdomain`

`--http.vhosts`

`--ws.origins`
{% endhint %}

## **Informations sur la maintenance du nœud**

### Modifier le niveau de verbosité lors du débogage

Dans certains cas, vous pouvez vouloir augmenter la verbosité du nœud, par exemple lorsque vous devez déboguer soit le nœud, soit le client qui s’y connecte.

Pour ce faire, vous pouvez définir un paramètre `--verbosity` . Il peut accepter les options suivantes (la valeur par défaut est 3) :

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

### Arrêter le nœud et nettoyer

Si vous avez lancé le nœud à l’aide de l’une des commandes ci-dessus, le processus de votre nœud continue de s’exécuter au premier plan. Pour arrêter ce processus, appuyez sur CTRL+C.

Exécutez la commande suivante pour supprimer le conteneur Docker :

```bash
docker rm ccv2-node
```

### **Supprimer le répertoire**

Exécutez la commande suivante pour supprimer un répertoire :

```bash
rm my-datadir
```

## Mise à jour de votre nœud

L’équipe Chiliz Chain s’efforce de maintenir Chiliz Chain sécurisé et moderne, et nous procéderons donc de temps à autre à des hard forks chaque année, comme le hard fork Dragon8.

En cas de hard fork, votre nœud ne sera plus synchronisé avec le réseau. Il est donc important de suivre nos annonces et de mettre à jour votre nœud.

Pour maintenir votre nœud à jour, vous pouvez suivre les étapes suivantes.

**Si vous utilisez Docker :**

1. Assurez-vous d’arrêter et de supprimer votre conteneur Docker existant tout en préservant les volumes qui contiennent votre base de données.
2. Lancez votre nœud en utilisant [la dernière image Docker préconstruite disponible](https://hub.docker.com/repository/docker/chilizchain/ccv2-geth).

**Si vous utilisez votre propre binaire :**

1. [Téléchargez la dernière version depuis notre dépôt GitHub](https://github.com/chiliz-chain/v2/releases).
2. Compilez à partir de là avec votre boîte à outils.

## Exécuter un nœud d’archive

Pour exécuter un nœud en mode archive, vous devez ajouter les 2 paramètres suivants dans l’appel `ccv2-geth` présenté ci-dessus :

```bash
--syncmode=full \
--gcmode=archive \
```

## Exécuter un nœud Chiliz Chain à partir d’un snapshot ou d’une sauvegarde

Pour accélérer le processus de synchronisation de votre nœud Chiliz Chain, vous pouvez vous appuyer sur un snapshot — une copie récente (ou archive/sauvegarde) du répertoire de données de la blockchain (`datadir`). Cette méthode permet à votre nœud de devenir opérationnel plus rapidement qu’une synchronisation depuis zéro.

{% hint style="info" %}
Il est recommandé de conserver des snapshots pour les nouvelles configurations de nœuds.\
Écraser un datadir existant avec un snapshot peut entraîner des incohérences.
{% endhint %}

### Snapshots disponibles

Chaque réseau dispose d’un snapshot dédié :

* Spicy Testnet : [chaindata\_snapshot.tar.gz](https://s3.eu-west-3.amazonaws.com/spicy-snapshots.chiliz.com/chaindata_snapshot.tar.gz)
* Chiliz Chain Mainnet : [chaindata\_snapshot.tar.gz](https://s3.eu-west-3.amazonaws.com/snapshots.chiliz.com/chaindata_snapshot.tar.gz)

{% hint style="info" %}
**Nettoyage des données existantes**

Si vous souhaitez appliquer un snapshot à un nœud existant, veillez à supprimer les répertoires et fichiers suivants dans votre datadir avant de redémarrer le nœud :

```bash
rm -rf blobpool transactions.rlp LOCK lightchaindata triecache
```

Cette étape aide à éviter d’éventuels conflits dus à des données résiduelles.
{% endhint %}

### Étapes pour exécuter un nœud à partir d’un snapshot :

1. Créer un répertoire de données :

```bash
mkdir -p ~/chiliz-node/my-datadir
```

2. Télécharger le snapshot :

Remplacez l’URL par l’URL du snapshot Mainnet si nécessaire.

{% code overflow="wrap" lineNumbers="true" %}

```bash
cd ~/chiliz-node/my-datadir
nohup curl -L --retry 5 -o chaindata.tar.gz https://s3.eu-west-3.amazonaws.com/spicy-snapshots.chiliz.com/chaindata_snapshot.tar.gz > download.log 2>&1 &
```

{% endcode %}

{% hint style="info" %}
Pour suivre la progression du téléchargement, utilisez :\
`tail -f download.log`
{% endhint %}

3. Extraire le snapshot :

```bash
tar -xzf chaindata.tar.gz
```

4. Exécuter le nœud Chiliz Chain :

{% code lineNumbers="true" %}

```bash
docker run \
  -v ~/chiliz-node/my-datadir:/datadir \
  --name ccv2-node \
  -p 8545:8545 \
  -p 8546:8546 \
  chilizchain/ccv2-geth:latest \
  --spicy \  # Utilisez --chiliz pour Mainnet
  --datadir=/datadir \
  --ipcdisable \
  --http \
  --http.addr=0.0.0.0 \
  --http.api=eth,net,web3,debug,txpool \
  --http.port=8545 \
  --http.corsdomain="*" \
  --http.vhosts="*" \
  --ws \
  --ws.addr=0.0.0.0 \
  --ws.api=eth,net,web3,debug,txpool \
  --ws.port=8546 \
  --ws.origins="*"
```

{% endcode %}

## Informations supplémentaires sur Geth

Consultez les [options de ligne de commande](https://geth.ethereum.org/docs/fundamentals/command-line-options) de Geth pour voir la liste complète des paramètres Geth disponibles.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chiliz.com/fr-ai/develop/basics/connect-to-chiliz-chain/run-a-chiliz-chain-node.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
