一种区块链合约的数据处理方法及服务器技术

技术编号:21480057 阅读:26 留言:0更新日期:2019-06-29 05:21
本申请实施方式公开了一种区块链合约的数据处理方法及服务器。所述方法包括:接收客户端发来的指向目标WASM合约文件的交易请求;从内存缓存中查询所述目标WASM合约文件对应的目标待执行文件;其中,所述目标待执行文件通过对所述目标WASM合约文件进行解析处理得到;若查询到所述目标待执行文件,执行所述目标待执行文件,以进行针对所述交易请求的交易。本申请提供的技术方案,能够提高执行区块链中WASM合约的效率。

【技术实现步骤摘要】
一种区块链合约的数据处理方法及服务器
本申请涉及互联网
,特别涉及一种区块链合约的数据处理方法及服务器。
技术介绍
随着互联网技术的不断发展,去中心化的区块链的应用越来越多,在区块链上的智能合约的数量也越来越多。目前,在区块链中存储的智能合约通常是采用WebAssembly(WASM)语言编译的WASM合约。每次在通过WASM虚拟机上启动WASM合约时,都需要先对WASM合约的字节码进行解析,得到解析后的文件,然后再执行解析后的文件。然而,目前,在区块链上的智能合约的数量越来越多,通过WASM虚拟机上启动WASM合约的次数也越来越多,若每次启动WASM合约都需要对WASM合约的字节码进行解析,可能会导致启动较慢,从而导致WASM合约执行效率较低。因此,目前亟需一种更加高效执行区块链WASM合约的方案。
技术实现思路
本申请实施方式的目的是提供一种区块链合约的数据处理方法及服务器,能够提高执行区块链中WASM合约的效率。为实现上述目的,本申请实施方式提供一种区块链合约的数据处理方法,所述方法包括:接收客户端发来的指向目标WASM合约文件的交易请求;从内存缓存中查询所述目标WASM合约文件对应的目标待执行文件;其中,所述目标待执行文件通过对所述目标WASM合约文件进行解析处理得到;若查询到所述目标待执行文件,执行所述目标待执行文件,以进行针对所述交易请求的交易。为实现上述目的,本申请实施方式还提供一种服务器,所述服务器包括存储器和处理器,所述存储器用于存储计算机程序;所述计算机程序被所述处理器执行时,实现以下步骤:接收客户端发来的指向目标WASM合约文件的交易请求;从内存缓存中查询所述目标WASM合约文件对应的目标待执行文件;其中,所述目标待执行文件通过对所述目标WASM合约文件进行解析处理得到;若查询到所述目标待执行文件,执行所述目标待执行文件,以进行针对所述交易请求的交易。由上可见,在本申请中,可以预先将发布的WASM合约文件对应的待执行文件存储在内存缓存中,其中,所述目标待执行文件通过对所述目标WASM合约文件进行解析处理得到。那么,在接收到客户端发来的指向目标WASM合约文件的交易请求之后,便可以直接从内存缓存中查询所述目标WASM合约文件对应的目标待执行文件。若查询到所述目标待执行文件,便可以直接执行所述目标待执行文件,以进行针对所述交易请求的交易,无需再对WASM合约进行解析,从而可以提高执行区块链中WASM合约的效率。附图说明为了更清楚地说明本申请实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施方式中一种区块链合约的数据处理方法的步骤图;图2是本申请实施方式中查询待执行文件的流程图;图3是本申请实施方式中添加待执行文件的流程图;图4是本申请实施方式中删除待执行文件的流程图;图5是本申请实施方式中服务器的结构示意图;具体实施方式为了使本
的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都应当属于本申请保护的范围。本申请实施方式提供一种区块链合约的数据处理方法,所述区块链合约的数据处理方法可以应用于客户端和服务器的系统架构中。所述客户端例如可以是台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备、具有网络访问功能的电视机等。所述的客户端可以具有通信模块,可以与远程的服务器进行通信连接,实现与所述应用服务器的数据传输。在本实施方式中,所述服务器可以为一个具有数据运算、存储功能以及网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件。在本实施方式中并不具体限定所述应用服务器的数量。所述应用服务器可以为一个服务器,还可以为几个服务器,或者,若干服务器形成的服务器集群。在本实施方式中,在实际应用中,合约发布用户可以通过客户端将WASM(WebAssembly)合约文件发送至区块链节点,例如所述服务器。在接收到WASM合约文件后,所述服务器可以将该合约文件存储在区块链中,并生成对应的合约文件的存储地址,接着可以将该合约文件的存储地址反馈给所述客户端,以便后续所述客户端发起指向该合约文件的交易请求时,交易请求中可以包含该合约文件的存储地址,这样,所述服务器接收到交易请求后,便可以从该存储地址中找到该合约文件。在本实施方式中,在合约发布用户通过客户端将WASM合约文件发送至所述服务器之后,所述服务器可以对该WASM合约文件进行解析处理,得到对应的待执行文件。由于通常情况下,对同一个合约解析后得到的待执行文件(Module)是相同的,那么,可以预先将各个合约发布用户发布的不同的WASM合约文件对应的待执行文件存储在所述服务器的内存缓存中。这样,后续当所述客户端发来指向该WASM合约文件的交易请求之后,所述服务器便可以直接从内存缓存中查询该WASM合约文件对应的待执行文件,无需再对该合约进行解析。在本实施方式中,所述待执行文件通常包括导入接口数据(Import)、导出接口数据(Export)、启动或加载数据(Start)、全局函数变量数据(Global)、虚拟内存数据(Memory)、常量数据(Data)、表数据(TableElements)、内部函数数据(Function)和对应的代码数据(Code)等等。在进行缓存时,考虑到在运行待执行文件时,虚拟内存数据(Memory)往往会出现变更,可以不对虚拟内存数据(Memory)进行缓存。不仅如此,考虑到目前智能合约文件越来越多,将这些合约文件完全存储在内存缓存中,会导致内存缓存占用过大,甚至超过内存缓存的最大限制量。为了缓解内存缓存的压力,还可以预先将这些WASM合约文件对应的待执行文件存储在所述服务器的合约数据库中。这样,还可以防止在服务器启停过程中,对应的待执行文件仍然存在,无需反复解析。在本实施方式中,所述合约数据库可以是存储待执行文件的数据集。所述合约数据库可以采用MySQL、Oracle、DB2、Sybase等数据库格式中的任意一种。所述合约数据库可以部署在服务器中的存储介质上。在本实施方式中,每个WASM合约文件可以具备各自的数据标识,在所述内存缓存或所述合约数据库中,所述数据标识与待执行文件之间可以通过key-value(键值对)的形式进行存储,这样,通过提供的数据标识,便可以从所述内存缓存或所述合约数据库中获取到对应的待执行文件(Module)。本申请实施方式提供一种区块链合约的数据处理方法,所述区块链合约的数据处理方法可以应用于上述的服务器中。请参阅图1,所述区块链合约的数据处理方法可以包括以下步骤。S11:接收客户端发来的指向目标WASM合约文件的交易请求。在本实施方式中,所述交易请求可以是按照预设规则进行编写的字符串。其本文档来自技高网
...

【技术保护点】
1.一种区块链合约的数据处理方法,其特征在于,所述方法包括:接收客户端发来的指向目标WASM合约文件的交易请求;从内存缓存中查询所述目标WASM合约文件对应的目标待执行文件;其中,所述目标待执行文件通过对所述目标WASM合约文件进行解析处理得到;若查询到所述目标待执行文件,执行所述目标待执行文件,以进行针对所述交易请求的交易。

【技术特征摘要】
1.一种区块链合约的数据处理方法,其特征在于,所述方法包括:接收客户端发来的指向目标WASM合约文件的交易请求;从内存缓存中查询所述目标WASM合约文件对应的目标待执行文件;其中,所述目标待执行文件通过对所述目标WASM合约文件进行解析处理得到;若查询到所述目标待执行文件,执行所述目标待执行文件,以进行针对所述交易请求的交易。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若从所述内存缓存中查询不到所述目标待执行文件,从合约数据库中查询所述目标待执行文件;若查询到所述目标待执行文件,将所述目标待执行文件添加至所述内存缓存中。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收所述客户端发布的指定WASM合约文件;对所述指定WASM合约文件进行解析处理,得到对应的指定待执行文件;判断所述内存缓存中是否存在所述指定待执行文件,若不存在,将所述指定待执行文件添加至所述内存缓存中。4.根据权利要求3所述的方法,其特征在于,在将所述指定待执行文件添加至所述内存缓存中之后,所述方法还包括:判断所述内存缓存的缓存量是否大于或等于指定缓存量阈值;若大于,对所述内存缓存进行释放处理,以使得所述内存缓存的缓存量小于所述指定缓存量阈值。5.根据权利要求3所述的方法,其特征在于,在将所述指定待执行文件添加至所述内存缓存中之后,所述方法还包括:对所述指定待执行文件进行序列化处理;将序列化处理后的所述指定待执行文件写入合约数据库中。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:针对待删除的待执行文件,判断所述内存缓存中是否存在所述待删除的待执行文件;若存在,从所述内存缓存中删除所述待删除的待执行文件,并从合约数据库中删除所述待删除的待执行文件;若不存在,从合约数据库中删除所述待删除的待执行文件。7.一种服务器,其特征在于,所述服务器包括存储器和处...

【专利技术属性】
技术研发人员:杨舟李升林傅志敬孙立林
申请(专利权)人:矩阵元技术深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1