獲取以太坊區(qū)塊數(shù)據(jù)應(yīng)該推還是拉?

注冊以太坊過濾器(filter),監(jiān)聽合約事件,當(dāng)有被監(jiān)聽事件發(fā)生時以太坊節(jié)點向客戶端推送(push)包含事件數(shù)據(jù)的log。

需要客戶端和以太坊節(jié)點之間是雙工的連接,比如tcp socket,unix socket,ipc等,不支持http連接。

定位精準(zhǔn),只會獲取我們關(guān)心的數(shù)據(jù)

無須再次確認交易的狀態(tài)是否成功,因為有事件發(fā)出則交易一定是成功的。

客戶端采用定時輪詢的方式查詢以太坊節(jié)點是否有更新的塊生成,如果有則根據(jù)塊號獲取塊數(shù)據(jù),遍歷其中的交易,尋找我們感興趣的交易,比如是調(diào)用特定的ERC 20合約,是否是某個用戶的轉(zhuǎn)賬等。

靈活,可以從任意塊號開始,可重試,支持http,不要事先在合約中聲明事件

從區(qū)塊中獲取交易后,仍然需要再次檢查交易的收據(jù)(receipt),以確定交易是成功還是失敗。

receipt, err := c.deployBackend.TransactionReceipt(ctx, common.HexToHash(tx.Hash))
ntx.Success = (receipt.Status == 1)

選擇

傾向于拉的模式,能獲得較多的數(shù)據(jù),連接方式不受限制

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容