[英]Streaming data to BigQuery from Corvid (node.js npm) - Request is missing required authentication credential ERROR
[英]CHAINLINK NODE - Your node is overloaded and may start missing jobs ERROR
在 GCP 中运行测试节点,使用 Docker 9.9.4、Ubuntu、Postgres db、Infura。 我遇到了公共/私有 IP 的问题,但是一旦我清除了这个问题,我的节点就会启动并运行。 我现在反复抛出下面的错误,可能是由于区块链连接。 我该如何解决?
[ERROR] HeadTracker: dropping head 26085153 with hash 0xf50e19099b7e343829935d70dd7d86c5bc0398286b7a4e4f32ac033ac60c3733 because queue is full. WARNING: Your node is overloaded and may start missing jobs. logger/default.go:155 stacktrace=github.com/smartcontractkit/chainlink/core/logger.Errorf
此日志输出与您的区块链连接过载有关。 此通知通常与公共 websocket 连接和/或免费第三方 NaaS 提供商的使用有关。 要解决此连接问题,您可以运行自己的完整节点或更改层或第三方 NaaS 提供商。 另外建议使用 Chainlink 0.10.8
或更高版本,因为HeadTracker
已经在这里进行了修订并且执行效率更高。
关于这个问题,让我试着给你一个小的技术概述,它可以阐明 Chainlink 节点对其远程完整节点的有效载荷:
您的 Chainlink 节点建立与完整节点的连接。 Chainlink 节点在那里发起各种订阅,这是 websocket 协议的一个特殊功能,可以实现双向通信。 更准确地说,这意味着如果订阅的某个“状态”发生变化,就会通知 Chainlink 节点。 基本上,使用JSON-RPC方法的节点交互,并使用下面的方法来发起内部和处理的各种功能: eth_getBlockByNumber
, eth_getBalance
, eth_getTransactionReceipt
, eth_getTransactionCount
, eth_getLogs
, eth_subscribe
, eth_unsubscribe
, eth_sendRawTransaction
和eth_Call
https://ethereum.org/uk /developers/docs/apis/json-rpc/
Chainlink 节点的大量交互通过内部HeadTracker
服务在同步过程中特别执行。 该服务启动“头部”订阅,以便与每个传入的新区块头进行交互。 在此同步过程中,它使用 JSON-RPC 方法eth_GetBlockByNumber
和eth_getBalance
从块中获取所有必要的信息。 所以这两种方法在每个块中都被使用/执行。 现在请求的数量取决于 Chainlink 节点所连接网络的平均阻塞时间
Kovan 测试网就是一个例子:
平均值这里的阻塞时间是 6.7 秒,这意味着您每天的请求数约为 21.000 在完成作业请求期间,这些请求还包括以下方法: eth_getTransactionReceipt
、 eth_sendRawTransaction
、 eth_getLogs
、 eth_subscribe
、 eth_unsubscribe
、 eth_getTransactionCount
和eth_call
,这会根据作业请求的数量显着增加总数。 还应该注意的是,特别是对于更快的区块链(例如多边形),WebSocket 的有效负载非常高,您必须详细处理良好的全节点连接,因为许多全节点没有收到如此多的请求永久性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.