CN108712488B - 一种基于区块链的数据处理方法、装置、区块链系统 - Google Patents
一种基于区块链的数据处理方法、装置、区块链系统 Download PDFInfo
- Publication number
- CN108712488B CN108712488B CN201810451366.9A CN201810451366A CN108712488B CN 108712488 B CN108712488 B CN 108712488B CN 201810451366 A CN201810451366 A CN 201810451366A CN 108712488 B CN108712488 B CN 108712488B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- transmitted
- nodes
- target storage
- 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/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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于区块链的数据处理方法、装置、区块链系统,从区块链对应的所有计算机节点里面确定出两类节点:检索节点和待存储节点,检索节点是从区块链对应的所有计算机节点里面确定出的满足预设条件的节点;待存储节点是从区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。利用检索节点从用户节点中获取待传输数据和对应的存储规则,按照存储规则对待传输数据进行处理,从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到目标存储节点中。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于区块链的数据处理方法、装置、区块链系统。
背景技术
区块链(Block chain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
而具体来说,区块链可以看作是一个分布在全球各地、能够协同运转的数据库存储系统,区别于传统数据库将读写权限掌握在一个公司或者一个集权手上(中心化的特征)的运作模式,任何有能力架设服务器的人都可以参与到区块链的运作模式中。来自全球各地的掘金者在当地部署了自己的服务器,并连接到区块链网络中,就可以成为这个分布式数据库存储系统中的一个节点。一旦加入,该节点享有同其他所有节点完全一样的权利与义务(去中心化、分布式的特征等等)。与此同时,对于在区块链上开展服务的人,可以往这个系统中的任意的节点进行读写操作,最后全世界所有节点会根据某种机制的完成一次又一次的同步,从而实现在区块链网络中所有节点的数据完全一致。
但是,对于区块链网络中的节点来说,会具有自身的存储空间,若只是将节点单纯的作为矿机使用,则会导致节点存储空间的资源浪费。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于区块链的数据处理方法、装置、区块链系统。
本发明的一个方面,提供了一种基于区块链的数据处理方法,包括:
检索节点从用户节点中获取待传输数据和对应的存储规则;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;
所述检索节点按照所述存储规则对所述待传输数据进行处理;
所述检索节点从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
优选的,所述检索节点按照所述存储规则对所述待传输数据进行处理,具体包括:
所述检索节点按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据,M为正整数;其中,所述M个待传输子数据的数据量大于所述待传输数据的数据量,并且所述M个待传输子数据中的部分待传输子数据就能够合并为所述待传输数据;
所述检索节点从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中,具体为:
所述检索节点从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点。
优选的,所述检索节点按照冗余编码规则对所述待传输数据进行冗余编码处理,获得多个待传输子数据之后,所述方法还包括:
对所述多个待传输子数据使用不同的密钥进行加密。
优选的,所述检索节点从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中之后,所述方法还包括:
所述检索节点统计当前数据传输工作量,并基于所述当前数据传输工作量向所述区块链系统索取对应的第一奖励。
优选的,所述检索节点从用户节点中获取待传输数据和对应的存储规则之后,所述方法还包括:
所述检索节点缓存所述待传输数据。
优选的,所述检索节点缓存所述待传输数据之后,所述方法还包括:
接收所述用户节点发送的第一数据获取请求;
从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
优选的,所述从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点之后,所述方法还包括:
从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
优选的,所述从所述存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点之后,所述方法还包括:
所述检索节点统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
优选的,所述检索节点从多个待存储节点中确定出目标存储节点,具体包括:
所述检索节点将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
优选的,所述检索节点从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点之后,所述方法还包括:
接收所述用户节点发送的第二数据获取请求;
基于所述第二数据获取请求从所有目标存储节点中确定出对应存储有所述M个待传输子数据的P个目标存储节点,P≤M且为正整数;
从所述P个目标存储节点中调出所述第二数据获取请求对应的数据合并为所述待传输数据,并发送给所述用户节点。
本发明的另一个方面,提供一种基于区块链的数据处理装置,包括:
第一获取模块,用于从用户节点中获取待传输数据和对应的存储规则;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;
处理模块,用于按照所述存储规则对所述待传输数据进行处理;
第一确定模块,用于从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
优选的,所述处理模块,具体用于所述检索节点按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据,M为正整数;其中,所述M个待传输子数据的数据量大于所述待传输数据的数据量,并且所述M个待传输子数据中的部分待传输子数据就能够合并为所述待传输数据;
所述第一确定模块,用于从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点。
优选的,所述装置还包括:
加密模块,用于对所述多个待传输子数据使用不同的密钥进行加密。
优选的,所述装置还包括:
第一统计模块,用于所述检索节点统计当前数据传输工作量,并基于所述当前数据传输工作量向所述区块链系统索取对应的第一奖励。
优选的,所述装置还包括:
缓存模块,用于所述检索节点缓存所述待传输数据。
优选的,所述装置还包括:
第一接收模块,用于接收所述用户节点发送的第一数据获取请求;
第一调出模块,用于从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
优选的,所述装置还包括:
发送模块,用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
优选的,所述装置还包括:
第二统计模块,用于所述检索节点统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得模块,用于获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
优选的,所述第一确定模块,具体用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
优选的,所述装置还包括:
第二接收模块,用于接收所述用户节点发送的第二数据获取请求;
第二确定模块,用于基于所述第二数据获取请求从所有目标存储节点中确定出对应存储有所述M个待传输子数据的P个目标存储节点,P≤M且为正整数;
第二调用模块,用于从所述P个目标存储节点中调出所述第二数据获取请求对应的数据合并为所述待传输数据,并发送给所述用户节点。
本发明的另一个方面,提供一种区块链系统,所述系统包括:
用户节点,用于获取待传输数据;
检索节点,用于从所述用户节点中获取所述待传输数据和对应的存储规则;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;按照所述存储规则对所述待传输数据进行处理;从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点;
所述目标存储节点,用于存储所述待传输数据。
优选的,所述检索节点,用于按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据,M为正整数;其中,所述M个待传输子数据的数据量大于所述待传输数据的数据量,并且所述M个待传输子数据中的部分待传输子数据就能够合并为所述待传输数据;
所述检索节点,用于从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点。
优选的,所述检索节,用于对所述多个待传输子数据使用不同的密钥进行加密。
优选的,所述用户节点,还用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点;或者
所述系统还包括:中心节点,所述中心节点用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点。
优选的,所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。
优选的,所述检索节点,用于统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
优选的,所述检索节点,用于缓存所述待传输数据。
优选的,所述用户节点,用于发送第一数据获取请求;
所述检索节点,用于接收所述第一数据获取请求,并从缓存中调出所述第一数据获取请求对应的第一数据,发送给所述用户节点。
优选的,所述检索节点,还用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
优选的,所述检索节点,用于统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
所述检索节点,用于获得所述区块链发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
优选的,所述检索节点,用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
优选的,所述用户节点,发送第二数据获取请求;
所述检索节点,用于接收所述用户节点发送的第二数据获取请求;基于所述第二数据获取请求从所有目标存储节点中确定出对应存储有所述M个待传输子数据的P个目标存储节点,P≤M且为正整数;从所述P个目标存储节点中调出所述第二数据获取请求对应的数据合并为所述待传输数据,并发送给所述用户节点。
优选的,所述中心节点,还用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点;或
所述检索节点,用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点。
优选的,所述目标存储节点,还用于统计存储工作量,并基于所述存储工作量向所述区块链系统索取对应的第三奖励。
本发明公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
本发明公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本发明公开了一种基于区块链的数据处理方法、装置、区块链系统,为了解决节点存储空间资源浪费的问题,本发明从区块链对应的所有计算机节点里面确定出两类节点:检索节点和待存储节点,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。利用检索节点从用户节点中获取待传输数据和对应的存储规则,然后按照所述存储规则对所述待传输数据进行处理,最后从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中。本发明将剩余存储量大于预设剩余存储阈值的节点确定出来存储数据,且选择满足预设条件的检索节点来对待传输数据进行处理之后进行中转,能够更加合理的利用区块链中对应的计算机节点的功能和存储空间,避免节点的存储空间资源的浪费,并同时给用户节点和待存储节点提供了便利。
进一步的,由于检索节点是所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。故而利用检索节点来中转数据,由于检索节点的上述特性,能够保证数据传输的效率。另外,检索节点使用公网IP地址,进而能够避免用户节点因为待存储节点的IP地址不稳定导致的数据丢失的情况出现,同时保证IP地址的稳定性以及数据传输的安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种基于区块链的数据处理方法的实施过程图;
图2示出了根据本发明一个实施例的一种基于区块链的数据处理装置的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种基于区块链的数据处理方法、装置、区块链系统,用以解决现有技术的节点存储空间的资源浪费的技术问题。
作为一种可选的实施例,本发明先介绍一种区块链系统的架构图。
本发明的区块链系统包括:用户节点、检索节点、存储节点(待存储节点、目标存储节点)、中心节点。这四类节点本质都是区块链对应的计算机节点,在原有挖矿功能的基础上,不同类型的节点具有不同的功能,例如存储节点,其主要功能是为了存储数据。检索节点,主要是用来代理目标存储节点和用户之间的网络链接,用来代替目标存储节点和用户节点之间进行数据交互,为用户节点提供便利。上述四类节点是实时变化,任何一个计算机节点在成为某类节点之后(例如成为存储节点之后)都不会永久保持不变。任何一个计算机节点只要满足对应的条件都能够成为对应类型的节点,当然,若某类节点不再满足对应的条件也会相应剔除。
用户节点,在原有挖矿的基础上,还可以用来发布待传输数据的计算机节点,当然,用户节点也可以从其他计算机节点中获取自身想要的数据。
检索节点,用于在原有挖矿的基础上,用来为用户节点查找能够用来存储用户节点发布的待传输数据的目标存储节点,并担当用户节点和目标存储节点之间的通信中转站,例如从用户节点接收发布的待存储数据发送给目标存储节点,或者将用户节点需要的数据从目标存储节点中查找出来,并传输给用户节点。
目标存储节点,用于存储用户节点发布的待传输数据。
中心节点,主要用来确定检索节点、待存储节点,并且可以根据检索节点的工作量发放对应的奖励,以及根据目标存储节点的工作量发放对应的奖励等等。
下面分别具体来介绍各个节点。
用户节点,用于获取待传输数据。
检索节点,用于从所述用户节点中获取所述待传输数据和对应的存储规则;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;按照所述存储规则对所述待传输数据进行处理;从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
所述目标存储节点,用于存储所述待传输数据。
在具体的实施过程中,首先需要从区块链对应的计算机节点中确定出满足预设条件的节点作为检索节点,以用来检索出目标存储节点并传输带传输数据。而这一过程可以有两种节点进行确定。第一种是按照用户节点的要求确定出检索节点,即:所述用户节点,用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点。如此,确定出的检索节点能够更加贴合用户节点的需求。当然,除此之外,区块链系统也设置有中心节点,中心节点是区块链对应的计算机节点中的一个或者多个节点,具有判断、发送奖励等等功能。故而,还可以由中心节点来确认出检索节点。即:所述中心节点,用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点。
进一步的,检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点,本发明实施例中设置的预设条件有多种类型,例如,预设宽带阈值、预设传输距离阈值、预设传输速度阈值等等。
故而,所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。
故而利用检索节点来中转数据,由于检索节点的上述特性,能够保证数据传输的效率。另外,检索节点使用公网IP地址,进而能够避免用户节点因为待存储节点的IP地址不稳定导致的数据丢失的情况出现,同时保证IP地址的稳定性以及数据传输的安全性。
当确定出检索节点之后,检索节点则从所述用户节点中获取所述待传输数据和对应的存储规则,并按照存储规则处理所述待传输数据,从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中。
在具体的实施过程中,由于用户节点在发送待传输数据之后,也一并发送了对应的存储规则,故而检索节点会按照所述存储规则对所述待传输数据进行处理;然后,当确定出目标存储节点之后,检索节点则可以将待存储数据存入目标存储节点。
而在按照所述存储规则对所述待传输数据进行处理的过程中,所述检索节点,用于按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据,M为正整数;其中,所述M个待传输子数据的数据量大于所述待传输数据的数据量,并且所述M个待传输子数据中的部分待传输子数据就能够合并为所述待传输数据。也就是说,在冗余编码的处理过程中,检索节点将待传输数据划分为M个数据块,然后对所述M个数据块按照预设的编码矩阵进行编码,使得所述M个数据块按照预设冗余度成为M个冗余块,每个冗余块中冗余有相邻数据块的部分数据内容,故而M个冗余块的数据量要大于原M各数据块的数据量。本发明实施例的M个冗余块就是M个待传输子数据。检索节点按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据的主要目的,是为了防止数据丢失。原因在于,如果将待传输数据直接划分为M个数据块存储到各目标存储节点,若某个目标存储节点损坏或者查找不到,则会导致数据丢失,为了防止这一情况发生,本发明实施例在区块链传输数据时,采用了冗余编码的机制,使M个数据块变为将M个冗余块,各冗余块中会按照预设冗余度存储相邻数据块的部分数据内容。进而相邻冗余块上存储的数据都有重叠,这样做的好处时,无需全部查找到M个目标存储节点,只需要查找到其中的部分目标存储节点,即可完全恢复待传输数据,进而保证数据传输的完整性。
举例来说,待传输数据为20M,将其划分为20个数据块,每个数据块的数据量为1M,而预设冗余度为1.5,那么将20个数据块按照预设冗余度成为20个冗余块,每个冗余块的数据量为1.5M,则每个冗余度会多存储0.5M相邻数据块的数据内容,然后将这20个冗余块分别存储到20个目标存储节点中。而用户节点向检索节点索要待传输数据时,检索节点可能只需要获得17个目标存储节点,即可恢复待传输数据给用户节点。进而由此可以避免查找不到目标存储节点而导致数据丢失的情况出现,能够保证数据获取的完整性。并且不用找到20个目标存储节点才能合并待传输数据,只要17个即可合并待传输数据传输给用户节点,提高了数据传输的效率。
进一步的,在获得M个待传输子数据之后,还会对所述多个待传输子数据使用不同的密钥进行加密。
所述检索节点,用于从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点,进而能够保证数据存储的安全性。
所述待存储节点,是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。而在具体的确认待存储节点的过程中,首先,可以由检索节点从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点,将其作为待存储节点,即:所述检索节点,用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点;还可以由中心节点从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点,将其作为待存储节点,即:所述中心节点,还用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点。
其次,各节点间可利用DPOS+PBFT共识机制,采用闲置空间证明来确定出剩余存储量大于预设剩余存储阈值的节点。具体来说,各区块链对应的计算机节点,可以从区块链中查询并计算出各自的剩余存储量,然后将各自的剩余存储量广播给各个计算机节点(包括检索节点、中心节点等等)。而对于检索节点来说,检索节点接收到各计算机节点广播的剩余存储量,则会判断各计算机节点广播的剩余存储量是否大于预设剩余存储量阈值,若大于,则表示对应的计算机节点的剩余存储量满足存储待存储数据的要求,故而可将其作为待存储节点。而对于中心节点来说,和检索节点的判断过程类似。即:中心节点用于从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点。
进一步的,在区块链场景中,当计算机节点希望能过分享自己的闲置存储空间以获得奖励时,或者希望通过证明自己拥有较大的存储能力,以获得存储权利的情况下(即变成待存储节点),会触发计算机节点向检索节点或者中心节点发送闲置存储空间信息,该闲置存储空间信息指示了计算机节点自己声称的具有的闲置存储空间的存储量。
当然,检索节点或者中心节点接收到计算机节点发送的闲置存储空间信息的情况下,确定与所述闲置存储空间信息对应的Q个随机关键字,所述Q个随机关键字互不相同,Q为大于0的整数;检索节点或者中心节点发送控制信息至所述计算机节点,所述控制信息用于指示所述计算机节点基于预设单向函数生成与所述Q个随机关键字一一对应的Q个映射值,按照对应关系保存所述Q个随机关键字与所述Q个映射值,每个映射值的长度为第一预设长度,所述Q个随机关键字与所述N个映射值能填满所述闲置存储空间信息指示的闲置存储空间;检索节点或者中心节点向所述计算机节点发送待验证关键字对应的待验证映射值,指示所述计算机节点反馈与所述待验证映射值对应的随机关键词,所述待验证关键字为所述Q个随机关键字任意一个或多个组合;检索节点或者中心节点接收所述计算机节点基于所述待验证映射值反馈的验证信息,基于所述待验证关键字,对所述验证信息进行验证,以确认所述计算机节点实际闲置存储空间的存储量与所述存储空间信息指示的存储量是否一致。若一致,则表示计算机节点可成为待存储节点。
其中,所述计算机节点与所述检索节点、中心节点为区块链中的节点,所述预设单向函数为哈希函数,所述哈希函数能生成所述第一预设长度的哈希值,所述映射值为所述哈希值。
而对于从多个待存储节点中确定出目标存储节点的过程,则是所述检索节点作为执行者。即:检索节点,用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
除上述过程之外,各待存储节点都有自己的报价,检索节点或者中心节点可以根据各待存储节点的报价确定出目标存储节点。举例来说,可根据各待存储节点的报价高低,确定出报价低的前N个待存储节点确定为所述目标存储节点。
而作为一种可选的实施例,如果用户节点需要将待传输数据进行备份传输。例如用户节点确定出待传输数据和基于所述待传输数据生成的备份数据。
则检索节点会接收所述待传输数据和所述备份数据,并在确定出目标存储节点之后,将所述待传输数据和备份数据分别传输给不同的目标存储节点进行存储。当然,由于检索节点主要用于代理存储节点的网络链接,是通过提交传输工作量证明获得奖励,故而如果检索节点传输了待传输数据和备份数据之后,获得的奖励则会比单独传输待传输数据的奖励要高。举例来说,假设检索节点传输待传输数据的奖励为0.2个币,那么待传输数据需要备份9次,则检索节点连通待传输数据和备份数据一共传输了10次,则如果每次传输的奖励不变,那么检索节点获得的奖励应当是2个币。而对于目标存储节点来说,是通过提交存储工作量证明获得奖励,那么存储工作量越大,则获得的奖励越多。
以上的用户节点、检索节点和目标存储节点的数目不定,不管其数目如何,每个用户节点、每个检索节点、每个目标存储节点都会执行上述实施过程。
下面介绍检索节点是如何向区块链系统索取奖励的。
检索节点索取奖励有两次,第一次是检索节点将待传输数据传输给目标传输节点之后索取奖励。第二次是检索节点从目标传输节点中取出数据传输给用户节点之后索取奖励。
下面先介绍第一次索取奖励的过程。
所述检索节点,用于统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
作为一种可选的实施例,检索节点可以实时向区块链系统索取对应的第一奖励。在具体的实施过程中,检索节点实时统计待传输数据对应的数据传输工作量,在每一次数据传输完毕之后,就会基于对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
作为一种可选的实施例,检索节点可以定时或定量向区块链系统索取对应的第一奖励。在具体的实施过程中,检索节点会实时统计并记录待传输数据对应的数据传输工作量,然后在预设时间段中获得总数据传输工作量,然后基于总数据传输工作量向所述区块链系统索取对应的第一奖励。也就是说,检索节点每天会定时向区块链系统索取对应的第一奖励,例如统计一天中获得的总数据传输工作量,然后以“天”为单位向区块链系统索取对应的第一奖励。
而检索节点向区块链系统发送索取对应的第一奖励的第一索取请求之后,并不会立即得到第一奖励。这是因为,用户节点将待传输数据发送给检索节点之后,检索节点可能并没有按照约定要求将待传输数据发送给目标存储节点,却还是向区块链系统索取第一奖励,也就是说,存在检索节点冒领奖励的情况,使得检索节点的信任度大打折扣,为了防止这一情况,本发明实施例在向所述区块链系统索取对应的第一奖励之后,区块链系统会等待目标存储节点发送所述待传输数据对应的数据存储证明,也即:目标存储节点在接收到所述待传输数据之后,会生成一数据存储证明,并将其发送给区块链系统。区块链接收到该数据存储证明,则表示检索节点确认将待传输数据发送给了目标存储节点进行存储,故而则会向检索节点发送第一奖励。
进一步的,区块链系统在发放对应的第一奖励时,可以由中心节点发放,也可以由用户节点发放。
当第一奖励由中心节点发放时,交互过程如下:
检索节点,向中心节点发送索取对应的第一奖励的第一索取请求;
中心节点,接收所述检索节点发送的第一索取请求。
目标存储节点,基于所述待传输数据生成一数据存储证明,并发送给中心节点。
中心节点,接收到所述数据存储证明,然后基于所述第一索取请求将第一奖励发送给所述检索节点。
进一步的,上述实施过程是由中心节点将第一奖励发送给检索节点,还有一种可能的情况是,用户节点在发送待传输数据时,将报酬和待传输数据一并进行了封装。但是,检索节点解封装后,并不能够直接拿到报酬中的第一奖励(报酬值>第一奖励,因为目标存储节点还需要领取奖励)。需要在中心节点接收到所述数据存储证明,然后基于所述第一索取请求发放对应的领取权限,检索节点则基于该权限领取封装后的第一奖励。
在此实施例中,检索节点和目标存储节点可按比例分配用户节点的报酬值。
而当第一奖励由用户节点发放时,交互过程如下:
检索节点,向中心节点发送索取对应的第一奖励的第一索取请求;
用户节点,接收所述检索节点发送的第一索取请求。
目标存储节点,基于所述待传输数据生成一数据存储证明,并发送给用户节点。
用户节点,接收到所述数据存储证明,然后基于所述第一索取请求将第一奖励发送给所述检索节点。
进一步的,上述实施过程是由用户节点将第一奖励发送给检索节点,还有一种可能的情况是,用户节点在发送待传输数据时,将报酬和待传输数据一并进行了封装。但是,检索节点解封装后,并不能够直接拿到报酬中的第一奖励(报酬值>第一奖励,因为目标存储节点还需要领取奖励)。需要在用户节点接收到所述数据存储证明,然后基于所述第一索取请求发放对应的领取权限,检索节点则基于该权限领取封装后的第一奖励。
以上便是检索节点在发送了待传输数据给目标存储节点之后,领取第一奖励的过程。
作为一种可选的实施例,所述检索节点,还用于缓存所述待传输数据。缓存的作用是,在用户节点向检索节点索取数据时,检索节点能够快速方便从缓存中调用对应数据反馈给用户节点,进而省时省力。
故而,在具体的向缓存索取数据的过程中:
所述用户节点,用于发送第一数据获取请求;
所述检索节点,用于接收所述第一数据获取请求;
所述检索节点,还用于从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
当然,可能缓存中只存储了第一数据获取请求的部分数据(第一数据),那么所述检索节点,还用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
以上便是检索节点发送数据给用户节点的实施过程,之后,检索节点还会想区块链系统索取第二奖励。具体来说,所述检索节点,用于统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
所述检索节点,用于获得所述区块链发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
在具体的实施过程中,第二奖励可以由中心节点控制发送给检索节点,也可以由用户节点控制发送给检索节点,而第二奖励的索取过程和第一奖励的索取过程类似,故而本发明实施例不再赘述。
作为一种可选的实施例,检索节点从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点之后,那么具体的数据交互过程如下:
所述用户节点,发送第二数据获取请求;
检索节点,用于接收所述用户节点发送的第二数据获取请求;
检索节点,用于基于所述第二数据获取请求从所有目标存储节点中确定出对应存储有所述M个待传输子数据的P个目标存储节点,P≤M且为正整数;
检索节点,用于从所述P个目标存储节点中调出所述第二数据获取请求对应的数据合并为所述待传输数据,并发送给所述用户节点。
也就是说,在获得待传输子数据合并为传输数据时,并不需要获取所有的待传输子数据(也即:不用获取M个待传输子数据),只需要获取到P个待传输子数据就可以合并为待传输数据,由此可以避免查找不到目标存储节点而导致数据丢失的情况出现,能够保证数据获取的完整性。
进一步的,检索节点还会向区块链系统索取第四奖励。具体来说,所述检索节点,用于统计所述第二数据获取请求对应的数据传输工作量,并基于所述第二数据获取请求对应的数据传输工作量向所述区块链系统索取第四奖励;
所述检索节点,用于获得所述区块链发送的所述第四奖励,所述第四奖励是所述用户节点向所述区块链系统证明已经收到所述第二数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
以上便是检索节点的具体功能,下面介绍目标存储节点。
首先,目标存储节点通过提交存储工作量证明获得奖励。具体来说,目标存储节点,还用于统计存储工作量,并基于所述存储工作量向所述区块链系统索取对应的第三奖励。
进一步的,第三奖励可以由中心节点控制发送给目标存储节点,也可以由用户节点控制发送给目标存储节点,而第三奖励的索取过程和第一奖励的索取过程类似,故而本发明实施例不再赘述。
进一步的,检索节点在向目标存储节点中存储数据时,可以基于DHT(DistributedHash Table,分布式哈希表,一种存储方式)向目标存储节点中存储待传输数据。故而在提取数据时,可基于DHT从海量待存储节点中寻找到存有对应数据的目标存储节点,然后将该数据调用并转发给用户节点。
进一步的,各节点之间的交互时,存储和传输之后获得的奖励并不是固定的,可根据实际调整。
以上便是区块链系统的具体实施过程,下面介绍一种基于区块链的数据处理方法,该方法是基于检索节点侧描述。
参看图1,本发明实施例提供的方法包括:
步骤11,检索节点从用户节点中获取待传输数据和对应的存储规则;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点。
首先,检索节点是由用户节点或者中心节点从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;其中,所述中心节点也是所述区块链对应的所有计算机节点里面确定出的节点。
其次,本发明实施例中设置的预设条件有多种类型,例如,预设宽带阈值、预设传输距离阈值、预设传输速度阈值等等。
故而,所述检索节点具体是从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者
所述检索节点具体是从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者
所述检索节点具体是从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者
所述检索节点具体是从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。
再次,由于检索节点是代理存储节点的网络链接,故而检索节点可通过提交传输工作量证明向区块链系统索取奖励。具体的,所述检索节点从用户节点中获取待传输数据之后,统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。进一步的,检索节点可基于所述待传输数据对应的数据传输工作量,向用户节点或中心节点索取对应的第一奖励。而具体的,检索节点会发送第一索取请求给用户节点或中心节点,使得所述用户节点或者中心节点在接收到目标存储节点在接收到所述待传输数据之后生成并发送的数据存储证明之后,基于所述第一索取请求和所述数据存储证明向检索节点发送对应的第一奖励;或者使得所述用户节点或者中心节点在接收到目标存储节点发送的数据存储证明之后,基于所述第一索取请求和所述数据存储证明发放对应的权限给所述检索节点;所述检索节点接收到所述权限之后,基于所述权限获取对应的第一奖励。由此,可以避免检索节点没有传输数据却冒领奖励的情况出现,能够提高检索节点的传输信任度,进而提高区块链系统中的节点之间数据传输的安全性。
再次,检索节点从用户节点中获取待传输数据之后,所述检索节点还会缓存所述待传输数据。缓存的作用是,在用户节点向检索节点索取数据时,检索节点能够快速方便从缓存中调用对应数据反馈给用户节点,进而省时省力。
具体的,检索节点缓存所述待传输数据之后,若用户节点需要调用数据,则检索节点接收所述用户节点发送的第一数据获取请求;从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
若缓存中只存储有第一数据获取请求对应的部分数据(此处的部分数据即为第一数据),剩余的数据存储在目标存储节点,那么则会继续执行下面的步骤:从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。由此,可保证将完整的数据发送给用户节点,并且由于部分数据是从缓存中调用,比从全部数据从目标存储节点调用完整数据的时间短,且响应更快。
进一步的,检索节点在传输完毕第一数据获取请求对应的数据之后,还会通过提交传输工作量证明向区块链系统索取奖励。具体的,所述检索节点统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;获得所述区块链发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。而检索节点领取第二奖励的实施过程和检索节点领取第一奖励的实施过程类似,故而此处不再赘述。
步骤12,所述检索节点按照所述存储规则对所述待传输数据进行处理。
在具体的实施过程中,会对所述待传输数据进行冗余编码处理。
具体来说,所述检索节点按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据,M为正整数;其中,所述M个待传输子数据的数据量大于所述待传输数据的数据量,并且所述M个待传输子数据中的部分待传输子数据就能够合并为所述待传输数据。
也就是说,在冗余编码的处理过程中,检索节点将待传输数据划分为M个数据块,然后对所述M个数据块按照预设的编码矩阵进行编码,使得所述M个数据块按照预设冗余度成为M个冗余块,每个冗余块中冗余有相邻数据块的部分数据内容,故而M个冗余块的数据量要大于原M各数据块的数据量。本发明实施例的M个冗余块就是M个待传输子数据。检索节点按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据的主要目的,是为了防止数据丢失。原因在于,如果将待传输数据直接划分为M个数据块存储到各目标存储节点,若某个目标存储节点损坏或者查找不到,则会导致数据丢失,为了防止这一情况发生,本发明实施例在区块链传输数据时,采用了冗余编码的机制,使M个数据块变为将M个冗余块,各冗余块中会按照预设冗余度存储相邻数据块的部分数据内容。进而相邻冗余块上存储的数据都有重叠,这样做的好处时,无需全部查找到M个目标存储节点,只需要查找到其中的部分目标存储节点,即可完全恢复待传输数据,进而保证数据传输的完整性。
举例来说,待传输数据为20M,将其划分为20个数据块,每个数据块的数据量为1M,而预设冗余度为1.5,那么将20个数据块按照预设冗余度成为20个冗余块,每个冗余块的数据量为1.5M,则每个冗余度会多存储0.5M相邻数据块的数据内容,然后将这20个冗余块分别存储到20个目标存储节点中。而用户节点向检索节点索要待传输数据时,检索节点可能只需要获得17个目标存储节点,即可恢复待传输数据给用户节点。进而由此可以避免查找不到目标存储节点而导致数据丢失的情况出现,能够保证数据获取的完整性。并且不用找到20个目标存储节点才能合并待传输数据,只要17个即可合并待传输数据传输给用户节点,提高了数据传输的效率。
进一步的,在获得M个待传输子数据之后,还会对所述多个待传输子数据使用不同的密钥进行加密。
在做了上述处理之后,所述检索节点从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中,具体为:
所述检索节点从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点。
步骤13,所述检索节点从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
在具体的确定目标存储节点的过程中,所述检索节点将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
所述检索节点从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点之后,所述方法还包括:
接收所述用户节点发送的第二数据获取请求;
基于所述第二数据获取请求从所有目标存储节点中确定出对应存储有所述M个待传输子数据的P个目标存储节点,P≤M且为正整数;
从所述P个目标存储节点中调出所述第二数据获取请求对应的数据合并为所述待传输数据,并发送给所述用户节点。
进一步的,检索节点在传输完毕第二数据获取请求对应的数据之后,还会通过提交传输工作量证明向区块链系统索取奖励。具体的,所述检索节点统计所述第二数据获取请求对应的数据传输工作量,并基于所述第二数据获取请求对应的数据传输工作量向所述区块链系统索取第四奖励;获得所述区块链发送的所述第四奖励,所述第四奖励是所述用户节点向所述区块链系统证明已经收到所述第二数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。而检索节点领取第四奖励的实施过程和检索节点领取第一奖励的实施过程类似,故而此处不再赘述。
作为一种可选的实施例,如果用户节点需要将待传输数据进行备份传输。例如用户节点在发布待传输数据之外,还需要发布基于待传输数据生成的备份数据;
则检索节点会接收所述待传输数据和所述备份数据,并在确定出目标存储节点之后,将所述待传输数据和备份数据分别传输给不同的目标存储节点进行分别存储。
备份数据可以有一份或者多份,若用户节点要求进行多次备份,那么则会生成对应份数的备份数据,检索节点也会基于待传输数据和多份备份数据分别传输给不同的目标存储节点进行分别存储。
由于检索节点是通过提交传输工作量证明获得奖励,故而传输的数据越多,则传输量越大,进而获得的奖励越多。
以上便是从检索节点侧描述的数据交互的过程,基于统一发明构思,参看图2,提供了一种基于区块链的数据处理装置,包括:
第一获取模块21,用于从用户节点中获取待传输数据和对应的存储规则;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;
处理模块22,用于按照所述存储规则对所述待传输数据进行处理;
第一确定模块23,用于从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
作为一种可选的实施例,
所述处理模块22,具体用于所述检索节点按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据,M为正整数;其中,所述M个待传输子数据的数据量大于所述待传输数据的数据量,并且所述M个待传输子数据中的部分待传输子数据就能够合并为所述待传输数据;
所述第一确定模块23,用于从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点。
作为一种可选的实施例,所述装置还包括:
加密模块,用于对所述多个待传输子数据使用不同的密钥进行加密。
作为一种可选的实施例,所述装置还包括:
第一统计模块,用于所述检索节点统计当前数据传输工作量,并基于所述当前数据传输工作量向所述区块链系统索取对应的第一奖励。
作为一种可选的实施例,所述装置还包括:缓存模块,用于所述检索节点缓存所述待传输数据。
作为一种可选的实施例,所述装置还包括:
第一接收模块,用于接收所述用户节点发送的第一数据获取请求;
第一调出模块,用于从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
作为一种可选的实施例,所述装置还包括:
发送模块,用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
作为一种可选的实施例,所述装置还包括:
第二统计模块,用于所述检索节点统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得模块,用于获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
作为一种可选的实施例,所述第一确定模块23,具体用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
作为一种可选的实施例,所述装置还包括:
第二接收模块,用于接收所述用户节点发送的第二数据获取请求;
第二确定模块,用于基于所述第二数据获取请求从所有目标存储节点中确定出对应存储有所述M个待传输子数据的P个目标存储节点,P≤M且为正整数;
第二调用模块,用于从所述P个目标存储节点中调出所述第二数据获取请求对应的数据合并为所述待传输数据,并发送给所述用户节点。
基于与前述实施例中同样的发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文任一所述方法的步骤。
基于与前述实施例中同样的发明构思,本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前文任一所述方法的步骤。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本发明公开了一种基于区块链的数据处理方法、装置、区块链系统,为了解决节点存储空间资源浪费的问题,本发明从区块链对应的所有计算机节点里面确定出两类节点:检索节点和待存储节点,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。利用检索节点从用户节点中获取待传输数据和对应的存储规则,然后按照所述存储规则对所述待传输数据进行处理,最后从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中。本发明将剩余存储量大于预设剩余存储阈值的节点确定出来存储数据,且选择满足预设条件的检索节点来对待传输数据进行处理之后进行中转,能够更加合理的利用区块链中对应的计算机节点的功能和存储空间,避免节点的存储空间资源的浪费,并同时给用户节点和待存储节点提供了便利。
进一步的,由于检索节点是所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。故而利用检索节点来中转数据,由于检索节点的上述特性,能够保证数据传输的效率。另外,检索节点使用公网IP地址,进而能够避免用户节点因为待存储节点的IP地址不稳定导致的数据丢失的情况出现,同时保证IP地址的稳定性以及数据传输的安全性。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了,A1、一种基于区块链的数据处理方法,其特征在于,包括:
检索节点从用户节点中获取待传输数据和对应的存储规则;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;
所述检索节点按照所述存储规则对所述待传输数据进行处理;
所述检索节点从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
A2、如A1所述的方法,其特征在于,
所述检索节点按照所述存储规则对所述待传输数据进行处理,具体包括:
所述检索节点按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据,M为正整数;其中,所述M个待传输子数据的数据量大于所述待传输数据的数据量,并且所述M个待传输子数据中的部分待传输子数据就能够合并为所述待传输数据;
所述检索节点从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中,具体为:
所述检索节点从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点。
A3、如A2所述的方法,其特征在于,所述检索节点按照冗余编码规则对所述待传输数据进行冗余编码处理,获得多个待传输子数据之后,所述方法还包括:
对所述多个待传输子数据使用不同的密钥进行加密。
A4、如A1所述的方法,其特征在于,所述检索节点从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中之后,所述方法还包括:
所述检索节点统计当前数据传输工作量,并基于所述当前数据传输工作量向所述区块链系统索取对应的第一奖励。
A5、如A1所述的方法,其特征在于,所述检索节点从用户节点中获取待传输数据和对应的存储规则之后,所述方法还包括:
所述检索节点缓存所述待传输数据。
A6、如A5所述的方法,其特征在于,所述检索节点缓存所述待传输数据之后,所述方法还包括:
接收所述用户节点发送的第一数据获取请求;
从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
A7、如A6所述的方法,其特征在于,所述从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点之后,所述方法还包括:
从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
A8、如A7所述的方法,其特征在于,所述从所述存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点之后,所述方法还包括:
所述检索节点统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
A9、如A1所述的方法,其特征在于,所述检索节点从多个待存储节点中确定出目标存储节点,具体包括:
所述检索节点将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
A10、如A2所述的方法,其特征在于,所述检索节点从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点之后,所述方法还包括:
接收所述用户节点发送的第二数据获取请求;
基于所述第二数据获取请求从所有目标存储节点中确定出对应存储有所述M个待传输子数据的P个目标存储节点,P≤M且为正整数;
从所述P个目标存储节点中调出所述第二数据获取请求对应的数据合并为所述待传输数据,并发送给所述用户节点。
本发明的另一方面公开了,B11、一种基于区块链的数据处理装置,其特征在于,包括:
第一获取模块,用于从用户节点中获取待传输数据和对应的存储规则;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;
处理模块,用于按照所述存储规则对所述待传输数据进行处理;
第一确定模块,用于从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
B12、如B11所述的装置,其特征在于,
所述处理模块,具体用于所述检索节点按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据,M为正整数;其中,所述M个待传输子数据的数据量大于所述待传输数据的数据量,并且所述M个待传输子数据中的部分待传输子数据就能够合并为所述待传输数据;
所述第一确定模块,用于从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点。
B13、如B12所述的装置,其特征在于,所述装置还包括:
加密模块,用于对所述多个待传输子数据使用不同的密钥进行加密。
B14、如B11所述的装置,其特征在于,所述装置还包括:
第一统计模块,用于所述检索节点统计当前数据传输工作量,并基于所述当前数据传输工作量向所述区块链系统索取对应的第一奖励。
B15、如B11所述的装置,其特征在于,所述装置还包括:
缓存模块,用于所述检索节点缓存所述待传输数据。
B16、如B15所述的装置,其特征在于,所述装置还包括:
第一接收模块,用于接收所述用户节点发送的第一数据获取请求;
第一调出模块,用于从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
B17、如B16所述的装置,其特征在于,所述装置还包括:
发送模块,用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
B18、如B17所述的装置,其特征在于,所述装置还包括:
第二统计模块,用于所述检索节点统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得模块,用于获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
B19、如B11所述的装置,其特征在于,所述第一确定模块,具体用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
B20、如B12所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收所述用户节点发送的第二数据获取请求;
第二确定模块,用于基于所述第二数据获取请求从所有目标存储节点中确定出对应存储有所述M个待传输子数据的P个目标存储节点,P≤M且为正整数;
第二调用模块,用于从所述P个目标存储节点中调出所述第二数据获取请求对应的数据合并为所述待传输数据,并发送给所述用户节点。
本发明的另一方面公开了,C21、一种区块链系统,其特征在于,所述系统包括:
用户节点,用于获取待传输数据;
检索节点,用于从所述用户节点中获取所述待传输数据和对应的存储规则;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;按照所述存储规则对所述待传输数据进行处理;从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点;
所述目标存储节点,用于存储所述待传输数据。
C22、如C21所述的系统,其特征在于,
所述检索节点,用于按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据,M为正整数;其中,所述M个待传输子数据的数据量大于所述待传输数据的数据量,并且所述M个待传输子数据中的部分待传输子数据就能够合并为所述待传输数据;
所述检索节点,用于从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点。
C23、如C22所述的系统,其特征在于,所述检索节,用于对所述多个待传输子数据使用不同的密钥进行加密。
C24、如C21所述的系统,其特征在于,
所述用户节点,还用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点;或者
所述系统还包括:中心节点,所述中心节点用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点。
C25、如C21所述的系统,其特征在于,所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。
C26、如C21所述的系统,其特征在于,所述检索节点,用于统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
C27、如C21所述的系统,其特征在于,所述检索节点,用于缓存所述待传输数据。
28、如27所述的系统,其特征在于,
所述用户节点,用于发送第一数据获取请求;
所述检索节点,用于接收所述第一数据获取请求,并从缓存中调出所述第一数据获取请求对应的第一数据,发送给所述用户节点。
C29、如C28所述的系统,其特征在于,所述检索节点,还用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
C30、如C29所述的系统,其特征在于,所述检索节点,用于统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
所述检索节点,用于获得所述区块链发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
C31、如C21所述的系统,其特征在于,所述检索节点,用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
C32、如C21所述的系统,其特征在于,
所述用户节点,发送第二数据获取请求;
所述检索节点,用于接收所述用户节点发送的第二数据获取请求;基于所述第二数据获取请求从所有目标存储节点中确定出对应存储有所述M个待传输子数据的P个目标存储节点,P≤M且为正整数;从所述P个目标存储节点中调出所述第二数据获取请求对应的数据合并为所述待传输数据,并发送给所述用户节点。
C33、如C21所述的系统,其特征在于,
所述中心节点,还用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点;或
所述检索节点,用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点。
C34、如C21所述的系统,其特征在于,所述目标存储节点,还用于统计存储工作量,并基于所述存储工作量向所述区块链系统索取对应的第三奖励。
本发明的另一方面公开了,D35、一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现A1-A10任一项所述方法的步骤。
本发明的另一方面公开了,D36、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现A1-A10任一项所述方法的步骤。
Claims (30)
1.一种基于区块链的数据处理方法,其特征在于,包括:
检索节点从用户节点中获取待传输数据和对应的存储规则;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;
所述检索节点按照所述存储规则对所述待传输数据进行处理;
所述检索节点从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点;
所述检索节点按照所述存储规则对所述待传输数据进行处理,具体包括:
所述检索节点按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据,M为正整数;其中,所述M个待传输子数据的数据量大于所述待传输数据的数据量,并且所述M个待传输子数据中的部分待传输子数据就能够合并为所述待传输数据;
所述检索节点从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中,具体为:
所述检索节点从所述多个待存储节点中确定出M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点;
所述检索节点按照冗余编码规则对所述待传输数据进行冗余编码处理,获得多个待传输子数据之后,所述方法还包括:
对所述多个待传输子数据使用不同的密钥进行加密。
2.如权利要求1所述的方法,其特征在于,所述检索节点从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中之后,所述方法还包括:
所述检索节点统计当前数据传输工作量,并基于所述当前数据传输工作量向区块链系统索取对应的第一奖励。
3.如权利要求1所述的方法,其特征在于,所述检索节点从用户节点中获取待传输数据和对应的存储规则之后,所述方法还包括:
所述检索节点缓存所述待传输数据。
4.如权利要求3所述的方法,其特征在于,所述检索节点缓存所述待传输数据之后,所述方法还包括:
接收所述用户节点发送的第一数据获取请求;
从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
5.如权利要求4所述的方法,其特征在于,所述从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点之后,所述方法还包括:
从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
6.如权利要求5所述的方法,其特征在于,所述从所述存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点之后,所述方法还包括:
所述检索节点统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
7.如权利要求1所述的方法,其特征在于,所述检索节点从多个待存储节点中确定出目标存储节点,具体包括:
所述检索节点将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
8.如权利要求1所述的方法,其特征在于,所述检索节点从所述多个待存储节点中确定出和所述M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点之后,所述方法还包括:
接收所述用户节点发送的第二数据获取请求;
基于所述第二数据获取请求从所有目标存储节点中确定出对应存储有所述M个待传输子数据的P个目标存储节点,P≤M且为正整数;
从所述P个目标存储节点中调出所述第二数据获取请求对应的数据合并为所述待传输数据,并发送给所述用户节点。
9.一种基于区块链的数据处理装置,其特征在于,包括:
第一获取模块,用于从用户节点中获取待传输数据和对应的存储规则;其中,所述第一获取模块是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;
处理模块,用于按照所述存储规则对所述待传输数据进行处理;
第一确定模块,用于从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点;
所述处理模块,具体用于按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据,M为正整数;其中,所述M个待传输子数据的数据量大于所述待传输数据的数据量,并且所述M个待传输子数据中的部分待传输子数据就能够合并为所述待传输数据;
所述第一确定模块,用于从所述多个待存储节点中确定出M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点;
所述装置还包括:
加密模块,用于对所述M个待传输子数据使用不同的密钥进行加密。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
第一统计模块,用于统计当前数据传输工作量,并基于所述当前数据传输工作量向所述区块链系统索取对应的第一奖励。
11.如权利要求9所述的装置,其特征在于,所述装置还包括:
缓存模块,用于缓存所述待传输数据。
12.如权利要求11所述的装置,其特征在于,所述装置还包括:
第一接收模块,用于接收所述用户节点发送的第一数据获取请求;
第一调出模块,用于从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
13.如权利要求12所述的装置,其特征在于,所述装置还包括:
发送模块,用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
14.如权利要求13所述的装置,其特征在于,所述装置还包括:
第二统计模块,用于所述第一获取模块 统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得模块,用于获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
15.如权利要求9所述的装置,其特征在于,所述第一确定模块,具体用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
16.如权利要求9所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收所述用户节点发送的第二数据获取请求;
第二确定模块,用于基于所述第二数据获取请求从所有目标存储节点中确定出对应存储有所述M个待传输子数据的P个目标存储节点,P≤M且为正整数;
第二调用模块,用于从所述P个目标存储节点中调出所述第二数据获取请求对应的数据合并为所述待传输数据,并发送给所述用户节点。
17.一种区块链系统,其特征在于,所述系统包括:
用户节点,用于获取待传输数据;
检索节点,用于从所述用户节点中获取所述待传输数据和对应的存储规则;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;按照所述存储规则对所述待传输数据进行处理;从多个待存储节点中确定出目标存储节点,并将处理后的待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点;
所述目标存储节点,用于存储所述待传输数据;
所述检索节点,用于按照冗余编码规则对所述待传输数据进行冗余编码处理,获得M个待传输子数据,M为正整数;其中,所述M个待传输子数据的数据量大于所述待传输数据的数据量,并且所述M个待传输子数据中的部分待传输子数据就能够合并为所述待传输数据;
所述检索节点,用于从所述多个待存储节点中确定出M个目标存储节点,并将所述M个待传输子数据中的每个待传输子数据存储到M个目标存储节点中的每个目标存储节点中,使得每个待传输子数据各自对应一个目标存储节点;
所述检索节点,用于对所述M个待传输子数据使用不同的密钥进行加密。
18.如权利要求17所述的系统,其特征在于,
所述用户节点,还用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点;或者
所述系统还包括:中心节点,所述中心节点用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点。
19.如权利要求17所述的系统,其特征在于,所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。
20.如权利要求17所述的系统,其特征在于,所述检索节点,用于统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
21.如权利要求17所述的系统,其特征在于,所述检索节点,用于缓存所述待传输数据。
22.如权利要求21所述的系统,其特征在于,
所述用户节点,用于发送第一数据获取请求;
所述检索节点,用于接收所述第一数据获取请求,并从缓存中调出所述第一数据获取请求对应的第一数据,发送给所述用户节点。
23.如权利要求22所述的系统,其特征在于,所述检索节点,还用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
24.如权利要求23所述的系统,其特征在于,所述检索节点,用于统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
所述检索节点,用于获得所述区块链发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
25.如权利要求17所述的系统,其特征在于,所述检索节点,用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
26.如权利要求17所述的系统,其特征在于,
所述用户节点,发送第二数据获取请求;
所述检索节点,用于接收所述用户节点发送的第二数据获取请求;基于所述第二数据获取请求从所有目标存储节点中确定出对应存储有所述M个待传输子数据的P个目标存储节点,P≤M且为正整数;从所述P个目标存储节点中调出所述第二数据获取请求对应的数据合并为所述待传输数据,并发送给所述用户节点。
27.如权利要求18所述的系统,其特征在于,
所述中心节点,还用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点;或
所述检索节点,用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点。
28.如权利要求17所述的系统,其特征在于,所述目标存储节点,还用于统计存储工作量,并基于所述存储工作量向所述区块链系统索取对应的第三奖励。
29.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
30.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810451366.9A CN108712488B (zh) | 2018-05-11 | 2018-05-11 | 一种基于区块链的数据处理方法、装置、区块链系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810451366.9A CN108712488B (zh) | 2018-05-11 | 2018-05-11 | 一种基于区块链的数据处理方法、装置、区块链系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108712488A CN108712488A (zh) | 2018-10-26 |
CN108712488B true CN108712488B (zh) | 2021-09-10 |
Family
ID=63869083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810451366.9A Active CN108712488B (zh) | 2018-05-11 | 2018-05-11 | 一种基于区块链的数据处理方法、装置、区块链系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108712488B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299338B (zh) * | 2018-10-31 | 2019-08-06 | 山东云溪网络科技有限公司 | 一种跨区块链数据管理系统及方法 |
CN109618190A (zh) * | 2018-12-07 | 2019-04-12 | 深圳市云歌人工智能技术有限公司 | 基于推广视频设置及获取奖励的方法、装置以及存储介质 |
CN109788310A (zh) * | 2019-01-18 | 2019-05-21 | 陕西优米数据技术有限公司 | 基于区块链技术的微视频版权自动检测方法 |
US10917231B2 (en) | 2019-04-04 | 2021-02-09 | Advanced New Technologies Co., Ltd. | Data storage method, apparatus, system and device |
CN110162523B (zh) * | 2019-04-04 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 数据存储方法、系统、装置及设备 |
CN110321074B (zh) * | 2019-05-20 | 2021-07-09 | 西安电子科技大学 | 基于区块链和分布式存储系统的安全存储证明的共识方法 |
CN110446078A (zh) * | 2019-08-21 | 2019-11-12 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的视频播放数据处理方法及装置 |
CN112148797B (zh) * | 2020-09-29 | 2024-06-21 | 中国银行股份有限公司 | 基于区块链的分布式数据存取方法、装置及存储节点 |
CN112988075A (zh) * | 2021-04-26 | 2021-06-18 | 睿至科技集团有限公司 | 一种通过区块链技术存储用户数据的方法及系统 |
CN113111371A (zh) * | 2021-04-30 | 2021-07-13 | 永旗(北京)科技有限公司 | 一种基于区块链的数据传输方法及其系统 |
CN113900598B (zh) * | 2021-12-10 | 2022-10-28 | 北京百度网讯科技有限公司 | 基于区块链的数据存储方法、装置、设备以及存储介质 |
CN116226138B (zh) * | 2023-05-08 | 2023-07-25 | 湖南三湘银行股份有限公司 | 一种基于区块链的信息漏洞处理方法及装置 |
CN116939228B (zh) * | 2023-07-27 | 2024-07-23 | 北京和德宇航技术有限公司 | 遥感影像的分布式处理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624866A (zh) * | 2012-01-13 | 2012-08-01 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储系统 |
CN106844399A (zh) * | 2015-12-07 | 2017-06-13 | 中兴通讯股份有限公司 | 分布式数据库系统及其自适应方法 |
CN107707680A (zh) * | 2017-11-24 | 2018-02-16 | 北京永洪商智科技有限公司 | 一种基于节点计算能力的分布式数据负载均衡方法和系统 |
CN107943833A (zh) * | 2017-10-25 | 2018-04-20 | 华南农业大学 | 一种基于区块链的无中心分布式文件存储及检索方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180082290A1 (en) * | 2016-09-16 | 2018-03-22 | Kountable, Inc. | Systems and Methods that Utilize Blockchain Digital Certificates for Data Transactions |
-
2018
- 2018-05-11 CN CN201810451366.9A patent/CN108712488B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624866A (zh) * | 2012-01-13 | 2012-08-01 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储系统 |
CN106844399A (zh) * | 2015-12-07 | 2017-06-13 | 中兴通讯股份有限公司 | 分布式数据库系统及其自适应方法 |
CN107943833A (zh) * | 2017-10-25 | 2018-04-20 | 华南农业大学 | 一种基于区块链的无中心分布式文件存储及检索方法 |
CN107707680A (zh) * | 2017-11-24 | 2018-02-16 | 北京永洪商智科技有限公司 | 一种基于节点计算能力的分布式数据负载均衡方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108712488A (zh) | 2018-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108712488B (zh) | 一种基于区块链的数据处理方法、装置、区块链系统 | |
CN108737534B (zh) | 一种基于区块链的数据传输方法、装置、区块链系统 | |
US11245770B2 (en) | Locality based content distribution | |
CN113395363B (zh) | 基于区块链的数据处理方法、装置、设备及存储介质 | |
CN108769146B (zh) | 一种基于区块链的数据传输方法、装置及区块链系统 | |
CN104011701A (zh) | 内容传送网络 | |
CN112416881A (zh) | 基于区块链的智能终端存储共享方法、装置、介质及设备 | |
CN109413202B (zh) | 区块链交易信息的排序系统及方法 | |
US20190372825A1 (en) | Communication apparatus, communication method, and recording medium | |
CN111488626A (zh) | 基于区块链的数据处理方法、装置、设备及介质 | |
CN113259384B (zh) | 基于区块链的机理模型调用信息处理方法、服务器及系统 | |
CN105335362B (zh) | 实时数据的处理方法及系统、即时处理系统 | |
CN110474954B (zh) | 基于区块链的文件分享方法、装置、计算机设备及可读存储介质 | |
CN108805741B (zh) | 一种电能质量数据的融合方法、装置及系统 | |
CN117057799B (zh) | 资产数据处理方法、装置、设备及存储介质 | |
CN117851428A (zh) | 一种数据更新方法及装置 | |
CN117041254A (zh) | 区块链数据处理方法、装置、存储介质及设备 | |
CN118013589A (zh) | 区块链共识方法、装置、计算机设备、存储介质 | |
CN118070345A (zh) | 一种数字资产处理方法、系统及存储介质和终端设备 | |
CN116389516A (zh) | 文件分片传输方法、装置、服务器、介质、产品及系统 | |
CN117014431A (zh) | 一种网络传输处理的方法以及相关装置 | |
CN116976543A (zh) | 一种基于区块链技术的电力数据管理平台系统及设计方法 | |
CN117011033A (zh) | 基于区块链系统的交易处理方法、装置及相关设备 | |
CN110633581A (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 |