美文网首页
获取以太坊区块数据应该推还是拉?

获取以太坊区块数据应该推还是拉?

作者: 幸运排骨虾 | 来源:发表于2018-09-13 09:36 被阅读0次

    注册以太坊过滤器(filter),监听合约事件,当有被监听事件发生时以太坊节点向客户端推送(push)包含事件数据的log。

    需要客户端和以太坊节点之间是双工的连接,比如tcp socket,unix socket,ipc等,不支持http连接。

    定位精准,只会获取我们关心的数据

    无须再次确认交易的状态是否成功,因为有事件发出则交易一定是成功的。

    客户端采用定时轮询的方式查询以太坊节点是否有更新的块生成,如果有则根据块号获取块数据,遍历其中的交易,寻找我们感兴趣的交易,比如是调用特定的ERC 20合约,是否是某个用户的转账等。

    灵活,可以从任意块号开始,可重试,支持http,不要事先在合约中声明事件

    从区块中获取交易后,仍然需要再次检查交易的收据(receipt),以确定交易是成功还是失败。

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

    选择

    倾向于拉的模式,能获得较多的数据,连接方式不受限制

    相关文章

      网友评论

          本文标题:获取以太坊区块数据应该推还是拉?

          本文链接:https://www.haomeiwen.com/subject/kdutgftx.html