2 votes

Noeud Chainlink : Que faire lorsque des transactions sont en attente?

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 ?

https://cdn.discordapp.com/attachments/592043790005567499/725936625821155328/unknown.png

1voto

Patrick Collins Points 1761

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 :

  1. Vous n'avez pas approvisionné votre compte de noeud Chainlink en gaz.
  2. Le réseau ETH est engorgé.
  3. 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. Page de configuration du noeud Chainlink GUI

Si c'est la situation #2, vous pouvez soit :

  1. 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';

  2. 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X