J'ai un noeud de chainlink, et il y a des transactions qui semblent être bloquées. Comment puis-je résoudre les confirmations sortantes en attente ?
Réponse
Trop de publicités?Le plus souvent, vous n'avez pas approvisionné votre compte de noeud Chainlink en gaz. Allez dans votre configuration et saisissez le ADDRESS_DU_COMPTE
et envoyez de l'ETH à cette adresse.
La deuxième raison la plus courante est que vous utilisez une version obsolète du noeud Chainlink. Veuillez utiliser la version 0.9.4 ou supérieure.
Pour les confirmations sortantes en attente :
- Vous n'avez pas approvisionné votre compte de noeud Chainlink en gaz.
- Le réseau ETH est engorgé.
- Votre variable
MIN_OUTGOING_CONFIRMATIONS
dans votre.env
est trop élevée (elle est définie par défaut)
Si vous voyez des transactions en attente à l'adresse de vos contrats oracle, alors c'est probablement la situation #2. Si vous n'en voyez pas, c'est probablement la situation #1.
Si c'est le cas #1, vous pouvez simplement envoyer un peu d'ETH à votre noeud et tout devrait bien se passer. Vous pouvez trouver l'adresse de votre noeud ADDRESS_DU_COMPTE
sur la page de configuration de votre interface graphique Chainlink.
Si c'est la situation #2, vous pouvez soit :
-
Supprimer les transactions en attente de votre base de données et espérer que tout se règle (c'est une solution correcte, espérons que les contrats intelligents ont un paramètre de réessai pour traiter vos données. Mais si votre noeud reste bloqué, alors personne ne pourra obtenir de données.)
DELETE FROM job_runs WHERE status = 'pending_outgoing_confirmations'; DELETE FROM tx_attempts WHERE confirmed = 'f';
-
Si vous avez besoin que ces transactions soient effectuées, vous pouvez retransmettre les transactions avec plus de gaz ETH pour les pousser plus rapidement. C'est un peu plus compliqué à faire. Les noeuds Chainlink ont un système intégré pour pousser les transactions sans que vous ayez à faire quoi que ce soit, donc espérons qu'ils vont agir.
Si c'est la situation #3 Définissez ou modifiez votre MIN_OUTGOING_CONFIRMATIONS
et redémarrez le noeud.
Pour les confirmations entrantes en attente :
Cela est probablement dû à la congestion du réseau ou vous travaillez sur un réseau qui ne comporte pas beaucoup de transactions. Une solution simple est de réduire le nombre de confirmations entrantes et de redémarrer votre noeud.
Dans votre fichier .env
, ajoutez ou définissez ce qui suit :
MIN_INCOMING_CONFIRMATIONS=0