【技术实现步骤摘要】
事件推送方法、系统、区块链平台、合约调用端及介质
本专利技术涉及信息传输、区块链
,尤其涉及一种事件推送方法、系统、区块链平台、合约调用端及介质。
技术介绍
当智能合约调用者在智能合约中调用了触发智能合约事件(event)的函数,区块链平台中在执行智能合约的函数时候会通过指令监控到该事件,进而对事件解析,解析之后将事件内容及时地返回给合约调用端,合约调用端通过分析这些事件,而可以了解到智能合约内部的执行情况。传统的方案中,事件需要在合约调端交易执行结束后,由合约调用端轮训区块链数据库才能拿到智能合约的事件,专利技术人意识到,这种场景需要一个区块中的多笔交易都要写入区块链数据库之后,才能拿到交易的返回结果和这笔交易在合约中产生的事件,这个获取智能合约事件的过程是非常缓慢的,而且要求智能合约交易调用必须执行成功,不能快速获取到智能合约事件。
技术实现思路
本专利技术实施例提供一种事件推送方法、系统、区块链平台、合约调用端及介质,以解决不能快速获取到智能合约事件的问题。第一方面,提供了一种事件推送方法,应用于区块链平台,该方法包括:接收合约调用端发送的智能合约调用交易;根据智能合约调用交易,调用对应的智能合约,并获取智能合约对应的在内存中的可执行结构;执行可执行结构,以调用上述事件函数调用指令所对应的事件函数,其中,事件函数为在区块链平台中预先定义的智能合约所对应的事件函数;并依据事件函数,执行智能合约对应的事件处理逻辑,以获取事件内容;最后将事件内容发送给合约调用端。进一 ...
【技术保护点】
1.一种事件推送方法,其特征在于,应用于区块链平台,所述方法包括:/n接收合约调用端发送的智能合约调用交易;/n根据所述智能合约调用交易,调用对应的智能合约,其中,所述智能合约包含事件函数调用指令;/n获取所述智能合约对应的在内存中的可执行结构;/n执行所述可执行结构,以调用所述事件函数调用指令所对应的事件函数,所述事件函数为在区块链平台中预先定义的所述智能合约所对应的事件函数;/n依据所述事件函数,执行所述智能合约对应的事件处理逻辑,以获取事件内容;/n将所述事件内容推送至所述合约调用端。/n
【技术特征摘要】
1.一种事件推送方法,其特征在于,应用于区块链平台,所述方法包括:
接收合约调用端发送的智能合约调用交易;
根据所述智能合约调用交易,调用对应的智能合约,其中,所述智能合约包含事件函数调用指令;
获取所述智能合约对应的在内存中的可执行结构;
执行所述可执行结构,以调用所述事件函数调用指令所对应的事件函数,所述事件函数为在区块链平台中预先定义的所述智能合约所对应的事件函数;
依据所述事件函数,执行所述智能合约对应的事件处理逻辑,以获取事件内容;
将所述事件内容推送至所述合约调用端。
2.如权利要求1所述的事件推送方法,其特征在于,所述获取所述智能合约对应的在内存中的可执行结构,包括:
解析所述智能合约调用交易,以获取调用交易参数,所述调用交易参数包括所述智能合约调用交易调用的合约地址;
在所述内存查找所述合约地址对应的所述智能合约的可执行结构;
当查找不到时,从区块链数据库中读取所述合约地址对应的所述智能合约的字节码文件,将所述字节码文件解析成合约执行引擎能执行的所述可执行结构;
当查找到时,从所述内存中调用所述合约地址对应的可执行结构。
3.如权利要求2所述的事件推送方法,其特征在于,所述将所述字节码文件解析成合约执行引擎能执行的可执行结构之后,所述方法还包括:
将所述可执行结构缓存在所述内存中。
4.如权利要求1所述的事件推送方法,其特征在于,所述执行所述可执行结构,以调用所述事件函数调用指令所对应的事件函数,包括:
构造所述智能合约的虚拟机作为合约执行引擎;
通过所述合约执行引擎,遍历所述智能合约对应的可执行结构,以执行所述智能合约相应的合约函数;
当遍历到所述事件函数调用指令时,依据所述事件函数调用指令,从预先构建的所述智能合约对应的函数索引表中查找相应的事件函数索引;
依据所述事件函数索引调用相应的事件函数。
5.如权利要求1-4任一项所述的事件推送方法,其特征在于,所述将所述事件内容推送至所述合约调用端,包括:
将所述事件内容与所述智能合约调用交易调用的合约地址进行绑定,并将绑定后的所述事件内容反馈至所述合约调用端。
6.如权利要求1-4任一项所述的事件推送方法,其特征在于,所述智能合约所对应的事件函数,通过如下方式定义在区块链平台中:
获取利用区块链平台对应的语言所编写的所述事件函数;
将所述事件函数转换为所述智能合约能识别的内存形式结构,并将所述事件函数的参数类型和返回值类型转变为所述智能合约能识别的类型;
依据转化后的所述事件函数存储到所述区块链平台的账本数据中。
7.如权利要求1-4任一项所述的事件推送方法,其特征在于,所述智能合约...
【专利技术属性】
技术研发人员:邱炜伟,黄方蕾,胡麦芳,张珂杰,杨攀,
申请(专利权)人:杭州趣链科技有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。