Avalanche Francophone
  • Documentation du développeur
  • Apprendre
    • Aperçu de la plateforme
      • Staking
      • Frais de transaction
    • Les bases de la blockchain
    • FAQ
    • Forum
    • Communauté
  • Créer
  • Pour commencer: exécuter un nœud Avalanche
  • Notes de version
    • Alertes par email
    • Notes de mise à jour d'AvalancheGo
    • Notes de mise à jour d'Ortelius
  • Tutoriels
    • Plateforme
      • Créer une nouvelle blockchain
      • Créer un Réseau Local Testnet
      • Créer un sous-réseau (subnet)
      • Créer une Machine Virtuelle (VM)
      • Configurez votre Ledger Nano S avec Avalanche
      • Transférer de l'AVAX entre la X-Chain et la C-Chain
      • Transférer de l'AVAX entre la X-Chain et la P-Chain
    • Nœuds et mise en jeu
      • Ajouter un validateur
      • Maintenir un nœud Avalanche
      • Exécutez un nœud Avalanche et devenez validateur
      • Exécuter un nœud Avalanche avec Oracle VM VirtualBox
      • Exécutez un nœud Avalanche avec un Raspberry Pi 4
      • Exécutez un nœud Avalanche et faites une mise en jeu avec le portefeuille
      • Exécuter un nœud Avalanche avec OVH
      • Exécuter un nœud Avalanche avec Amazon Web Services (AWS)
      • Exécuter un nœud Avalanche avec Microsoft Azure
      • Exécuter un nœud Avalanche sous Linux à l'aide du script d'installation
      • Configuration du monitoring des nœuds
      • Mise en jeu d'AVAX, en validant ou délégant via le portefeuille Avalanche
      • Déléguer à un nœud
      • Sécurisation d'un serveur VPS
      • Mettez à niveau votre nœud AvalancheGo
    • Contrats intelligents
      • Déployer un contrat intelligent en utilisant Remix et MetaMask
      • Utilisation de Truffle avec la C-Chain d'Avalanche
    • Actifs Numériques Intelligents
      • Créer un token ERC-20
      • Créer un actif à capitalisation fixe
      • Créer un actif à capitalisation variable
      • Création d'un NFT - Partie 1
      • Créez des NFT avec le portefeuille Avalanche
      • Utilisez les Wrapped AVAX (WAVAX) sur Avalanche
  • AvalancheGo APIs
    • Émettre des appels d'API
    • Platform API (P-Chain)
    • EVM API (C-Chain)
    • AVM API (X-Chain)
    • Appels d'API obsolètes
    • API Admin
    • API Auth
    • API Health
    • API Info
    • API IPC
    • API Keystore
    • API Metrics
    • API Timestamp
  • Outils
    • AvalancheJS
      • Créer un actif sur la X-Chain
      • Management des clés sur la X-Chain
      • Envoyer un actif sur la X-Chain
      • API
    • Avash
    • Ortelius
  • Références
    • AVM Transaction Format
    • Command Line Interface
    • Coreth Atomic Transaction Format
    • Cryptographic Primitives
    • Network Protocol
    • Serialization Primitives
    • Platform Transaction Format
  • Papiers
Propulsé par GitBook
Sur cette page
  • Introduction
  • Exigences
  • Ajouter un validateur avec le portefeuille Avalanche
  • Ajouter un validateur avec des appels API
  • Ajout d'un validateur de sous-réseau
  • Émettre une transaction de validation de sous-réseau
  • Ajouter le sous-réseau à la liste blanche

Cet article vous a-t-il été utile ?

  1. Tutoriels
  2. Nœuds et mise en jeu

Ajouter un validateur

PrécédentNœuds et mise en jeuSuivantExécuter un nœud Avalanche avec OVH

Dernière mise à jour il y a 4 ans

Cet article vous a-t-il été utile ?

Introduction

Le est inhérent à la plateforme Avalanche et valide les blockchains intégrées d'Avalanche. Dans ce tutoriel, nous allons ajouter un nœud au réseau primaire et un sur Avalanche.

La P-Chain gère les métadonnées sur Avalanche. Cela inclut le suivi des nœuds dans les sous-réseaux, quelles blockchains existent et quels sous-réseaux valident quelles blockchains. Pour ajouter un validateur, nous émettrons des vers la P-Chain.

Si vous souhaitez lancer votre nœud sur un VPS et avoir un tutoriel pas-à-pas merci de regarder ce tutoriel:

Notez qu'une fois que vous émettez la transaction pour ajouter un nœud en tant que validateur, il n'y a aucun moyen de modifier les paramètres. Vous ne pouvez pas annuler la mise plus tôt ni modifier le montant de la mise, l'ID du nœud ou l'adresse de récompense. Veuillez vous assurer que vous utilisez les valeurs correctes dans les appels API ci-dessous. Si vous n’êtes pas sûr, demandez de l’aide sur , où la .

Exigences

Vous avez terminé le tutoriel et connaissez l'. Dans ce tutoriel nous utilisons la pour nous aider à passer des appels API.

Afin de vous assurer que votre nœud est bien connecté, assurez-vous que votre nœud peut recevoir et envoyer du trafic TCP sur le port de staking (9651 par défaut) et que vous avez démarré votre nœud avec l'argument de ligne de commande --public-ip=[YOUR NODE'S PUBLIC IP HERE]. Ne pas faire l'un ou l'autre de ces éléments peut compromettre votre récompense de mise.

Ajouter un validateur avec le portefeuille Avalanche

Tout d'abord, nous vous montrons comment ajouter votre nœud en tant que validateur en utilisant le .

Obtenez l'identifiant de votre nœud en appelant :

curl -X POST --data '{
    "jsonrpc":"2.0",
    "id"     :1,
    "method" :"info.getNodeID"
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/info

La réponse a l'ID de votre nœud :

{
    "jsonrpc": "2.0",
    "result": {
        "nodeID": "NodeID-5mb46qkSBj81k9g9e4VFjGGSbaaSLFRzD"
    },
    "id": 1
}
curl -X POST --data '{
    "jsonrpc": "2.0",
    "method": "platform.getPendingValidators",
    "params": {},
    "id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P

Revenez à l'onglet Earn, puis cliquez sur Estimated Rewards.

Une fois l'heure de début de votre validateur passée, vous verrez les récompenses qu'il peut gagner, ainsi que son heure de début, son heure de fin et le pourcentage de sa période de validation écoulé.

C'est tout !

Ajouter un validateur avec des appels API

La signature de cette méthode est :

platform.addValidator(
    {
        nodeID: string,
        startTime: int,
        endTime: int,
        stakeAmount: int,
        rewardAddress: string,
        changeAddr: string, (optional)
        delegationFeeRate: float,
        username: string,
        password: string
    }
) -> {txID: string}

Passons en revue et examinons ces arguments.

nodeID

curl -X POST --data '{
    "jsonrpc": "2.0",
    "method": "info.getNodeID",
    "params":{},
    "id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/info

La réponse pour l'ID de votre nœud :

{
    "jsonrpc": "2.0",
    "result": {
        "nodeID": "NodeID-LMUue2dBBRWdDbPL4Yx47Ps31noeewJji"
    },
    "id": 1
}

startTime et endTime

Lorsqu'on émet une transaction pour rejoindre le réseau primaire, ils spécifient l'heure à laquelle ils entreront (commencer la validation) et quitteront (arrêter la validation.) La durée minimale pendant laquelle on peut valider le réseau primaire est de 24 heures et la durée maximale est d'un an. On peut réintégrer le réseau primaire après avoir quitté, c'est juste que la durée maximale continue est d'un an. startTimeetendTimesont les heures Unix où votre validateur commencera et arrêtera de valider le réseau primaire, respectivement. startTimedoit être dans le futur par rapport à l'heure à laquelle la transaction est émise.

stakeAmount

Afin de valider le réseau primaire, il faut mettre en jeu des AVAX. Ce paramètre définit la quantité d'AVAX mis en jeu.

rewardAddress

Lorsqu'un validateur arrête de valider le réseau primaire, il recevra une récompense s'il est suffisamment réactif et correct lors de la validation du réseau primaire. Ces jetons sont envoyés à rewardAddress. La mise d'origine sera renvoyée à une adresse contrôlée par username.

L’enjeu d’un validateur n’est jamais réduit (slashed), quel que soit son comportement; ils recevront toujours leur mise de départ lorsqu'ils auront terminé la validation.

changeAddr

Tout changement résultant de cette transaction sera envoyé à cette adresse. Vous pouvez laisser ce champ vide ; si vous le faites, la modification sera envoyée à l'une des adresses contrôlées par votre utilisateur.

delegationFeeRate

Avalanche permet la délégation d'un enjeu. Ce paramètre est le pourcentage de frais facturé par ce validateur lorsque d'autres lui délèguent la participation. Par exemple, si DelegationFeeRate vaut 2,2345 et que quelqu'un délègue à ce validateur, alors lorsque la période de délégation est terminée, 2,2345% de la récompense va au validateur et le reste va au délégant.

username et password

Ces paramètres sont le username et password de l'utilisateur qui paie les frais de transaction, fournit l'AVAX mis en jeu et à qui l'AVAX mis en jeu sera retourné.

Passons maintenant à la transaction. Nous utilisons la commande shell date pour calculer l'heure Unix à 10 minutes et 30 jours dans le futur à utiliser comme valeurs destartTimeet endTime, respectivement. (Remarque: si vous utilisez un Mac, remplacez$(datepar$(gdate. Si vous n'avez pas installégdatefaites brew install coreutils. Dans cet exemple, nous mettons en jeu 2000 AVAX (2 x 1012 nAVAX) .

curl -X POST --data '{
    "jsonrpc": "2.0",
    "method": "platform.addValidator",
    "params": {
        "nodeID":"NodeID-LMUue2dBBRWdDbPL4Yx47Ps31noeewJji",
        "startTime":'$(date --date="10 minutes" +%s)',
        "endTime":'$(date --date="30 days" +%s)',
        "stakeAmount":2000000000000,
        "rewardAddress":"P-avax1d4wfwrfgu4dkkyq7dlhx0lt69y2hjkjeejnhca",
        "changeAddr": "P-avax103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u",
        "delegationFeeRate":10,
        "username":"USERNAME",
        "password":"PASSWORD"
    },
    "id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P

La réponse a l'ID de la transaction, ainsi que l'adresse à laquelle le changement est allé.

{
    "jsonrpc": "2.0",
    "result": {
        "txID": "6pb3mthunogehapzqmubmx6n38ii3lzytvdrxumovwkqftzls",
        "changeAddr": "P-avax103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u"
    },
    "id": 1
}
curl -X POST --data '{
    "jsonrpc": "2.0",
    "method": "platform.getTxStatus",
    "params": {
        "txID":"6pb3mthunogehapzqmubmx6n38ii3lzytvdrxumovwkqftzls"
    },
    "id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
curl -X POST --data '{
    "jsonrpc": "2.0",
    "method": "platform.getPendingValidators",
    "params": {},
    "id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P

La réponse doit inclure le nœud que nous venons d'ajouter :

{
    "jsonrpc": "2.0",
    "result": {
        "validators": [
            {
                "nodeID": "NodeID-LMUue2dBBRWdDbPL4Yx47Ps31noeewJji",
                "startTime": "1584021450",
                "endtime": "1584121156",
                "stakeAmount": "2000000000000",
            }
        ] 
    },
    "id": 1
}

Lorsque l'heure atteint 1584021450, ce nœud commencera à valider le réseau primaire. Lorsqu'il atteint 1584121156, ce nœud arrêtera de valider le réseau primaire. Les AVAX mis en jeu seront retournés à une adresse contrôlée par usernameet les récompenses, le cas échéant, seront attribuées àrewardAddress.

Ajout d'un validateur de sous-réseau

Émettre une transaction de validation de sous-réseau

Supposons que le sous-réseau a un ID nTd2Q2nTLp8M9qv2VKHMdvYhtNWX7aTPa4SMEK7x7yJHbcWvr, threshold 2, et l'username détient au moins 2 clés de contrôle.

platform.addSubnetValidator(
    {
        nodeID: string,
        subnetID: string,
        startTime: int,
        endTime: int,
        weight: int,
        changeAddr: string, (optional)
        username: string,
        password: string
    }
) -> {txID: string}

Examinons les paramètres :

nodeID

Il s'agit de l'ID du nœud du validateur ajouté au sous-réseau. Ce validateur doit valider le réseau principal pendant toute la durée de validation de ce sous-réseau.

subnetID

Il s'agit de l'ID du sous-réseau auquel nous ajoutons un validateur.

startTime et endTime

Comme ci-dessus, ce sont les heures Unix auxquelles le validateur va démarrer et arrêter la validation du sous-réseau. startTime doit être égale ou postérieure à l'heure à laquelle le validateur commence à valider le réseau primaire, et endTime doit être égale ou antérieure à l'heure à laquelle le validateur arrête la validation du réseau primaire.

weight

Il s’agit du poids d’échantillonnage du validateur pour le consensus. Si le poids du validateur est de 1 et le poids cumulé de tous les validateurs du sous-réseau est de 100, alors ce validateur sera inclus dans environ 1 échantillon sur 100 lors du consensus.

changeAddr

Tout changement résultant de cette transaction sera envoyé à cette adresse. Vous pouvez laisser ce champ vide; si vous le faites, la modification sera envoyée à l'une des adresses contrôlées par votre utilisateur.

username et password

Ces paramètres sont le username et password de l'utilisateur qui paie les frais de transaction. Cet utilisateur doit détenir un nombre suffisant de clés de contrôle de ce sous-réseau pour pouvoir ajouter un validateur à ce sous-réseau.

Passons maintenant à la transaction. Nous utilisons la commande shell date pour calculer l'heure Unix à 10 minutes et 30 jours dans le futur à utiliser comme valeurs destartTimeet endTime, respectivement. (Remarque: si vous utilisez un Mac, remplacez$(datepar$(gdate. Si vous n'avez pas installégdatefaites brew install coreutils.

curl -X POST --data '{
    "jsonrpc": "2.0",
    "method": "platform.addSubnetValidator",
    "params": {
        "nodeID":"NodeID-LMUue2dBBRWdDbPL4Yx47Ps31noeewJji",
        "subnetID":"nTd2Q2nTLp8M9qv2VKHMdvYhtNWX7aTPa4SMEK7x7yJHbcWvr",
        "startTime":'$(date --date="10 minutes" +%s)',
        "endTime":'$(date --date="30 days" +%s)',
        "weight":1,
        "changeAddr": "P-avax103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u",
        "username":"USERNAME",
        "password":"PASSWORD"
    },
    "id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P

La réponse a l'ID de la transaction, ainsi que l'adresse à laquelle le changement est allé.

{
    "jsonrpc": "2.0",
    "result": {
        "txID": "2exafyvRNSE5ehwjhafBVt6CTntot7DFjsZNcZ54GSxBbVLcCm",
        "changeAddr": "P-avax103y30cxeulkjfe3kwfnpt432ylmnxux8r73r8u"
    },
    "id": 1
}
curl -X POST --data '{
    "jsonrpc": "2.0",
    "method": "platform.getTxStatus",
    "params": {
        "txID":"2exafyvRNSE5ehwjhafBVt6CTntot7DFjsZNcZ54GSxBbVLcCm"
    },
    "id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P
curl -X POST --data '{
    "jsonrpc": "2.0",
    "method": "platform.getPendingValidators",
    "params": {"subnetID":"nTd2Q2nTLp8M9qv2VKHMdvYhtNWX7aTPa4SMEK7x7yJHbcWvr"},
    "id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P

La réponse doit inclure le nœud que nous venons d'ajouter :

{
    "jsonrpc": "2.0",
    "result": {
        "validators": [
            {
                "nodeID": "NodeID-LMUue2dBBRWdDbPL4Yx47Ps31noeewJji",
                "startTime":1584042912,
                "endTime":1584121156,
                "weight": "1"
            }
        ]
    },
    "id": 1
}

Lorsque l'heure atteint 1584042912, ce nœud commencera à valider ce sous-réseau. Lorsqu'il atteint 1584121156, ce nœud cessera de valider ce sous-réseau.

Ajouter le sous-réseau à la liste blanche

Maintenant que le nœud a été ajouté en tant que validateur du sous-réseau, ajoutons-le à la liste blanche des sous-réseaux. La liste blanche empêche le nœud de valider un sous-réseau sans le vouloir.

Pour ajouter le sous-réseau à la liste blanche, redémarrez le nœud et ajoutez le paramètre --whitelisted-subnets avec une liste de sous-réseaux séparés par des virgules à la liste blanche.

La commande complète est :

Ouvrez le portefeuille et accédez à l'onglet Earn. ChoisissezAdd Validator.Remplissez les paramètres de staking (mise en jeu).

Remplissez les paramètres de staking. Ils sont expliqués plus en détail . Une fois que vous avez renseigné tous les paramètres de staking et les avez revérifiés, cliquez sur Confirm. Assurez-vous que la période de staking est d'au moins 2 semaines, que le taux des frais de délégation est d'au moins 2% et que vous mettez en jeu au moins 2000 AVAX.

Vous devriez voir ce message de réussite et votre solde doit être mis à jour.Success message

L'appel de vérifie que notre transaction a été acceptée.

Nous pouvons également ajouter un nœud à l'ensemble de validateurs en faisant des appels API à notre nœud. Pour ajouter un nœud au réseau primaire, nous appellerons .

Il s'agit de l'ID de nœud du validateur ajouté. Pour obtenir l'identifiant de votre nœud, appelez :

Nous pouvons vérifier l'état de la transaction en appelant :

Le statut devrait être Committed, signifiant que la transaction a réussi. On peut appeler et voyez que le nœud est maintenant dans l'ensemble de validateurs en attente pour le réseau primaire :

Ajoutons maintenant le même nœud à un sous-réseau. Ce qui suit aura plus de sens si vous avez déjà suivi ce tutoriel sur la . À l'heure actuelle, vous ne pouvez ajouter des validateurs aux sous-réseaux qu'avec des appels d'API, pas avec le portefeuille Avalanche.

Pour ajouter le validateur, nous appellerons la méthode API . Sa signature est :

Nous pouvons vérifier l'état de la transaction en appelant :

Le statut devrait être Committed, signifiant que la transaction a réussi. On peut appeler et voyez que le nœud est maintenant dans l'ensemble de validateurs en attente pour le réseau primaire. Cette fois, nous spécifions l'ID du sous-réseau :

./build/avalanchego --whitelisted-subnets=nTd2Q2nTLp8M9qv2VKHMdvYhtNWX7aTPa4SMEK7x7yJHbcWvr

ci-dessous
Staking
création d’un sous-réseau
réseau primaire
transactions
Telegram
Discord
FAQ du développeur
pour commencer
architecture d'Avalanche
collection Postman d'Avalanche
portefeuille Avalanche
sous-réseau (subnet)
info.getNodeID
info.getNodeID
platform.getPendingValidators
platform.addValidator
platform.getTxStatus
platform.getPendingValidators
platform.addSubnetValidator
platform.getTxStatus
platform.getPendingValidators