繁体   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