CN113472864B - 高性能的区块链分布式存储***及方法、设备、存储介质 - Google Patents
高性能的区块链分布式存储***及方法、设备、存储介质 Download PDFInfo
- Publication number
- CN113472864B CN113472864B CN202110685929.2A CN202110685929A CN113472864B CN 113472864 B CN113472864 B CN 113472864B CN 202110685929 A CN202110685929 A CN 202110685929A CN 113472864 B CN113472864 B CN 113472864B
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- cluster
- request
- processing 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/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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- 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/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种高性能的区块链分布式存储***及方法、设备、存储介质。在所述区块链分布式存储***中,反向代理、应用服务、消息队列以及数据存储服务都选择集群的方式进行部署,大大提高了***的数据处理与读写的效率。并且,由于在前后端以及存储组件上实现了负载均衡,所以对于高并发场景具有良好的支持,实现了***的高可用。同时,区块链文件***只需要记录数据的指纹与地址,减少了区块链***的压力,提高了区块链的处理效率。区块链文件***与存储组件的分工合作解决了区块链存储容量低的问题,还支持多种存储组件的拓展,实现了对于各种复杂数据的存储支持,满足了多样化的存储需求,同时实现了整体存储的大容量。
Description
技术领域
本发明涉及区块链技术领域,特别地,涉及一种高性能的区块链分布式存储***及方法、设备、计算机可读取的存储介质。
背景技术
区块链技术是一种去中心化的分布式存储***,它使用P2P技术组网通信,利用加密算法防止数据篡改,通过共识算法使各节点的存储内容达成一致。如图1所示,区块链文件***通常由两部分组成,一是记录具体事件的链式文件,二是用来记录***状态的数据库。比特币、以太坊、超级账本等这些区块链项目使用的加密算法与共识机制虽然不同,但其文件***并无本质区别,受制于区块链技术的天然特性,目前的区块链分布式存储方式存在以下问题:
1、处理效率低:实用的区块链项目需要支持高并发的业务,这对区块链的处理效率提出了很高的要求,但是根据CAP原理,在保证一致性的前提下,提升效率并不容易,在存储复杂数据的基础上提升效率则更加困难。
2、存储容量低:存储容量低是区块链长期面临的问题,虽然在联盟链中可以通过增加存储服务器的办法来解决,并同时解决数据存储内容单一的问题,但是这种解决方式会进一步拉低区块链处理效率。
3、数据存储与实际需求之间存在矛盾:区块链通常是以键值对形式的数据结构存储交易记录,不支持更加复杂的文件存储,比如图片、音频、视频等等,能够存储的内容比较单一。而在实际的使用场景中,很多业务需要更加复杂的数据作为支撑,这就造成账本数据不能很好的满足实际业务需求,限制了区块链的应用拓展。
发明内容
本发明提供了一种高性能的区块链分布式存储***及方法、设备、计算机可读取的存储介质,以解决目前的区块链分布式存储方式存在的处理效率低、存储容量低、存储数据类型单一的技术问题。
根据本发明的一个方面,提供一种高性能的区块链分布式存储***,包括反向代理集群、应用服务器集群、消息队列集群和数据存储集群,所述反向代理集群用于接收客户端的请求并将其转发至应用服务器集群,所述应用服务器集群包括多台应用服务器、高速缓存池和数据处理模块,所述应用服务器用于提供应用服务,处理并回复所述反向代理集群转发的用户请求,所述高速缓存池用于存储有高度读写需求的数据,所述数据处理模块用于进行数据的预处理、计算数据指纹、区块链文件***和存储组件的交互,所述消息队列集群用于负责处理多台应用服务器的请求,所述数据存储集群包括用于存储数据指纹和数据地址的区块链文件***、用于存储各类数据的存储组件;
所述反向代理集群在接收到不同客户端的用户请求和关联数据后按照预设的分配策略将其分配至所述应用服务器集群中的一个应用服务器进行处理,所述应用服务器首先判断用户请求是否需要使用高速缓存池,若需要则将该用户请求及关联数据发送至高速缓存池进行处理,所述高速缓存池根据用户请求返回相应的反馈数据至应用服务器,所述应用服务器将所述高速缓存池返回的反馈数据发送给客户端,所述应用服务器还判断用户请求是否需要使用数据存储集群,若需要将用户请求及关联数据发送给所述数据处理模块进行处理,所述数据处理模块根据用户请求的请求类型通过所述消息队列集群进行区块链文件***和存储组件之间的交互以实现数据的存储。
进一步地,所述反向代理集群的预设分配策略包括轮询策略、指定权重策略、IP绑定策略、最少连接策略、时间优先策略和URL定向策略中的至少一种。
进一步地,所述存储组件由多种可选的数据存储应用构成,包括HDFS、关系型数据库、NOSQL非关系型数据库、IPFS分布式存储***中的至少一种。
另外,本发明还提供一种高性能的区块链分布式存储方法,采用如上所述的区块链分布式存储***,包括以下内容:
步骤S1:客户端发送用户请求及关联数据至反向代理集群;
步骤S2:所述反向代理集群将用户请求分配给应用服务器集群中的一个应用服务器进行处理;
步骤S3:所述应用服务器判断用户请求是否需要使用高速缓存池,若需要则将用户请求及其关联数据发送至高速缓存池进行处理,高速缓存池根据用户请求返回相应的反馈数据至应用服务器,所述应用服务器将该反馈数据发送至客户端;
步骤S4:所述应用服务器判断用户请求是否需要使用数据存储集群,若需要则将用户请求及关联数据发送给数据处理模块进行处理,所述数据处理模块判断用户请求的请求类型,并根据判断结果通过消息队列集群进行区块链文件***和存储组件之间的交互,以实现数据的存储。
进一步地,当所述步骤S4中判断出用户请求的请求类型为数据写入请求时,所述步骤S4包括以下内容:
步骤S41a:所述数据处理模块将数据序列化,并通过哈希函数计算得到数据指纹,并将数据写入请求和序列化数据发送至消息队列集群,由所述消息队列集群将数据写入请求和序列化数据发送至存储组件;
步骤S42a:所述数据存储组件将存储地址发送给数据处理模块;
步骤S43a:所述数据处理模块将数据指纹和数据地址打包发送给消息队列集群,由所述消息队列集群将打包好的数据指纹和数据地址发送至区块链文件***上链。
进一步地,当所述步骤S4中判断出用户请求的请求类型为数据查询请求时,所述步骤S4包括以下内容:
步骤S41b:所述数据处理模块将数据查询请求和数据索引发送至消息队列集群,由所述消息队列集群将数据查询请求和数据索引发送至区块链文件***;
步骤S42b:所述区块链文件***根据数据索引将相应的数据指纹和数据地址返回至数据处理模块;
步骤S43b:所述数据处理模块将数据查询请求和数据地址发送给消息队列集群,由所述消息队列集群将数据查询请求和数据地址发送至存储组件;
步骤S44b:所述存储组件根据数据地址将存储的数据返回给数据处理模块;
步骤S45b:所述数据处理模块获得所述存储组件返回的数据后利用hash函数计算数据指纹,若计算得到的数据指纹与在区块链文件***中获得的数据指纹一致,则证明数据没有被篡改;
步骤S46b:所述数据处理模块将获得的数据发送给应用服务器,由应用服务器将数据发送至客户端。
进一步地,当所述步骤S4中判断出用户请求的请求类型为数据修改请求时,所述步骤S4包括以下内容:
步骤S41c:所述数据处理模块将数据修改请求和数据索引发送至消息队列集群,由所述消息队列集群将数据修改请求和数据索引发送至区块链文件***;
步骤S42c:所述区块链文件***根据数据索引将相应的数据指纹和数据地址返回至数据处理模块;
步骤S43c:所述数据处理模块将数据修改请求和数据地址发送给消息队列集群,由所述消息队列集群将数据修改请求和数据地址发送至存储组件;
步骤S44c:所述存储组件根据数据地址将存储的数据返回给数据处理模块;
步骤S45c:所述数据处理模块获得所述存储组件返回的数据后利用hash函数计算数据指纹,若计算得到的数据指纹与在区块链文件***中获得的数据指纹一致,则证明数据没有被篡改;
步骤S46c:所述数据处理模块对数据进行修改并计算新的数据指纹,并将修改后的数据发送到消息队列集群,由所述消息队列集群将修改后的数据发送到存储组件的原地址进行存储;
步骤S47c:所述数据处理模块将新的数据指纹、原数据地址打包发送到消息队列集群,由所述消息队列集群将打包好的新的数据指纹、原数据地址发送至区块链文件***上链。
进一步地,当所述步骤S4中判断出用户请求的请求类型为数据删除请求时,所述步骤S4包括以下内容:
步骤S41d:所述数据处理模块将数据删除请求和数据索引发送至消息队列集群,由所述消息队列集群将数据修改请求和数据索引发送至区块链文件***;
步骤S42d:所述区块链文件***根据数据索引将相应的数据指纹和数据地址返回至数据处理模块后将其删除;
步骤S43d:所述数据处理模块将数据删除请求和数据地址发送给消息队列集群,由所述消息队列集群将数据删除请求和数据地址发送至存储组件;
步骤S44d:所述存储组件根据数据地址将存储的数据删除。
另外,本发明还提供一种设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上所述的方法的步骤。
另外,本发明还提供一种计算机可读取的存储介质,用于存储进行高性能的区块链分布式存储的计算机程序,该计算机程序在计算机上运行时执行如上所述的方法的步骤。
本发明具有以下效果:
本发明的高性能的区块链分布式存储***,反向代理、应用服务、消息队列以及数据存储服务都选择集群的方式进行部署,大大提高了***的数据处理与读写的效率。并且,由于在前后端以及存储组件上实现了负载均衡,所以对于高并发场景具有良好的支持,实现了***的高可用。同时,区块链文件***只需要记录数据的指纹与地址,减少了区块链***的压力,提高了区块链的处理效率。由于区块链具有账本数据难以篡改的特性,本存储***将区块链文件***纳入其中,用来保存数据的指纹与存储地址用以检验被存储数据的有效性,防止了存储组件中的数据被恶意篡改。区块链文件***与存储组件的分工合作解决了区块链存储容量低的问题,还支持多种存储组件的拓展,实现了对于各种复杂数据的存储支持,满足了多样化的存储需求,同时实现了整体存储的大容量。
另外,本发明的高性能的区块链分布式存储方法同样具有上述优点。
除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有的区块链文件***的网络架构示意图。
图2是本发明优选实施例的高性能的区块链分布式存储***的网络架构示意图。
图3是本发明另一实施例的高性能的区块链分布式存储方法的流程示意图。
图4是图3中的步骤S4中判断出用户请求类型为数据写入请求时的子流程示意图。
图5是图3中的步骤S4中判断出用户请求类型为数据查询请求时的子流程示意图。
图6是图3中的步骤S4中判断出用户请求类型为数据修改请求时的子流程示意图。
图7是图3中的步骤S4中判断出用户请求类型为数据删除请求时的子流程示意图。
具体实施方式
以下结合附图对本发明的实施例进行详细说明,但是本发明可以由下述所限定和覆盖的多种不同方式实施。
如图2所示,本发明的优选实施例提供一种高性能的区块链分布式存储***,包括反向代理集群、应用服务器集群、消息队列集群和数据存储集群,所述反向代理集群用于接收客户端的请求并将其转发至应用服务器集群,所述应用服务器集群包括多台应用服务器、高速缓存池和数据处理模块,所述应用服务器用于提供应用服务,处理并回复所述反向代理集群转发的用户请求,所述高速缓存池用于存储有高度读写需求的数据,所述数据处理模块用于进行数据的预处理、计算数据指纹、区块链文件***和存储组件的交互,所述消息队列集群用于负责处理多台应用服务器的请求,所述数据存储集群包括用于存储数据指纹和数据地址的区块链文件***、用于存储各类数据的存储组件;
所述反向代理集群在接收到不同客户端的用户请求和关联数据后按照预设的分配策略将其分配至所述应用服务器集群中的一个应用服务器进行处理,所述应用服务器首先判断用户请求是否需要使用高速缓存池,若需要则将该用户请求及关联数据发送至高速缓存池进行处理,所述高速缓存池根据用户请求返回相应的反馈数据至应用服务器,所述应用服务器将所述高速缓存池返回的反馈数据发送给客户端,所述应用服务器还判断用户请求是否需要使用数据存储集群,若需要将用户请求及关联数据发送给所述数据处理模块进行处理,所述数据处理模块根据用户请求的请求类型通过所述消息队列集群进行区块链文件***和存储组件之间的交互以实现数据的存储。
可以理解,所述反向代理集群由多台负责反向代理业务的服务器组成,其功能包括接收并转发客户端的请求,为应用服务集群提供代理服务并实现其负载均衡,实现负载均衡采取的分配策略包括轮询策略、指定权重策略、IP绑定策略、最少连接策略、时间优先策略、URL定向策略等中的至少一种。所述反向代理集群可以将任务均衡地分配到集群中的每一台服务器,以最大化优化***的性能。所述高速缓存池由内存数据库集群构成,比如Redis集群,通过在每个应用服务器集群中使用内存数据库,并令其构成内存数据库集群,实现了读服务和写服务的负载均衡,最终实现高速缓存。所述消息队列集群由多台负责处理应用服务器请求的服务器构成,其功能包括消息分发、应用解耦、流量削峰、异步消息等,所述消息队列集群不仅可以进行消息分发与一致性的达成,还可以实现消息订阅,实现了不同存储组件对不同存储内容的订阅与存储,从而提高了***性能。其中,所述数据存储集群的数量为至少两个,至少两个数据存储集群采取分片式分配方式,每个数据存储集群均包括一个区块链文件***和至少一个存储组件,所述存储组件由多种可选的数据存储应用构成,包括HDFS、关系型数据库、NOSQL非关系型数据库、IPFS分布式存储***中的至少一种,用于存储经过处理的各类数据,同时提高查询服务。另外,所述存储组件还采取分库、分表的方式进行数据存储,实现了数据存储的负载均衡。所述HDFS分布式文件***支持任务的并发处理,相对于串行化的数据处理,并发处理的效率更高。所述IPFS去中心化分布式存储方式,实现了存储***中部分数据的点对点传输,而数据存储节点的选择遵循距离最近原则,从而减少了数据传输的延迟,进而提高了存储***的性能。另外,本发明的高性能的区块链分布式存储***还使用了非拜占庭容错算法中的Raft共识算法,可以实现数据指纹的快速上链,大大提高了区块链***的处理效率。
可以理解,本实施例的高性能的区块链分布式存储***,反向代理、应用服务、消息队列以及数据存储服务都选择集群的方式进行部署,大大提高了***的数据处理与读写的效率。并且,由于在前后端以及存储组件上实现了负载均衡,所以对于高并发场景具有良好的支持,实现了***的高可用。同时,区块链文件***只需要记录数据的指纹与地址,减少了区块链***的压力,提高了区块链的处理效率。由于区块链具有账本数据难以篡改的特性,本存储***将区块链文件***纳入其中,用来保存数据的指纹与存储地址用以检验被存储数据的有效性,防止了存储组件中的数据被恶意篡改。区块链文件***与存储组件的分工合作解决了区块链存储容量低的问题,还支持多种存储组件的拓展,实现了对于各种复杂数据的存储支持,满足了多样化的存储需求,同时实现了整体存储的大容量。
另外,如图3所示,本发明的另一实施例还提供一种高性能的区块链分布式存储方法,优选采用如上所述的区块链分布式存储***,所述方法包括以下内容:
步骤S1:客户端发送用户请求及关联数据至反向代理集群;
步骤S2:所述反向代理集群将用户请求分配给应用服务器集群中的一个应用服务器进行处理;
步骤S3:所述应用服务器判断用户请求是否需要使用高速缓存池,若需要则将用户请求及其关联数据发送至高速缓存池进行处理,高速缓存池根据用户请求返回相应的反馈数据至应用服务器,所述应用服务器将该反馈数据发送至客户端;
步骤S4:所述应用服务器判断用户请求是否需要使用数据存储集群,若需要则将用户请求及关联数据发送给数据处理模块进行处理,所述数据处理模块判断用户请求的请求类型,并根据判断结果通过消息队列集群进行区块链文件***和存储组件之间的交互,以实现数据的存储。
可以理解,本实施例的高性能的区块链分布式存储方法,反向代理、应用服务、消息队列以及数据存储服务都选择集群的方式进行部署,大大提高了***的数据处理与读写的效率。并且,由于在前后端以及存储组件上实现了负载均衡,所以对于高并发场景具有良好的支持,实现了***的高可用。同时,区块链文件***只需要记录数据的指纹与地址,减少了区块链***的压力,提高了区块链的处理效率。由于区块链具有账本数据难以篡改的特性,本存储***将区块链文件***纳入其中,用来保存数据的指纹与存储地址用以检验被存储数据的有效性,防止了存储组件中的数据被恶意篡改。区块链文件***与存储组件的分工合作解决了区块链存储容量低的问题,还支持多种存储组件的拓展,实现了对于各种复杂数据的存储支持,满足了多样化的存储需求,同时实现了整体存储的大容量。
可以理解,如图4所示,当所述步骤S4中判断出用户请求的请求类型为数据写入请求时,所述步骤S4包括以下内容:
步骤S41a:所述数据处理模块将数据序列化,并通过哈希函数计算得到数据指纹,并将数据写入请求和序列化数据发送至消息队列集群,由所述消息队列集群将数据写入请求和序列化数据发送至存储组件;
步骤S42a:所述数据存储组件将存储地址发送给数据处理模块;
步骤S43a:所述数据处理模块将数据指纹和数据地址打包发送给消息队列集群,由所述消息队列集群将打包好的数据指纹和数据地址发送至区块链文件***上链。
可以理解,如图5所示,当所述步骤S4中判断出用户请求的请求类型为数据查询请求时,所述步骤S4包括以下内容:
步骤S41b:所述数据处理模块将数据查询请求和数据索引发送至消息队列集群,由所述消息队列集群将数据查询请求和数据索引发送至区块链文件***;
步骤S42b:所述区块链文件***根据数据索引将相应的数据指纹和数据地址返回至数据处理模块;
步骤S43b:所述数据处理模块将数据查询请求和数据地址发送给消息队列集群,由所述消息队列集群将数据查询请求和数据地址发送至存储组件;
步骤S44b:所述存储组件根据数据地址将存储的数据返回给数据处理模块;
步骤S45b:所述数据处理模块获得所述存储组件返回的数据后利用hash函数计算数据指纹,若计算得到的数据指纹与在区块链文件***中获得的数据指纹一致,则证明数据没有被篡改;
步骤S46b:所述数据处理模块将获得的数据发送给应用服务器,由应用服务器将数据发送至客户端。
可以理解,如图6所示,当所述步骤S4中判断出用户请求的请求类型为数据修改请求时,所述步骤S4包括以下内容:
步骤S41c:所述数据处理模块将数据修改请求和数据索引发送至消息队列集群,由所述消息队列集群将数据修改请求和数据索引发送至区块链文件***;
步骤S42c:所述区块链文件***根据数据索引将相应的数据指纹和数据地址返回至数据处理模块;
步骤S43c:所述数据处理模块将数据修改请求和数据地址发送给消息队列集群,由所述消息队列集群将数据修改请求和数据地址发送至存储组件;
步骤S44c:所述存储组件根据数据地址将存储的数据返回给数据处理模块;
步骤S45c:所述数据处理模块获得所述存储组件返回的数据后利用hash函数计算数据指纹,若计算得到的数据指纹与在区块链文件***中获得的数据指纹一致,则证明数据没有被篡改;
步骤S46c:所述数据处理模块对数据进行修改并计算新的数据指纹,并将修改后的数据发送到消息队列集群,由所述消息队列集群将修改后的数据发送到存储组件的原地址进行存储;
步骤S47c:所述数据处理模块将新的数据指纹、原数据地址打包发送到消息队列集群,由所述消息队列集群将打包好的新的数据指纹、原数据地址发送至区块链文件***上链。
可以理解,如图7所示,当所述步骤S4中判断出用户请求的请求类型为数据删除请求时,所述步骤S4包括以下内容:
步骤S41d:所述数据处理模块将数据删除请求和数据索引发送至消息队列集群,由所述消息队列集群将数据修改请求和数据索引发送至区块链文件***;
步骤S42d:所述区块链文件***根据数据索引将相应的数据指纹和数据地址返回至数据处理模块后将其删除;
步骤S43d:所述数据处理模块将数据删除请求和数据地址发送给消息队列集群,由所述消息队列集群将数据删除请求和数据地址发送至存储组件;
步骤S44d:所述存储组件根据数据地址将存储的数据删除。
另外,本发明的另一实施例还提供一种设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上所述的方法的步骤。
另外,本发明的另一实施例还提供一种计算机可读取的存储介质,用于存储进行高性能的区块链分布式存储的计算机程序,该计算机程序在计算机上运行时执行如上所述的方法的步骤。
一般计算机可读取介质的形式包括:软盘(floppy disk)、可挠性盘片(flexibledisk)、硬盘、磁带、任何其与的磁性介质、CD-ROM、任何其余的光学介质、打孔卡片(punchcards)、纸带(paper tape)、任何其余的带有洞的图案的物理介质、随机存取存储器(RAM)、可编程只读存储器(PROM)、可抹除可编程只读存储器(EPROM)、快闪可抹除可编程只读存储器(FLASH-EPROM)、其余任何存储器芯片或卡匣、或任何其余可让计算机读取的介质。指令可进一步被一传输介质所传送或接收。传输介质这一术语可包含任何有形或无形的介质,其可用来存储、编码或承载用来给机器执行的指令,并且包含数字或模拟通信信号或其与促进上述指令的通信的无形介质。传输介质包含同轴电缆、铜线以及光纤,其包含了用来传输一计算机数据信号的总线的导线。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种高性能的区块链分布式存储***,其特征在于,包括反向代理集群、应用服务器集群、消息队列集群和数据存储集群,所述反向代理集群用于接收客户端的请求并将其转发至应用服务器集群,所述应用服务器集群包括多台应用服务器、高速缓存池和数据处理模块,所述应用服务器用于提供应用服务,处理并回复所述反向代理集群转发的用户请求,所述高速缓存池用于存储有高速读写需求的数据,所述数据处理模块用于进行数据的预处理、计算数据指纹、区块链文件***和存储组件的交互,所述消息队列集群用于负责处理多台应用服务器的请求,所述数据存储集群包括用于存储数据指纹和数据地址的区块链文件***、用于存储各类数据的存储组件;所述高速缓存池由内存数据库集群构成,比如Redis集群,通过在每个应用服务器集群中使用内存数据库,并令其构成内存数据库集群,实现了读服务和写服务的负载均衡,所述消息队列集群由多台负责处理应用服务器请求的服务器构成,所述消息队列集群不仅用于进行消息分发与一致性的达成,还用于实现消息订阅,实现了不同存储组件对不同存储内容的订阅与存储;
所述反向代理集群在接收到不同客户端的用户请求和关联数据后按照预设的分配策略将其分配至所述应用服务器集群中的一个应用服务器进行处理,所述应用服务器首先判断用户请求是否需要使用高速缓存池,若需要则将该用户请求及关联数据发送至高速缓存池进行处理,所述高速缓存池根据用户请求返回相应的反馈数据至应用服务器,所述应用服务器将所述高速缓存池返回的反馈数据发送给客户端,所述应用服务器还判断用户请求是否需要使用数据存储集群,若需要将用户请求及关联数据发送给所述数据处理模块进行处理,所述数据处理模块根据用户请求的请求类型通过所述消息队列集群进行区块链文件***和存储组件之间的交互以实现数据的存储。
2.如权利要求1所述的高性能的区块链分布式存储***,其特征在于,所述反向代理集群的预设分配策略包括轮询策略、指定权重策略、IP绑定策略、最少连接策略、时间优先策略和URL定向策略中的至少一种。
3.如权利要求1所述的高性能的区块链分布式存储***,其特征在于,所述存储组件由多种可选的数据存储应用构成,包括HDFS、关系型数据库、NOSQL非关系型数据库、IPFS分布式存储***中的至少一种。
4.一种高性能的区块链分布式存储方法,采用如权利要求1~3任一项所述的区块链分布式存储***,其特征在于,包括以下内容:
步骤S1:客户端发送用户请求及关联数据至反向代理集群;
步骤S2:所述反向代理集群将用户请求分配给应用服务器集群中的一个应用服务器进行处理;
步骤S3:所述应用服务器判断用户请求是否需要使用高速缓存池,若需要则将用户请求及其关联数据发送至高速缓存池进行处理,高速缓存池根据用户请求返回相应的反馈数据至应用服务器,所述应用服务器将该反馈数据发送至客户端;
步骤S4:所述应用服务器判断用户请求是否需要使用数据存储集群,若需要则将用户请求及关联数据发送给数据处理模块进行处理,所述数据处理模块判断用户请求的请求类型,并根据判断结果通过消息队列集群进行区块链文件***和存储组件之间的交互,以实现数据的存储。
5.如权利要求4所述的高性能的区块链分布式存储方法,其特征在于,当所述步骤S4中判断出用户请求的请求类型为数据写入请求时,所述步骤S4包括以下内容:
步骤S41a:所述数据处理模块将数据序列化,并通过哈希函数计算得到数据指纹,并将数据写入请求和序列化数据发送至消息队列集群,由所述消息队列集群将数据写入请求和序列化数据发送至存储组件;
步骤S42a:所述数据存储组件将存储地址发送给数据处理模块;
步骤S43a:所述数据处理模块将数据指纹和数据地址打包发送给消息队列集群,由所述消息队列集群将打包好的数据指纹和数据地址发送至区块链文件***上链。
6.如权利要求4所述的高性能的区块链分布式存储方法,其特征在于,当所述步骤S4中判断出用户请求的请求类型为数据查询请求时,所述步骤S4包括以下内容:
步骤S41b:所述数据处理模块将数据查询请求和数据索引发送至消息队列集群,由所述消息队列集群将数据查询请求和数据索引发送至区块链文件***;
步骤S42b:所述区块链文件***根据数据索引将相应的数据指纹和数据地址返回至数据处理模块;
步骤S43b:所述数据处理模块将数据查询请求和数据地址发送给消息队列集群,由所述消息队列集群将数据查询请求和数据地址发送至存储组件;
步骤S44b:所述存储组件根据数据地址将存储的数据返回给数据处理模块;
步骤S45b:所述数据处理模块获得所述存储组件返回的数据后利用hash函数计算数据指纹,若计算得到的数据指纹与在区块链文件***中获得的数据指纹一致,则证明数据没有被篡改;
步骤S46b:所述数据处理模块将获得的数据发送给应用服务器,由应用服务器将数据发送至客户端。
7.如权利要求4所述的高性能的区块链分布式存储方法,其特征在于,当所述步骤S4中判断出用户请求的请求类型为数据修改请求时,所述步骤S4包括以下内容:
步骤S41c:所述数据处理模块将数据修改请求和数据索引发送至消息队列集群,由所述消息队列集群将数据修改请求和数据索引发送至区块链文件***;
步骤S42c:所述区块链文件***根据数据索引将相应的数据指纹和数据地址返回至数据处理模块;
步骤S43c:所述数据处理模块将数据修改请求和数据地址发送给消息队列集群,由所述消息队列集群将数据修改请求和数据地址发送至存储组件;
步骤S44c:所述存储组件根据数据地址将存储的数据返回给数据处理模块;
步骤S45c:所述数据处理模块获得所述存储组件返回的数据后利用hash函数计算数据指纹,若计算得到的数据指纹与在区块链文件***中获得的数据指纹一致,则证明数据没有被篡改;
步骤S46c:所述数据处理模块对数据进行修改并计算新的数据指纹,并将修改后的数据发送到消息队列集群,由所述消息队列集群将修改后的数据发送到存储组件的原地址进行存储;
步骤S47c:所述数据处理模块将新的数据指纹、原数据地址打包发送到消息队列集群,由所述消息队列集群将打包好的新的数据指纹、原数据地址发送至区块链文件***上链。
8.如权利要求4所述的高性能的区块链分布式存储方法,其特征在于,当所述步骤S4中判断出用户请求的请求类型为数据删除请求时,所述步骤S4包括以下内容:
步骤S41d:所述数据处理模块将数据删除请求和数据索引发送至消息队列集群,由所述消息队列集群将数据修改请求和数据索引发送至区块链文件***;
步骤S42d:所述区块链文件***根据数据索引将相应的数据指纹和数据地址返回至数据处理模块后将其删除;
步骤S43d:所述数据处理模块将数据删除请求和数据地址发送给消息队列集群,由所述消息队列集群将数据删除请求和数据地址发送至存储组件;
步骤S44d:所述存储组件根据数据地址将存储的数据删除。
9.一种设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如权利要求4~8任一项所述的方法的步骤。
10.一种计算机可读取的存储介质,用于存储进行高性能的区块链分布式存储的计算机程序,其特征在于,该计算机程序在计算机上运行时执行如权利要求4~8任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110685929.2A CN113472864B (zh) | 2021-06-21 | 2021-06-21 | 高性能的区块链分布式存储***及方法、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110685929.2A CN113472864B (zh) | 2021-06-21 | 2021-06-21 | 高性能的区块链分布式存储***及方法、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113472864A CN113472864A (zh) | 2021-10-01 |
CN113472864B true CN113472864B (zh) | 2022-11-18 |
Family
ID=77868857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110685929.2A Active CN113472864B (zh) | 2021-06-21 | 2021-06-21 | 高性能的区块链分布式存储***及方法、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113472864B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116915510B (zh) * | 2023-09-13 | 2023-12-01 | 北京数盾信息科技有限公司 | 一种基于高速加密算法的分布式存储*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108366137A (zh) * | 2018-05-28 | 2018-08-03 | 北京奇虎科技有限公司 | 基于区块链对域名进行处理的方法以及根域名*** |
CN109617977A (zh) * | 2018-12-24 | 2019-04-12 | 北京神州绿盟信息安全科技股份有限公司 | 一种网页请求处理方法及装置 |
CN110445850A (zh) * | 2019-07-24 | 2019-11-12 | 深圳壹账通智能科技有限公司 | 区块链节点访问方法及装置、存储介质、电子设备 |
CN111177107A (zh) * | 2019-12-31 | 2020-05-19 | 百度在线网络技术(北京)有限公司 | 基于区块链的文件处理方法、装置、设备和存储介质 |
CN112835977A (zh) * | 2021-01-20 | 2021-05-25 | 中国科学院信息工程研究所 | 一种基于区块链的数据库管理方法及*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10333705B2 (en) * | 2016-04-30 | 2019-06-25 | Civic Technologies, Inc. | Methods and apparatus for providing attestation of information using a centralized or distributed ledger |
EP3561710A1 (en) * | 2018-04-25 | 2019-10-30 | Freeformers Holdings Limited | Data processing system utilising distributed ledger technology |
CN110109930B (zh) * | 2019-05-15 | 2020-07-03 | 山东省计算中心(国家超级计算济南中心) | 基于区块链双链结构的政务数据存储、查询方法及*** |
SG11202010185QA (en) * | 2019-10-16 | 2020-11-27 | Alipay Hangzhou Inf Tech Co Ltd | Implementing a blockchain-based web service |
CN110912937B (zh) * | 2019-12-23 | 2021-09-07 | 杭州中科先进技术研究院有限公司 | 一种基于区块链的数字存证平台和存证方法 |
CN111800472A (zh) * | 2020-06-12 | 2020-10-20 | 易联众信息技术股份有限公司 | 一种区块链节点负载均衡方法、装置、介质及设备 |
CN112866421B (zh) * | 2021-03-30 | 2023-02-24 | 中国工商银行股份有限公司 | 基于分布式缓存以及nsq的智能合约运行方法及装置 |
-
2021
- 2021-06-21 CN CN202110685929.2A patent/CN113472864B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108366137A (zh) * | 2018-05-28 | 2018-08-03 | 北京奇虎科技有限公司 | 基于区块链对域名进行处理的方法以及根域名*** |
CN109617977A (zh) * | 2018-12-24 | 2019-04-12 | 北京神州绿盟信息安全科技股份有限公司 | 一种网页请求处理方法及装置 |
CN110445850A (zh) * | 2019-07-24 | 2019-11-12 | 深圳壹账通智能科技有限公司 | 区块链节点访问方法及装置、存储介质、电子设备 |
CN111177107A (zh) * | 2019-12-31 | 2020-05-19 | 百度在线网络技术(北京)有限公司 | 基于区块链的文件处理方法、装置、设备和存储介质 |
CN112835977A (zh) * | 2021-01-20 | 2021-05-25 | 中国科学院信息工程研究所 | 一种基于区块链的数据库管理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN113472864A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7076553B2 (en) | Method and apparatus for real-time parallel delivery of segments of a large payload file | |
JP2020038623A (ja) | データを記憶するための方法、装置及びシステム | |
CN105335513B (zh) | 一种分布式文件***及文件存储方法 | |
CN102638584B (zh) | 数据分布缓存方法及*** | |
US8001142B2 (en) | Distributed data system with incremental data updates | |
CN105005611B (zh) | 一种文件管理***及文件管理方法 | |
CN106170016A (zh) | 一种处理高并发数据请求的方法和*** | |
CN110263061A (zh) | 一种数据查询方法及*** | |
CN109756573B (zh) | 一种基于区块链的文件*** | |
CN102523258A (zh) | 一种面向云操作***的数据存储架构及其负载均衡方法 | |
CN106933868A (zh) | 一种调整数据分片分布的方法及数据服务器 | |
CN100394404C (zh) | 用于管理元数据的方法和*** | |
CN102045399B (zh) | 云计算模式文件***及文件读取方法 | |
CN104539583A (zh) | 一种实时数据库订阅***及方法 | |
CN113472864B (zh) | 高性能的区块链分布式存储***及方法、设备、存储介质 | |
CN114265814A (zh) | 一种基于对象存储的数据湖文件*** | |
CN112929430B (zh) | 一种基于物联网通信的数据传输方法及*** | |
CN104735149A (zh) | 一种云计算资源管理***及方法 | |
CN111294383B (zh) | 物联网服务管理*** | |
CN110633256A (zh) | 一种分布式集群***中Session会话的共享方法 | |
CN113407512A (zh) | 基于区块链的分布式存储***及方法、设备、存储介质 | |
Nakagawa et al. | Jobcast—Parallel and distributed processing framework Data processing on a cloud style KVS database | |
CN117931950A (zh) | 元宇宙web3账本存储与空间存储分存储结构及方法 | |
CN108737156A (zh) | 一种基于多对等NameNode分布式文件***及写入方法 | |
CN116893788B (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 |