簡體   English   中英

發送交易和接收事件如何在以太坊區塊鏈的后端工作

[英]How sending transactions and receiving events work in backends in Ethereum blockchain

我正在從事一個以太坊項目,但我有一些疑問。 我有一個通過 web3.js 連接到區塊鏈的后端。 為了連接到區塊鏈,我使用了一個 geth 節點。 我知道順序是這樣的:

發送交易在此處輸入圖像描述 聽事件在此處輸入圖像描述 我的問題是:

  • 發送交易的組件是什么? 它是后端組件還是 geth 節點?
  • 然后假設網絡中的另一個智能合約發出了我想要捕獲的事件。 捕獲事件的組件是什么? 它是后端組件還是 geth 節點?

一個很好的問題,先生。

通常,在這樣的后端設置中,使用其錢包密鑰對交易進行簽名 后端有一個帶有 ETH 余額的熱錢包,可以創建和廣播交易。

交易通過 JSON-RPC 推送到以太坊 API 節點 節點將交易廣播到P2P 網絡 礦工內存池中提取交易。 創建一個新塊。 礦工將新創建的塊廣播回點對點網絡。 你的以太坊節點獲取新區塊。 Web3.js 后端應用程序從您的以太坊節點輪詢或訂閱與智能合約相關的事件。 為新塊中的 state 更改觸發后端事件 web3.js 處理程序

請注意,在小區塊鏈重組的情況下,也可以回滾區塊。 在這種情況下或重組中,事件處理程序會為每個競爭塊再次觸發(兩次、三次等)。 小的區塊鏈重組可能在一小時內發生多次。 當前的 state 是概率性的,因此您始終需要等待幾個塊才能確定。

對於區塊鏈中其他參與者的事件和交易,您只需訂閱事件並在新塊從礦工到達您的節點時處理它們。

暫無
暫無

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

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