![](/img/trans.png)
[英]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.