簡體   English   中英

CHAINLINK 節點 - 您的節點過載並可能開始丟失作業錯誤

[英]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_getBlockByNumbereth_getBalanceeth_getTransactionReceipteth_getTransactionCounteth_getLogseth_subscribeeth_unsubscribeeth_sendRawTransactioneth_Call https://ethereum.org/uk /developers/docs/apis/json-rpc/

Chainlink 節點的大量交互通過內部HeadTracker服務在同步過程中特別執行。 該服務啟動“頭部”訂閱,以便與每個傳入的新區塊頭進行交互。 在此同步過程中,它使用 JSON-RPC 方法eth_GetBlockByNumbereth_getBalance從塊中獲取所有必要的信息。 所以這兩種方法在每個塊中都被使用/執行。 現在請求的數量取決於 Chainlink 節點所連接網絡的平均阻塞時間

Kovan 測試網就是一個例子:

平均值這里的阻塞時間是 6.7 秒,這意味着您每天的請求數約為 21.000 在完成作業請求期間,這些請求還包括以下方法: eth_getTransactionReceipteth_sendRawTransactioneth_getLogseth_subscribeeth_unsubscribeeth_getTransactionCounteth_call ,這會根據作業請求的數量顯着增加總數。 還應該注意的是,特別是對於更快的區塊鏈(例如多邊形),WebSocket 的有效負載非常高,您必須詳細處理良好的全節點連接,因為許多全節點沒有收到如此多的請求永久性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM