繁体   English   中英

Chainlink 节点:交易未决时该怎么办?

[英]Chainlink node: What to do when transactions are pending?

我有一个 chainlink 节点,有些交易似乎卡住了。 如何修复待处理的传出确认?

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

大多数情况下,你没有用 gas 为你的 chainlink 节点账户注资。 Go 到您的配置并获取ACCOUNT_ADDRESS并将 ETH 发送到该地址。

第二个最常见的情况是您使用的是过时版本的 chainlink 节点。 请使用 0.9.4 或更高版本。


对于待处理的传出确认:

  1. 你没有用 gas 为你的 chainlink 节点账户注资。
  2. ETH 链被堵塞了。
  3. .env中的MIN_OUTGOING_CONFIRMATIONS变量太高(它被设置为默认值)

如果您在 oracle 合约地址看到待处理的交易,那么很可能是 #2。 如果您没有看到任何内容,则可能是#1。

如果#1,你可以向你的节点发送一些 ETH,它应该没问题。 您可以在 Chainlink GUI 的配置页面中找到您节点的地址ACCOUNT_ADDRESS Chainlink 节点 GUI 配置页面

如果 #2 你可以:

  1. 您可以从数据库中删除待处理的交易,并希望一切顺利(这是一个好的解决方案,希望智能合约有一个重试参数来处理您的数据。但是如果您的节点卡住了,那么没有人将能够获取数据. )
DELETE FROM job_runs WHERE status = 'pending_outgoing_confirmations';
DELETE FROM tx_attempts WHERE confirmed = 'f';
  1. 如果您需要通过 go 的这些交易,您可以使用更多的 ETH 气体重新广播这些交易以更快地推动它们。 这有点棘手。 Chainlink 节点有一个内置的系统来推动交易,而你无需做任何事情,所以希望它们会启动。

如果 #3 设置或更改您的MIN_OUTGOING_CONFIRMATIONS并重新启动节点。

对于待处理的传入确认:

这可能是由于网络拥塞或您正在使用的网络没有很多事务。 一个简单的解决方法是减少传入确认的数量并重新启动您的节点。

在您的.env文件中,添加或设置以下内容:

MIN_INCOMING_CONFIRMATIONS=0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM