Comment éviter de payer trop cher les transactions sur les blockchains Antelope ?
1. Introduction
Lorsqu'ils tentent de signer une transaction, les utilisateurs reçoivent souvent un message d'erreur indiquant qu'il n'y a pas assez de CPU et demandant de payer jusqu'à 10 à 30 millisecondes de CPU ou même plus. Ce type de comportement du système peut être associé à la facturation subjective. Dans cet article, je vous guiderai sur la façon de gérer cette situation.
2. Qu'est-ce que la facturation subjective ?
La facturation subjective est une fonctionnalité de la blockchain Antelope qui permet à un opérateur de nœud de facturer localement un compte dans son nœud pour les ressources utilisées par des transactions échouées, sans partager les informations de facturation avec le reste du réseau. Elle a été introduite pour réduire l'utilisation du CPU, mais entraîne souvent des transactions qui échouent de manière persistante ou des transactions perdues.
3. Cycle de vie d'une transaction sur la blockchain Antelope
La blockchain Antelope a adopté des connexions réseau Peer-to-Peer (P2P) pour propager les transactions à travers le réseau. Lorsqu'une transaction passe d'un nœud à un autre, le chemin qu'elle emprunte dépend des configurations des nœuds et de la latence du réseau.

Figure tirée du site web de l'ENF
La figure 1 illustre le cycle de vie d'une transaction sur la blockchain Antelope. Une transaction existe lorsqu'un utilisateur la soumet à un nœud via une API (1.1). Le nœud API transmet la transaction soumise à son protocole P2P (1.2). Ce protocole propage la transaction d'un nœud à un autre (1.3) jusqu'à ce qu'elle atteigne le producteur du bloc actuel (1.4). Ensuite, le producteur de bloc inclut la transaction dans le bloc actuel et facture le compte pour l'utilisation des ressources. Chaque nœud du réseau effectue une vérification interne pour déterminer si une transaction doit être transmise au nœud suivant ou rejetée en raison d'une surutilisation des ressources.
Lorsqu'une transaction arrive à un nœud avec la facturation subjective activée, le nœud vérifie sa signature et identifie à quel compte la transaction appartient. Si le compte dépasse sa limite de facturation subjective, le nœud arrête la propagation de la transaction afin qu'elle n'atteigne jamais le producteur du bloc actuel.
La facturation subjective est cumulative ; lorsqu'une transaction arrive à un nœud depuis un compte, le nœud augmente les frais facturés au compte pour l'utilisation de ses ressources. Pour faire passer une transaction à travers un nœud, le compte doit disposer de ressources suffisantes pour couvrir la facturation subjective de ce nœud. La facturation subjective est renouvelée toutes les 24 heures.
4. Dans quelles circonstances pourriez-vous être surfacturé pour une transaction ?
Chaque nœud de la blockchain garde une trace de l'utilisation du CPU associée à un compte. Votre compteur d'utilisation avec ce nœud spécifique augmente chaque fois que vous tentez une transaction échouée avec ce nœud. Cependant, les transactions échouées n'affectent pas les compteurs d'utilisation des autres nœuds. Ainsi, le nœud auquel vous êtes connecté vous donnera des informations sur les frais qui vous sont facturés pour la transaction.
Les frais facturés par un nœud sont indépendants des frais facturés par les autres nœuds du réseau, ce qui signifie que certains nœuds peuvent vous facturer plus ou moins que d'autres.
Si vous tentez continuellement des transactions qui échouent avec un nœud particulier, vous serez obligé de payer plus pour chaque transaction tentée avec ce nœud.
5. Comment éviter de payer trop cher une transaction
Lorsqu'un powerup gratuit n'est plus suffisant pour payer une transaction ou qu'une API connectée vous facture très cher en raison de la facturation subjective, vous avez trois options pour surmonter cette situation, comme le montre la figure 2.

Image par : Sukanta Manna
Option 1 : Si la transaction est urgente et ne peut pas être retardée, payez le montant demandé par le nœud. Lisez ici comment ajouter des ressources à votre compte EOS.
Option 2 : Votre facturation subjective sur d'autres nœuds pourrait être bien inférieure à la facturation subjective du nœud connecté. Par conséquent, changer d'API pourrait réduire la facturation subjective pour la transaction. Lisez ici comment changer d'API.
Option 3 : La facturation subjective est renouvelée toutes les 24 heures. Par conséquent, attendez 24 heures, effectuez un powerup gratuit de votre compte, et réessayez.
6. Conclusion
L'envoi de nombreuses transactions échouées au nœud connecté peut entraîner des frais excessifs en raison de la nature cumulative de la facturation subjective. Il est préférable de cesser d'envoyer des transactions infructueuses au nœud connecté.
Si la transaction revêt une importance significative, il est recommandé de payer le montant facturé par le nœud. Changer d'API peut également valoir la peine, car d'autres nœuds peuvent prélever des frais différents de ceux du nœud connecté.
Cependant, si la transaction n'est pas urgente, la meilleure solution est d'attendre 24 heures, d'effectuer un powerup de votre compte, et de réessayer.
Auteur : Sukanta Manna
Éditeur : Markus Hinrichs ; Randall Roland
Sources et références :
Lectures complémentaires
Crédits images
Figure sur la facturation subjective créée par Sukanta Manna
Figure « Fonctionnement normal du réseau P2P » tirée du site web de l'ENF
Last updated:
Was this article helpful?
Have a specific question about this article?