CN110830581B - 提升区块链响应速度的方法、区块链应用***及相关设备 - Google Patents
提升区块链响应速度的方法、区块链应用***及相关设备 Download PDFInfo
- Publication number
- CN110830581B CN110830581B CN201911102891.0A CN201911102891A CN110830581B CN 110830581 B CN110830581 B CN 110830581B CN 201911102891 A CN201911102891 A CN 201911102891A CN 110830581 B CN110830581 B CN 110830581B
- Authority
- CN
- China
- Prior art keywords
- block
- block chain
- consensus
- service request
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种提升区块链响应速度的方法、区块链应用***及相关设备,用于提升区块链响应速度。本发明实施例方法包括:接收客户端发送的业务请求;采用预设的业务流程处理所述业务请求,并在区块链中达成共识;向所述客户端返回所述业务请求对应的响应消息,所述响应消息包含所述业务请求对应的业务的共识结果;根据所述业务请求的共识结果生成目标区块数据,将所述目标区块数据保存在缓存中,并将所述目标区块数据广播给其它区块链节点,以使得其它区块链节点将所述目标区块数据保存在缓存中;将保存在缓存中的所述目标区块数据存储在存储器中。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及提升区块链响应速度的方法、区块链应用***及相关设备。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
目前区块链的技术方案的流程如图1所示,当一笔交易或数据调用区块链应用服务,区块链应用服务的流程是:客户端发送记账请求(tx.request)->各个节点(Peer)独立验证->智能合约模块(contract)生成模拟结果->多节点达成共识并确认共识(consensus)后生成区块->将区块存储到硬盘(storage)->返回客户端响应(tx.response)。
现有技术中,需要将新区块存储到硬盘之后才向客户端返回业务请求对应的响应结果,并向其它节点广播新区块及其区块高度,其它节点才能获知最新的区块高度,进而配置下一区块的高度继续生成新的区块。新区块写入硬盘的过程延长了调用区块链应用服务的响应时间,造成用户体验不好。
发明内容
本发明实施例提供了一种提升区块链响应速度的方法、区块链应用***及相关设备,用于提升区块链响应速度。
本发明实施例第一方面提供了一种提升区块链响应速度的方法,应用于区块链中的目标节点,可包括:
接收客户端发送的业务请求;
采用预设的业务流程处理所述业务请求并在区块链中达成共识;
向所述客户端返回所述业务请求对应的响应消息,所述响应消息包含所述业务请求对应的业务的共识结果;
根据所述业务请求的共识结果生成目标区块数据,将所述目标区块数据保存在缓存中,并将所述目标区块数据广播给其它区块链节点,以使得其它区块链节点将所述目标区块数据保存在缓存中;
将保存在缓存中的所述目标区块数据存储在存储器中。
可选的,作为一种可能的实施方式,本发明实施例中,采用预设的业务流程处理所述业务请求并在区块链中达成共识,包括:
将所述业务请求转发给所述目标节点之外的区块链节点,以使得各个区块链节点执行所述业务请求对应的智能合约得到各自的模拟结果;
接收所述目标节点之外的区块链节点返回的多个模拟结果;
采用预设的共识算法根据所述多个模拟结果对所述业务请求达成共识。
可选的,作为一种可能的实施方式,本发明实施例中,所述将所述目标区块数据保存在缓存中,并将所述目标区块数据广播给其它区块链节点,包括:
将生成的目标区块数据以Key-Value健值对的方式存储到缓存中,Key值为区块高度,Value对应目标区块数据;
将区块高度和对应的目标区块数据广播给其它区块链节点,其它区块链节点将所述区块高度和对应的目标区块数据保存在各自缓存中。
可选的,作为一种可能的实施方式,本发明实施例中,所述将保存在缓存中的所述目标区块数据存储在存储器中,包括:
查询存储器中的当前区块高度;
采用轮询的方式从缓存中查询所述当前区块高度的下一个区块高度对应的待写入区块,将所述待写入区块存储至存储器中。
可选的,作为一种可能的实施方式,本发明实施例中,若多次从缓存中查询不到所需要的区块高度,则通过P2P通信方式,从其它区块链节点中获取相应区块高度的区块数据,再写入存储器中。
本发明实施例第二方面提供了一种区块链应用***,可包括:
节点模块、智能合约模块、共识模块、存储模块、缓存模块,其中,
节点模块,用于提供区块链服务的入口,接收客户端的请求并将客户端请求分发给对应的功能模块;
智能合约模块,用于实现智能合约的管理;
共识模块,用于采用预设的业务流程处理所述业务请求,并在区块链中达成共识,根据所述业务请求的共识结果生成目标区块数据,向所述客户端返回所述业务请求对应的响应消息,所述响应消息包含所述业务请求对应的业务的共识结果;并将所述目标区块数据广播给其它区块链节点,以使得其它区块链节点将所述目标区块数据保存在缓存中;
缓存模块,用于将达成共识的目标区块数据保存在缓存中;
存储模块,用于将保存在缓存中的目标区块数据存储在存储器中。
可选的,作为一种可能的实施方式,本发明实施例中的所述智能合约模块,用于将所述业务请求转发给目标节点之外的其它区块链节点,以使得各个区块链节点执行所述业务请求对应的智能合约得到各自的模拟结果;
所述共识模块,用于接收所述目标节点之外的区块链节点返回的多个模拟结果;采用预设的共识算法根据所述多个模拟结果对所述业务请求达成共识。
可选的,作为一种可能的实施方式,本发明实施例中的所述节点模块、智能合约模块、共识模块、存储模块运行于对应的节点容器、智能合约容器、共识容器、存储容器之中。
本申请实施例第三方面提供了一种区块链节点设备,包括如第二方面及第二方面中任意一种可能的实施方式中的区块链应用***。
本申请实施例第四方面提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如第一方面及第一方面中任意一种可能的实施方式中方法中的步骤。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,目标节点在接收到接收客户端发送的业务请求之后,可以采用预设的业务流程处理业务请求在区块链中达成共识,共识完成确认出来的区块在返回客户端、写入缓存操作、以及存储模块读取缓存数据写入存储器时,可以同时执行,大大缩短区块链服务的响应时间,提升了区块链服务的性能和吞吐量,提升用户体验。
附图说明
图1为现有技术中的区块链业务流程示意图;
图2为本发明实施例中一种提升区块链响应速度的方法的一个实施例示意图;
图3为本发明实施例中一种提升区块链响应速度的方法的一个具体应用实施例中的区块链业务流程示意图;
图4为本发明实施例中一种区块链应用***的一个实施例示意图;
图5为本发明实施例中一种计算机设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种提升区块链响应速度的方法、区块链应用***及相关设备,用于提升区块链响应速度。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解,下面对本发明实施例中的具体流程进行描述,请参阅图1,本发明实施例中一种提升区块链响应速度的方法的一个实施例可包括:
201、接收客户端发送的业务请求;
当用户需要调用区块链服务时,可以通过客户端向区块链中的任一节点发送对应的业务请求。为了便于标识,将收到业务请求的节点作为目标节点,该目标节点可以是用户自身所属的终端设备或服务器也可以是服务商提供的终端设备或服务器,具体此处不做限定。
202、采用预设的业务流程处理业务请求,并在区块链中达成共识;
目标节点在接收到业务请求之后,可以采用预设的业务流程处理业务请求,并在区块链中达成共识,具体的预设的业务流程可以参照现有区块链方案中共识流程,也可以是根据用户需求定制的共识流程,具体此处不做限定。
示例性的,可选的,作为一种可能的实施方式,本发明实施例中,采用预设的业务流程处理业务请求,并在区块链中达成共识,可以包括:
目标节点将业务请求转发给目标节点之外的其它区块链节点,以使得各个区块链节点执行业务请求对应的智能合约得到各自的模拟结果,该执行结果用于指示业务请求是否符合业务规则;目标节点接收目标节点之外的其它区块链节点返回的多个模拟结果;目标节点采用预设的共识算法根据多个模拟结果中对业务请求达成共识。其中,共识的结果可以是业务请求成功或失败。
可以理解的是,区别于现有方案,本发明实施例中目标节点之外的所有区块链节点在执行业务请求对应的智能合约得到各自的模拟结果之后,可以无需将各自的模拟结果广播给目标节点之外的节点,只需要通过P2P通信将各自的模拟结果发送给目标节点即可,由目标节点进行共识算法确定目标节点之外的所有区块链节点是否对业务请求达成共识,可以大大减少区块链中广播消息的数量。目标节点在确定共识结果之后,可以将共识结果及所有节点的模拟结果广播至区块链中,以便于其它节点进行验证。
203、向客户端返回业务请求对应的响应消息,响应消息包含业务请求对应的业务的共识结果;
目标节点在确定共识结果之后,可以向客户端返回业务请求对应的响应消息,该响应消息包含所述业务请求对应的业务的共识结果,即业务请求对应的业务成功与否。
204、根据业务请求的共识结果生成目标区块数据,将目标区块数据保存在缓存中,并将目标区块数据广播给其它区块链节点,以使得其它区块链节点将目标区块数据保存在缓存中;
在业务请求在区块链中达成共识之后,可以将目标区块存入目标节点的缓存区域,之后将目标区块及其区块高度广播给目标节点之外的所有区块链节点,以使得所有区块链节点将目标区块及其区块高度保存在缓存区域中。
可选的,作为一种可能的实施方式,本发明实施例中,将目标区块保存在缓存区域中,可以包括:将新生成的区块数据以Key-Value健值对的方式存储到缓存区域中,Key值使用区块的高度,Value对应目标区块本身的整个数据。将区块高度和对应的目标区块数据广播给其它区块链节点,其它区块链节点将所述区块高度和对应的目标区块数据保存在各自缓存中。
205、将保存在缓存中的所述目标区块数据存储在存储器中。
进一步的,各个区块链节点可以根据区块高度排序,依次将本地缓存中的区块数据写入存储器中。所述存储器可以是本地硬盘。
可选的作为一种可能的实施方式,本发明实施例中可以通过查询存储器中的当前区块高度;采用轮询的方式从缓存中查询所述当前区块高度的下一个区块高度对应的待写入区块,将所述待写入区块存储至存储器中。
特别的,若多次从缓存中查询不到所需要的区块高度,则通过P2P通信方式,从其它区块链节点中获取相应区块高度的区块数据,再写入存储器中。
本发明实施例中,目标节点在接收到接收客户端发送的业务请求之后,可以采用预设的业务流程处理业务请求在区块链中达成共识,共识完成确认出来的区块在返回客户端、写入缓存操作、以及存储模块读取缓存数据写入硬盘,可以同时执行,大大缩短区块链服务的响应时间,提升了区块链服务的性能和吞吐量,提升用户体验。并且,若业务请求在区块链中达成共识,则在目标节点缓存区域中查询当前区块链高度,并确定业务请求对应的目标区块的区块高度,并将目标区块及其区块高度广播给目标节点之外的所有区块链节点,以使得所有区块链节点将目标区块及其区块高度保存在缓存区域中。由于缓存区域的读写性能远大于硬盘的读写性能,新区块写入缓存区域提高了新区块写入的速度,相对于现有方案无需等待新区块写入硬盘才能查询到最新的区块高度,使得区块链节点可以快速查询到最新的区块高度,降低了新区块生成时查询最新区块高度等待时间,提高了新区块的生成速度。
可以理解的是,在本发明的各种实施例中,上述各步骤的序号的大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。例如,步骤203与204可以同时执行。
为了便于理解,下面将结合具体运用实例对本发明实施例中的提升区块链响应速度的方法进行描述。
本发明实施例中,同一个节点的区块链应用程序划分为节点模块、智能合约模块、共识模块、存储模块、缓存模块,其中,节点模块,用于提供区块链服务的入口,接收客户端的请求并将客户端请求分发给对应的功能模块;智能合约模块,用于实现智能合约的管理(例如智能合约的注册、创建、调用、查询);共识模块,用于实现区块链共识机制;存储模块,用于将达成共识的区块数据写入到硬盘;缓存模块,用于将达成共识的区块数据写入到缓存。
请参阅图3,具体步骤包括:1、区块链(block chain)中的目标节点中的节点(Peer)模块接收客户端的业务请求(tx.request);2、节点模块将业务请求转发给目标节点之外的所有区块链节点,以使得各个区块链节点调用各自的智能合约模块(contract)得到各自的模拟结果,执行结果用于指示业务请求是否符合业务规则;3、目标节点之外的所有区块链节点将各自的模拟结果返回给目标节点中的共识模块(consensus),采用预设的共识算法在多个模拟结果中确定目标节点之外的所有区块链节点是否对业务请求达成共识(此情况需根据实际共识机制决定,例如可以是超过一半的节点达成共识,则确定区块链达成共识);4、在保证所有节点(或绝大多数节点)的达成共识后,意味着客户提交的请求已明确在某个区块中,此时,共识模块可以同时执行:一、将结果返回给客户端(通过节点模块转发给客户端);二、将区块数据存储到缓存(cache)中;三、将区块数据进行P2P技术广播给其他区块链节点,其他区块链节点在收到区块数据后,也会将数据保存到缓存中;5、将缓存中的数据写入本地存储空间(例如硬盘)。
可选的,作为一种可能的实施方式,为保证区块数据能顺利存储到硬盘中,存储模块(storage)可以通过轮询的方式(在共识模块将新生成的区块数据以Key-Value健值对的方式存储到缓存中,Key值使用区块的高度num,Value使用区块本身的整个数据),由于区块的高度是递增的,从1到N依次递增,存储模块通过区块高度这个字段,例如先从高度1开始查询,如果从缓存中查询到区块数据,且硬盘中并没有存储到此区块数据,则将高度为1的区块写入硬盘中,接着继续查询高度为2的区块,以此类推。由于共识生成区块并没有通知存储模块,所以存储模块在查询不到下一个高度的区块时,先选择睡眠一段时间(假设为1秒),然后继续查询缓存某个高度的区块,如果多次查询不到区块,或缓存出现故障(如通信问题或宕机),则会通过P2P方式,从其他节点中拉取相应高度的区块,再将区块写入到硬盘中,至此流程结束。
可选的,作为一种可能的实施方式,为保证区块数据能顺利存储到硬盘中,可以使用消息队列(如kafka,一种高吞吐量的分布式发布订阅消息***)代替轮询实现。简易的过程如下:
a.共识模块在消息队列中先发布一个topic(主题),假定为block(区块)。存储模块订阅此topic。
b.共识模块生成区块好,将区块的高度(num)发到消息队列中指定的topic中。并将区块数据存储到cache(缓存)中。
c.由于存储模块订阅了block这个topic,将会收到刚刚共识发布的消息,得到区块高度num,继而利用num这个条件,查询到缓存中的num对应的区块数据。最后将区块写入到硬盘中。
可选的,在上述任一实施例的基础上,为了进一步提高区块链应用程序的响应速度,本发明实施例中的提升区块链响应速度的方法还包括:
采用应用容器引擎将将节点模块、智能合约模块、共识模块分别打包成容器镜像,并运行容器镜像分别生成节点容器、智能合约容器、共识容器、存储容器。
实际运用中,将节点模块、智能合约模块、共识模块容器化之后,同一个模块可以根据需求同时运用至少一个容器,由于容器间因处于隔离状态,不在同一进程中,同一模块的多个容器可以并行执行对应的功能,大大提高了程序功能的业务处理效率。
请参阅图4,本发明实施例中还提供了一种区块链应用***,其特征在于,包括:节点模块401、智能合约模块402、共识模块403、存储模块404、缓存模块405,其中,
节点模块401,用于提供区块链服务的入口,接收客户端的请求并将客户端请求分发给对应的功能模块;智能合约模块402,用于实现智能合约的管理(例如智能合约的注册、创建、调用、查询);共识模块403,用于采用预设的业务流程处理所述业务请求,并在区块链中达成共识,根据所述业务请求的共识结果生成目标区块数据,向所述客户端返回所述业务请求对应的响应消息,所述响应消息包含所述业务请求对应的业务的共识结果;并将所述目标区块数据广播给其它区块链节点,以使得其它区块链节点将所述目标区块数据保存在缓存中;存储模块404,用于将达成共识的区块数据写入到存储器中;缓存模块405,用于将达成共识的区块数据写入到缓存中。
可选的,作为一种可能的实施方式,本发明实施例中的智能合约模块,用于将所述业务请求转发给目标节点之外的其它区块链节点,以使得各个区块链节点执行所述业务请求对应的智能合约得到各自的模拟结果;
共识模块,用于接收目标节点之外的区块链节点返回的多个模拟结果;采用预设的共识算法根据多个模拟结果对业务请求达成共识。
可选的,作为一种可能的实施方式,本发明实施例中的区块链应用***中,存储模块还用于查询本地硬盘中的当前区块链高度;存储模块还用于采用轮询的方式从缓存区域中查询当前区块链高度的下一个区块链高度对应的待写入区块,将待写入区块存储至存储器中。
可选的,作为一种可能的实施方式,本发明实施例中的区块链应用***中,共识模块在生成新区块之后,将新区块的区块高度发送给存储模块,以使得存储模块根据新区块的高度在缓存区域中查询新区块,并将新区块写入硬盘。
可选的,作为一种可能的实施方式,本发明实施例中的区块链应用***中,节点模块、智能合约模块、共识模块均可以运行于对应的节点容器、智能合约容器、共识容器、存储容器之中。如此各容器再程序实现中解耦,实现逻辑简单,代码量减小,降低了后续的迭代开发成本。其次,采用应用容器引擎将各模块打包成容器镜像,并运行容器镜像生成各模块对应的容器,科使得同一个区块链节点可以根据实际性能需求同时运行多个相同容器,提高了区块链***的性能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种区块链节点设备,该区块链节点设备可以是手机、平板等具有运算能力的终端设备,该区块链节点设备中包括上述图4所示的区块链应用***。
本申请实施例还提供了一种计算机设备,如图5所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。参考图5,计算机设备5包括:存储器510、处理器520、有线或无线网络模块530以及存储在存储器中并可在处理器上运行的计算机程序。处理器执行计算机程序时实现上述各个提升区块链响应速度的方法实施例中的步骤,例如图2所示的步骤201至205。或者,处理器执行计算机程序时实现上述各区块链应用***实施例中各模块或单元的功能。
本领域技术人员可以理解,图5中示出的结构并不构成对计算机设备的限定,计算机设备5可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,例如区块链节点还可以包括输入输出设备、总线等。
所称处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现区块链节点的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种提升区块链响应速度的方法,应用于区块链中的目标节点,其特征在于,所述方法包括:
接收客户端发送的业务请求;
采用预设的业务流程处理所述业务请求,并在区块链中达成共识;
向所述客户端返回所述业务请求对应的响应消息,所述响应消息包含所述业务请求对应的业务的共识结果;
根据所述业务请求的共识结果生成目标区块数据;
将生成的目标区块数据以Key-Value健值对的方式存储到缓存中,Key为区块高度,Value为目标区块数据;将区块高度和对应的目标区块数据广播给其它区块链节点,其它区块链节点将所述区块高度和对应的目标区块数据保存在各自缓存中;
根据区块高度的排序将保存在缓存中的所述目标区块数据存储在存储器中;
其中,将保存在缓存中的所述目标区块数据存储在存储器中,包括:
查询存储器中的当前区块高度;
采用轮询的方式从缓存中查询所述当前区块高度的下一个区块高度对应的待写入区块,将所述待写入区块存储至存储器中;若多次从缓存中查询不到所需要的区块高度,则通过P2P通信方式,从其它区块链节点中获取相应区块高度的区块数据,再写入存储器中。
2.根据权利要求1所述的方法,其特征在于,采用预设的业务流程处理所述业务请求并在区块链中达成共识,包括:
将所述业务请求转发给所述目标节点之外的区块链节点,以使得各个区块链节点执行所述业务请求对应的智能合约得到各自的模拟结果;
接收所述目标节点之外的区块链节点返回的多个模拟结果;
采用预设的共识算法根据所述多个模拟结果对所述业务请求达成共识。
3.一种区块链应用***,其特征在于,包括:
节点模块、智能合约模块、共识模块、存储模块、缓存模块,其中,
节点模块,用于提供区块链服务的入口,接收客户端的请求并将客户端请求分发给对应的功能模块;
智能合约模块,用于实现智能合约的管理;
共识模块,用于采用预设的业务流程处理所述业务请求,并在区块链中达成共识,根据所述业务请求的共识结果生成目标区块数据,向所述客户端返回所述业务请求对应的响应消息,所述响应消息包含所述业务请求对应的业务的共识结果;将区块高度和对应的目标区块数据广播给其它区块链节点,其它区块链节点将所述区块高度和对应的目标区块数据保存在各自缓存中;
缓存模块,用于将生成的目标区块数据以Key-Value健值对的方式存储到缓存中,Key为区块高度,Value为目标区块数据;
存储模块,用于根据区块高度的排序将保存在缓存中的目标区块数据存储在存储器中;
所述存储模块,具体用于根据区块高度的排序查询本地硬盘中的当前区块链高度;采用轮询的方式从缓存区域中查询当前区块链高度的下一个区块链高度对应的待写入区块,将待写入区块存储至存储器中;若多次从缓存中查询不到所需要的区块高度,则通过P2P通信方式,从其它区块链节点中获取相应区块高度的区块数据,再写入存储器中。
4.根据权利要求3所述的***,其特征在于,
所述智能合约模块,用于将所述业务请求转发给目标节点之外的其它区块链节点,以使得各个区块链节点执行所述业务请求对应的智能合约得到各自的模拟结果;
所述共识模块,用于接收所述目标节点之外的区块链节点返回的多个模拟结果;采用预设的共识算法根据所述多个模拟结果对所述业务请求达成共识。
5.根据权利要求3至4中任一项所述的***,其特征在于,
所述节点模块、智能合约模块、共识模块、存储模块运行于对应的节点容器、智能合约容器、共识容器、存储容器之中。
6.一种区块链节点设备,其特征在于,包括如权利要求3至5中任一项所述的区块链应用***。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至2中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911102891.0A CN110830581B (zh) | 2019-11-12 | 2019-11-12 | 提升区块链响应速度的方法、区块链应用***及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911102891.0A CN110830581B (zh) | 2019-11-12 | 2019-11-12 | 提升区块链响应速度的方法、区块链应用***及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110830581A CN110830581A (zh) | 2020-02-21 |
CN110830581B true CN110830581B (zh) | 2022-11-22 |
Family
ID=69554362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911102891.0A Active CN110830581B (zh) | 2019-11-12 | 2019-11-12 | 提升区块链响应速度的方法、区块链应用***及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110830581B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522876B (zh) * | 2020-04-07 | 2024-02-20 | 金蝶软件(中国)有限公司 | 区块链共识方法、装置和计算机设备、及区块链节点 |
CN111510484B (zh) * | 2020-04-10 | 2023-07-04 | 金蝶软件(中国)有限公司 | 区块链处理方法、***、装置、计算机设备和存储介质 |
CN111625593B (zh) * | 2020-04-21 | 2023-09-08 | 金蝶软件(中国)有限公司 | 基于区块链的数据处理方法、装置、计算机设备 |
CN111563124B (zh) * | 2020-05-08 | 2023-06-23 | 中国工商银行股份有限公司 | 基于区块链的作业处理方法、装置及*** |
CN112395110A (zh) * | 2020-11-20 | 2021-02-23 | 湖南智慧政务区块链科技有限公司 | 一种区块链加速响应方法、装置、设备及存储介质 |
CN112612816B (zh) * | 2020-12-01 | 2023-06-30 | 网易(杭州)网络有限公司 | 以太坊联盟链的业务结果查询方法、装置、设备及介质 |
CN114296831A (zh) * | 2021-12-30 | 2022-04-08 | 迅鳐成都科技有限公司 | 区块链共识算法动态加载方法、装置、***及存储介质 |
CN114997866A (zh) * | 2022-05-26 | 2022-09-02 | 成都质数斯达克科技有限公司 | 一种业务合约生成方法、装置、设备及可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10375105B2 (en) * | 2017-03-03 | 2019-08-06 | International Business Machines Corporation | Blockchain web browser interface |
CN108985757B (zh) * | 2017-11-27 | 2021-03-30 | 京东数字科技控股有限公司 | 信息处理方法、装置及***、存储介质、电子设备 |
CN109274754B (zh) * | 2018-10-11 | 2021-05-04 | 上海保险交易所股份有限公司 | 用于在区块链网络中同步数据的方法、设备和存储介质 |
CN109447635B (zh) * | 2018-10-15 | 2022-02-01 | 北京京东尚科信息技术有限公司 | 用于区块链的信息存储方法和装置 |
CN110222116B (zh) * | 2019-05-07 | 2022-02-01 | 北京奇艺世纪科技有限公司 | 一种交易数据存储的控制方法、装置及存储介质 |
-
2019
- 2019-11-12 CN CN201911102891.0A patent/CN110830581B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110830581A (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110830581B (zh) | 提升区块链响应速度的方法、区块链应用***及相关设备 | |
CN108196961B (zh) | 一种异步消息处理方法、终端、***及存储介质 | |
CN108449410B (zh) | 一种云平台中消息管理方法、***及相关装置 | |
CN106550003B (zh) | 负载均衡的控制方法、装置及*** | |
CN111340470B (zh) | 区块链交易处理方法、节点及合约容器 | |
CN111291079A (zh) | 一种数据的查询方法和装置 | |
CN102947799A (zh) | 将消息从消息源传送至订阅接收者 | |
CN111163130B (zh) | 一种网络服务***及其数据传输方法 | |
CN109462631B (zh) | 数据处理方法、装置、存储介质及电子装置 | |
US8095495B2 (en) | Exchange of syncronization data and metadata | |
CN105824842A (zh) | 分布式事务处理方法及其*** | |
CN110968586A (zh) | 分布式事务处理方法及装置 | |
CN107835203B (zh) | 消息分组投递的方法、装置、存储介质及终端 | |
CN103152390A (zh) | 分布式存储***的节点配置方法、装置、节点及*** | |
CN110597887A (zh) | 一种基于区块链网络的数据管理方法、装置及存储介质 | |
CN111490890A (zh) | 基于微服务架构的分级注册方法、装置、存储介质及设备 | |
CN112182378A (zh) | 消息推送方法、装置、终端及介质 | |
CN112055347A (zh) | 一种多网关协同工作方法及*** | |
CN111767481A (zh) | 访问处理方法、装置、设备和存储介质 | |
CN116233254A (zh) | 业务切流方法、装置、计算机设备和存储介质 | |
US8386452B2 (en) | Data combination system and data combination method | |
CN110995890B (zh) | 域名请求的调度方法及装置 | |
CN110876852B (zh) | 微服务的网络游戏数据处理方法及*** | |
CN117057799B (zh) | 资产数据处理方法、装置、设备及存储介质 | |
CN115665074B (zh) | 消息限流发送方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |