CN111242620A - 区块链交易***的数据缓存及查询方法、终端及存储介质 - Google Patents

区块链交易***的数据缓存及查询方法、终端及存储介质 Download PDF

Info

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
Application number
CN202010043488.1A
Other languages
English (en)
Inventor
姜阳
王少鹏
殷世威
李素娟
张照
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Esunego Yueyang Technology Co ltd
Esunego Hunan Technology Co ltd
Original Assignee
Esunego Yueyang Technology Co ltd
Esunego Hunan Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Esunego Yueyang Technology Co ltd, Esunego Hunan Technology Co ltd filed Critical Esunego Yueyang Technology Co ltd
Priority to CN202010043488.1A priority Critical patent/CN111242620A/zh
Publication of CN111242620A publication Critical patent/CN111242620A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; 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中任一项所述的区块链交易***的数据缓存及查询方法的步骤。
CN202010043488.1A 2020-01-15 2020-01-15 区块链交易***的数据缓存及查询方法、终端及存储介质 Pending CN111242620A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 腾讯科技(深圳)有限公司 一种区块链网络的证书处理方法、装置、电子设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
JP4538454B2 (ja) コンピュータ・ネットワークにおける電子文書のレプリカの検索
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
US6775672B2 (en) Updating references to a migrated object in a partition-based distributed file system
CN111405019B (zh) 数据处理方法、装置、计算机设备和存储介质
US6772161B2 (en) Object-level migration in a partition-based distributed file system
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
JP2005063374A (ja) データ管理方法、データ管理装置、およびそのためのプログラムならびに記録媒体。
CN115563073A (zh) 分布式元数据的数据处理的方法、装置及电子设备
CN114936254A (zh) 云链融合机制下的食品安全大数据共享管理方法及***
WO2001090943A2 (en) Distributed internet content delivery system
JP2710329B2 (ja) 分散システムにおける利用者情報管理方式

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