CN111242620A - 区块链交易系统的数据缓存及查询方法、终端及存储介质 - Google Patents
区块链交易系统的数据缓存及查询方法、终端及存储介质 Download PDFInfo
- Publication number
- CN111242620A CN111242620A CN202010043488.1A CN202010043488A CN111242620A CN 111242620 A CN111242620 A CN 111242620A CN 202010043488 A CN202010043488 A CN 202010043488A CN 111242620 A CN111242620 A CN 111242620A
- Authority
- CN
- China
- Prior art keywords
- data
- transaction
- blockchain
- endorsement
- node
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000012545 processing Methods 0.000 claims description 29
- 238000004088 simulation Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 16
- 238000012163 sequencing technique Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- QSHDDOUJBYECFT-UHFFFAOYSA-N mercury Chemical compound [Hg] QSHDDOUJBYECFT-UHFFFAOYSA-N 0.000 description 2
- 229910052753 mercury Inorganic materials 0.000 description 2
- 208000036765 Squamous cell carcinoma of the esophagus Diseases 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 208000007276 esophageal squamous cell carcinoma Diseases 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链交易系统的数据缓存及查询方法,应用于区块链交易系统,所述区块链交易系统包括区块链系统和缓存系统,所述区块链交易系统的数据缓存及查询方法,包括如下步骤:在侦测到向所述区块链交易系统发出交易数据的存储指令时,向区块链系统执行存储操作以存入所述交易数据,并向所述缓存系统执行存储操作以存入所述交易数据;在侦测到向所述区块链交易系统发出查询指令时,向所述缓存系统执行查询指令。本发明还公开了一种终端及可读存储介质。本发明的技术方案解决了现有的区块链交易系统存在的查询效率低的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种区块链交易系统的数据缓存及查询方法和应用该区块链交易系统的数据缓存及查询方法的终端和计算机可读存储介质。
背景技术
当前区块链系统中,会存储大量的区块链状态数据和冗余历史数据,对区块链上的状态数据进行存储使,随着账户增多,底层默克尔树的高度也会增加,因此,读取账户信息时会要读取到更多默克尔树的中间节点才能读取到账户信息,导致区块链数据查询效率低。
发明内容
本发明的主要目的在于提供一种区块链交易系统的数据缓存及查询方法,旨在解决现有的区块链交易系统存在的查询效率低的问题。
为实现上述目的,本发明提供的区块链交易系统的数据缓存及查询方法,应用于区块链交易系统,所述区块链交易系统包括区块链系统和缓存系统,所述区块链交易系统的数据缓存及查询方法,包括如下步骤:
在侦测到向所述区块链交易系统发出交易数据的存储指令时,向区块链系统执行存储操作以存入所述交易数据,并向所述缓存系统执行存储操作以存入所述交易数据;
在侦测到向所述区块链交易系统发出查询指令时,向所述缓存系统执行查询指令。
优选地,所述区块链交易系统与客户端信号连接,所述在侦测到向所述区块链交易系统发出交易数据的存储指令时,向区块链系统执行存储操作以存入所述交易数据的步骤,包括:
在侦测到向所述区块链交易系统发出交易数据的存储指令时,通过所述客户端发送签名提案消息至所述区块链系统的背书节点请求处理;
在所述背书节点根据所述签名提案消息模拟执行交易提案并签名背书;
从所述背书节点向所述客户端返回针对所述签名提案消息的提案响应消息;
在所述客户端处理所述提案响应消息得到背书签名信息,在所述背书签名信息达到设定数量时,构造合法的签名交易信息,并向服务节点请求交易排序处理;
对请求排序的各个所述交易信息进行排序共识,并根据排序后的各个所述交易信息构造新区块;
通过主节点请求所述服务节点发送通道账本区块;
通过主节点分发数据并向其他节点同步信息。
优选地,所述在所述背书节点根据所述签名提案消息模拟执行交易提案并签名背书的步骤,包括:
在所述背书节点检查所述签名提案消息是否符合设定条件;
若是,则检查并启动链码容器以模拟执行交易提案,并将模拟执行结果暂存于交易模拟器中,以等待排序共识;
对所述模拟执行结果进行签名背书。
优选地,所述在所述客户端处理所述提案响应消息得到背书签名信息,在所述背书签名信息达到设定数量时,构造合法的签名交易信息,并向服务节点请求交易排序处理的步骤,包括:
在所述客户端解析所述提案响应消息以获取所述背书签名信息;
检查所述背书签名信息是否合法;
当所述背书签名信息合法时,判断合法的所述背书签名信息是否达到设定数量;
在所述背书签名信息达到设定数量时,在所述客户端基于模拟执行结果和所述背书签名信息构造合法的签名交易信息,并向服务节点请求交易排序处理。
优选地,所述对请求排序的各个所述交易信息进行排序共识,并根据排序后的各个所述交易信息构造新区块的步骤,包括:
通过排序节点提供共识组件,并对符合通道处理要求的合法交易信息进行排序并达成一致观点;
将达到设定数量的交易信息按照打包交易的出块规则构造新区块,创建应用通道或更新通道配置,并提交账本。
优选地,所述通过主节点请求所述服务节点发送通道账本区块的步骤,与所述通过主节点分发数据并向其他节点同步信息的步骤之间,还包括:
判断所述交易信息是否存在隐私数据明文;
若是,则通过记账节点进行交易验证并提交账本;
若否,则执行所述通过主节点分发数据并向其他节点同步信息的步骤。
优选地,所述缓存系统包括分别用于与客户端信号连接的配置中心和多个分布式缓存的数据服务器;所述区块链交易系统的数据缓存及查询方法,还包括:
根据各个所述数据服务器中的数据分布,形成记录数据分布信息的对照表;
所述在侦测到向所述区块链交易系统发出交易数据的存储指令时,向区块链系统执行存储操作以存入所述交易数据,并向所述缓存系统执行存储操作以存入所述交易数据的步骤之后,还包括:
根据所述存储指令,更新所述对照表。
优选地,所述区块链交易系统的数据缓存及查询方法,还包括:
根据预设规则,在多个分布式缓存的数据服务器设定主服务器和从服务器;
侦测所述主服务器是否运转正常;
若否,将预设的从服务器确定为新的主服务器。
此外,为实现上述目的,本发明还提供一种终端,包括:存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述计算机程序被所述处理器执行时实现如上述任一项所述的区块链交易系统的数据缓存及查询方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的区块链交易系统的数据缓存及查询方法的步骤。
在本发明的技术方案中,该区块链交易系统的数据缓存及查询方法设置缓存系统,在向区块链系统执行存入操作时,向缓存系统也执行存入操作,因此缓存系统存储有区块链系统中同样的数据。在向区块链交易系统中执行查询操作时,向缓存系统执行查询指令,不再增加区块链系统的数据处理负担,从而有助于提升区块链交易系统的查询速度。
附图说明
图1为本发明区块链交易系统的数据缓存及查询方法第一实施例的流程示意图;
图2为本发明区块链交易系统的数据缓存及查询方法第二实施例中各节点及流程示意图;
图3为本发明中的缓存系统架构示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
请参阅图1,为实现上述目的,本发明的第一实施例中提供一种区块链交易系统的数据缓存及查询方法,应用于区块链交易系统,所述区块链交易系统包括区块链系统和缓存系统,所述区块链交易系统的数据缓存及查询方法,包括如下步骤:
步骤S10,在侦测到向所述区块链交易系统发出交易数据的存储指令时,向区块链系统执行存储操作以存入所述交易数据,并向所述缓存系统执行存储操作以存入所述交易数据;
步骤S20,在侦测到向所述区块链交易系统发出查询指令时,向所述缓存系统执行查询指令。
在本发明的技术方案中,该区块链交易系统的数据缓存及查询方法设置缓存系统,在向区块链系统执行存入操作时,向缓存系统也执行存入操作,因此缓存系统存储有区块链系统中同样的数据。在向区块链交易系统中执行查询操作时,向缓存系统执行查询指令,不再增加区块链系统的数据处理负担,从而有助于提升区块链交易系统的查询速度。
在本发明的技术方案中,查询交易数据是应用客户端直接查询缓存系统,并不涉及区块链的peer节点,减少了peer节点的压力,省去了查询请求。随着区块的不断产生,区块链冗余的历史状态树数据会越积累越多,从这些数据中随机读取数据速率非常慢,读取一个账户数据需要经过多次IO操作,使用缓存系统可以极大的提高区块链的执行速度,降低与磁盘IO的操作。
请参阅图2,基于本发明的区块链交易系统的数据缓存及查询方法的第一实施例,本发明的区块链交易系统的数据缓存及查询方法的第二实施例中,所述区块链交易系统与客户端信号连接,所述步骤S10中的:在侦测到向所述区块链交易系统发出交易数据的存储指令时,向区块链系统执行存储操作以存入所述交易数据的步骤,包括:
步骤S11,在侦测到向所述区块链交易系统发出交易数据的存储指令时,通过所述客户端发送签名提案消息至所述区块链系统的背书节点请求处理。
步骤S12,在所述背书节点根据所述签名提案消息模拟执行交易提案并签名背书;
步骤S13,从所述背书节点向所述客户端返回针对所述签名提案消息的提案响应消息;
步骤S14,在所述客户端处理所述提案响应消息得到背书签名信息,在所述背书签名信息达到设定数量时,构造合法的签名交易信息,并向服务节点请求交易排序处理;
步骤S15,对请求排序的各个所述交易信息进行排序共识,并根据排序后的各个所述交易信息构造新区块;
步骤S16,通过主节点请求所述服务节点发送通道账本区块;
步骤S17,通过主节点分发数据并向其他节点同步信息。
本发明的技术方案至少从两方面提升区块链交易系统的处理速率,本实施例为从存储交易数据的角度提升处理速率,本发明的第七实施例至第八实施例为从查询交易数据的角度提升处理速率。
具体的,步骤S11中,Client客户端节点构造签名提案消息(SignedProposal类型),通过调用Endorser背书服务客户端的ProcessProposal()接口,提交该消息到Endorser背书节点,请求模拟执行交易提案并签名背书。
具体的,步骤S13中,Endorser背书节点基于背书信息、模拟执行结果等构造提案响应消息(ProposalResponse类型),并回复给请求客户端。目前,模拟执行结果读写集包含公有数据(包括公共数据与隐私数据哈希值)与私有数据(或隐私数据)。其中,公有数据交由Orderer节点进行排序出块,再提交到账本区块数据文件,并广播到该通道上的所有节点。如果模拟执行结果中还存在有效的隐私数据明文,则Endorser背书节点通过Gossip消息协议将隐私数据发送给通道内授权的其他节点(由隐私数据集合配置的签名策略决定),交由transient隐私数据存储对象暂时保存到本地的transient隐私数据库(LevelDB或couchDB),并在提交账本时存储到隐私数据库(LevelDB或couchDB),同时清理transient隐私数据库中的过期数据。清理过期数据有利于去除冗余数据,减少数据库中的无用数据量,节约存储空间及提高处理速率。如果模拟执行结果中还存在有效的隐私数据明文,则步骤S13可以进一步为,从所述背书节点向所述客户端返回针对所述签名提案消息的提案响应消息,并分发隐私数据明文。
基于本发明的区块链交易系统的数据缓存及查询方法的第二实施例,本发明的区块链交易系统的数据缓存及查询方法的第三实施例中,所述步骤S12,包括:
步骤S121,在所述背书节点检查所述签名提案消息是否符合设定条件。具体的,步骤S121包括:1、检查签名提案消息的格式合法性与签名有效性,包括通道头部、签名头部、签名域、交易ID、消息扩展域的ChaincodeId属性与PayloadVisibility可见性模式;2、检查提案消息的创建者是否满足指定通道上的通道访问权限,即/Channel/Application/Writers写权限。
若是,则执行步骤S122,检查并启动链码容器以模拟执行交易提案,并将模拟执行结果暂存于交易模拟器中,以等待排序共识。检查并启动链码容器以模拟执行交易提案,并将模拟执行结果暂时保存在交易模拟器中,等待排序共识与交易验证,而不是直接更新到账本中。其中,交易模拟执行结果采用状态数据读写集(读数据的键和版本、写数据的键值)记录交易造成的状态变更结果。
步骤S123,对所述模拟执行结果进行签名背书,调用ESCC系统链码对所述提案消息的模拟执行结果读写集等进行签名背书。
基于本发明的区块链交易系统的数据缓存及查询方法的第二实施例,本发明的区块链交易系统的数据缓存及查询方法的第四实施例中,所述步骤S14,包括:
步骤S141,在所述客户端解析所述提案响应消息以获取所述背书签名信息;
步骤S142,检查所述背书签名信息是否合法;
步骤S143,当所述背书签名信息合法时,判断合法的所述背书签名信息是否达到设定数量;
步骤S144,在所述背书签名信息达到设定数量时,在所述客户端基于模拟执行结果和所述背书签名信息构造合法的签名交易信息,并向服务节点请求交易排序处理。
Client客户端节点解析Endorser背书节点回复的提案响应消息,获取背书结果并检查提案响应消息状态的合法性,以判断是否收集到了足够多(即,达到设定数量)的符合要求的背书签名信息。当收集到足够多数量的符合要求的Endorser背书签名之后(由背书策略决定),Client客户端节点基于模拟执行结果、背书签名等构造合法的签名交易消息(Envelope类型),通过Broadcast()服务接口将该消息提交给Orderer节点,请求交易排序处理。其中,配置交易消息不需要经过Endorser节点处理。
在本实施例中,步骤S144之后,可以将所述交易数据发送至分布式缓存系统存储。作为一优选实施例,可以根据预设的缓存策略,将交易数据存储分类为热点交易数据和非热点交易数据,并分别存储至分布式缓存系统中的不同存储区域,其中,热点交易数据和非热点交易数据的分类可以根据数据类型、数据调用次数、数据存储时间、数据来源进行分类。
基于本发明的区块链交易系统的数据缓存及查询方法的第二实施例,本发明的区块链交易系统的数据缓存及查询方法的第五实施例中,所述步骤S15,还包括:
步骤S151,通过排序节点提供共识组件,并对符合通道处理要求的合法交易信息进行排序并达成一致观点;
步骤S152,将达到设定数量的交易信息按照打包交易的出块规则构造新区块,创建应用通道或更新通道配置,并提交账本。
Orderer排序节点提供Kafka类型(支持CFT容错)等共识组件,对符合通道处理要求的合法交易消息(普通交易消息、配置交易消息等)进行排序并达成一致观点,并对一段时间内接收的一批交易消息按照打包交易的出块规则(出块周期时间、区块字节数限制、配置交易单独出块等)构造新区块,创建应用通道或更新通道配置,同时提交账本。
在现有的区块链交易系统中,存储数据的处理流程为:在某个区块的交易执行完后,将执行记录进行永久存储,然后执行下一区块的交易,因此,每个区块的交易执行都需要等待上一区块的交易执行完成且记录完成之后才能进行,这种串行的执行和存入过程,导致区块链交易的数据存储速度低。而本发明通过打包交易的出块规则,使设定数量的交易数据作为一批整体打包,提升出块速度,不再需要等待一个区块的交易执行完毕且永久存储后,再执行下一区块交易,直接减少了同一批次内的各个交易数据之间的处理等待时间,存储速度显著提升。
基于本发明的区块链交易系统的数据缓存及查询方法的第二实施例,本发明的区块链交易系统的数据缓存及查询方法的第六实施例中,所述步骤S16和所述步骤S17之间,还包括:
步骤S18,判断所述交易信息是否存在隐私数据明文;
若是,则执行步骤S19,通过记账节点进行交易验证并提交账本;
若否,则执行所述步骤S17。
步骤S16,通过主节点请求所述服务节点发送通道账本区块,具体为,Leader主节点通过Deliver()服务接口代表组织从Orderer节点请求通道账本上所有的区块数据,并通过Gossip消息协议分发到组织内的其他Peer节点。如果请求的区块数据不存在,则Orderer节点默认阻塞等待,直到指定区块创建完成并提交账本,再将该区块发送给Leader主节点。
本实施例具体为,判断所述交易信息是否存在隐私数据明文,如果不存在隐私数据明文,则跳过隐私数据的相关检查与提交账本的步骤。若存在隐私数据明文,则Committer记账节点对区块与隐私数据(明文)执行如下检查,并提交至本地账本:
1、检查交易消息格式的正确性、签名合法性、交易内容是否篡改、消息头部的合法性等。
2、调用VSCC系统链码,验证收集的签名背书结果是否符合指定的背书策略。
3、对模拟执行结果中公有数据(即区块数据,含有公共数据与隐私数据哈希值)的读写集执行MVCC检查,针对单个键查询、键范围查询、隐私数据哈希值三种情况,检查读数据版本与交易时的账本是否一致,即是否存在读写冲突,并将存在冲突的交易标记为无效交易。
4、验证模拟执行结果中隐私数据的正确性,遍历区块中有效交易的隐私数据读写集哈希值,取出对应交易的原始隐私数据读写集明文,重新计算其哈希值并对两者进行比较。如果两者完全相同,则说明该交易的隐私数据是真实有效的。
5、保存所有的区块数据(即公有数据)到区块数据文件中,保存所有的私有数据(即隐私数据)读写集到隐私数据库(LevelDB)中,建立区块索引信息到区块索引数据库,将最新的有效交易数据(包含公共数据读写集、隐私数据读写集、隐私数据读写集哈希值)更新到状态数据库,最后将区块数据中经过Endorser背书的有效交易数据同步到历史数据库。同时,清理transient隐私数据库中的过期数据。
进一步的,执行步骤17之后,还可以重复一次步骤19,至此,基于Hyperledger区块链系统与分布式缓存系统的一次完整交易处理流程结束。
步骤S17中,通过主节点分发数据并向其他节点同步信息,具体为,Leader主节点基于Gossip消息协议将区块数据分发到组织内的其他节点上。同时,节点之间通过反熵算法等机制主动拉取缺失的数据(区块数据与隐私数据)、节点身份信息等,以确保组织内所有节点上的账本数据等信息保持同步。
请参阅图3,基于本发明的区块链交易系统的数据缓存及查询方法的第一实施例至第六实施例,本发明的区块链交易系统的数据缓存及查询方法的第七实施例中,所述缓存系统包括分别用于与客户端信号连接的配置中心和多个分布式缓存的数据服务器;所述区块链交易系统的数据缓存及查询方法,还包括:
步骤S30,根据各个所述数据服务器中的数据分布,形成记录数据分布信息的对照表;
步骤S10之后,还包括:
步骤S40,根据所述存储指令,更新所述对照表。
本发明的缓存系统包括客户端(Client)、配置中心(Config Server)和数据服务器(Data Server)。Config Server通过和Data Server的心跳(HeartBeat)维护集群中可用的节点,并根据可用的节点,构建数据的在集群中的分布信息。Client在初始化时,从Config Server处获取数据的分布信息,根据分布信息和相应的Data Server交互完成用户的请求。Data Server负责数据的存储,并按照Config Server的指示完成数据的复制和迁移工作。
缓存系统的Config Server用于维护集群内可用Data Server的信息,以及用户配置的桶数量和副本数信息,构建数据分布的对照表,以达到负载均衡和高可用的目标。缓存系统中的Config Server和client用于相互配合根据对照表决定数据的具体分布。如果Data Server宕机或扩容,Config Server负责协调数据迁移、管理进度,将数据迁移到负载较小的节点上。
客户端和Config Server的交互用于是为了获取数据分布的对照表,客户端从Config Server拿到对照表后,会在本地缓存对照表,在需要存储/获取数据时根据对照表查找数据在哪个Data Server上。因此,本发明中的数据访问请求不需要和Config Server交互,所以Config Server本身的性能高低并不会形成集群的瓶颈。
本实施例中,Config Server维护的对照表有版本概念,由于集群变动或管理触发,构建新的对照表后,对照表的版本号递增,并通过Data Server的心跳,将新表同步给数据节点。
客户端和Data Server交互时,Data Server每次都把自己缓存的对照表版本号放入response结构中,返回给客户端,客户端将Data Server的对照表版本号和自己缓存的对照表版本号比较,如果不相同,会主动和Config Server通信,请求新的对照表。
缓存系统的Config Server使客户端使用时,不需要配置数据节点列表,也不需要处理节点的状态变化,以提升缓存系统的易用性。
进一步的,所述步骤S20,包括:
步骤S21,在所述客户端存储从所述配置中心获取的所述配置表;
步骤S22,在侦测到向所述区块链交易系统发出查询指令时,根据所述配置表,确定所述查询指令中待查询数据对应的数据服务器;
步骤S23,向所述待查询数据对应的数据服务器发送所述查询指令。
更进一步地,所述步骤S21,包括:
所述步骤S211,取所述配置中心中存储的最新对照表的版本号;
所述步骤S212,比对所述客户端中存储的对照表版本号与所述最新对照表的版本号是否一致;
若否,则执行所述步骤S213,从所述配置中心获取所述最新对照表的版本号并存储至所述客户端。
基于本发明的区块链交易系统的数据缓存及查询方法的第七实施例,本发明的区块链交易系统的数据缓存及查询方法的第八实施例中,所述区块链交易系统的数据缓存及查询方法,还包括:
步骤S50,根据预设规则,在多个分布式缓存的数据服务器设定主服务器和从服务器;
步骤S60,侦测所述主服务器是否运转正常;
若否,则执行步骤S70,将预设的从服务器确定为新的主服务器。
在本实施例中,针对分布式缓存系统进一步考虑缓存崩溃与快速恢复,以应对一部分缓存实例宕机的情况,具体的:
在本实施例中采用一致性哈希机制,当侦测到其中至少一个数据服务器发生故障时,摘除发生故障的数据服务器。在侦测到向所述区块链交易系统发出查询指令时,根据所述配置表,判断所述查询位置是否位于摘除的数据服务器,若是,则将所述查询指令转发至所述区块链系统进行查询;若否,则向所述待查询数据对应的数据服务器发送所述查询指令。因此,一个或部分数据服务器的故障,将只影响一致性哈希环上的部分缓存不命中,不会导致瞬间大量回源到区块链系统,并且不会出现无法返回查询结果的情况。
进一步的,因为一些误操作可能导致整个缓存系统出现问题,本实施例中针对整个缓存系统出现问题,制定的快速修复方法如下:
1)主从机制,做好冗余,即,当侦测到所述缓存系统中其中一部分数据服务器不可用时,将对等数量的数据服务器补入缓存系统;
2)当侦测到因为缓存故障导致应用可用性下降时,将部分客户端对应的用户降级,然后逐渐减少降级量,并且后台通过Worker预热缓存数据。
即,若整个缓存系统故障,而且没有备份,那么通过后台重建缓存系统。为了让部分用户还是可用的,可以根据系统承受能力,通过降级方案让一部分用户先用起来,将这些用户相关的缓存重建,另外通过后台Worker进行缓存数据的预热。
本实施例中,所述区块链交易系统的数据缓存及查询方法,还包括:
随机选择设定数量的所述数据服务器,将随机选择的所述数据服务器之外的另一所述数据服务器中存储的数据信息转存至随机选择的各个所述数据服务器。
本发明的技术方案中,通过数据信息的随机转发保障数据存储一致性。这里的一致性包括缓存数据与区块链系统数据的一致性,亦包括分布式缓存的各个节点之间的缓存数据的一致性。此处的缓存系统保证数据的最终一致性,基于的原理是:一个节点分享一些信息给网络中的其他的一些节点。于是,它周期性的随机选择一些节点,并把信息传递给这些节点。这些收到信息的节点接下来会做同样的事情,即把这些信息传递给其他一些随机选择的节点。一般而言,信息会周期性的传递给N个目标节点,而不只是一个。
此外,为实现上述目的,本发明还提供一种终端,存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述计算机程序被所述处理器执行时实现如上述任一实施例所述的区块链交易系统的数据缓存及查询方法的步骤。
由于本实施例终端的技术方案至少包括上述区块链交易系统的数据缓存及查询方法实施例的全部技术方案,因此至少具有以上实施例的全部技术效果,此处不再一一赘述。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述区块链交易系统的数据缓存及查询方法的第一实施例至第八实施例中任一项的步骤。
由于本实施例计算机可读存储介质的技术方案至少包括上述区块链交易系统的数据缓存及查询方法实施例的全部技术方案,因此至少具有以上实施例的全部技术效果,此处不再一一赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备进入本发明各个实施例所述的方法。
在本说明书的描述中,参考术语“一实施例”、“另一实施例”、“其他实施例”、或“第一实施例~第X实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料、方法步骤或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种区块链交易系统的数据缓存及查询方法,其特征在于,应用于区块链交易系统,所述区块链交易系统包括区块链系统和缓存系统,所述区块链交易系统的数据缓存及查询方法,包括如下步骤:
在侦测到向所述区块链交易系统发出交易数据的存储指令时,向区块链系统执行存储操作以存入所述交易数据,并向所述缓存系统执行存储操作以存入所述交易数据;
在侦测到向所述区块链交易系统发出查询指令时,向所述缓存系统执行查询指令。
2.根据权利要求1所述的区块链交易系统的数据缓存及查询方法,其特征在于,所述区块链交易系统与客户端信号连接,所述在侦测到向所述区块链交易系统发出交易数据的存储指令时,向区块链系统执行存储操作以存入所述交易数据的步骤,包括:
在侦测到向所述区块链交易系统发出交易数据的存储指令时,通过所述客户端发送签名提案消息至所述区块链系统的背书节点请求处理;
在所述背书节点根据所述签名提案消息模拟执行交易提案并签名背书;
从所述背书节点向所述客户端返回针对所述签名提案消息的提案响应消息;
在所述客户端处理所述提案响应消息得到背书签名信息,在所述背书签名信息达到设定数量时,构造合法的签名交易信息,并向服务节点请求交易排序处理;
对请求排序的各个所述交易信息进行排序共识,并根据排序后的各个所述交易信息构造新区块;
通过主节点请求所述服务节点发送通道账本区块;
通过主节点分发数据并向其他节点同步信息。
3.根据权利要求2所述的区块链交易系统的数据缓存及查询方法,其特征在于,所述在所述背书节点根据所述签名提案消息模拟执行交易提案并签名背书的步骤,包括:
在所述背书节点检查所述签名提案消息是否符合设定条件;
若是,则检查并启动链码容器以模拟执行交易提案,并将模拟执行结果暂存于交易模拟器中,以等待排序共识;
对所述模拟执行结果进行签名背书。
4.根据权利要求2所述的区块链交易系统的数据缓存及查询方法,其特征在于,所述在所述客户端处理所述提案响应消息得到背书签名信息,在所述背书签名信息达到设定数量时,构造合法的签名交易信息,并向服务节点请求交易排序处理的步骤,包括:
在所述客户端解析所述提案响应消息以获取所述背书签名信息;
检查所述背书签名信息是否合法;
当所述背书签名信息合法时,判断合法的所述背书签名信息是否达到设定数量;
在所述背书签名信息达到设定数量时,在所述客户端基于模拟执行结果和所述背书签名信息构造合法的签名交易信息,并向服务节点请求交易排序处理。
5.根据权利要求2所述的区块链交易系统的数据缓存及查询方法,其特征在于,所述对请求排序的各个所述交易信息进行排序共识,并根据排序后的各个所述交易信息构造新区块的步骤,包括:
通过排序节点提供共识组件,并对符合通道处理要求的合法交易信息进行排序并达成一致观点;
将达到设定数量的交易信息按照打包交易的出块规则构造新区块,创建应用通道或更新通道配置,并提交账本。
6.根据权利要求2所述的区块链交易系统的数据缓存及查询方法,其特征在于,所述通过主节点请求所述服务节点发送通道账本区块的步骤,与所述通过主节点分发数据并向其他节点同步信息的步骤之间,还包括:
判断所述交易信息是否存在隐私数据明文;
若是,则通过记账节点进行交易验证并提交账本;
若否,则执行所述通过主节点分发数据并向其他节点同步信息的步骤。
7.根据权利要求1-6中任一项所述的区块链交易系统的数据缓存及查询方法,其特征在于,所述缓存系统包括分别用于与客户端信号连接的配置中心和多个分布式缓存的数据服务器;所述区块链交易系统的数据缓存及查询方法,还包括:
根据各个所述数据服务器中的数据分布,形成记录数据分布信息的对照表;
所述在侦测到向所述区块链交易系统发出交易数据的存储指令时,向区块链系统执行存储操作以存入所述交易数据,并向所述缓存系统执行存储操作以存入所述交易数据的步骤之后,还包括:
根据所述存储指令,更新所述对照表。
8.根据权利要求7所述的区块链交易系统的数据缓存及查询方法,其特征在于,所述区块链交易系统的数据缓存及查询方法,还包括:
根据预设规则,在多个分布式缓存的数据服务器设定主服务器和从服务器;
侦测所述主服务器是否运转正常;
若否,将预设的从服务器确定为新的主服务器。
9.一种终端,其特征在于,包括:存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述计算机程序被所述处理器执行时实现如权利要求1至8中任一项所述的区块链交易系统的数据缓存及查询方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的区块链交易系统的数据缓存及查询方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010043488.1A CN111242620A (zh) | 2020-01-15 | 2020-01-15 | 区块链交易系统的数据缓存及查询方法、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010043488.1A CN111242620A (zh) | 2020-01-15 | 2020-01-15 | 区块链交易系统的数据缓存及查询方法、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111242620A true CN111242620A (zh) | 2020-06-05 |
Family
ID=70864006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010043488.1A Pending CN111242620A (zh) | 2020-01-15 | 2020-01-15 | 区块链交易系统的数据缓存及查询方法、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111242620A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112101970A (zh) * | 2020-11-04 | 2020-12-18 | 北京信息科技大学 | 一种基于区块链食品溯源系统的后台数据管理方法及系统 |
CN112187900A (zh) * | 2020-09-18 | 2021-01-05 | 中国科学院计算技术研究所 | 基于区块链共享缓存的dns数据更新方法和系统 |
CN112702389A (zh) * | 2020-12-07 | 2021-04-23 | 深圳供电局有限公司 | 数据权益管理方法、装置、设备及存储介质 |
CN112732801A (zh) * | 2021-03-30 | 2021-04-30 | 支付宝(杭州)信息技术有限公司 | 查询Fabric区块链账本数据的方法和装置 |
CN112804233A (zh) * | 2021-01-15 | 2021-05-14 | 欧冶云商股份有限公司 | 一种面向区块链多通道的区块打包方法、装置及存储介质 |
CN112883015A (zh) * | 2021-04-23 | 2021-06-01 | 北京中科金财科技股份有限公司 | 区块链数据管理方法、设备及存储介质 |
CN113254169A (zh) * | 2021-06-11 | 2021-08-13 | 北京百度网讯科技有限公司 | 区块链系统的运行方法、装置、设备和存储介质 |
CN113268546A (zh) * | 2021-06-15 | 2021-08-17 | 中国电子科技网络信息安全有限公司 | 一种区块链账本数据抓取解析方法 |
CN113535849A (zh) * | 2021-07-08 | 2021-10-22 | 电子科技大学 | 一种区块链的可扩展共识方法 |
WO2022042602A1 (en) * | 2020-08-28 | 2022-03-03 | International Business Machines Corporation | Trustless operations for blockchain networks |
CN114625767A (zh) * | 2020-11-10 | 2022-06-14 | 支付宝(杭州)信息技术有限公司 | 一种数据查询方法、装置、设备及可读介质 |
WO2023160095A1 (zh) * | 2022-02-28 | 2023-08-31 | 蚂蚁区块链科技(上海)有限公司 | 在区块链系统中实现结构化数据存储和查询的方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106936623A (zh) * | 2015-12-31 | 2017-07-07 | 五八同城信息技术有限公司 | 分布式缓存系统及缓存集群的管理方法 |
CN107391649A (zh) * | 2017-07-14 | 2017-11-24 | 浙商银行股份有限公司 | 一种提升区块链查询效率的系统及方法 |
CN108363764A (zh) * | 2018-02-05 | 2018-08-03 | 山东地主网络科技创新有限公司 | 一种分布式缓存管理系统及方法 |
CN108764906A (zh) * | 2018-05-30 | 2018-11-06 | 深圳市元征科技股份有限公司 | 一种服务器及其区块链交易确认方法、装置、存储介质 |
US20180337847A1 (en) * | 2017-05-16 | 2018-11-22 | Peking University Shenzhen Graduate School | Indexing a multi-layer blockchain system |
CN109359159A (zh) * | 2018-09-30 | 2019-02-19 | 深圳前海微众银行股份有限公司 | 分布式存储方法、系统及设备 |
CN110597911A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块链网络的证书处理方法、装置、电子设备及存储介质 |
-
2020
- 2020-01-15 CN CN202010043488.1A patent/CN111242620A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106936623A (zh) * | 2015-12-31 | 2017-07-07 | 五八同城信息技术有限公司 | 分布式缓存系统及缓存集群的管理方法 |
US20180337847A1 (en) * | 2017-05-16 | 2018-11-22 | Peking University Shenzhen Graduate School | Indexing a multi-layer blockchain system |
CN107391649A (zh) * | 2017-07-14 | 2017-11-24 | 浙商银行股份有限公司 | 一种提升区块链查询效率的系统及方法 |
CN108363764A (zh) * | 2018-02-05 | 2018-08-03 | 山东地主网络科技创新有限公司 | 一种分布式缓存管理系统及方法 |
CN108764906A (zh) * | 2018-05-30 | 2018-11-06 | 深圳市元征科技股份有限公司 | 一种服务器及其区块链交易确认方法、装置、存储介质 |
CN109359159A (zh) * | 2018-09-30 | 2019-02-19 | 深圳前海微众银行股份有限公司 | 分布式存储方法、系统及设备 |
CN110597911A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种区块链网络的证书处理方法、装置、电子设备及存储介质 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022042602A1 (en) * | 2020-08-28 | 2022-03-03 | International Business Machines Corporation | Trustless operations for blockchain networks |
CN112187900B (zh) * | 2020-09-18 | 2022-03-01 | 中国科学院计算技术研究所 | 基于区块链共享缓存的dns数据更新方法和系统 |
CN112187900A (zh) * | 2020-09-18 | 2021-01-05 | 中国科学院计算技术研究所 | 基于区块链共享缓存的dns数据更新方法和系统 |
CN112101970A (zh) * | 2020-11-04 | 2020-12-18 | 北京信息科技大学 | 一种基于区块链食品溯源系统的后台数据管理方法及系统 |
CN114625767A (zh) * | 2020-11-10 | 2022-06-14 | 支付宝(杭州)信息技术有限公司 | 一种数据查询方法、装置、设备及可读介质 |
CN112702389A (zh) * | 2020-12-07 | 2021-04-23 | 深圳供电局有限公司 | 数据权益管理方法、装置、设备及存储介质 |
CN112804233A (zh) * | 2021-01-15 | 2021-05-14 | 欧冶云商股份有限公司 | 一种面向区块链多通道的区块打包方法、装置及存储介质 |
CN112732801A (zh) * | 2021-03-30 | 2021-04-30 | 支付宝(杭州)信息技术有限公司 | 查询Fabric区块链账本数据的方法和装置 |
CN112883015A (zh) * | 2021-04-23 | 2021-06-01 | 北京中科金财科技股份有限公司 | 区块链数据管理方法、设备及存储介质 |
CN113254169A (zh) * | 2021-06-11 | 2021-08-13 | 北京百度网讯科技有限公司 | 区块链系统的运行方法、装置、设备和存储介质 |
CN113268546A (zh) * | 2021-06-15 | 2021-08-17 | 中国电子科技网络信息安全有限公司 | 一种区块链账本数据抓取解析方法 |
CN113535849A (zh) * | 2021-07-08 | 2021-10-22 | 电子科技大学 | 一种区块链的可扩展共识方法 |
CN113535849B (zh) * | 2021-07-08 | 2023-03-07 | 电子科技大学 | 一种区块链的可扩展共识方法 |
WO2023160095A1 (zh) * | 2022-02-28 | 2023-08-31 | 蚂蚁区块链科技(上海)有限公司 | 在区块链系统中实现结构化数据存储和查询的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111242620A (zh) | 区块链交易系统的数据缓存及查询方法、终端及存储介质 | |
US11461203B2 (en) | Systems and methods of handling node failure in a distributed data storage using multi-layer consistent hashing | |
US7506157B2 (en) | Access to content addressable data over a network | |
US9436694B2 (en) | Cooperative resource management | |
US8862644B2 (en) | Data distribution system | |
US6775673B2 (en) | Logical volume-level migration in a partition-based distributed file system | |
CN111405019B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US6775672B2 (en) | Updating references to a migrated object in a partition-based distributed file system | |
US6772161B2 (en) | Object-level migration in a partition-based distributed file system | |
US8370454B2 (en) | Retrieving a replica of an electronic document in a computer network | |
US7383289B2 (en) | Updating and maintaining data in a multi-system network using asynchronous message transfer | |
US7873599B2 (en) | Backup control apparatus and method eliminating duplication of information resources | |
EP1049989B1 (en) | Access to content addressable data over a network | |
US6938031B1 (en) | System and method for accessing information in a replicated database | |
US20100161657A1 (en) | Metadata server and metadata management method | |
CN111291000B (zh) | 基于区块链的文件获取方法、设备及存储介质 | |
CN112162846B (zh) | 事务处理方法、设备及计算机可读存储介质 | |
US8417679B1 (en) | Fast storage writes | |
WO2010096688A1 (en) | Managing workflow communication in a distributed storage system | |
US20130006920A1 (en) | Record operation mode setting | |
CN114936254A (zh) | 云链融合机制下的食品安全大数据共享管理方法及系统 | |
JP2005063374A (ja) | データ管理方法、データ管理装置、およびそのためのプログラムならびに記録媒体。 | |
CN115563073A (zh) | 分布式元数据的数据处理的方法、装置及电子设备 | |
WO2001090943A2 (en) | Distributed internet content delivery system | |
CN116846748A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200605 |
|
WD01 | Invention patent application deemed withdrawn after publication |