CN114036234A - 区块链数据存储系统及方法 - Google Patents
区块链数据存储系统及方法 Download PDFInfo
- Publication number
- CN114036234A CN114036234A CN202111348610.7A CN202111348610A CN114036234A CN 114036234 A CN114036234 A CN 114036234A CN 202111348610 A CN202111348610 A CN 202111348610A CN 114036234 A CN114036234 A CN 114036234A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- block chain
- data
- target
- network
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种区块链数据存储系统及方法,所述系统包括存储配置端以及多个区块链网络,每一所述区块链网络对应设置有区块链网关;所述存储配置端用于,获取各所述区块链网络的状态信息,根据所述状态信息生成数据存储规则;任一所述区块链网关用于,获取所述存储配置端生成的数据存储规则,在存储目标数据时,根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过所述目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中。
Description
技术领域
本公开涉及区块链技术领域,具体地,涉及一种区块链数据存储系统及方法。
背景技术
区块链技术作为一种新兴技术,已经在越来越多的领域应用,如司法仲裁、政务服务、物联网、智慧城市、跨境支付、供应链金融等。然而,在物联网、智慧城市这类大数据、高并发的场景中,区块链系统可能出现性能瓶颈,导致无法满足实际的应用需求。
发明内容
本公开的目的是提供一种区块链数据存储系统及方法,以解决上述相关技术问题。
为了实现上述目的,根据本公开实施例的第一方面,提供一种区块链数据存储系统,包括存储配置端以及多个区块链网络,每一所述区块链网络对应设置有区块链网关;
所述存储配置端用于,获取各所述区块链网络的状态信息,根据所述状态信息生成数据存储规则;
任一所述区块链网关用于,获取所述存储配置端生成的数据存储规则,在存储目标数据时,根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过所述目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中。
可选地,所述区块链网络的状态信息包括吞吐量、存储容量、响应时长中的一者或多者,所述存储配置端具体用于,在如下一种或多种情况下重新生成数据存储规则:
第一区块链网络的吞吐量小于吞吐量阈值;
第一区块链网络的存储容量小于容量阈值;
第一区块链网络的响应时长大于时长阈值,其中,所述第一区块链网络为所述多个区块链网络中的任意区块链网络。
可选地,所述存储配置端通过如下方式重新生成数据存储规则:
将第二区块链网络添加至所述区块链数据存储系统;
根据所述第二区块链网络以及所述多个区块链网络重新生成所述数据存储规则。
可选地,所述数据存储规则包括区块链网络与哈希槽区间之间的关联关系,
任一所述区块链网关具体用于,计算所述目标数据所对应的目标哈希槽区间,根据哈希槽区间与区块链网络之间的关联关系确定所述目标区块链网络,并向所述目标区块链网关发送用于保存所述目标数据的数据保存请求;
所述存储配置端用于,在重新生成数据存储规则时,减小所述第一区块链网络所对应的哈希槽区间。
可选地,所述存储配置端还用于,
在接收到第三区块链网络的注册信息时,根据所述注册信息对所述第三区块链网络进行注册;在注册成功的情况下,根据所述第三区块链网络以及所述多个区块链网络重新生成所述数据存储规则。
可选地,所述存储配置端对应于中继区块链网络设置,
任一所述区块链网关还用于,计算所述目标数据的哈希值,将所述目标数据的元信息发送至所述存储配置端,所述元信息包括所述目标数据的哈希值、存储所述目标数据的区块链网络的信息以及所述目标数据的标识;
所述存储配置端还用于,接收所述目标数据的元信息,将所述目标数据的元信息保存至所述中继区块链网络的区块链中。
可选地,所述存储配置端还用于,
根据待验证数据的标识从所述中继区块链网络的区块链中获取所述待验证数据的哈希值以及存储所述待验证数据的区块链网络的信息;
根据所述待验证数据的标识从存储所述待验证数据的区块链网络中获取待验证数据;
基于获取到的待验证数据,以及从中继区块链网络获取到的所述待验证数据的哈希值对所述待验证数据进行校验。
根据本公开实施例的第二方面,提供一种区块链数据存储方法,应用于上述第一方面中任一项所述的区块链数据存储系统,所述方法包括:
存储配置端获取各所述区块链网络的状态信息;
存储配置端根据所述状态信息生成数据存储规则;
任一所述区块链网关获取所述存储配置端生成的数据存储规则;并,
在存储目标数据时,根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过所述目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中。
可选地,所述区块链网络的状态信息包括吞吐量、存储容量、响应时长中的一者或多者,所述方法还包括:
所述存储配置端在如下一种或多种情况下重新生成数据存储规则:
第一区块链网络的吞吐量小于吞吐量阈值;
第一区块链网络的存储容量小于容量阈值;
第一区块链网络的响应时长大于时长阈值,其中,所述第一区块链网络为所述多个区块链网络中的任意区块链网络。
可选地,所述数据存储规则包括区块链网络与哈希槽区间之间的关联关系,所述根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过所述目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中,包括:
计算所述目标数据所对应的目标哈希槽区间;
根据哈希槽区间与区块链网络之间的关联关系确定所述目标区块链网络;
向所述目标区块链网关发送包括用于保存所述目标数据的数据保存请求;
所述重新生成数据存储规则,包括:
在重新生成数据存储规则时,减小所述第一区块链网络所对应的哈希槽区间。
上述技术方案中,区块链数据存储系统包括了存储配置端以及多个区块链网络,每一区块链网络对应设置有区块链网关。其中,存储配置端可以获取各个区块链网络的状态信息,并根据所述状态信息生成数据存储规则。任一区块链网关可以获取所述存储配置端生成的数据存储规则。在存储目标数据时,所述区块链网关还可以根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中。也就是说,存储配置端可以根据各个区块链网络的状态,动态调整数据存储规则;区块链网关则可以根据数据存储规则确定存储当前数据的区块链网络。这样,多个区块链网络可以参与到数据存储中,从而能够提升存储效率,满足高并发场景的应用需求。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开一示例性实施例所示出的一种区块链数据存储系统的框图。
图2是本公开一示例性实施例所示出的一种数据存储规则的调整流程图。
图3是本公开一示例性实施例所示出的一种数据存储规则的生成流程图。
图4是本公开一示例性实施例所示出的一种区块链数据存储系统的框图。
图5是本公开一示例性实施例所示出的一种区块链数据存储的流程图。
图6是本公开一示例性实施例所示出的一种区块链数据存储方法的流程图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在介绍本公开的区块链数据存储系统及方法之前,首先对本公开的应用场景进行说明。本公开所提供的各实施例例如可以用于区块链数据存储场景,这里,区块链类型例如可以是公链、联盟链等等,本公开对此不做限制。
由于区块链网络的性能较低,在高并发的场景下可能出现性能瓶颈,如数据处理性能瓶颈或是数据存储性能瓶颈。因此,当区块链网络面对物联网、智慧城市这类大数据、高并发的场景时,可能无法满足实际的应用需求。
为此,本公开提供一种区块链数据存储系统,所述区块链数据存储系统包括存储配置端以及多个区块链网络,每一所述区块链网络对应设置有区块链网关。
图1是本公开所示出的一种区块链数据存储系统的框图,在图1中,区块链数据存储系统包括存储配置端以及区块链网络1至3,区块链网络1至3分别对应设置有区块链网关1至3。区块链网络1至3中分别共识形成了区块链1至3。
所述存储配置端用于,获取各所述区块链网络的状态信息,根据所述状态信息生成数据存储规则。示例地,所述存储配置端可以通过与各个区块链网络的区块链网关进行交互,从而获得各个区块链网络的状态信息,并进而根据所述状态信息生成数据存储规则。所述数据存储规则可以用于确定存储待存储数据的区块链网络。
针对所述状态信息,在一种可能的实施方式中,所述区块链网络的状态信息包括区块链网络的吞吐量,所述存储配置端可以具体用于,在第一区块链网络的吞吐量小于吞吐量阈值时,重新生成数据存储规则。其中,所述第一区块链网络为所述多个区块链网络中的任意区块链网络。
在一种可能的实施方式中,所述区块链网络的状态信息包括区块链网络的存储容量,所述存储配置端可以具体用于,在所述第一区块链网络的存储容量小于存储容量阈值时,重新生成数据存储规则。
在一种可能的实施方式中,所述区块链网络的状态信息包括区块链网络的响应时长,所述存储配置端可以具体用于,在所述第一区块链网络的响应时长大于时长阈值时,重新生成数据存储规则。
当然,存储配置端也可以根据吞吐量、存储容量、响应时长中的多者对所述数据存储规则进行调整。所述存储配置端也可以根据区块链网络的其他参数指标对所述数据存储规则进行调整。
例如,参照图2所示出的一种数据存储规则的调整流程图,所述存储配置端可以检测区块链的性能指标,如tps(Transactions Per Second,每秒传输的事务数量)、磁盘剩余空间以及响应时长。这样,所述存储配置端可以根据检测到的区块链网络的tps、磁盘剩余空间以及响应时长对所述数据存储规则进行重新配置。例如,当监测到tps<3000时,可以确定区块链网络运行异常,需要重新调整数据存储规则。当监测到tps>3000时,可以确定区块链网络运行正常,并继续监测其他指标。当监测到磁盘空间容量<10G时,可以确定区块链网络存储空间不足,需要重新调整数据存储规则。当监测到区块链网络的响应时长超过5s时,可以确定区块链网络存在系统堵塞情况,此时也可以对数据存储规则进行调整。此外需要说明的是,上述示例中的各个性能指标的阈值参数也可以基于应用需求进行设置,本公开对此不做限制。
以下对数据存储规则的生成方式进行示例性说明。在一种可能的实施方式中,所述存储配置端通过如下方式重新生成数据存储规则:
将第二区块链网络添加至所述区块链数据存储系统;
根据所述第二区块链网络以及所述多个区块链网络重新生成所述数据存储规则。
图3是本公开所示出的一种数据存储规则的生成流程图,如图3所示,存储配置端在检测到区块链网络的状态信息之后,可以查询数据存储规则的生成策略(请参照图2的实施例说明),从而确定是否需要重新生成数据存储规则。在需要重新生成数据存储规则时,所述存储配置端例如可以将第二区块链网络接入至所述区块链数据存储系统。
示例地,各个区块链网络例如可以以微服务的方式在注册中心进行注册,当所述区块链数据存储系统出现性能瓶颈(例如存储容量不足、响应时长较长)时,所述存储配置端可以从所述注册中心中获取第二区块链网络的信息,并将所述第二区块链网络接入至所述区块链数据存储系统。
在接入所述第二区块链网络时,还可以对所述第二区块链网络进行注册。例如,存储配置端可以基于第二区块链网络的区块链网关获取将第二区块链网络的数字身份信息,并基于获取到的所述数字身份信息对所述第二区链网络进行注册。其中,数字身份信息可以包括:第二区块链网络的名称、智能合约名称、通道名称、路由地址等。当注册成功后,存储配置端可以更新维护区块链网络列表,并基于所述区块链数据存储系统中的各个区块链网络重新生成数据存储规则。
示例地,所述数据存储规则例如可以是均等分配的规则,即将待保存的数据均匀分配至不同的区块链网络进行存储。这样,通过接入第二区块链网络,能够减少所述区块链数据存储系统中的各个区块链网络需要处理的数据量,从而有助于提升所述区块链数据存储系统的数据存储效率。并且,新增的第二区块链网络也能够提升所述区块链数据存储系统的数据存储容量,起到对所述区块链数据存储系统进行存储扩容的效果。
请参照图1,所述区块链数据存储系统中的区块链网关可以作为区块链网络的代理,并对外部客户端提供可访问的接口。所述区块链网关可以与代理的区块链网络交互,并基于自身维护的路由信息(如各个区块链网关的地址、区块链网络名称、通道名称、智能合约名称等信息),采用P2P(Peer To Peer,对等网络)模式实现与其他区块链网关的交互。这里,区块链网关维护的路由信息例如可以基于数据存储规则的变化进行更新调整。
所述区块链数据存储系统中的任一区块链网关用于,获取所述存储配置端生成的数据存储规则。在存储目标数据时,根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过所述目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中。
例如,区块链网关1在接收到区块链网络1中的客户端的数据保存请求时,可以根据所述数据存储规则判断待保存的目标数据的保存位置为区块链网络3。在这种情况下,所述区块链网关1可以将所述目标数据发送至区块链网关3。区块链网关3在接收到所述目标数据之后,可以根据所述数据存储规则判断所述目标数据是否为区块链网络3需要保存的数据。在所述目标数据为区块链网络3需要保存的数据时,可以通过区块链网络3将所述目标数据保存至区块链3中,并向所述区块链网关1返回存储结果。
此外,在一些场景中,所述区块链网关还可以用于对上链数据的合规性进行校验,如数据字段类型是否合规、数据是否空值等,从而保证上链数据的质量。
上述技术方案中,区块链数据存储系统包括了存储配置端以及多个区块链网络,每一区块链网络对应设置有区块链网关。其中,存储配置端可以获取各个区块链网络的状态信息,并根据所述状态信息生成数据存储规则。任一区块链网关可以获取所述存储配置端生成的数据存储规则。在存储目标数据时,所述区块链网关还可以根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中。也就是说,存储配置端可以根据各个区块链网络的状态,动态调整数据存储规则;区块链网关则可以根据数据存储规则确定存储当前数据的区块链网络。这样,多个区块链网络可以参与到数据存储中,从而能够提升存储效率,满足高并发场景的应用需求。
在一种可能的实施方式中,所述数据存储规则包括区块链网络与哈希槽区间之间的关联关系。示例地,可以划分16384个哈希槽,每个区块链网络对应一个哈希槽区间(比如0~8191)。当所述区块链数据存储系统包括区块链网络1以及区块链网络2时,区块链网络1的哈希槽区间例如可以是第0~8191个哈希槽,区块链网络2的哈希槽区间例如可以是第8192~16383个哈希槽。
任一所述区块链网关具体用于,计算所述目标数据所对应的目标哈希槽区间,根据哈希槽区间与区块链网络之间的关联关系确定所述目标区块链网络,并向所述目标区块链网关发送用于保存所述目标数据的数据保存请求。
示例地,区块链网关1可以通过CRC-16算法计算所述目标数据的key值,并将所述key值对16384取余数,从而确定所述目标数据所对应的目标哈希槽区间。当余数属于0~8191时,则确定目标数据由区块链网络1保存,此时可以通过区块链网络1存储所述目标数据。当余数属于8192~16383时,则确定目标数据由区块链网络2保存,此时可以向区块链网络2的区块链网关2发送用于保存所述目标数据的数据保存请求,进而由区块链网络2存储所述目标数据。
在这种情况下,所述存储配置端用于,在重新生成数据存储规则时,减小所述第一区块链网络所对应的哈希槽区间。
举例来讲,当所述区块链网络1的响应时长大于时长阈值时,所述存储配置端可以确定所述区块链网络1存在拥堵。在这种情况下,若所述区块链网络2不存在拥堵,则所述存储配置端可以减小所述区块链网络1的哈希槽区间,例如,将哈希槽区间0~8191修改为0~7191,相应的,区块链网络2的哈希槽区间可以修改为7192~16383。
当然,在一些可能的实施方式中,所述存储配置端也可以将区块链网络3添加至所述区块链数据存储系统中,并对区块链网络1-3重新分配哈希槽,以减小所述第一区块链网络所对应的哈希槽区间。在对各个区块链网络分配哈希槽时,可以均匀划分,也可以结合各个区块链网络的运行状态进行划分(如为状态指标更优的区块链网络划分更大的哈希槽区间),本公开对此不做限制。
采用上述技术方案,存储配置端可以根据各个区块链网络的运行状态动态的为各个区块链网络分配哈希槽。当区块链网络较为拥堵、区块链网络负载较高时,可以减小所述区块链网络的哈希槽区间,从而缓解所述区块链网络的数据处理压力。通过这样的动态分配方式,能够平衡各个区块链网络的负载,在面对并发的数据存储请求时,也有助于提升数据存储的效率。
在一种可能的实施方式中,所述存储配置端还用于,
在接收到第三区块链网络的注册信息时,根据所述注册信息对所述第三区块链网络进行注册;在注册成功的情况下,根据所述第三区块链网络以及所述多个区块链网络重新生成所述数据存储规则。
其中,所述注册信息例如可以是第三区块链网络的区块链网关发送的,所述注册信息可以包括第三区块链网络的名称、合约名称、通道名称、路由地址等等。这样,所述存储配置端可以对所述注册信息进行校验,并在校验通过的情况下对所述第三区块链网络进行注册。在注册成功的情况下,所述存储配置端可以根据所述第三区块链网络以及所述多个区块链网络重新生成所述数据存储规则。沿用上述哈希槽的例子,所述存储配置端可以对所述第三区块链网络以及所述多个区块链网络重新分配哈希槽区间。
采用上述技术方案,所述区块链数据存储系统支持支持区块链网络的注册,从而能够实现区块网络的水平扩展。通过拓展所述区块链数据存储系统中的区块链网络的数量,上述技术方案有助于提升大数据、高并发场景下的数据存储性能。
图4是本公开一示例性实施例所示出的一种区块链数据存储系统的框图,在一种可能的实施方式中,所述存储配置端对应于中继区块链网络设置。任一所述区块链网关还用于,计算所述目标数据的哈希值,将所述目标数据的元信息发送至所述存储配置端。
其中,所述元信息包括所述目标数据的哈希值、存储所述目标数据的区块链网络的信息以及所述目标数据的标识(例如目标数据所对应的交易编号)。
所述存储配置端还用于,接收所述目标数据的元信息,将所述目标数据的元信息保存至所述中继区块链网络的区块链中。
图5是本公开一示例性实施例所示出的一种区块链数据存储的流程图,所述存储配置端在存储各个数据的元信息时,例如可以按照图5的格式将所述元信息保存至中继链中。结合图5进行说明,所述元信息例如可以包括数据头和数据体,其中数据头包括数据id和该数据的上一个数据的哈希值,而数据体包括哈希槽和该数据的哈希值。采用这样的方式,由于数据头中包括上一个数据的哈希值,因此可以保证元数据的链式存储,确保数据不可篡改。
这样,可以通过所述元信息对保存至各个区块链网络中的数据进行校验,从而保障数据的安全性和可信性。
例如在一种可能的实施方式中,所述存储配置端还用于,
根据待验证数据的标识从所述中继区块链网络的区块链中获取所述待验证数据的哈希值以及存储所述待验证数据的区块链网络的信息。根据所述待验证数据的标识从存储所述待验证数据的区块链网络中获取待验证数据。
示例地,若根据待验证数据的标识从中继链中获取到所述待验证数据的哈希值为hash1,所述待验证数据保存在区块链网络2,则所述存储配置端可以向区块链网络2的区块链网关2发送数据获取请求,从而获取所述待验证数据。
这样,所述存储配置端可以基于获取到的待验证数据,以及从中继区块链网络获取到的所述待验证数据的哈希值对所述待验证数据进行校验。例如,可以计算获取到的待验证数据的哈希值,得到hash2。通过对比hash1和hash2,可以实现对所述待验证数据的正确性的校验。例如,当hash1与hash2一致时,可以判断待验证数据正确,当hash1与hash2不一致时,则可以判断待验证数据有误。
上述技术方案通过在中继链中保存数据的元信息,从而可以根据元信息对保存至各个区块链网络的数据进行正确性校验。采用这样的方式,能够避免发生区块链网络脱离监管,进行恶意作恶的情况,从而保证数据存储的安全。
此外,在一些实施场景中,所述存储配置端还可以监控各个区块链网络的行为和操作,包括请求转发、查询账本、写入账本等等,并记录监测到的行为数据。在所述存储配置端对应于中继区块链网络设置的情况下,所述存储配置端可以将监测到的行为数据保存至中继链中。当然,在一些实施场景中,所述存储配置端也可以对应于分布式存储系统设置,在这种情况下则可以将监测到的行为数据保存至分布式存储系统中。
基于同一发明构思,本公开还提供一种区块链数据存储方法,应用于本公开所提供的区块链数据存储系统。图6是本公开所示出的一种区块链数据存储方法的流程图,所述方法包括:
在步骤61中,存储配置端获取各区块链网络的状态信息。
示例地,所述存储配置端可以通过与各个区块链网络的区块链网关进行交互,从而获得各个区块链网络的状态信息,并进而根据所述状态信息生成数据存储规则。所述数据存储规则可以用于确定存储待存储数据的区块链网络。
在步骤62中,存储配置端根据所述状态信息生成数据存储规则。
例如在一种可能的实施方式中,所述区块链网络的状态信息包括区块链网络的吞吐量,则所述存储配置端可以在第一区块链网络的吞吐量小于吞吐量阈值时,重新生成数据存储规则。其中,所述第一区块链网络为所述多个区块链网络中的任意区块链网络。
在一种可能的实施方式中,所述区块链网络的状态信息包括区块链网络的存储容量,则所述存储配置端可以在所述第一区块链网络的存储容量小于存储容量阈值时,重新生成数据存储规则。
在一种可能的实施方式中,所述区块链网络的状态信息包括区块链网络的响应时长,则所述存储配置端可以在所述第一区块链网络的响应时长大于时长阈值时,重新生成数据存储规则。
当然,存储配置端也可以根据吞吐量、存储容量、响应时长中的多者对所述数据存储规则进行调整。所述存储配置端也可以根据区块链网络的其他参数指标对所述数据存储规则进行调整。
结合图2进行说明,所述存储配置端可以检测区块链的性能指标,如tps(Transactions Per Second,每秒传输的事务数量)、磁盘剩余空间以及响应时长。这样,所述存储配置端可以根据检测到的区块链网络的tps、磁盘剩余空间以及响应时长对所述数据存储规则进行重新配置。例如,当监测到tps<3000时,可以确定区块链网络运行异常,需要重新调整数据存储规则。当监测到tps>3000时,可以确定区块链网络运行正常,并继续监测其他指标。当监测到磁盘空间容量<10G时,可以确定区块链网络存储空间不足,需要重新调整数据存储规则。当监测到区块链网络的响应时长超过5s时,可以确定区块链网络存在系统堵塞情况,此时也可以对数据存储规则进行调整。此外需要说明的是,上述示例中的各个性能指标的阈值参数也可以基于应用需求进行设置,本公开对此不做限制。
在一种可能的实施方式中,所述存储配置端还可以通过如下方式重新生成数据存储规则:
将第二区块链网络添加至所述区块链数据存储系统;
根据所述第二区块链网络以及所述多个区块链网络重新生成所述数据存储规则。
参照图3,存储配置端在检测到区块链网络的状态信息之后,可以查询数据存储规则的生成策略(请参照图2的实施例说明),从而确定是否需要重新生成数据存储规则。在需要重新生成数据存储规则时,所述存储配置端例如可以将第二区块链网络接入至所述区块链数据存储系统。
示例地,各个区块链网络例如可以以微服务的方式在注册中心进行注册,当所述区块链数据存储系统出现性能瓶颈(例如存储容量不足、响应时长较长)时,所述存储配置端可以从所述注册中心中获取第二区块链网络的信息,并将所述第二区块链网络接入至所述区块链数据存储系统。
在接入所述第二区块链网络时,还可以对所述第二区块链网络进行注册。例如,存储配置端可以基于第二区块链网络的区块链网关获取将第二区块链网络的数字身份信息,并基于获取到的所述数字身份信息对所述第二区链网络进行注册。其中,数字身份信息可以包括:第二区块链网络的名称、合约名称、通道名称、路由地址等。当注册成功后,存储配置端可以更新维护区块链网络列表,并基于所述区块链数据存储系统中的各个区块链网络重新生成数据存储规则。
示例地,所述数据存储规则例如可以是均等分配的规则,即将待保存的数据均匀分配至不同的区块链网络进行存储。这样,通过接入第二区块链网络,能够减少所述区块链数据存储系统中的各个区块链网络需要处理的数据量,从而有助于提升所述区块链数据存储系统的数据存储效率。并且,新增的第二区块链网络也能够提升所述区块链数据存储系统的数据存储容量,起到对所述区块链数据存储系统进行扩容的效果。
在步骤63中,任一区块链网关获取所述存储配置端生成的数据存储规则。
在步骤64中,所述区块链网关在存储目标数据时,根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过所述目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中。
以图1为例,区块链网关1在接收到区块链网络1中的客户端的数据保存请求时,可以根据所述数据存储规则判断待保存的目标数据的保存位置为区块链网络3。在这种情况下,所述区块链网关1可以将所述目标数据发送至区块链网关3。区块链网关3在接收到所述目标数据之后,可以根据所述数据存储规则判断所述目标数据是否为区块链网络3需要保存的数据。在所述目标数据为区块链网络3需要保存的数据时,可以通过区块链网络3将所述目标数据保存至区块链3中,从而实现数据的存储。
上述技术方案中,区块链数据存储系统包括了存储配置端以及多个区块链网络,每一区块链网络对应设置有区块链网关。其中,存储配置端可以获取各个区块链网络的状态信息,并根据所述状态信息生成数据存储规则。任一区块链网关可以获取所述存储配置端生成的数据存储规则。在存储目标数据时,所述区块链网关还可以根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中。也就是说,存储配置端可以根据各个区块链网络的状态,动态调整数据存储规则;区块链网关则可以根据数据存储规则确定存储当前数据的区块链网络。这样,多个区块链网络可以参与到数据存储中,从而能够提升存储效率,满足高并发场景的应用需求。
在一种可能的实施方式中,所述数据存储规则包括区块链网络与哈希槽区间之间的关联关系。示例地,可以划分16384个哈希槽,每个区块链网络对应一个哈希槽区间(比如0~8191)。当所述区块链数据存储系统包括区块链网络1以及区块链网络2时,区块链网络1的哈希槽区间例如可以是第0~8191个哈希槽,区块链网络2的哈希槽区间例如可以是第8192~16383个哈希槽。
在这种情况下,所述根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过所述目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中(步骤64),包括:
计算所述目标数据所对应的目标哈希槽区间,根据哈希槽区间与区块链网络之间的关联关系确定所述目标区块链网络,向所述目标区块链网关发送包括用于保存所述目标数据的数据保存请求。
示例地,区块链网关1可以通过CRC-16算法计算所述目标数据的key值,并将所述key值对16384取余数,从而确定所述目标数据所对应的目标哈希槽区间。当余数属于0~8191时,则确定目标数据由区块链网络1保存,此时可以通过区块链网络1存储所述目标数据。当余数属于8192~16383时,则确定目标数据由区块链网络2保存,此时可以向区块链网络2的区块链网关2发送用于保存所述目标数据的数据保存请求,进而由区块链网络2存储所述目标数据。
这样,存储配置端重新生成数据存储规则,包括:
在重新生成数据存储规则时,减小所述第一区块链网络所对应的哈希槽区间。
举例来讲,当所述区块链网络1的响应时长大于时长阈值时,所述存储配置端可以确定所述区块链网络1存在拥堵。在这种情况下,若所述区块链网络2不存在拥堵,则所述存储配置端可以减小所述区块链网络1的哈希槽区间,例如,将哈希槽区间0~8191修改为0~7191,相应的,区块链网络2的哈希槽区间可以修改为7192~16383。
当然,在一些可能的实施方式中,所述存储配置端也可以将区块链网络3添加至所述区块链数据存储系统中,并对区块链网络1-3重新分配哈希槽,以减小所述第一区块链网络所对应的哈希槽区间。在对各个区块链网络分配哈希槽时,可以均匀划分,也可以结合各个区块链网络的运行状态进行划分,本公开对此不做限制。
采用上述技术方案,存储配置端可以根据各个区块链网络的运行状态动态的为各个区块链网络分配哈希槽。当区块链网络较为拥堵、区块链网络负载较高时,可以减小所述区块链网络的哈希槽区间,从而缓解所述区块链网络的数据处理压力。通过这样的动态分配方式,能够平衡各个区块链网络的负载,在面对并发的数据存储请求时,也有助于提升数据存储的效率。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的区块链数据存储方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种区块链数据存储系统,其特征在于,包括存储配置端以及多个区块链网络,每一所述区块链网络对应设置有区块链网关;
所述存储配置端用于,获取各所述区块链网络的状态信息,根据所述状态信息生成数据存储规则;
任一所述区块链网关用于,获取所述存储配置端生成的数据存储规则,在存储目标数据时,根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过所述目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中。
2.根据权利要求1所述的区块链数据存储系统,其特征在于,所述区块链网络的状态信息包括吞吐量、存储容量、响应时长中的一者或多者,所述存储配置端具体用于,在如下一种或多种情况下重新生成数据存储规则:
第一区块链网络的吞吐量小于吞吐量阈值;
第一区块链网络的存储容量小于容量阈值;
第一区块链网络的响应时长大于时长阈值,其中,所述第一区块链网络为所述多个区块链网络中的任意区块链网络。
3.根据权利要求2所述的区块链数据存储系统,其特征在于,所述存储配置端通过如下方式重新生成数据存储规则:
将第二区块链网络添加至所述区块链数据存储系统;
根据所述第二区块链网络以及所述多个区块链网络重新生成所述数据存储规则。
4.根据权利要求2所述的区块链数据存储系统,其特征在于,所述数据存储规则包括区块链网络与哈希槽区间之间的关联关系,
任一所述区块链网关具体用于,计算所述目标数据所对应的目标哈希槽区间,根据哈希槽区间与区块链网络之间的关联关系确定所述目标区块链网络,并向所述目标区块链网关发送用于保存所述目标数据的数据保存请求;
所述存储配置端用于,在重新生成数据存储规则时,减小所述第一区块链网络所对应的哈希槽区间。
5.根据权利要求1所述的区块链数据存储系统,其特征在于,所述存储配置端还用于,
在接收到第三区块链网络的注册信息时,根据所述注册信息对所述第三区块链网络进行注册;在注册成功的情况下,根据所述第三区块链网络以及所述多个区块链网络重新生成所述数据存储规则。
6.根据权利要求1至5中任一项所述的区块链数据存储系统,其特征在于,所述存储配置端对应于中继区块链网络设置,
任一所述区块链网关还用于,计算所述目标数据的哈希值,将所述目标数据的元信息发送至所述存储配置端,所述元信息包括所述目标数据的哈希值、存储所述目标数据的区块链网络的信息以及所述目标数据的标识;
所述存储配置端还用于,接收所述目标数据的元信息,将所述目标数据的元信息保存至所述中继区块链网络的区块链中。
7.根据权利要求6所述的区块链数据存储系统,其特征在于,所述存储配置端还用于,
根据待验证数据的标识从所述中继区块链网络的区块链中获取所述待验证数据的哈希值以及存储所述待验证数据的区块链网络的信息;
根据所述待验证数据的标识从存储所述待验证数据的区块链网络中获取待验证数据;
基于获取到的待验证数据,以及从中继区块链网络获取到的所述待验证数据的哈希值对所述待验证数据进行校验。
8.一种区块链数据存储方法,其特征在于,应用于权利要求1-7中任一项所述的区块链数据存储系统,所述方法包括:
存储配置端获取各所述区块链网络的状态信息;
存储配置端根据所述状态信息生成数据存储规则;
任一所述区块链网关获取所述存储配置端生成的数据存储规则;并,
在存储目标数据时,根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过所述目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中。
9.根据权利要求8所述的方法,其特征在于,所述区块链网络的状态信息包括吞吐量、存储容量、响应时长中的一者或多者,所述方法还包括:
所述存储配置端在如下一种或多种情况下重新生成数据存储规则:
第一区块链网络的吞吐量小于吞吐量阈值;
第一区块链网络的存储容量小于容量阈值;
第一区块链网络的响应时长大于时长阈值,其中,所述第一区块链网络为所述多个区块链网络中的任意区块链网络。
10.根据权利要求9所述的方法,其特征在于,所述数据存储规则包括区块链网络与哈希槽区间之间的关联关系,所述根据所述数据存储规则从所述多个区块链网络中确定目标区块链网络,并通过所述目标区块链网络的目标区块链网关将所述目标数据保存至目标区块链网络的区块链中,包括:
计算所述目标数据所对应的目标哈希槽区间;
根据哈希槽区间与区块链网络之间的关联关系确定所述目标区块链网络;
向所述目标区块链网关发送包括用于保存所述目标数据的数据保存请求;
所述重新生成数据存储规则,包括:
在重新生成数据存储规则时,减小所述第一区块链网络所对应的哈希槽区间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111348610.7A CN114036234A (zh) | 2021-11-15 | 2021-11-15 | 区块链数据存储系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111348610.7A CN114036234A (zh) | 2021-11-15 | 2021-11-15 | 区块链数据存储系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114036234A true CN114036234A (zh) | 2022-02-11 |
Family
ID=80144429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111348610.7A Pending CN114036234A (zh) | 2021-11-15 | 2021-11-15 | 区块链数据存储系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036234A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117440004A (zh) * | 2023-12-19 | 2024-01-23 | 苏州元脑智能科技有限公司 | 一种资源存储系统、方法、设备以及存储介质 |
-
2021
- 2021-11-15 CN CN202111348610.7A patent/CN114036234A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117440004A (zh) * | 2023-12-19 | 2024-01-23 | 苏州元脑智能科技有限公司 | 一种资源存储系统、方法、设备以及存储介质 |
CN117440004B (zh) * | 2023-12-19 | 2024-03-15 | 苏州元脑智能科技有限公司 | 一种资源存储系统、方法、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109064345B (zh) | 消息处理方法、系统以及计算机可读存储介质 | |
WO2019237594A1 (zh) | 会话保持方法、装置、计算机设备及存储介质 | |
CN112165436B (zh) | 流量控制方法、装置及系统 | |
CN112948120A (zh) | 负载均衡方法、系统、装置和存储介质 | |
CN107105013B (zh) | 文件的处理方法、服务器、终端和系统 | |
CN111026767B (zh) | 区块链的数据存储方法、装置及硬件设备 | |
CN112069169B (zh) | 区块数据存储方法、装置、电子设备及可读存储介质 | |
CN110740144B (zh) | 确定攻击目标的方法、装置、设备及存储介质 | |
CN112650721A (zh) | 一种文件存储方法、装置、系统以及设备 | |
US20230102617A1 (en) | Repeat transaction verification method, apparatus, and device, and medium | |
CN108833450A (zh) | 一种实现服务器防攻击方法及装置 | |
CN110798402B (zh) | 业务消息处理方法、装置、设备及存储介质 | |
CN110619022B (zh) | 基于区块链网络的节点检测方法、装置、设备及存储介质 | |
CN114036234A (zh) | 区块链数据存储系统及方法 | |
CN110598452A (zh) | 基于区块链的证据信息处理方法、装置、存储介质和设备 | |
CN110730063A (zh) | 安全验证方法、系统、物联网平台、终端和可读存储介质 | |
CN113342275B (zh) | 区块链节点存取数据的方法、设备和计算机可读存储介质 | |
CN114138711A (zh) | 文件迁移方法、装置、存储介质及电子设备 | |
CN114089924A (zh) | 区块链账本数据存储系统及方法 | |
CN114880300A (zh) | 基于区块链文件的处理方法和装置、处理器及电子设备 | |
CN109657447B (zh) | 一种设备指纹生成方法及装置 | |
CN115208590A (zh) | 一种跨域通信系统、方法及存储介质 | |
CN107589917B (zh) | 一种分布式存储系统及方法 | |
CN113301002B (zh) | 一种信息处理方法、装置、电子设备以及存储介质 | |
CN114422501B (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 |