一种基于区块链的上链与状态处理方法、装置及互联系统与流程

文档序号:15832184发布日期:2018-11-07 07:26阅读:125来源:国知局
一种基于区块链的上链与状态处理方法、装置及互联系统与流程

本说明书实施例涉及网络技术领域,尤其涉及一种基于区块链的上链与状态处理方法、装置及互联系统。

背景技术

区块链技术也称为分布式账本技术,本质上是一种去中心化的分布式互联网数据库。采用区块链技术架构的网络可视为区块链网络,该区块链网络中包含多个区块链节点,任一区块链节点可对应至少一个区块链,任一区块链可包含至少一个区块。

区块链中有交易和状态,每个区块里都有众多交易的集合。在区块链中的每一笔新交易经处理后,在众多节点的参与下,会产生一个含确定的当前世界状态的一组数据,即状态根,而表示该世界状态的状态根会被再存到区块当中。

在当前的区块链算法处理中,每一笔交易经处理后,会被广播到区块链上的其他参与节点,需要区块链上的其他节点一起参与共识算法,并通过时间戳进行排序,来决定由哪个节点验证这笔交易。在对交易进行共识和排序完成后,需要等待节点把这些交易都处理完,算出最后的状态根,再把这个状态根写回到区块里。这样每一次交易处理的共识计算和状态根计算都在时间上按照先后顺序进行,尤其是同时处理多笔交易时,计算处理非常耗时。

以上是一个同步过程,若是将区块上链计算与状态计算分离成独立流程,彼此间通过消息通信,则可能大幅度提高计算效率。由此,亟需找到一种新的基于区块链的上链与状态处理方法,以克服上述问题。



技术实现要素:

本说明书实施例提供一种基于区块链的上链与状态处理方法、装置及互联系统,用以解决现有技术的共识方案中存在的网络拥堵以及存储负担的问题。

为了解决上述技术问题,本说明书实施例采用下述技术方案:

第一方面,提供了一种基于区块链的上链与状态处理方法,包括:链进程和执行器进程;所述链进程包括交易分发流程和区块上链流程,所述执行器进程包括合约流程和状态根计算流程,所述链进程和执行器进程各自独立进行并相互通信,所述链进程在执行交易分发流程过程中,将交易信息发送到执行器进程,由所述状态根计算流程处理所述交易信息而得到状态根,并将所述状态根返回所述链进程,存储在区块中以完成所述区块上链流程。

第二方面,提供了一种基于区块链的上链与状态处理装置,包括:链模块和执行器模块;所述链模块用于处理交易分发流程和区块上链流程,所述执行器用于处理合约流程和状态根计算流程,所述链模块和执行器模块各自独立进行并相互通信,所述链模块在执行交易分发流程过程中,将交易信息发送到执行器模块,由所述状态根计算流程处理所述交易信息而得到状态根,并将所述状态根返回所述链模块,存储在区块中以完成所述区块上链流程。

第三方面,提供了一种互联系统,包括位于上级的应用层和位于下级的平台层,所述平台层包括链模块和执行器模块;所述链模块用于处理交易分发流程和区块上链流程,所述执行器用于处理合约流程和状态根计算流程,所述链模块和执行器模块各自独立进行并相互通信,所述链模块在执行交易分发流程过程中,将交易信息发送到执行器模块,由所述状态根计算流程处理所述交易信息而得到状态根,并将所述状态根返回所述链模块,存储在中区块以完成所述区块上链流程;所述平台层提供接口,所述应用层使用所述接口开发采用智能合约的应用程序。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

通过上述技术方案,将区块链的上链与状态处理分为各自独立的链进程和执行器进程;链进程通过交易分发流程将交易信息发送到执行器进程,所述链进程执行区块上链流程,由所述状态根计算流程处理所述交易信息而得到状态根,并将所述状态根返回所述链进程,存储在区块中以完成所述区块上链流程这样将区块上链和状态根计算分离处理,能够有效提高区块链中交易处理和区块上链的效率,节省计算资源。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书实施例提供的基于区块链的上链与状态处理方法的示意图;

图2为本说明书实施例提供的基于区块链的上链与状态处理装置结构示意图;

图3本说明书实施例提供的互联系统的结构示意图。

具体实施方式

为使本说明书实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书实施例保护的范围。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

需要说明的是,在本说明书实施例中,将区块链的上链与状态处理分为各自独立的链进程和执行器进程;链进程通过交易分发流程将交易信息发送到执行器进程,所述链进程执行区块上链流程,由所述状态根计算流程处理所述交易信息而得到状态根,并将所述状态根返回所述链进程,存储在区块中以完成所述区块上链流程这样将区块上链和状态根计算分离处理,能够有效提高区块链中交易处理和区块上链的效率,节省计算资源。

实施例一

参照图1所示,为本说明书实施例提供的一种基于区块链的上链与状态处理方法的示意图,本实施例基于区块链的上链与状态处理方法包括:

链进程101和执行器进程102;所述链进程101包括交易分发流程104和区块上链流程103,所述执行器进程102包括合约流程105和状态根计算流程106。

所述链进程101和执行器102进程各自独立进行并相互通信。

根据本实施例基于区块链的上链与状态处理方法,当区块链上产生新的交易时,所述链进程101执行交易分发流程104,在执行交易分发流程104过程中,将交易信息发送到执行器进程102,由所述状态根计算流程106处理所述交易信息而得到状态根(state_root),并将所述状态根返回所述链进程101,存储在区块中以完成所述区块上链流程。

在本实施例中,所述链进程101执行交易分发流程104的同时,所述区块上链流程103同步进行。具体地,所述区块上链流程103包括节点递交出块请求,各个节点通过共识算法产生新区块,处理交易数据并生成区块哈希值,并将所述区块哈希值与新区块添加到区块链上,这样便完成了新区块上链的流程。

在本实施例中,在执行区块上链流程103的同时,所述链进程101执行交易分发流程104,将交易信息发送到执行器进程102。

在现有的由多个节点组成的区块链系统中,大量的节点通过工作量证明机制完成新交易上链的共识机制,需要耗费大量计算资源,而由其中计算速度最快的完成区块上链,可见,大量的计算资源被浪费。

此外,在共识机制完成后,还需要耗费大量算量处理所述交易信息而得到代表所有交易信息的状态根(state_root),才能完成区块上链。

而根据本实施例提供的方法,由于所述区块上链流程103和状态根计算流程106各自分离执行,节点网络上的各个节点可以分批或分别处理区块上链流程103和状态根计算流程106,比如,部分节点专门处理区块上链流程103,进行工作量证明的共识计算或者,其他节点则进行对交易数据进行处理进而完成状态根计算,最终最快的节点获得进行上链操作的权利,同时从其他节点调用状态根计算流程106的执行结果,完成区块上链。因此,单个节点无需在区块上链流程103和状态根计算流程106分别消耗算力,采用本实施例提供的方法,对于整个区块链能够极大提高计算速度。

需要说明的是,在本实施例中,所述执行器进程102还包括合约流程105,所述合约流程105即对链进程101提供的交易数据进行智能合约执行,即多个节点同时进行数字签名验证程序,以确保该交易的有效性。

具体地,在本实施例中,由于合约流程105与所述区块上链流程103分离操作,即数字签名验证程序与区块上链分离操作,进一步提高了信息处理的效率。例如,可以使节点网络中的部分节点进行区块上链流程103,另一部分专门处理合约流程105,同样能达到完成验证合约有效性的功能。

因此,根据本实施例提供的方法,将区块上链流程103和状态根计算流程106分离处理,在执行区块上链流程103的同时,多个节点进行智能合约验证,并参与进行状态根计算。

需要说明的是,在用户进行比特币等电子货币交易时,在整个区块链中往往有数以万计以上的交易在同一区间进行。传统的区块上链方式,多个节点往往是接受千笔以上的交易信息后,对这些交易数据一起进行智能合约和区块上链。每个节点在处理大量的交易数据同时,还要完成工作量证明的共识计算,而采用本实施例提供的方法,对于这些大量的交易,节点网络可以分批、分类处理,将节点网络中的大量节点分别对应不同的计算流程,进而提高了计算效率。

因此,当区块链上同时进行多笔交易时,能够有效提高区块链中交易处理和区块上链的效率,节省计算资源,缩短区块上链所用的时间。可选的,在本实施例中,所述链进程101与链数据库108相对应,所述链数据库108存储区块数据和交易数据,所述执行器进程102对应状态数据库109,所述状态数据库109存储状态根信息和账户信息。

所述链进程101调用链数据库108或向链数据库108输出数据,所述执行器进程102调用状态数据库109或向状态数据库109输出数据。

可选的,所述链进程101和执行器进程102能够相互通信,或者所述链进程101和执行器进程102还能够与其他进程通信,与其他进程通信时,所述链进程101和执行器进程102订阅的信息包括共识计算信息、网络同步区块信息和提案预执行信息。

需要说明的是,在本实施例中,在其他实施例中,所述共识计算信息可以右专门设置的共识模块计算完成。也就是说,所述链进程101可以只包括交易分发流程104,以及区块上链流程103中的基本运算,而将计算量大的工作量证明交由共识模块计算,进一步提高计算效率。

可选的,所述链进程101和执行器进程102均能够被远程调用进程107(rpc,remoteprocedurecall)查询,使得所述链进程101和执行器进程102能够被远程用户调用。

实施例二

图2为本说明书实施例提供的基于区块链的上链与状态处理装置结构示意图,下面参照图2详细介绍本说明书实施例的区块上链与状态处理装置。需要说明的是,在本实施例中,区块上链与状态处理装置采用本发明第一实施例提供的基于区块链的上链与状态处理方法进行区块连上链操作,但是本发明对此不做限制。

本实施例提供一种基于区块链的上链与状态处理装置,包括:链模块201和执行器模块202。所述链模块201用于处理交易分发流程和区块上链流程,所述执行器模块202用于处理合约流程和状态根计算流程,所述链模块和执行器模块各自独立进行并相互通信,所述链模块201在执行交易分发流程过程中,将交易信息发送到执行器模块202,由所述状态根计算流程处理所述交易信息而得到状态根,并将所述状态根返回所述链模块201,存储在区块中以完成所述区块上链流程。

在本实施例中,所述区块上链流程包括节点递交出块请求,各个节点通过共识算法产生新区块,处理交易数据并生成区块哈希值,并将所述区块哈希值与新区块添加到区块链上。

因此,根据本实施例提供的装置,将区块上链流程和状态根计算流程106分别在链模块201和执行器模块202中处理,在执行区块上链流程的同时,多个节点进行智能合约验证,并参与进行状态根计算,当区块链上同时进行多笔交易时,能够有效提高区块链中交易处理和区块上链的效率,节省计算资源,缩短区块上链所用的时间。

可选的,在本实施例中,所述链模块201包括链数据库108,所述链数据库108存储区块数据、收据、和交易数据等信息,所述执行器模块202包括状态数据库109,所述状态数据109库存储状态根信息和账户信息。所述链数据库108和状态数据库109能够被各自独立独立调用,进一步提高了计算速率。

在所述执行器模块202执行区块上链流程之后,将执行后得到的交易信息及收据储存到所述链数据库108;所述执行器模块202作为智能合约执行引擎,为合约流程运行提供执行环境,并将执行合约流程后的账户信息和状态根存储到所述状态数据库108。

可选的,在本实施例中,所述基于区块链的上链与状态处理装置还包括共识模块和网络同步模块205,所述共识模块和网络同步模块205承担共识计算和网络同步功能,并与所述链模块201或执行器模块202通信,但是本发明对此不做限制,所述共识计算和网络同步功能也可以封装在所述链模块201或执行器模块202中完成。

需要说明的是,在本实施例中,所述基于区块链的上链与状态处理装置可以为电子设备,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成内容推荐装置。处理器,执行存储器所存放的程序,并具体用于执行前文所述服务器作为执行主体时所执行的方法操作。

上述如本说明书实施例图1-图2揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

实施例三

图3本说明书实施例提供的互联系统的结构示意图,下面结合图3详细介绍本说明书实施例的互联系统。

本说明书实施例提供的互联系统包括位于上级的应用层301和位于下级的平台层302。所述平台层301包括链模块201和执行器模块202;所述链模块201用于处理交易分发流程和区块上链流程,所述执行器模块202用于处理合约流程和状态根计算流程,所述链模块201和执行器模块202各自独立进行并相互通信,所述链模块201在执行交易分发流程过程中,将交易信息发送到执行器模块202,由所述状态根计算流程处理所述交易信息而得到状态根,并将所述状态根返回所述链模块201,存储在中区块以完成区块上链流程。

所述平台层302提供接口,所述应用层201使用所述接口开发采用智能合约的应用程序。可选的,用户可在应用层301开发采用智能合约的电子货币等应用程序,并使用平台层302提供的接口调用查询数据。

根据本实施例提供的互联系统,在平台层302中,将区块上链流程和状态根计算流程106分别在链模块201和执行器模块202中处理,在执行区块上链流程的同时,多个节点进行智能合约验证,并参与进行状态根计算,当区块链上同时进行多笔交易时,能够有效提高区块链中交易处理和区块上链的效率,节省计算资源,缩短区块上链所用的时间。这样同样使得位于应用层301的智能合约、电子货币等应用程序运行速度显著提升。

总之,以上所述仅为本说明书实施例的较佳实施例而已,并非用于限定本说明书实施例的保护范围。凡在本说明书实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的保护范围之内。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书实施例中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1