java事件监听日志_在Java中监听以太坊智能合约事件

本文介绍了以太坊智能合约中的事件,强调了事件在链外通信和低成本数据存储中的作用。通过Java使用web3j库监听和处理智能合约事件,包括如何定义、发送事件以及按索引参数过滤。事件监听是异步处理以太坊网络中智能合约变更的有效手段。
摘要由CSDN通过智能技术生成

什么是智能合约事件?

您可以从事务触发的任何智能合约函数中发出事件,它们是以太坊应用程序架构难题的重要组成部分。

这些事件由一个名称和最多17个参数组成,这些参数的内容由发出函数提供。参数可以是索引的,也可以是非索引的;使用索引参数可以实现高效的链外查询。

例如,如果事件x包含索引字符串参数y,则在链外,我可以使用筛选器检索y==“foo”的所有事件。(稍后将详细介绍过滤器)

事件存储为日志而不是EVM存储,因此,它们具有您应该注意的属性:

· 由于无法从智能合约中访问:虽然智能合约功能会发出事件,但智能合约在发布后无法访问此事件信息。对于排放合同和任何其他外部合同都是如此。因此,您不能将事件用于跨智能合约通信。

· 事件的费用很便宜!:由于事件存储为日志,因此与更新EVM存储状态的传统方法相比,它们是非常便宜的。确切的成本取决于事件规范和事件中数据的大小。

事件的常见用途

异步链外触发器

大多数企业Java开发人员都熟悉事件总线模式,其中事件被发布到队列(如RabByMQ或Amazon SQL)。此模式允许对特定事件感兴趣的服务异步地从总线上使用它们,并执行进一步的处理,而不需要在发布服务器和使用者服务之间进行任何耦合。

事件总线模式

156575259146802.jpg

服务可以以类似的方式使用以太坊智能合约事件,以太坊网络充当一种消息队列。非

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值