CN108737534A - 一种基于区块链的数据传输方法、装置、区块链系统 - Google Patents
一种基于区块链的数据传输方法、装置、区块链系统 Download PDFInfo
- Publication number
- CN108737534A CN108737534A CN201810451362.0A CN201810451362A CN108737534A CN 108737534 A CN108737534 A CN 108737534A CN 201810451362 A CN201810451362 A CN 201810451362A CN 108737534 A CN108737534 A CN 108737534A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- retrieval
- transmitted
- 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.)
- Granted
Links
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]
-
- 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/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
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于区块链的数据传输方法、装置、区块链系统,从区块链对应的所有计算机节点里面确定出两类节点:检索节点和待存储节点,检索节点是从区块链对应的所有计算机节点里面确定出的满足预设条件的节点;待存储节点是从区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。检索节点从用户节点中获取待传输数据,然后从多个待存储节点中确定出目标存储节点,并将待传输数据存储到目标存储节点中。本发明将剩余存储量大于预设剩余存储阈值的节点确定出来存储数据,且选择满足预设条件的检索节点来中转数据,能够更加合理的利用区块链中对应的计算机节点的功能和存储空间,避免节点的存储空间资源的浪费。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于区块链的数据传输方法、装置、区块链系统。
背景技术
区块链(Block chain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
而具体来说,区块链可以看作是一个分布在全球各地、能够协同运转的数据库存储系统,区别于传统数据库将读写权限掌握在一个公司或者一个集权手上(中心化的特征)的运作模式,任何有能力架设服务器的人都可以参与到区块链的运作模式中。来自全球各地的掘金者在当地部署了自己的服务器,并连接到区块链网络中,就可以成为这个分布式数据库存储系统中的一个节点。一旦加入,该节点享有同其他所有节点完全一样的权利与义务(去中心化、分布式的特征等等)。与此同时,对于在区块链上开展服务的人,可以往这个系统中的任意的节点进行读写操作,最后全世界所有节点会根据某种机制的完成一次又一次的同步,从而实现在区块链网络中所有节点的数据完全一致。
但是,对于区块链网络中的节点来说,会具有自身的存储空间,若只是将节点单纯的作为矿机使用,则会导致节点存储空间的资源浪费。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于区块链的数据传输方法、装置、区块链系统。
本发明的一个方面,提供了一种基于区块链的数据传输方法,所述方法包括:
检索节点从用户节点中获取待传输数据;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;
所述检索节点从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
优选的,所述检索节点从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中之后,所述方法还包括:
所述检索节点统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
优选的,所述检索节点从用户节点中获取待传输数据之后,所述方法还包括:
所述检索节点缓存所述待传输数据。
优选的,所述检索节点缓存所述待传输数据之后,所述方法还包括:
接收所述用户节点发送的第一数据获取请求;
从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
优选的,所述从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点之后,所述方法还包括:
从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
优选的,所述从所述存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点之后,所述方法还包括:
所述检索节点统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
优选的,所述检索节点从多个待存储节点中确定出目标存储节点,具体包括:
所述检索节点将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
优选的,所述检索节点从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中之后,所述方法还包括:
接收所述用户节点发送的第二数据获取请求;
基于所述第二数据获取请求从所有目标存储节点中确定出存储有所述第二数据获取请求对应的数据的目标存储节点;
从存储有所述第二数据获取请求对应的数据的目标存储节点中调出所述第二数据获取请求对应的数据,并发送给所述用户节点。
本发明的另一个方面,提供一种基于区块链的数据传输装置,包括:
第一获取模块,用于从用户节点中获取待传输数据;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出满足预设条件的节点;
第一确定模块,用于从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
优选的,所述装置还包括:
第一统计模块,用于统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
优选的,所述装置还包括:
缓存模块,用于缓存所述待传输数据。
优选的,所述装置还包括:
第一接收模块,用于接收所述用户节点发送的第一数据获取请求;
第一调出模块,用于从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
优选的,所述装置还包括:
第二获取模块,用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
优选的,所述装置还包括:
第二统计模块,用于统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得模块,用于获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
优选的,所述第一确定模块,具体用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
优选的,所述装置还包括:
第二接收模块,用于接收所述用户节点发送的第二数据获取请求;
第二确定模块,用于基于所述第二数据获取请求从所有目标存储节点中确定出存储有所述第二数据获取请求对应的数据的目标存储节点;
第二调出模块,用于从存储有所述第二数据获取请求对应的数据的目标存储节点中调出所述第二数据获取请求对应的数据,并发送给所述用户节点。
本发明的另一个方面,提供一种区块链系统,所述系统包括:
用户节点,用于获取待传输数据;
检索节点,用于从所述用户节点中获取所述待传输数据;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点;
所述目标存储节点,用于存储所述待传输数据。
优选的,所述用户节点,还用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点;或者
所述系统还包括:中心节点,所述中心节点用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点。
优选的,所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。
优选的,所述检索节点,用于统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
优选的,所述检索节点,用于缓存所述待传输数据。
优选的,所述用户节点,用于发送第一数据获取请求;
所述检索节点,用于接收所述第一数据获取请求,并从缓存中调出所述第一数据获取请求对应的第一数据,发送给所述用户节点。
优选的,所述检索节点,还用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
优选的,所述检索节点,用于统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
所述检索节点,用于获得所述区块链发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
优选的,所述检索节点,用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
优选的,所述用户节点,发送第二数据获取请求;
所述检索节点,用于接收所述用户节点发送的第二数据获取请求;基于所述第二数据获取请求从所有目标存储节点中确定出存储有所述第二数据获取请求对应的数据的目标存储节点;从存储有所述第二数据获取请求对应的数据的目标存储节点中调出所述第二数据获取请求对应的数据,并发送给所述用户节点。
优选的,所述中心节点,还用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点;或
所述检索节点,用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点。
优选的,所述目标存储节点,还用于统计存储工作量,并基于所述存储工作量向所述区块链系统索取对应的第三奖励。
本发明公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
本发明公开了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本发明公开了一种基于区块链的数据传输方法、装置、区块链系统,为了解决节点存储空间资源浪费的问题,本发明从区块链对应的所有计算机节点里面确定出两类节点:检索节点和待存储节点,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。利用检索节点从用户节点中获取待传输数据,然后从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中。本发明将剩余存储量大于预设剩余存储阈值的节点确定出来存储数据,且选择满足预设条件的检索节点来中转数据,能够更加合理的利用区块链中对应的计算机节点的功能和存储空间,避免节点的存储空间资源的浪费,并同时给用户节点和待存储节点提供了便利。
进一步的,由于检索节点是所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。故而利用检索节点来中转数据,由于检索节点的上述特性,能够保证数据传输的效率。另外,检索节点使用公网IP地址,进而能够避免用户节点因为待存储节点的IP地址不稳定导致的数据丢失的情况出现,同时保证IP地址的稳定性以及数据传输的安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种基于区块链的数据传输方法的流程图;
图2示出了根据本发明一个实施例的一种基于区块链的数据传输装置的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种基于区块链的数据传输方法、装置、区块链系统,用以解决现有技术的节点存储空间的资源浪费的技术问题。
作为一种可选的实施例,本发明先介绍一种区块链系统的架构图。
本发明的区块链系统包括:用户节点、检索节点、存储节点(待存储节点、目标存储节点)、中心节点。这四类节点本质都是区块链对应的计算机节点,在原有挖矿功能的基础上,不同类型的节点具有不同的功能,例如存储节点,其主要功能是为了存储数据。检索节点,主要是用来代理目标存储节点和用户之间的网络链接,用来代替目标存储节点和用户节点之间进行数据交互,为用户节点提供便利。上述四类节点是实时变化,任何一个计算机节点在成为某类节点之后(例如成为存储节点之后)都不会永久保持不变。任何一个计算机节点只要满足对应的条件都能够成为对应类型的节点,当然,若某类节点不再满足对应的条件也会相应剔除。
用户节点,在原有挖矿的基础上,还可以用来发布待传输数据的计算机节点,当然,用户节点也可以从其他计算机节点中获取自身想要的数据。
检索节点,用于在原有挖矿的基础上,用来为用户节点查找能够用来存储用户节点发布的待传输数据的目标存储节点,并担当用户节点和目标存储节点之间的通信中转站,例如从用户节点接收发布的待存储数据发送给目标存储节点,或者将用户节点需要的数据从目标存储节点中查找出来,并传输给用户节点。
目标存储节点,用于存储用户节点发布的待传输数据。
中心节点,主要用来确定检索节点、待存储节点,并且可以根据检索节点的工作量发放对应的奖励,以及根据目标存储节点的工作量发放对应的奖励等等。
下面分别具体来介绍各个节点。
用户节点,用于获取待传输数据。
检索节点,用于从所述用户节点中获取所述待传输数据;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点;
所述目标存储节点,用于存储所述待传输数据。
在具体的实施过程中,首先需要从区块链对应的计算机节点中确定出满足预设条件的节点作为检索节点,以用来检索出目标存储节点并传输带传输数据。而这一过程可以有两种节点进行确定。第一种是按照用户节点的要求确定出检索节点,即:所述用户节点,用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点。如此,确定出的检索节点能够更加贴合用户节点的需求。当然,除此之外,区块链系统也设置有中心节点,中心节点是区块链对应的计算机节点中的一个或者多个节点,具有判断、发送奖励等等功能。故而,还可以由中心节点来确认出检索节点。即:所述中心节点,用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点。
进一步的,检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点,本发明实施例中设置的预设条件有多种类型,例如,预设宽带阈值、预设传输距离阈值、预设传输速度阈值等等。
故而,所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。
当确定出检索节点之后,检索节点则从所述用户节点中获取所述待传输数据,并从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中。
所述待存储节点,是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。而在具体的确认待存储节点的过程中,首先,可以由检索节点从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点,将其作为待存储节点,即:所述检索节点,用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点;还可以由中心节点从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点,将其作为待存储节点,即:所述中心节点,还用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点。
其次,各节点间可利用DPOS+PBFT共识机制,采用闲置空间证明来确定出剩余存储量大于预设剩余存储阈值的节点。具体来说,各区块链对应的计算机节点,可以从区块链中查询并计算出各自的剩余存储量,然后将各自的剩余存储量广播给各个计算机节点(包括检索节点、中心节点等等)。而对于检索节点来说,检索节点接收到各计算机节点广播的剩余存储量,则会判断各计算机节点广播的剩余存储量是否大于预设剩余存储量阈值,若大于,则表示对应的计算机节点的剩余存储量满足存储待存储数据的要求,故而可将其作为待存储节点。而对于中心节点来说,和检索节点的判断过程类似。即:中心节点用于从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点。
进一步的,在区块链场景中,当计算机节点希望能过分享自己的闲置存储空间以获得奖励时,或者希望通过证明自己拥有较大的存储能力,以获得存储权利的情况下(即变成待存储节点),会触发计算机节点向检索节点或者中心节点发送闲置存储空间信息,该闲置存储空间信息指示了计算机节点自己声称的具有的闲置存储空间的存储量。
当然,检索节点或者中心节点接收到计算机节点发送的闲置存储空间信息的情况下,确定与所述闲置存储空间信息对应的Q个随机关键字,所述Q个随机关键字互不相同,Q为大于0的整数;检索节点或者中心节点发送控制信息至所述计算机节点,所述控制信息用于指示所述计算机节点基于预设单向函数生成与所述Q个随机关键字一一对应的Q个映射值,按照对应关系保存所述Q个随机关键字与所述Q个映射值,每个映射值的长度为第一预设长度,所述Q个随机关键字与所述N个映射值能填满所述闲置存储空间信息指示的闲置存储空间;检索节点或者中心节点向所述计算机节点发送待验证关键字对应的待验证映射值,指示所述计算机节点反馈与所述待验证映射值对应的随机关键词,所述待验证关键字为所述Q个随机关键字任意一个或多个组合;检索节点或者中心节点接收所述计算机节点基于所述待验证映射值反馈的验证信息,基于所述待验证关键字,对所述验证信息进行验证,以确认所述计算机节点实际闲置存储空间的存储量与所述存储空间信息指示的存储量是否一致。若一致,则表示计算机节点可成为待存储节点。
其中,所述计算机节点与所述检索节点、中心节点为区块链中的节点,所述预设单向函数为哈希函数,所述哈希函数能生成所述第一预设长度的哈希值,所述映射值为所述哈希值。
而对于从多个待存储节点中确定出目标存储节点的过程,则是所述检索节点作为执行者。即:检索节点,用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
除上述过程之外,各待存储节点都有自己的报价,检索节点或者中心节点可以根据各待存储节点的报价确定出目标存储节点。举例来说,可根据各待存储节点的报价高低,确定出报价低的前N个待存储节点确定为所述目标存储节点。
当确定出目标存储节点之后,检索节点则可以将待存储数据存入目标存储节点。
而作为一种可选的实施例,如果用户节点需要将待传输数据进行备份传输。例如用户节点确定出待传输数据和基于所述待传输数据生成的备份数据。
则检索节点会接收所述待传输数据和所述备份数据,并在确定出目标存储节点之后,将所述待传输数据和备份数据分别传输给不同的目标存储节点进行存储。当然,由于检索节点主要用于代理存储节点的网络链接,是通过提交传输工作量证明获得奖励,故而如果检索节点传输了待传输数据和备份数据之后,获得的奖励则会比单独传输待传输数据的奖励要高。举例来说,假设检索节点传输待传输数据的奖励为0.2个币,那么待传输数据需要备份9次,则检索节点连通待传输数据和备份数据一共传输了10次,则如果每次传输的奖励不变,那么检索节点获得的奖励应当是2个币。而对于目标存储节点来说,是通过提交存储工作量证明获得奖励,那么存储工作量越大,则获得的奖励越多。
以上的用户节点、检索节点和目标存储节点的数目不定,不管其数目如何,每个用户节点、每个检索节点、每个目标存储节点都会执行上述实施过程。
下面介绍检索节点是如何向区块链系统索取奖励的。
检索节点索取奖励有两次,第一次是检索节点将待传输数据传输给目标传输节点之后索取奖励。第二次是检索节点从目标传输节点中取出数据传输给用户节点之后索取奖励。
下面先介绍第一次索取奖励的过程。
所述检索节点,用于统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
作为一种可选的实施例,检索节点可以实时向区块链系统索取对应的第一奖励。在具体的实施过程中,检索节点实时统计待传输数据对应的数据传输工作量,在每一次数据传输完毕之后,就会基于对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
作为一种可选的实施例,检索节点可以定时或定量向区块链系统索取对应的第一奖励。在具体的实施过程中,检索节点会实时统计并记录待传输数据对应的数据传输工作量,然后在预设时间段中获得总数据传输工作量,然后基于总数据传输工作量向所述区块链系统索取对应的第一奖励。也就是说,检索节点每天会定时向区块链系统索取对应的第一奖励,例如统计一天中获得的总数据传输工作量,然后以“天”为单位向区块链系统索取对应的第一奖励。
而检索节点向区块链系统发送索取对应的第一奖励的第一索取请求之后,并不会立即得到第一奖励。这是因为,用户节点将待传输数据发送给检索节点之后,检索节点可能并没有按照约定要求将待传输数据发送给目标存储节点,却还是向区块链系统索取第一奖励,也就是说,存在检索节点冒领奖励的情况,使得检索节点的信任度大打折扣,为了防止这一情况,本发明实施例在向所述区块链系统索取对应的第一奖励之后,区块链系统会等待目标存储节点发送所述待传输数据对应的数据存储证明,也即:目标存储节点在接收到所述待传输数据之后,会生成一数据存储证明,并将其发送给区块链系统。区块链接收到该数据存储证明,则表示检索节点确认将待传输数据发送给了目标存储节点进行存储,故而则会向检索节点发送第一奖励。
进一步的,区块链系统在发放对应的第一奖励时,可以由中心节点发放,也可以由用户节点发放。
当第一奖励由中心节点发放时,交互过程如下:
检索节点,向中心节点发送索取对应的第一奖励的第一索取请求;
中心节点,接收所述检索节点发送的第一索取请求。
目标存储节点,基于所述待传输数据生成一数据存储证明,并发送给中心节点。
中心节点,接收到所述数据存储证明,然后基于所述第一索取请求将第一奖励发送给所述检索节点。
进一步的,上述实施过程是由中心节点将第一奖励发送给检索节点,还有一种可能的情况是,用户节点在发送待传输数据时,将报酬和待传输数据一并进行了封装。但是,检索节点解封装后,并不能够直接拿到报酬中的第一奖励(报酬值>第一奖励,因为目标存储节点还需要领取奖励)。需要在中心节点接收到所述数据存储证明,然后基于所述第一索取请求发放对应的领取权限,检索节点则基于该权限领取封装后的第一奖励。
在此实施例中,检索节点和目标存储节点可按比例分配用户节点的报酬值。
而当第一奖励由用户节点发放时,交互过程如下:
检索节点,向中心节点发送索取对应的第一奖励的第一索取请求;
用户节点,接收所述检索节点发送的第一索取请求。
目标存储节点,基于所述待传输数据生成一数据存储证明,并发送给用户节点。
用户节点,接收到所述数据存储证明,然后基于所述第一索取请求将第一奖励发送给所述检索节点。
进一步的,上述实施过程是由用户节点将第一奖励发送给检索节点,还有一种可能的情况是,用户节点在发送待传输数据时,将报酬和待传输数据一并进行了封装。但是,检索节点解封装后,并不能够直接拿到报酬中的第一奖励(报酬值>第一奖励,因为目标存储节点还需要领取奖励)。需要在用户节点接收到所述数据存储证明,然后基于所述第一索取请求发放对应的领取权限,检索节点则基于该权限领取封装后的第一奖励。
以上便是检索节点在发送了待传输数据给目标存储节点之后,领取第一奖励的过程。
作为一种可选的实施例,所述检索节点,还用于缓存所述待传输数据。缓存的作用是,在用户节点向检索节点索取数据时,检索节点能够快速方便从缓存中调用对应数据反馈给用户节点,进而省时省力。
故而,在具体的向缓存索取数据的过程中:
所述用户节点,用于发送第一数据获取请求;
所述检索节点,用于接收所述第一数据获取请求;
所述检索节点,还用于从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
当然,可能缓存中只存储了第一数据获取请求的部分数据(第一数据),那么所述检索节点,还用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
以上便是检索节点发送数据给用户节点的实施过程,之后,检索节点还会想区块链系统索取第二奖励。具体来说,所述检索节点,用于统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
所述检索节点,用于获得所述区块链发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
在具体的实施过程中,第二奖励可以由中心节点控制发送给检索节点,也可以由用户节点控制发送给检索节点,而第二奖励的索取过程和第一奖励的索取过程类似,故而本发明实施例不再赘述。
作为一种可选的实施例,当用户节点索取的数据存储在目标存储节点中,那么具体的数据交互过程如下:
所述用户节点,发送第二数据获取请求;
所述检索节点,用于接收所述用户节点发送的第二数据获取请求;
所述检索节点,用于基于所述第二数据获取请求从所有目标存储节点中确定出存储有所述第二数据获取请求对应的数据的目标存储节点;
所述检索节点,用于从存储有所述第二数据获取请求对应的数据的目标存储节点中调出所述第二数据获取请求对应的数据,并发送给所述用户节点。
进一步的,检索节点还会向区块链系统索取第四奖励。具体来说,所述检索节点,用于统计所述第二数据获取请求对应的数据传输工作量,并基于所述第二数据获取请求对应的数据传输工作量向所述区块链系统索取第四奖励;
所述检索节点,用于获得所述区块链发送的所述第四奖励,所述第四奖励是所述用户节点向所述区块链系统证明已经收到所述第二数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
以上便是检索节点的具体功能,下面介绍目标存储节点。
首先,目标存储节点通过提交存储工作量证明获得奖励。具体来说,目标存储节点,还用于统计存储工作量,并基于所述存储工作量向所述区块链系统索取对应的第三奖励。
进一步的,第三奖励可以由中心节点控制发送给目标存储节点,也可以由用户节点控制发送给目标存储节点,而第三奖励的索取过程和第一奖励的索取过程类似,故而本发明实施例不再赘述。
进一步的,检索节点在向目标存储节点中存储数据时,可以基于DHT(DistributedHash Table,分布式哈希表,一种存储方式)向目标存储节点中存储待传输数据。故而在提取数据时,可基于DHT从海量待存储节点中寻找到存有对应数据的目标存储节点,然后将该数据调用并转发给用户节点。
进一步的,各节点之间的交互时,存储和传输之后获得的奖励并不是固定的,可根据实际调整。
以上便是区块链系统的具体实施过程,下面介绍一种基于区块链的数据传输方法,该方法是基于检索节点侧描述。
参看图1,本发明实施例提供的方法包括:
步骤11,检索节点从用户节点中获取待传输数据;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点。
首先,检索节点是由用户节点或者中心节点从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;其中,所述中心节点也是所述区块链对应的所有计算机节点里面确定出的节点。
其次,本发明实施例中设置的预设条件有多种类型,例如,预设宽带阈值、预设传输距离阈值、预设传输速度阈值等等。
故而,所述检索节点具体是从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者
所述检索节点具体是从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者
所述检索节点具体是从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者
所述检索节点具体是从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。
再次,由于检索节点是代理存储节点的网络链接,故而检索节点可通过提交传输工作量证明向区块链系统索取奖励。具体的,所述检索节点从用户节点中获取待传输数据之后,统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。进一步的,检索节点可基于所述待传输数据对应的数据传输工作量,向用户节点或中心节点索取对应的第一奖励。而具体的,检索节点会发送第一索取请求给用户节点或中心节点,使得所述用户节点或者中心节点在接收到目标存储节点在接收到所述待传输数据之后生成并发送的数据存储证明之后,基于所述第一索取请求和所述数据存储证明向检索节点发送对应的第一奖励;或者使得所述用户节点或者中心节点在接收到目标存储节点发送的数据存储证明之后,基于所述第一索取请求和所述数据存储证明发放对应的权限给所述检索节点;所述检索节点接收到所述权限之后,基于所述权限获取对应的第一奖励。由此,可以避免检索节点没有传输数据却冒领奖励的情况出现,能够提高检索节点的传输信任度,进而提高区块链系统中的节点之间数据传输的安全性。
再次,检索节点从用户节点中获取待传输数据之后,所述检索节点还会缓存所述待传输数据。缓存的作用是,在用户节点向检索节点索取数据时,检索节点能够快速方便从缓存中调用对应数据反馈给用户节点,进而省时省力。
具体的,检索节点缓存所述待传输数据之后,若用户节点需要调用数据,则检索节点接收所述用户节点发送的第一数据获取请求;从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
若缓存中只存储有第一数据获取请求对应的部分数据(此处的部分数据即为第一数据),剩余的数据存储在目标存储节点,那么则会继续执行下面的步骤:从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。由此,可保证将完整的数据发送给用户节点,并且由于部分数据是从缓存中调用,比从全部数据从目标存储节点调用完整数据的时间短,且响应更快。
进一步的,检索节点在传输完毕第一数据获取请求对应的数据之后,还会通过提交传输工作量证明向区块链系统索取奖励。具体的,所述检索节点统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;获得所述区块链发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。而检索节点领取第二奖励的实施过程和检索节点领取第一奖励的实施过程类似,故而此处不再赘述。
步骤12,所述检索节点从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
在具体的确定目标存储节点的过程中,所述检索节点将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
而所述检索节点从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中之后,还存在从目标存储节点中调用数据响应用户节点需求的情况,具体的实施过程如下:接收所述用户节点发送的第二数据获取请求;基于所述第二数据获取请求从所有目标存储节点中确定出存储有所述第二数据获取请求对应的数据的目标存储节点;从存储有所述第二数据获取请求对应的数据的目标存储节点中调出所述第二数据获取请求对应的数据,并发送给所述用户节点。
进一步的,检索节点在传输完毕第二数据获取请求对应的数据之后,还会通过提交传输工作量证明向区块链系统索取奖励。具体的,所述检索节点统计所述第二数据获取请求对应的数据传输工作量,并基于所述第二数据获取请求对应的数据传输工作量向所述区块链系统索取第四奖励;获得所述区块链发送的所述第四奖励,所述第四奖励是所述用户节点向所述区块链系统证明已经收到所述第二数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。而检索节点领取第四奖励的实施过程和检索节点领取第一奖励的实施过程类似,故而此处不再赘述。
作为一种可选的实施例,如果用户节点需要将待传输数据进行备份传输。例如用户节点在发布待传输数据之外,还需要发布基于待传输数据生成的备份数据;
则检索节点会接收所述待传输数据和所述备份数据,并在确定出目标存储节点之后,将所述待传输数据和备份数据分别传输给不同的目标存储节点进行分别存储。
备份数据可以有一份或者多份,若用户节点要求进行多次备份,那么则会生成对应份数的备份数据,检索节点也会基于待传输数据和多份备份数据分别传输给不同的目标存储节点进行分别存储。
由于检索节点是通过提交传输工作量证明获得奖励,故而传输的数据越多,则传输量越大,进而获得的奖励越多。
以上便是从检索节点侧描述的数据交互的过程,基于统一发明构思,参看图2,下面的实施例介绍一种基于区块链的数据传输装置,包括:
第一获取模块21,用于从用户节点中获取待传输数据;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出满足预设条件的节点;
第一确定模块22,用于从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
作为一种可选的实施例,所述装置还包括:
第一统计模块,用于统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
作为一种可选的实施例,所述装置还包括:
缓存模块,用于缓存所述待传输数据。
作为一种可选的实施例,所述装置还包括:
第一接收模块,用于接收所述用户节点发送的第一数据获取请求;
第一调出模块,用于从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
作为一种可选的实施例,所述装置还包括:
第二获取模块,用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
作为一种可选的实施例,所述装置还包括:
第二统计模块,用于统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得模块,用于获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
作为一种可选的实施例,所述第一确定模块,具体用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
作为一种可选的实施例,所述装置还包括:
第二接收模块,用于接收所述用户节点发送的第二数据获取请求;
第二确定模块,用于基于所述第二数据获取请求从所有目标存储节点中确定出存储有所述第二数据获取请求对应的数据的目标存储节点;
第二调出模块,用于从存储有所述第二数据获取请求对应的数据的目标存储节点中调出所述第二数据获取请求对应的数据,并发送给所述用户节点。
基于与前述实施例中同样的发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文任一所述方法的步骤。
基于与前述实施例中同样的发明构思,本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前文任一所述方法的步骤。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本发明公开了一种基于区块链的数据传输方法、装置、区块链系统,为了解决节点存储空间资源浪费的问题,本发明从区块链对应的所有计算机节点里面确定出两类节点:检索节点和待存储节点,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。利用检索节点从用户节点中获取待传输数据,然后从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中。本发明将剩余存储量大于预设剩余存储阈值的节点确定出来存储数据,且选择满足预设条件的检索节点来中转数据,能够更加合理的利用区块链中对应的计算机节点的功能和存储空间,避免节点的存储空间资源的浪费,并同时给用户节点和待存储节点提供了便利。
进一步的,由于检索节点是所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。故而利用检索节点来中转数据,由于检索节点的上述特性,能够保证数据传输的效率。另外,检索节点使用公网IP地址,进而能够避免用户节点因为待存储节点的IP地址不稳定导致的数据丢失的情况出现,同时保证IP地址的稳定性以及数据传输的安全性。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了,A1、一种基于区块链的数据传输方法,其特征在于,所述方法包括:
检索节点从用户节点中获取待传输数据;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;
所述检索节点从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
A2、如A1所述的方法,其特征在于,所述检索节点从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中之后,所述方法还包括:
所述检索节点统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
A3、如A1所述的方法,其特征在于,所述检索节点从用户节点中获取待传输数据之后,所述方法还包括:
所述检索节点缓存所述待传输数据。
A4、如A3所述的方法,其特征在于,所述检索节点缓存所述待传输数据之后,所述方法还包括:
接收所述用户节点发送的第一数据获取请求;
从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
A5、如A4所述的方法,其特征在于,所述从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点之后,所述方法还包括:
从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
A6、如A5所述的方法,其特征在于,所述从所述存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点之后,所述方法还包括:
所述检索节点统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
A7、如A1所述的方法,其特征在于,所述检索节点从多个待存储节点中确定出目标存储节点,具体包括:
所述检索节点将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
A8、如A1所述的方法,其特征在于,所述检索节点从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中之后,所述方法还包括:
接收所述用户节点发送的第二数据获取请求;
基于所述第二数据获取请求从所有目标存储节点中确定出存储有所述第二数据获取请求对应的数据的目标存储节点;
从存储有所述第二数据获取请求对应的数据的目标存储节点中调出所述第二数据获取请求对应的数据,并发送给所述用户节点。
B9、一种基于区块链的数据传输装置,其特征在于,包括:
第一获取模块,用于从用户节点中获取待传输数据;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出满足预设条件的节点;
第一确定模块,用于从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
B10、如B9所述的装置,其特征在于,所述装置还包括:
第一统计模块,用于统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
B11、如B9所述的装置,其特征在于,所述装置还包括:
缓存模块,用于缓存所述待传输数据。
B12、如B11所述的装置,其特征在于,所述装置还包括:
第一接收模块,用于接收所述用户节点发送的第一数据获取请求;
第一调出模块,用于从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
B13、如B12所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
B14、如B13所述的装置,其特征在于,所述装置还包括:
第二统计模块,用于统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得模块,用于获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
B15、如B9所述的装置,其特征在于,所述第一确定模块,具体用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
B16、如B9所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收所述用户节点发送的第二数据获取请求;
第二确定模块,用于基于所述第二数据获取请求从所有目标存储节点中确定出存储有所述第二数据获取请求对应的数据的目标存储节点;
第二调出模块,用于从存储有所述第二数据获取请求对应的数据的目标存储节点中调出所述第二数据获取请求对应的数据,并发送给所述用户节点。
C17,一种区块链系统,其特征在于,所述系统包括:
用户节点,用于获取待传输数据;
检索节点,用于从所述用户节点中获取所述待传输数据;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点;
所述目标存储节点,用于存储所述待传输数据。
C18、如C17所述的系统,其特征在于,
所述用户节点,还用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点;或者
所述系统还包括:中心节点,所述中心节点用于从所述区块链对应的所有计算机节点里面确定出满足所述预设条件的节点作为所述检索节点。
C19、如C17所述的系统,其特征在于,所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的当前带宽大于预设带宽阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的和所述用户节点的传输距离小于预设传输距离阈值的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的具有公共IP地址的节点;或者
所述检索节点具体为从所述区块链对应的所有计算机节点里面确定出的传输速度高于预设传输速度阈值的节点。
C20、如C17所述的系统,其特征在于,所述检索节点,用于统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
C21、如C17所述的系统,其特征在于,所述检索节点,用于缓存所述待传输数据。
C22、如C21所述的系统,其特征在于,
所述用户节点,用于发送第一数据获取请求;
所述检索节点,用于接收所述第一数据获取请求,并从缓存中调出所述第一数据获取请求对应的第一数据,发送给所述用户节点。
C23、如C22所述的系统,其特征在于,所述检索节点,还用于从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
C24、如C23所述的系统,其特征在于,所述检索节点,用于统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
所述检索节点,用于获得所述区块链发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
C25、如C17所述的系统,其特征在于,所述检索节点,用于将所述多个待存储节点按照剩余存储量进行排序,将排序前N个待存储节点确定为所述目标存储节点,N为正整数。
C26、如C17所述的系统,其特征在于,
所述用户节点,发送第二数据获取请求;
所述检索节点,用于接收所述用户节点发送的第二数据获取请求;基于所述第二数据获取请求从所有目标存储节点中确定出存储有所述第二数据获取请求对应的数据的目标存储节点;从存储有所述第二数据获取请求对应的数据的目标存储节点中调出所述第二数据获取请求对应的数据,并发送给所述用户节点。
C27、如C17所述的系统,其特征在于,
所述中心节点,还用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点;或
所述检索节点,用于从所述区块链对应的所有计算机节点里面确定出剩余存储量大于预设剩余存储阈值的节点作为所述待存储节点。
C28、如C17所述的系统,其特征在于,所述目标存储节点,还用于统计存储工作量,并基于所述存储工作量向所述区块链系统索取对应的第三奖励。
D29、一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求A1-A8任一项所述方法的步骤。
D30、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求A1-A8任一项所述方法的步骤。
Claims (10)
1.一种基于区块链的数据传输方法,其特征在于,所述方法包括:
检索节点从用户节点中获取待传输数据;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;
所述检索节点从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
2.如权利要求1所述的方法,其特征在于,所述检索节点从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中之后,所述方法还包括:
所述检索节点统计所述待传输数据对应的数据传输工作量,并基于所述待传输数据对应的数据传输工作量向所述区块链系统索取对应的第一奖励。
3.如权利要求1所述的方法,其特征在于,所述检索节点从用户节点中获取待传输数据之后,所述方法还包括:
所述检索节点缓存所述待传输数据。
4.如权利要求3所述的方法,其特征在于,所述检索节点缓存所述待传输数据之后,所述方法还包括:
接收所述用户节点发送的第一数据获取请求;
从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点。
5.如权利要求4所述的方法,其特征在于,所述从缓存中调出所述第一数据获取请求对应的第一数据,并发送给所述用户节点之后,所述方法还包括:
从所述目标存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点,其中,所述第二数据是所述第一数据获取请求对应的数据中除所述第一数据之外的剩余数据。
6.如权利要求5所述的方法,其特征在于,所述从所述存储节点中获取所述第一数据获取请求对应的第二数据发送给所述用户节点之后,所述方法还包括:
所述检索节点统计所述第一数据获取请求对应的数据传输工作量,并基于所述第一数据获取请求对应的数据传输工作量向所述区块链系统索取第二奖励;
获得所述区块链系统发送的所述第二奖励,所述第二奖励是所述用户节点向所述区块链系统证明已经收到所述第一数据获取请求对应的数据之后,所述区块链系统对应发送的奖励。
7.一种基于区块链的数据传输装置,其特征在于,包括:
第一获取模块,用于从用户节点中获取待传输数据;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出满足预设条件的节点;
第一确定模块,用于从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点。
8.一种区块链系统,其特征在于,所述系统包括:
用户节点,用于获取待传输数据;
检索节点,用于从所述用户节点中获取所述待传输数据;其中,所述检索节点是从所述区块链对应的所有计算机节点里面确定出的满足预设条件的节点;从多个待存储节点中确定出目标存储节点,并将所述待传输数据存储到所述目标存储节点中;其中,所述待存储节点是从所述区块链对应的所有计算机节点里面确定出的剩余存储量大于预设剩余存储阈值的节点;
所述目标存储节点,用于存储所述待传输数据。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6任一项所述方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810451362.0A CN108737534B (zh) | 2018-05-11 | 2018-05-11 | 一种基于区块链的数据传输方法、装置、区块链系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810451362.0A CN108737534B (zh) | 2018-05-11 | 2018-05-11 | 一种基于区块链的数据传输方法、装置、区块链系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108737534A true CN108737534A (zh) | 2018-11-02 |
CN108737534B CN108737534B (zh) | 2021-08-24 |
Family
ID=63937331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810451362.0A Active CN108737534B (zh) | 2018-05-11 | 2018-05-11 | 一种基于区块链的数据传输方法、装置、区块链系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108737534B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109618190A (zh) * | 2018-12-07 | 2019-04-12 | 深圳市云歌人工智能技术有限公司 | 基于推广视频设置及获取奖励的方法、装置以及存储介质 |
CN109683809A (zh) * | 2018-11-19 | 2019-04-26 | 深圳市艾锐达光电有限公司 | 一种数据存储方法及终端 |
CN110049109A (zh) * | 2019-03-26 | 2019-07-23 | 湖南天河国云科技有限公司 | 区块链共享存储的核算方法、系统和计算机可读存储介质 |
CN110113672A (zh) * | 2019-06-05 | 2019-08-09 | 上海剧链信息技术有限公司 | 一种基于区块链技术的数字媒体点播分账方法及系统 |
CN110474974A (zh) * | 2019-08-09 | 2019-11-19 | 全链通有限公司 | 存储空间处理方法、设备及计算机可读存储介质 |
US10868667B2 (en) * | 2018-11-06 | 2020-12-15 | GM Global Technology Operations LLC | Blockchain enhanced V2X communication system and method |
CN112765222A (zh) * | 2021-04-07 | 2021-05-07 | 暗链科技(深圳)有限公司 | 基于区块链的数据传输方法、存储介质及电子设备 |
CN113179320A (zh) * | 2021-04-27 | 2021-07-27 | 顶象科技有限公司 | 一种公信文件的存储方法和装置 |
CN116939228A (zh) * | 2023-07-27 | 2023-10-24 | 北京和德宇航技术有限公司 | 遥感影像的分布式处理方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841522A (zh) * | 2010-01-27 | 2010-09-22 | 北京邮电大学 | 一种sip网络与p2psip网络互通的方法和系统 |
CN104111958A (zh) * | 2013-04-22 | 2014-10-22 | 中国移动通信集团山东有限公司 | 一种数据查询方法及装置 |
CN104301933A (zh) * | 2014-10-17 | 2015-01-21 | 中国人民解放军理工大学 | 一种无线自组网中用于计算带宽和分配带宽的方法 |
CN105488675A (zh) * | 2015-11-25 | 2016-04-13 | 布比(北京)网络技术有限公司 | 一种区块链的分布式共享总账构建方法 |
CN106331039A (zh) * | 2015-07-01 | 2017-01-11 | 中国电力科学研究院 | 一种用于数据中心网络中内容连通的实现方法 |
CN106844399A (zh) * | 2015-12-07 | 2017-06-13 | 中兴通讯股份有限公司 | 分布式数据库系统及其自适应方法 |
CN107885612A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 数据处理方法和系统及装置 |
WO2018064962A1 (zh) * | 2016-10-08 | 2018-04-12 | 腾讯科技(深圳)有限公司 | 数据存储方法、电子设备和计算机非易失性存储介质 |
-
2018
- 2018-05-11 CN CN201810451362.0A patent/CN108737534B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101841522A (zh) * | 2010-01-27 | 2010-09-22 | 北京邮电大学 | 一种sip网络与p2psip网络互通的方法和系统 |
CN104111958A (zh) * | 2013-04-22 | 2014-10-22 | 中国移动通信集团山东有限公司 | 一种数据查询方法及装置 |
CN104301933A (zh) * | 2014-10-17 | 2015-01-21 | 中国人民解放军理工大学 | 一种无线自组网中用于计算带宽和分配带宽的方法 |
CN106331039A (zh) * | 2015-07-01 | 2017-01-11 | 中国电力科学研究院 | 一种用于数据中心网络中内容连通的实现方法 |
CN105488675A (zh) * | 2015-11-25 | 2016-04-13 | 布比(北京)网络技术有限公司 | 一种区块链的分布式共享总账构建方法 |
CN106844399A (zh) * | 2015-12-07 | 2017-06-13 | 中兴通讯股份有限公司 | 分布式数据库系统及其自适应方法 |
CN107885612A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 数据处理方法和系统及装置 |
WO2018064962A1 (zh) * | 2016-10-08 | 2018-04-12 | 腾讯科技(深圳)有限公司 | 数据存储方法、电子设备和计算机非易失性存储介质 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10868667B2 (en) * | 2018-11-06 | 2020-12-15 | GM Global Technology Operations LLC | Blockchain enhanced V2X communication system and method |
CN109683809B (zh) * | 2018-11-19 | 2021-08-31 | 深圳市艾锐达光电有限公司 | 一种数据存储方法及终端 |
CN109683809A (zh) * | 2018-11-19 | 2019-04-26 | 深圳市艾锐达光电有限公司 | 一种数据存储方法及终端 |
CN109618190A (zh) * | 2018-12-07 | 2019-04-12 | 深圳市云歌人工智能技术有限公司 | 基于推广视频设置及获取奖励的方法、装置以及存储介质 |
CN110049109A (zh) * | 2019-03-26 | 2019-07-23 | 湖南天河国云科技有限公司 | 区块链共享存储的核算方法、系统和计算机可读存储介质 |
CN110049109B (zh) * | 2019-03-26 | 2022-04-01 | 湖南天河国云科技有限公司 | 区块链共享存储的核算方法、系统和计算机可读存储介质 |
CN110113672A (zh) * | 2019-06-05 | 2019-08-09 | 上海剧链信息技术有限公司 | 一种基于区块链技术的数字媒体点播分账方法及系统 |
CN110474974A (zh) * | 2019-08-09 | 2019-11-19 | 全链通有限公司 | 存储空间处理方法、设备及计算机可读存储介质 |
CN112765222B (zh) * | 2021-04-07 | 2021-07-20 | 暗链科技(深圳)有限公司 | 基于区块链的数据传输方法、存储介质及电子设备 |
CN112765222A (zh) * | 2021-04-07 | 2021-05-07 | 暗链科技(深圳)有限公司 | 基于区块链的数据传输方法、存储介质及电子设备 |
CN113179320A (zh) * | 2021-04-27 | 2021-07-27 | 顶象科技有限公司 | 一种公信文件的存储方法和装置 |
CN116939228A (zh) * | 2023-07-27 | 2023-10-24 | 北京和德宇航技术有限公司 | 遥感影像的分布式处理方法、装置、设备及存储介质 |
CN116939228B (zh) * | 2023-07-27 | 2024-07-23 | 北京和德宇航技术有限公司 | 遥感影像的分布式处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108737534B (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108737534A (zh) | 一种基于区块链的数据传输方法、装置、区块链系统 | |
CN108712488A (zh) | 一种基于区块链的数据处理方法、装置、区块链系统 | |
CN107682397B (zh) | 客户资源获取方法、装置、终端设备及存储介质 | |
CN106060036B (zh) | 去中心化共识方法及装置 | |
CN108510389A (zh) | 基于区块链的智能合约调用方法、设备及可读存储介质 | |
CN103607424B (zh) | 一种服务器连接方法及服务器系统 | |
CN104539713B (zh) | 业务请求处理方法和装置 | |
CN106874361B (zh) | 应用于海关申报的数据处理方法和装置 | |
CN109076026A (zh) | 用于基于等待时间排队的系统和方法 | |
CN111967610A (zh) | 基于区块链的联邦学习激励方法、装置、设备及存储介质 | |
CN107918864A (zh) | 电子保单生成方法、装置、计算机设备及存储介质 | |
CN107302488A (zh) | 虚拟物品的分配方法、系统及服务器 | |
CN108769083A (zh) | 基于分布式服务器的登录方法、装置及系统 | |
CN112035542B (zh) | 信息查询方法、装置、电子设备及可读存储介质 | |
CN107404541A (zh) | 一种对等网络传输邻居节点选择的方法及系统 | |
CN106953842A (zh) | 一种直播平台的消息处理方法和装置 | |
CN104125303B (zh) | 数据读写请求方法、客户端及系统 | |
CN106302122A (zh) | 虚拟物品管理方法及装置 | |
CN105472593A (zh) | 实现移动终端上网流量借用的方法及系统 | |
CN107944677A (zh) | 业绩追踪方法、应用服务器及计算机可读存储介质 | |
CN110532077A (zh) | 任务处理方法、装置及存储介质 | |
CN108452527A (zh) | 电子书问题的答题方法、电子设备及计算机存储介质 | |
CN106056436A (zh) | 一种数据回退方法,装置及系统 | |
CN108112268A (zh) | 管理与自动扩展组相关的负载平衡器 | |
CN108765142A (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 |