CN113900598A - 基于区块链的数据存储方法、装置、设备以及存储介质 - Google Patents
基于区块链的数据存储方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN113900598A CN113900598A CN202111509703.3A CN202111509703A CN113900598A CN 113900598 A CN113900598 A CN 113900598A CN 202111509703 A CN202111509703 A CN 202111509703A CN 113900598 A CN113900598 A CN 113900598A
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- party
- participating
- parties
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种基于区块链的数据存储方法、装置、设备以及存储介质,涉及区块链技术领域,可用于云计算和云服务。具体实现方案为:将待存储数据切分为至少两个数据片;向区块链网络发起存储方招募事务请求,以使区块链节点响应于所述存储方招募事务请求,调用租赁智能合约,根据应答所述存储方招募事务请求的参选存储方的参选信息,从所述参选存储方中确定至少两个目标存储方;获取所述区块链节点确定的所述至少两个目标存储方,并将不同数据片存储至不同目标存储方。通过本公开的技术,能够提高数据存储的安全性。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及区块链技术,可用于云计算和云服务。
背景技术
随着计算机技术的发展,海量隐私、高价值数据需要安全存储。数据拥有方面临巨大的存储压力,需要一种存储服务,利用闲置的存储资源,对数据拥有方所生成的数据进行存储。其中,如何保证数据存储的安全性至关重要。
发明内容
本公开提供了一种基于区块链的数据存储方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种基于区块链的数据存储方法,包括:
将待存储数据切分为至少两个数据片;
向区块链网络发起存储方招募事务请求,以使区块链节点响应于所述存储方招募事务请求,调用租赁智能合约,根据应答所述存储方招募事务请求的参选存储方的参选信息,从所述参选存储方中确定至少两个目标存储方;
获取所述区块链节点确定的所述至少两个目标存储方,并将不同数据片存储至不同目标存储方。
根据本公开的另一方面,提供了一种基于区块链的数据存储方法,包括:
响应于数据拥有方发起的存储方招募事务请求,获取应答所述存储方招募事务请求的参选存储方的参选信息;
调用租赁智能合约,根据所述参选存储方的参选信息,从所述参选存储方中确定至少两个目标存储方;
向所述数据拥有方反馈所述至少两个目标存储方。
根据本公开的另一方面,提供了一种电子设备,该电子设备包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任一实施例所述的基于区块链的数据存储方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行本公开任一实施例所述的基于区块链的数据存储方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例提供的一种基于区块链的数据存储方法的流程图;
图2是根据本公开实施例提供的另一种基于区块链的数据存储方法的流程图;
图3是根据本公开实施例提供的另一种基于区块链的数据存储方法的流程图;
图4是根据本公开实施例提供的另一种基于区块链的数据存储方法的流程图;
图5是根据本公开实施例提供的另一种基于区块链的数据存储方法的流程图;
图6是根据本公开实施例提供的另一种基于区块链的数据存储方法的流程图;
图7A是根据本公开实施例提供的一种基于区块链的数据存储方法的信令图;
图7B是根据本公开实施例提供的一种基于区块链的数据存储方法的原理图;
图8是根据本公开实施例提供的一种基于区块链的数据存储装置的结构示意图;
图9是根据本公开实施例提供的另一种基于区块链的数据存储装置的结构示意图;
图10是用来实现本公开实施例的基于区块链的数据存储方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开实施例提供的一种基于区块链的数据存储方法的流程图。本公开实施例适用于基于区块链技术对数据进行存储的情况。整套基于区块链的数据存储方法由数据拥有方、多个存储方、以及区块链网络中的节点相互配合来执行。其中,所谓数据拥有方即为需要借助存储方来存储其所拥有的数据的一方;存储方即为具有丰富存储资源的一方,可专门用于存储数据;进一步的,区块链网络中的节点能够与数据拥有方和存储方交互,对数据拥有方和存储方之间的存储交易进行撮合。
本实施例中基于区块链的数据存储方法可以由基于区块链的数据存储装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于承载数据拥有方的计算设备中。如图1所示,本实施例提供的基于区块链的数据存储方法可以包括:
S101,将待存储数据切分为至少两个数据片。
其中,所谓待存储数据可以是数据拥有方需要借助数据存储方进行存储的数据。
在本实施例中,数据拥有方有数据存储需求时,可以是将待存储数据先切分成多个数据片,其中,每个数据片中包含的数据大小(即数据片的数据量)可以相同也可以不同。
可选的,数据拥有方切分待存储数据的方式可以是:根据预设数量,对待存储数据进行等份切分或随机切分,得到预设数量个数据片。例如,若预设数量为4,且待存储数据的数据量为2G,则此时可以将2G的待存储数据等份切分为4个500M大小的数据片,或随机切分出4个数据片,如4个数据片大小分别为100M、300M、500M和1.1G。还可以是基于预设数据量,将待存储数据划分为至少两个数据片。例如,若预设数据量为500M,且待存储数据的数据量为2G,则此时可以将2G的待存储数据切分为4个500M大小的数据片。需要说明的是,本实施例中,数据拥有方还可以根据实际需求,采用其他方式进行数据片的切分,对此不进行限定。
S102,向区块链网络发起存储方招募事务请求,以使区块链节点响应于存储方招募事务请求,调用租赁智能合约,根据应答存储方招募事务请求的参选存储方的参选信息,从参选存储方中确定至少两个目标存储方。
其中,存储方招募事务请求可以是数据拥有方在具有数据存储需求时向区块链网络所发起的请求。可选的,该存储方招募事务请求中可以包括招募需求,该招募需求可以包括但不限于:数据拥有方的标识信息、待存储的一个数据片的数据量、以及存储至少两个数据片所期望的存储方的数量。可选的,存储方招募事务请求中的招募需求还可以包括其他信息,比如待存储数据的数据结构,数据拥有方提供的激励元素,数据拥有方指定的一些存储方的标识信息等。
所谓租赁智能合约可以是基于插件机制所编写的代码段,专门用于处理数据拥有方和存储方之间数据存储交易等的相关事宜。例如,基于租赁智能合约对数据拥有方和存储方之间的数据存储交易进行撮合,以及将数据拥有方和存储方之间的存储关系记录在租赁智能合约中等。
所谓参选存储方可以是对数据拥有方发起的存储方招募事务请求进行应答的可选存储方,也就是说想要对数据拥有方的数据进行存储的一方。其中,可选存储方为能够提供存储服务的存储方。其中,参选存储方的数量通常为多个。所谓参选存储方的参选信息可以包括但不限于:参选存储方的标识信息和参选存储方的剩余存储容量,即其能够提供的存储量)等。所谓目标存储方可以是从参选存储方选择出的最终存储数据拥有方数据的存储方。
可选的,在本实施例中,数据拥有方在具有数据存储需求时,可以调用租赁智能合约,执行生成存储方招募事务请求的相关逻辑,生成存储方招募事务请求,并将存储方招募事务请求发送至区块链网络。其中,若数据拥有方为区块链节点,则此时该数据拥有方可以直接调用租赁智能合约向区块链网络发起存储方招募请求;若该数据拥有方不是区块链节点,则此时数据拥有方可以通过其具有连接关系的区块链节点,调用租赁智能合约向区块链网络发起存储方招募请求。
相应的,区块链网络中的区块链节点接收并响应该存储方招募事务请求,根据存储方的招募需求和参选存储方的参选信息,调用租赁智能合约,执行撮合数据拥有方和存储方的逻辑(即确定数据拥有方匹配的数据存储方的逻辑),从多个参选存储方中确定出至少两个目标存储方。
S103,获取区块链节点确定的至少两个目标存储方,并将不同数据片存储至不同目标存储方。
可选的,在本实施例中,区块链节点在确定出至少两个目标存储方后,会将确定的目标存储方(如目标存储方标识)反馈给发起该存储方招募事务请求的数据拥有方。相应的,数据拥有方即可获取区块链节点确定的至少两个目标存储方。可选的,由于本实施例中的目标存储方的数量为多个,所以多个目标存储方可以通过列表的格式表示。
可选的,在本实施例中,区块链节点还可以将目标存储方的参选信息,如剩余存储容量等一并反馈给数据拥有方。相应的,数据拥有方可以在区块链节点反馈的目标存储方数量较多的情况下,基于获取的目标存储方的参选信息,对获取的多个目标存储方进行筛选,确定最终执行数据片存储操作的目标存储方。
本实施例数据拥有方在获取到目标存储方后,可以为每个数据片匹配一个或多个对应目标存储方,即建立数据片与目标存储方之间的关联关系。例如,可以是根据每个目标存储方的剩余存储容量,以及每个数据片的实际存储量,确定每个数据片对应的目标存储方(即存储每个数据片的目标存储方)。进而基于目标存储方的标识信息,将每个数据片发送至其对应的目标存储方进行存储。例如,数据拥有方可以针对每个数据片,发起包含该数据片的数据存储请求,并基于目标存储方的标识信息,将数据存储请求发送至该数据片对应的目标存储方,以使目标存储方接收并响应数据拥有方发送的数据存储请求,在本地存储数据存储请求中包含的数据片。
可选的,为了保证数据拥有方数据的私密性和安全性,数据拥有方可以将其数据片进行加密后发送至目标存储方进行存储。
本实施例的技术方案,数据拥有方将待存储数据切分为多个数据片,并向区块链网络发起存储方招募事务请求,以使区块链节点调用租赁智能合约,从参选存储方中调度目标存储方,反馈给数据拥有方,以便于数据拥有方将不同数据片存储至不同目标存储方。本方案中,数据拥有方可以对需要存储的数据进行分片,以将数据分散存储于多个不同的目标存储方中,即实现去中心化的数据存储,提高了数据存储的安全性。
进一步的,在本实施例中,数据拥有方向区块链网络发起存储方招募事务请求的过程还可以包括:根据数据片的切分数量和数据量,向区块链网络发起存储方招募事务请求。其中,数据片的切分数量可以是待存储数据切分后的数据片的个数。数据片的数据量可以是切分后的数据片对应的数据大小。具体的,若切分后的各个数据片的数据量不等,则该数据片的数据量可以是包括各个数据片的数据量,也可以从各个数据片的数据量中取最大数据量等。具体的,数据拥有方可以是根据数据片的切分数量和数据量,调用租赁智能合约,发起包含数据片的切分数量和数据量的存储方招募事务请求。在存储方招募事务请求中添加数据片的切分数量和数据量,便于区块链节点快速且精准的确定目标存储方,即避免出现确定的目标存储方出现存储资源不足或存储资源浪费的情况。
图2是根据本公开实施例提供的另一种基于区块链的数据存储方法的流程图。本实施例在上述实施例的基础上,进一步对如何“将待存储数据切分为至少两个数据片”进行详细解释说明。如图2所示,本实施例提供的基于区块链的数据存储方法可以包括:
S201,将待存储数据切分为至少两个原始数据块。
其中,原始数据块可以是比数据片更细粒度的数据单元。可选的,一个数据片中可以包括至少一个原始数据块。
本实施例可以是根据预设数量,对待存储数据进行等份切分或随机切分,得到预设数量的原始数据块。例如,若预设数量为10,且待存储数据的数据量为2G,则此时可以将2G的待存储数据等份切分为10个200M大小的原始数据块,或随机切分出10个原始数据块。还可以是基于预设数据量,将待存储数据划分为至少两个原始数据块。例如,若预设数据量为100M,且待存储数据的数据量为2G,则此时可以将2G的待存储数据切分为20个100M大小的原始数据块。需要说明的是,本实施例中,数据拥有方还可以根据实际需求,采用其他方式进行原始数据块的切分,对此不进行限定。
S202,基于备份策略,对至少两个原始数据块进行备份,得到至少两个备份数据块。
其中,备份策略可以是对原始数据块进行备份的规则,例如,可以是是将原始数据块备份多少份。该备份策略可以是数据拥有方根据实际需求预先设置的,可以针对不同的待存储数据设置的不同的备份策略,还可以是设置固定的备份策略。
可选的,数据拥有方可以基于预先设置的备份策略,对每个原始数据块进行备份,备份后的各数据块即为备份数据块。例如,若原始数据块为5个,备份策略为将原始数据块备份1份,则对每个原始数据块进行一次复制,得到的5个复制后的原始数据块即为备份数据块。
S203,对不同的原始数据块和备份数据块进行组合,得到至少两个数据片。
可选的,本实施例在对原始数据块和备份数据块进行组合时,一个数据片中包括的数据块可以都是原始数据块;也可以都是备份数据块;还可以一部分是原始数据块,一部分是备份数据块。各数据片中包含的数据块的数量可以相同也可以不同。需要说明的是,为了达到相同数据在不同存储方备份存储的目的,原始数据块及其对应的备份数据块不包含在一个数据片中。
具体的,对原始数据和备份数据进行组合的策略有很多,对此不进行限定。例如,可以是根据各个数据块(即原始数据块和备份数据块)的数据量以及一个数据片的预设数据量,对原始数据块和备份数据块进行组合,以使每个数据片中包含的数据块的数据量尽可能达到数据片的预设数据量。还可以是将原始数据块和备份数据块等份划分为预设数据片数量对应的份数,并将划分后的每一份数据块作为一个数据片。也可以是在保证原始数据块及其对应的备份数据块不在一个数据片的前提下,将原始数据块和备份数据块进行随机组合,得到至少两个数据片等。
S204,向区块链网络发起存储方招募事务请求,以使区块链节点响应于存储方招募事务请求,调用租赁智能合约,根据应答存储方招募事务请求的参选存储方的参选信息,从参选存储方中确定至少两个目标存储方。
S205,获取区块链节点确定的至少两个目标存储方,并将不同数据片存储至不同目标存储方。
本公开实施例的方案,数据拥有方先将待存储数据切分为多个原始数据块,结合备份策略对原始数据块进行备份后,将原始数据块和备份数据块组合,得到多个数据片,并向区块链网络发起存储方招募事务请求,以使区块链节点调用租赁智能合约,从参选存储方中调度目标存储方,反馈给数据拥有方,以便于数据拥有方将不同数据片存储至不同目标存储方。本方案将待存储数据分块备份多份后,再组合分散存储于多个不同的目标存储方中,在实现去中心化的数据存储的前提下,更细粒度的提高了数据的安全性,即当某一目标存储方出现故障时,还能够从基于更细粒度的备份数据来恢复待存储数据。
可选的,在本实施例中,为了提高切分后的每个数据块的数据私密性和安全性,切分后的各原始数据块可以是加密后的数据块。其中,生成原始数据块的第一种可实施方式为:对待存储数据进行加密,得到加密数据;将加密数据切分为至少两个原始数据块。具体的,先采用预设的加密算法对待存储数据进行整体加密后,再按照一定的规则,将加密后的待存储数据(即加密数据)切分成至少两个原始数据块。第二种可实施方式为:将待存储数据切分为至少两个切分数据块;分别对至少两个切分数据块进行加密,得到至少两个原始数据块。具体的,先按照一定的规则,将待存储数据进行数据块的切分,再按照预设的加密算法对切分后的数据块(即切分数据块)进行加密,得到加密后的切分数据块,即原始数据块。本实施例可以根据实际需求来选择灵活上述任一方式来执行。需要说明的是,第一种可实施方式的优势在于生成原始数据块的过程中,只需执行一次加密操作,提高了生成原始数据块的效率。第二种可实施方式的优势在于,可以基于不同的加密算法对不同的切分数据块进行加密,进一步提高了生成的原始数据块的安全性,即使某一原始数据块的加密算法被破解,也不会影响其他原始数据块的安全性。
图3是根据本公开实施例提供的另一种基于区块链的数据存储方法的流程图。本实施例在上述实施例的基础上,进一步对如何“将不同数据片存储至不同目标存储方”进行详细解释说明。如图3所示,本实施例提供的基于区块链的数据存储方法可以包括:
S301,将待存储数据切分为至少两个数据片。
S302,向区块链网络发起存储方招募事务请求,以使区块链节点响应于存储方招募事务请求,调用租赁智能合约,根据应答存储方招募事务请求的参选存储方的参选信息,从参选存储方中确定至少两个目标存储方。
S303,获取区块链节点确定的至少两个目标存储方。
S304,为目标存储方分配待存储的数据片。
可选的,本实施例中数据拥有方已经将待存储数据切分为了多个数据片,且区块链节点也为该待存储数据确定了多个目标存储方。为了将待存储数据分散存储在不同的目标存储方中,此时数据拥有方可以需要先为不同的目标存储方分配其需要存储的数据片。具体的,为目标存储方分配待存储的数据片的方式有很多,例如,可以是将切分后的至少两个数据片随机分配给不同的目标存储方。还可以是根据切分后的每个数据片的数据量,以及各个目标存储方能够提供的剩余存储容量,来为各个目标存储方分配其需要存储的数据片。若区块链节点确定的目标存储方的数量较多时,数据拥有方根据目标存储方的参选信息,对区块链节点确定的目标存储方进行筛选,并将切分后的多个数据片分配给筛选后的目标存储方等。需要说明的时,本实施例还可以采用其他方式来为目标存储方分配待存储的数据片,对此本实施例不进行限定。
S305,根据目标存储方的标识信息,生成目标存储方的加密密钥。
其中,目标存储方的标识信息可以是唯一表征该目标存储方的信息,例如,可以是目标存储方的身份标识号(Identity document,ID)。
可选的,本实施例可以针对每一目标存储方,根据其标识信息,按照预设的密钥派生规则,得到该标识信息对应的加密密钥。示例性的,可以是采用数据拥有方的私钥对目标存储方的标识信息进行加密,得到该目标存储方的加密密钥。还可以是采用预设的加密算法对目标存储方的标识信息进行加密,如生成一个随机数,基于该随机数对目标存储方的标识信息进行加密,得到该目标存储方的加密密钥等。还可以采用其他方式为目标存储方派生加密密钥,对此不进行限定。
S306,根据目标存储方的加密密钥,对目标存储方待存储的数据片进行加密。
具体的,本实施例可以是针对每一个目标存储方,基于其加密密钥,按照预设加密规则,对该目标存储方需要存储的数据片进行加密。
S307,将加密后的数据片存储于对应的目标存储方。
可选的,本实施例可以直接将加密后的数据片发送至其对应分配的目标存储方,以使该目标存储方存储加密后的数据片。
需要说明的是,本实施例中加密密钥虽然是目标存储方对应的加密密钥,但是对于目标存储方来说其不知道该加密密钥的具体是什么。也就是说,对于目标存储方来说,其无法获取自身的加密密钥,进而无法对其中存储的加密后的数据片进行解密。
本申请实施例的方案,数据拥有方在获取区块链节点基于租赁智能合约确定的多个目标存储方后,为不同的目标存储方分配需要存储的数据片,并为不同的目标存储方派生加密密钥,以基于该加密密钥对其待存储的数据片进行加密后,发送至对应的目标存储方进行存储。本实施例,将不同目标存储方的数据片采用不同目标存储方的加密密钥进行加密,且不同目标存储方的加密密钥对于存储方来说是不可知的,极大的提高了存储在目标存储方的数据片的安全性。
可选的,在本实施例中,若数据片的生成方式是将待存储数据切分为至少两个原始数据块,基于备份策略,对至少两个原始数据块进行备份,并对不同的原始数据块和备份后的数据块(即备份数据块)进行组合得到的,则本实施例执行将加密后的数据片存储于对应的目标存储方时,还可以是对加密后的数据片中的原始数据块和/或备份数据块进行乱序处理;将乱序处理后的数据片存储于对应的目标存储方。具体的,针对每一个数据片,对其中包含的各个数据块按照一定乱序规则(如随机乱序)重新排序,并将重新排序后的数据片发送至对应的目标存储方进行存储。本实施例对数据片中的各个数据块进行乱序排列,即使所有的数据块都被窃取,由于数据块在数据片中的顺序是乱序的,对于窃取方也无法恢复出待存储数据。进一步提高了待存储数据的安全性。
图4是根据本公开实施例提供的另一种基于区块链的数据存储方法的流程图。本公开实施例适用于基于区块链技术对数据进行存储的情况。整套基于区块链的数据存储方法由数据拥有方、多个存储方、以及区块链网络中的节点相互配合来执行。其中,数据的分片和存储方式通过上述任一实施例实现。本实施例中基于区块链的数据存储方法可以由区块链网络中的节点执行,例如,可以由区块链网络中的区块生成节点执行。具体的,该方法可以由基于区块链的数据存储装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于承载区块链节点的计算设备中。如图4所示,本实施例提供的基于区块链的数据存储方法可以包括:
S401,响应于数据拥有方发起的存储方招募事务请求,获取应答存储方招募事务请求的参选存储方的参选信息。
可选的,数据拥有方在具有数据存储需求时,可以基于租赁智能合约,向区块链网络发起存储方招募事务请求。提供存储服务的各存储方可以基于区块链网络获取该存储方招募事务请求,并结合自身因素,比如剩余存储空间等决定是否对数据拥有方的存储方招募事务请求进行应答。对于决定对数据拥有方的存储方招募事务请求进行应答的存储方(即参选存储方),会基于其参选信息,生成针对该存储方招募请求的应答消息发送到区块链网络。相应的,区块链节点也可以从区块链网络中获取并响应数据拥有方发起的存储方招募事务请求,进而获取应答了该存储方招募请求的参选存储方的参选信息。其中,若可选存储方不是区块链网络中的节点,则区块链节点在获取到数据拥有方的存储方招募事务请求后,可以将数据拥有方的存储方招募事务请求告知可选存储方;相应的,参选存储方的应答消息可以直接反馈至该区块链节点。若可选存储方是区块链网络中的节点,则可选存储方可以直接从区块链网络中获取到数据拥有方的存储方招募事务请求。相应的,参选存储方的应答消息可以直接反馈至区块链网络。
可选的,区块链节点获取参选存储方的参选信息时,还可以是获取在截止时间内应答存储方招募事务请求的参选存储方。可选的,截止时间可以根据数据拥有方存储数据的紧急程度、存储方招募事务请求的发起时间、以及默认时长等确定。本实施例中结合紧急程度等确定截止时间,可满足不同数据拥有方的存储需求,比如能够使具有紧急数据存储需求的数据拥有方可快速将数据存储至存储方中。
S402,调用租赁智能合约,根据参选存储方的参选信息,从参选存储方中确定至少两个目标存储方。
可选的,区块链节点在获取到应答该存储方招募事务请求的参选存储方的参选信息之后,可以调用租赁智能合约,执行确定目标存储方的代码逻辑,以从参选存储方中选择目标存储方。
可选的,区块链节点可以根据存储方招募事务请求中的招募需求(如数据拥有方的标识信息、待存储的一个数据片的数据量、以及期望的存储方的数量等)和参选存储方的参选信息(如参选存储方的标识信息和参选存储方的剩余存储容量等),调用租赁智能合约,执行撮合数据拥有方和存储方的逻辑(即确定数据拥有方匹配的数据存储方的逻辑),从多个参选存储方中确定出至少两个目标存储方。
具体的,从参选存储方中选择目标存储方的代码逻辑可以有很多,对此本实施例不进行限定,一种可实施方式是仅根据参选存储方的参选信息来确定目标存储方,例如,根据参选信息中参选存储方的剩余存储容量,对参选存储方进行排序,选择剩余存储容量大于预设数值,或排序靠前的预设多个参选存储方,作为目标存储方。
另一种可实施方式是根据参选存储方的参选信息以及招募事务请求中的招募需求,来确定目标存储方。例如,可以是根据招募需求中的待存储的一个数据片的数据量,以及参选信息中参选存储方的存剩余存储容量,选择存储空间充足的参选存储方,作为目标存储方反馈给数据拥有方。还可以是根据参选信息中参选存储方的剩余存储容量,对各参选存储方按照剩余存储容量的大小进行排序,进而根据招募需求中的所期望的存储方的数量,选择排序靠前的该数量对应的参选存储方作为目标存储方。还可以是根据招募需求中的待存储的一个数据片的数据量,以及参选信息中参选存储方的剩余存储容量,选择存储空间充足的参选存储方,再结合招募需求中所期望的存储方的数量,对存储空间充足的参选存储方进行筛选,确定出期望存储方数量对应个数的目标存储方。其中,筛选规则可以是按照存储空间从大到小的顺序筛选,还可以是按照存储方的可信度和稳定性等因素进行筛选等。
可选的,在从参选存储方中选择目标存储方时,还可以是考虑招募需求中记录的待存储的数据结构类型,以及参选信息中记录的参选存储方能够存储的数据结构类型等。
S403,向数据拥有方反馈至少两个目标存储方。
其中,目标存储方用于供数据拥有方存储同一待存储数据切分后的不同数据片。可选的,区块链节点在确定目标存储方之后,可以向数据拥有方反馈目标存储方,例如可以向数据拥有方反馈目标存储方的标识信息、IP地址等,以使数据拥有方将待存储数据切分为多个数据片后,存储于不同的目标存储。具体的,数据拥有方如何实现对待存储数据分片,以及如何将不同数据片存储在不同目标存储方的过程在上述实施例已经进行了详细的介绍,再此本实施例不进行赘述。
进一步的,区块链节点还可以向数据拥有方反馈目标存储方的标识信息以及目标存储方的参选信息等,以便目标存储方的数量较多时,数据拥有方从目标存储方中选择最终存储方,并将待存储数据存储于最终存储方中等。
本公开实施例的方案,在获取到数据拥有方发起的数据存储事务请求,以及应答该请求的参选存储方的参选信息的情况下,通过调用租赁智能合约,结合参选信息,从参选存储方中确定至少两个目标存储方反馈给数据拥有方。本方案通过引入租赁智能合约,来撮合数据拥有方和存储方,即为数据拥有方调度到适合的目标存储方,保证了目标存储方调度过程的公平性和合理性,此外,数据拥有方将待存储数据分片后,分散存储于多个目标存储方,实现了去中心化的数据存储,提高了数据存储的安全性。
可选的,为便于后续查询和溯源等,本实施例可以将数据拥有方的标识信息、目标存储方所存储的数据片的标识信息和存储有效期、以及目标存储方的标识信息关联存储于租赁智能合约中。
其中,所谓数据片的标识信息用于表征分片数据,具有唯一性,例如可以是数据片的哈希值、数据片的序号等。具体的,数据拥有方在将不同数据片存储于不同目标存储方之后,可以向区块链节点发送关联存储请求。其中,关联存储请求中可以包括数据拥有方的标识信息、目标存储方所存储的数据片的标识信息和存储有效期、以及目标存储方的标识信息等。进而区块链节点获取关联存储请求之后,可以将关联存储请求存储于租赁智能合约中。或者,数据拥有方在将不同数据片存储于不同目标存储方之后,可以基于租赁智能合约发起关联存储请求,进而区块链节点获取关联存储请求之后,可以直接将其存储于区块链中。需要说明的是,本实施例中将数据拥有方和目标存储方之间的存储关系存储于租赁智能合约中,使得存储关系不易被篡改,保证了存储关系的安全性;同时,还可以便于后续查询和溯源等。
图5是根据本公开实施例提供的另一种基于区块链的数据存储方法的流程图。本实施例在上述实施例的基础上,进一步对如何“调用租赁智能合约,根据参选存储方的参选信息,从参选存储方中确定至少两个目标存储方”进行详细解释说明。如图5所示,本实施例提供的基于区块链的数据存储方法可以包括:
S501,响应于数据拥有方发起的存储方招募事务请求,获取应答存储方招募事务请求的参选存储方的参选信息。
S502,调用租赁智能合约,根据参选存储方的剩余存储容量,确定参选存储方的基础选择概率。
为进一步合理调度存储方,使系统中的存储资源得到充分利用,本实施例考虑了负载均衡,引入基础选择概率。
具体的,在获取到应答数据拥有方的存储方招募事务请求的参选存储方的参选信息之后,可以调度租赁智能合约,基于租赁智能合约中基础选择概率的执行逻辑,确定每一参选存储方的基础选择概率。
例如,可以将所有参选存储方的剩余存储容量之和,作为总容量;对于每一参选存储方,将该参选存储方的剩余存储容量与总容量之间的比值,作为该参选存储方的基础选择概率。又如,对于每一参选存储方,将该参选存储方的剩余存储容量与固定值之间的比值,作为该参选存储方的基础选择概率。
S503,根据参选存储方的基础选择概率,从参选存储方中确定至少两个目标存储方。
具体可以是,根据各个参选存储方的基础选择概率,对各参选存储方进行排序;根据排序结果,从参选存储方中选择目标存储方。例如,在存储方招募事务请求中包括期望节点数量的情况下,可以将排序在前的期望节点数量的参选存储方作为目标存储方。
S504,向数据拥有方反馈至少两个目标存储方。
其中,目标存储方用于供数据拥有方存储同一待存储数据切分后的不同数据片。
本实施例的技术方案,在获取到数据拥有方发起的数据存储事务请求,以及应答该请求的参选存储方的参选信息的情况下,通过调用租赁智能合约,结合参选存储方的剩余存储容量,确定参选存储方的基础选择概率,进而结合各参选存储方的基础选择概率,从参选存储方中确定至少两个目标存储方反馈给数据拥有方。本方案在选择目标存储方时,引入基础选择概率,即考虑了存储方的负载均衡,使系统中的存储资源得到充分利用,提高了目标存储方调度的合理性。为分布式存储数据提供了数据支撑。
图6是根据本公开实施例提供的另一种基于区块链的数据存储方法的流程图。本实施例在上述实施例的基础上,进一步对如何“确定存储方健康度”,以及“基于健康度来确定目标存储方”进行详细解释说明。如图6所示,本实施例提供的基于区块链的数据存储方法可以包括:
S601,响应于数据拥有方发起的存储方招募事务请求,获取应答存储方招募事务请求的参选存储方的参选信息。
S602,调用租赁智能合约,根据参选存储方的剩余存储容量,确定参选存储方的基础选择概率。
S603,调用租赁智能合约,根据参选存储方的历史任务完成情况和/或历史心跳情况,确定参选存储方的健康度。
其中,健康度可以是用于表征参选存储方稳定性的一种指标。可选的,健康度可以以分值的形式呈现;或者可以以类别等其他形式呈现,比如,按照健康度从高到低的顺序,可以将健康度分为红色、黄色和绿色三个等级。
需要说明的是,数据拥有方为确定存储方真正存储了其数据,通常数据拥有方在将数据发送至存储方,并等待一段时间(比如十分钟)后,可以通过区块链网络向存储方发起挑战,根据存储方应对挑战的情况,来确定存储方是否真正存储了其数据。所谓挑战即为数据拥有方为判断存储方是否真正存储了其数据的一种方式,可以以多种形式呈现,比如可以以事务请求形式呈现,如挑战可以是数据存储验证事务请求。所谓存储方应对挑战即为存储方向数据拥有方证明其已存储了相关数据的过程,如响应数据存储验证事务请求的过程。
所谓历史任务完成情况即为参选存储方一段时间内(比如最近一周内)应对数据拥有方挑战的情况,可以包括参选存储方一段时间内应对数据拥有方挑战的总次数(即应对总次数),以及成功应对挑战次数。历史心跳情况为参选存储方一段时间内为证明其存活性所发送的心跳情况,可以包括参选存储方一段时间内的心跳次数。
可选的,在获取到应答数据拥有方的存储方招募事务请求的参选存储方之后,可以从租赁智能合约中获取参选存储方的历史任务完成情况和/或历史心跳情况,并基于租赁智能合约中确定健康度的代码逻辑,根据参选存储方的历史任务完成情况和/或历史心跳情况,确定参选存储方的健康度。
一种可实施方式,对于每一参选存储方,可以基于健康度确定模型来确定该参选存储方的健康度。例如,可以将该参选存储方的历史任务完成情况和/或历史心跳情况输入至健康度确定模型,进而基于健康度确定模型的输出确定该参选存储方的健康度。
又一种可实施方式,根据参选存储方的历史任务完成情况,确定参选存储方的任务成功完成比例;根据参选存储方的历史心跳情况和期望心跳数据,确定参选存储方的心跳比例;根据参选存储方的任务成功完成比例和/或心跳比例,确定参选存储方的健康度。其中,期望心跳数据为预先设定的参选存储方一段时间内最大心跳次数。
具体可以是,对于每一参选存储方,将该参选存储方的历史任务完成情况中成功应对挑战次数和应对总次数之间的比值,作为该参选存储方的任务成功完成比例;将该参选存储方的历史心跳情况中心跳次数与设定的期望心跳次数之间的比值,作为该参选存储方的心跳比例。之后,可以将该参选存储方的任务成功完成比例或心跳比例,作为该参选存储方的健康度;或者,可以将该参选存储方的任务成功完成比例和心跳比例之和,作为该参选存储方的健康度;或者,还可以将该参选存储方的任务成功完成比例和第一权值的乘积,以及该参选存储方的心跳比例和第二权值的乘积相加之和,作为该参选存储方的健康度等。
又一种可实施方式,对于每一参选存储方,还可以根据该参选存储方的历史任务完成情况和/或历史心跳情况,以及该参选存储方的信任度等,来确定该参选存储方的健康度。其中,参选存储方的信任度可以是参选存储方所存储数据的所有数据拥有方对参选存储方的评价。
S604,根据参选存储方的健康度,更新参选存储方的基础选择概率。
可选的,对于每一参选存储方,可以采用基于S603所确定的该参选存储方的健康度乘以该参选存储方的基础选择概率,并将乘积作为该参选存储方更新后的基础选择概率。
又如,还可以将基于S603所确定的该参选存储方的健康度、该参选存储方的基础选择概率、以及该参选存储方的信任度等之间的乘积作为该参选存储方更新后的基础选择概率。
S605,根据更新后的参选存储方的基础选择概率,从参选存储方中确定至少两个目标存储方。
S606,向数据拥有方反馈至少两个目标存储方。
本公开实施例的技术方案,在获取到数据拥有方发起的存储方招募事务请求的情况下,通过调用租赁智能合约,根据参选存储方的历史任务完成情况和/或历史心跳情况来确定应答存储方招募事务请求的参选存储方的健康度,并基于所确定的健康度,为数据拥有方选择目标存储方,以便数据拥有方将待存储数据分片后,分散存储于不同目标存储方。上述方案,通过结合历史任务完成情况和历史心跳情况等不同维度数据来确定参选存储方的健康度,保证了健康度的合理性,通过引入租赁智能合约,基于健康度更新基础选择概率来对参选存储方进行筛选,在实现合理对存储方进行调度的情况下,保证了数据拥有方的数据存储安全。为分布式存储数据提供了数据支撑。
可选的,在上述实施例的基础上,作为一种可实施方式,所述根据参选存储方的参选信息,从参选存储方中确定至少两个目标存储方还可以是:根据存储方招募事务请求中的数据片的切分数量和数据量,以及参选存储方的剩余存储容量,对参选存储方进行筛选;从筛选后的参选存储方中确定至少两个目标存储方。具体的,存储方招募事务请求中包含数据片的切分数量和数据量,对于每一参选存储方的参选信息中记录的该参选方的剩余存储容量,可以确定该参选存储方的剩余存储容量是否等于或大于数据片的数据量;若否,则将该参选存储方剔除;若是,则可以基于上述实施例给出的目标存储方的确定逻辑,从筛选后的参选存储方中确定目标存储方。本实施例对参选存储方进行筛选,使得最终所确定的目标存储方能够容纳数据拥有方的分片数据,进而提高了目标存储方确定的准确性。
图7A是根据本公开实施例提供的一种基于区块链的数据存储方法的信令图;图7B是根据本公开实施例提供的一种基于区块链的数据存储方法的原理图。本实施例在上述实施例的基础上,给出了一种数据拥有方、存储方、以及区块链网络中的节点相互配合来执行数据存储的优选实例。如图7A-7B所示,本实施例提供的基于区块链的数据存储方法可以包括:
S701,数据拥有方将待存储数据切分为至少两个原始数据块。
可选的,本实施例数据拥有方可以通过下述两种方式来对待存储数据进行切分得到至少两个原始数据块。方式一、对待存储数据进行加密,得到加密数据;将加密数据切分为至少两个原始数据块。方式二、将待存储数据切分为至少两个切分数据块;分别对所述至少两个切分数据块进行加密,得到至少两个原始数据块。
示例性的,图7B给出的是采用方式一来对待存储数据进行切分,并将待存储数据切分为了5个原始数据块,即block1-block5。
S702,数据拥有方基于备份策略,对至少两个原始数据块进行备份,得到至少两个备份数据块。
示例性的,图7B示出的备份策略为双副本策略,即将待存储数据备份1份,图中第一行的block1-block5为切分后的原始数据块,第二行的block1-block5为备份后的备份数据块。
S703,数据拥有方对不同的原始数据块和备份数据块进行组合,得到至少两个数据片。
示例性的,如图7B所示,对原始数据块和备份数据块进行组合的结果可以是,将block1、block3- block5作为数据片1,将block2、block3和 block5作为数据片2,将block1、block2和block4作为数据片3。
S704,数据拥有方向区块链网络发起存储方招募事务请求。
S705,参选存储方获取并应答存储方招募请求,并反馈应答存储方招募事务请求的参选存储方的参选信息。
S706,区块链节点获取并响应于数据拥有方发起的存储方招募事务请求,获取应答存储方招募事务请求的参选存储方的参选信息。
S707,区块链节点调用租赁智能合约,根据参选存储方的参选信息,从参选存储方中确定至少两个目标存储方。
S708,区块链节点向数据拥有方反馈至少两个目标存储方。
示例性的,如图7B所示,区块链节点向数据拥有方反馈的目标存储方有3个,分别为存储节点1、存储节点2和存储节点3。
S709,数据拥有方获取区块链节点反10馈的目标存储方,并为目标存储方分配待存储的数据片。
示例性的,如图7B所示,数据拥有方为存储节点1分配的待存储的数据片为数据片1,为存储节点2分配的待存储的数据片为数据片2,为存储节点3分配的待存储的数据片为数据片3。
S710,数据拥有方根据目标存储方的标识信息,生成目标存储方的加密密钥。
S711,数据拥有方根据目标存储方的加密密钥,对目标存储方待存储的数据片进行加密。
示例性的,如图7B所示,以采用存储节点1的ID信息生成的加密密钥,对数据片1进行加密为例,加密后数据片1中的block1变为Enc(block1),block3变为Enc(block3),block4变为Enc(block4),block5变为Enc(block5)。
S712,数据拥有方对加密后的数据片中的原始数据块和/或备份数据块进行乱序处理。
示例性的,如图7B所示,加密后的数据片1中的Enc(block1)、Enc(block3)、Enc(block4)和Enc(block5)乱序处理后变为:Enc(block4)、Enc(block1)、Enc(block5)和Enc(block3);加密后的数据片2中的Enc(block2)、Enc(block3)和Enc(block5)乱序处理后变为: Enc(block3)、Enc(block5)和Enc(block2);加密后的数据片3中的Enc(block1)、Enc(block2)和Enc(block4)乱序处理后变为: Enc(block2)、Enc(block1)和Enc(block4)。
S713,数据拥有方将乱序处理后的数据片发送至对应的目标存储方。
示例性的,如图7B所示,将加密后的数据片1存储在存储节点1中,将加密后的数据片2存储在存储节点2中;将加密后的数据片3存储在存储节点3中。
S714,目标存储方获取并存储乱序处理后的数据片。
本实施例给出了数据拥有方、存储方、以及区块链网络中的节点相互配合来执行数据存储的优选实例,以实现将数据分散存储于多个不同的目标存储方中,即实现去中心化的数据存储,提高了数据存储的安全性。
图8是根据本公开实施例提供的一种基于区块链的数据存储装置的结构示意图。该装置可实现本公开实施例所述的基于区块链的数据存储方法。该装置可集成于承载数据拥有方的计算设备中。该基于区块链的数据存储装置800具体包括:
数据切分模块801,用于将待存储数据切分为至少两个数据片;
请求发起模块802,用于向区块链网络发起存储方招募事务请求,以使区块链节点响应于所述存储方招募事务请求,调用租赁智能合约,根据应答所述存储方招募事务请求的参选存储方的参选信息,从所述参选存储方中确定至少两个目标存储方;
数据获取模块803,用于获取所述区块链节点确定的所述至少两个目标存储方;
数据存储模块804,用于将不同数据片存储至不同目标存储方。
本实施例的技术方案,数据拥有方将待存储数据切分为多个数据片,并向区块链网络发起存储方招募事务请求,以使区块链节点调用租赁智能合约,从参选存储方中调度目标存储方,反馈给数据拥有方,以便于数据拥有方将不同数据片存储至不同目标存储方。本方案中,数据拥有方可以对需要存储的数据进行分片,以将数据分散存储于多个不同的目标存储方中,即实现去中心化的数据存储,提高了数据存储的安全性。
进一步的,上述数据切分模块801,包括:
切分单元,用于将待存储数据切分为至少两个原始数据块;
备份单元,用于基于备份策略,对所述至少两个原始数据块进行备份,得到至少两个备份数据块;
组合单元,用于对不同的原始数据块和备份数据块进行组合,得到至少两个数据片。
进一步的,上述切分单元具体用于:
对待存储数据进行加密,得到加密数据;
将所述加密数据切分为至少两个原始数据块。
进一步的,上述切分单元还具体用于:
将待存储数据切分为至少两个切分数据块;
分别对所述至少两个切分数据块进行加密,得到至少两个原始数据块。
进一步的,上述请求发起模块802具体用于:
根据数据片的切分数量和数据量,向区块链网络发起存储方招募事务请求。
进一步的,上述数据存储模块804包括:
数据片分配单元,用于为目标存储方分配待存储的数据片;
密钥生成单元,用于根据目标存储方的标识信息,生成所述目标存储方的加密密钥;
数据加密单元,用于根据目标存储方的加密密钥,对所述目标存储方待存储的数据片进行加密;
数据存储单元,用于将加密后的数据片存储于对应的目标存储方。
进一步的,上述数据存储单元具体用于:
对加密后的数据片中的原始数据块和/或备份数据块进行乱序处理;
将乱序处理后的数据片存储于对应的目标存储方。
图9是根据本公开实施例提供的另一种基于区块链的数据存储装置的结构示意图。该装置可实现本公开实施例所述的基于区块链的数据存储方法。该装置可集成于承载区块链网络中节点的计算设备中。该基于区块链的数据存储装置900具体包括:
信息获取模块901,用于响应于数据拥有方发起的存储方招募事务请求,获取应答所述存储方招募事务请求的参选存储方的参选信息;
存储方确定模块902,用于调用租赁智能合约,根据所述参选存储方的参选信息,从所述参选存储方中确定至少两个目标存储方;
信息发送模块903,用于向所述数据拥有方反馈所述至少两个目标存储方。
本公开实施例的方案,在获取到数据拥有方发起的数据存储事务请求,以及应答该请求的参选存储方的参选信息的情况下,通过调用租赁智能合约,结合参选信息,从参选存储方中确定至少两个目标存储方反馈给数据拥有方。本方案通过引入租赁智能合约,来撮合数据拥有方和存储方,即为数据拥有方调度到适合的目标存储方,保证了目标存储方调度过程的公平性和合理性,此外,数据拥有方将待存储数据分片后,分散存储于多个目标存储方,实现了去中心化的数据存储,提高了数据存储的安全性。
进一步的,上述存储方确定模块902包括:
概率确定单元,用于调用租赁智能合约,根据所述参选存储方的剩余存储容量,确定所述参选存储方的基础选择概率;
存储方确定单元,用于根据所述参选存储方的基础选择概率,从所述参选存储方中确定至少两个目标存储方。
进一步的,上述存储方确定模块902,还包括:
概率更新单元,用于根据所述参选存储方的健康度,更新所述参选存储方的基础选择概率。
进一步的,上述装置,还包括:
健康度确定模块,用于调用租赁智能合约,根据所述参选存储方的历史任务完成情况和/或历史心跳情况,确定所述参选存储方的健康度。
进一步的,所述健康度确定模块具体用于:
根据所述参选存储方的历史任务完成情况,确定所述参选存储方的任务成功完成比例;
根据所述参选存储方的历史心跳情况和期望心跳数据,确定所述参选存储方的心跳比例;
根据所述参选存储方的任务成功完成比例和/或心跳比例,确定所述参选存储方的健康度。
进一步的,上述存储方确定模块902具体用于:
根据所述存储方招募事务请求中的数据片的切分数量和数据量,以及所述参选存储方的剩余存储容量,对所述参选存储方进行筛选;
从筛选后的参选存储方中确定至少两个目标存储方。
进一步的,上述装置,还包括:
关联信息存储模块,用于将所述数据拥有方的标识信息、所述目标存储方所存储的数据片的标识信息和存储有效期、以及所述目标存储方的标识信息关联存储于所述租赁智能合约中。
进一步的,上述目标存储方用于供数据拥有方存储同一待存储数据切分后的不同数据片。
上述产品可执行本公开任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
本公开的技术方案中,所涉及的待存数据、历史任务完成情况和历史心跳情况等的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如基于区块链的数据存储方法。例如,在一些实施例中,基于区块链的数据存储方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的基于区块链的数据存储方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于区块链的数据存储方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (19)
1.一种基于区块链的数据存储方法,包括:
将待存储数据切分为至少两个数据片;
向区块链网络发起存储方招募事务请求,以使区块链节点响应于所述存储方招募事务请求,调用租赁智能合约,根据应答所述存储方招募事务请求的参选存储方的参选信息,从所述参选存储方中确定至少两个目标存储方;
获取所述区块链节点确定的所述至少两个目标存储方,并将不同数据片存储至不同目标存储方。
2.根据权利要求1所述的方法,其中,所述将待存储数据切分为至少两个数据片,包括:
将待存储数据切分为至少两个原始数据块;
基于备份策略,对所述至少两个原始数据块进行备份,得到至少两个备份数据块;
对不同的原始数据块和备份数据块进行组合,得到至少两个数据片。
3.根据权利要求2所述的方法,其中,所述将待存储数据切分为至少两个原始数据块,包括:
对待存储数据进行加密,得到加密数据;
将所述加密数据切分为至少两个原始数据块。
4.根据权利要求2所述的方法,其中,所述将待存储数据切分为至少两个原始数据块,包括:
将待存储数据切分为至少两个切分数据块;
分别对所述至少两个切分数据块进行加密,得到至少两个原始数据块。
5.根据权利要求1所述的方法,其中,所述向区块链网络发起存储方招募事务请求,包括:
根据数据片的切分数量和数据量,向区块链网络发起存储方招募事务请求。
6.根据权利要求1所述的方法,其中,所述将不同数据片存储至不同目标存储方,包括:
为目标存储方分配待存储的数据片;
根据目标存储方的标识信息,生成所述目标存储方的加密密钥;
根据目标存储方的加密密钥,对所述目标存储方待存储的数据片进行加密;
将加密后的数据片存储于对应的目标存储方。
7.根据权利要求6所述的方法,其中,所述将加密后的数据片存储于对应的目标存储方,包括:
对加密后的数据片中的原始数据块和/或备份数据块进行乱序处理;
将乱序处理后的数据片存储于对应的目标存储方。
8.一种基于区块链的数据存储方法,包括:
响应于数据拥有方发起的存储方招募事务请求,获取应答所述存储方招募事务请求的参选存储方的参选信息;
调用租赁智能合约,根据所述参选存储方的参选信息,从所述参选存储方中确定至少两个目标存储方;
向所述数据拥有方反馈所述至少两个目标存储方。
9.根据权利要求8所述的方法,其中,所述调用租赁智能合约,根据所述参选存储方的参选信息,从所述参选存储方中确定至少两个目标存储方,包括:
调用租赁智能合约,根据所述参选存储方的剩余存储容量,确定所述参选存储方的基础选择概率;
根据所述参选存储方的基础选择概率,从所述参选存储方中确定至少两个目标存储方。
10.根据权利要求9所述的方法,还包括:
根据所述参选存储方的健康度,更新所述参选存储方的基础选择概率。
11.根据权利要求10所述的方法,还包括:
调用租赁智能合约,根据所述参选存储方的历史任务完成情况和/或历史心跳情况,确定所述参选存储方的健康度。
12.根据权利要求11所述的方法,其中,所述根据所述参选存储方的历史任务完成情况和/或历史心跳情况,确定所述参选存储方的健康度,包括:
根据所述参选存储方的历史任务完成情况,确定所述参选存储方的任务成功完成比例;
根据所述参选存储方的历史心跳情况和期望心跳数据,确定所述参选存储方的心跳比例;
根据所述参选存储方的任务成功完成比例和/或心跳比例,确定所述参选存储方的健康度。
13.根据权利要求8所述的方法,其中,所述根据所述参选存储方的参选信息,从所述参选存储方中确定至少两个目标存储方,包括:
根据所述存储方招募事务请求中的数据片的切分数量和数据量,以及所述参选存储方的剩余存储容量,对所述参选存储方进行筛选;
从筛选后的参选存储方中确定至少两个目标存储方。
14.根据权利要求8所述的方法,还包括:
将所述数据拥有方的标识信息、所述目标存储方所存储的数据片的标识信息和存储有效期、以及所述目标存储方的标识信息关联存储于所述租赁智能合约中。
15.根据权利要求8-14中任一项所述的方法,其中,所述目标存储方用于供数据拥有方存储同一待存储数据切分后的不同数据片。
16.一种基于区块链的数据存储装置,包括:
数据切分模块,用于将待存储数据切分为至少两个数据片;
请求发起模块,用于向区块链网络发起存储方招募事务请求,以使区块链节点响应于所述存储方招募事务请求,调用租赁智能合约,根据应答所述存储方招募事务请求的参选存储方的参选信息,从所述参选存储方中确定至少两个目标存储方;
数据获取模块,用于获取所述区块链节点确定的所述至少两个目标存储方;
数据存储模块,用于将不同数据片存储至不同目标存储方。
17.一种基于区块链的数据存储装置,包括:
信息获取模块,用于响应于数据拥有方发起的存储方招募事务请求,获取应答所述存储方招募事务请求的参选存储方的参选信息;
存储方确定模块,用于调用租赁智能合约,根据所述参选存储方的参选信息,从所述参选存储方中确定至少两个目标存储方;
信息发送模块,用于向所述数据拥有方反馈所述至少两个目标存储方,以使所述数据拥有方将待存储数据切分为至少两个数据片,并将不同数据片存储在不同目标存储方。
18.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7或8-15中任一项所述的基于区块链的数据存储方法。
19.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7或8-15中任一项所述的基于区块链的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111509703.3A CN113900598B (zh) | 2021-12-10 | 2021-12-10 | 基于区块链的数据存储方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111509703.3A CN113900598B (zh) | 2021-12-10 | 2021-12-10 | 基于区块链的数据存储方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113900598A true CN113900598A (zh) | 2022-01-07 |
CN113900598B CN113900598B (zh) | 2022-10-28 |
Family
ID=79026153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111509703.3A Active CN113900598B (zh) | 2021-12-10 | 2021-12-10 | 基于区块链的数据存储方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113900598B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115017236A (zh) * | 2022-07-04 | 2022-09-06 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备及存储介质 |
CN116489224A (zh) * | 2023-06-19 | 2023-07-25 | 中国联合网络通信集团有限公司 | 多云容器调度方法、装置、设备及存储介质 |
CN116662453A (zh) * | 2023-08-01 | 2023-08-29 | 天津理工大学 | 基于区块链的数字资产存储方法 |
CN117082083A (zh) * | 2023-08-30 | 2023-11-17 | 杭州浩联智能科技有限公司 | 一种基于分布式物联网架构的数据存储方法、装置及介质 |
CN117648057A (zh) * | 2024-01-29 | 2024-03-05 | 瑞达可信安全技术(广州)有限公司 | 一种基于分布式存储的数据安全管理方法及系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108648084A (zh) * | 2018-05-18 | 2018-10-12 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的数据处理方法、装置、设备及存储介质 |
CN108681943A (zh) * | 2018-05-18 | 2018-10-19 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的数据处理方法、装置、设备及存储介质 |
CN108712488A (zh) * | 2018-05-11 | 2018-10-26 | 北京奇虎科技有限公司 | 一种基于区块链的数据处理方法、装置、区块链系统 |
CN110019235A (zh) * | 2017-12-29 | 2019-07-16 | 百度在线网络技术(北京)有限公司 | 基于区块链的数据存储、恢复方法、装置、设备及介质 |
CN110597824A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据存储方法以及装置 |
US20200175583A1 (en) * | 2019-04-10 | 2020-06-04 | Alibaba Group Holding Limited | Blockchain-based leasing |
CN111324902A (zh) * | 2018-12-14 | 2020-06-23 | 航天信息股份有限公司 | 一种基于区块链的数据存取方法、装置及系统 |
US20210157788A1 (en) * | 2019-10-15 | 2021-05-27 | Tencent Technology (Shenzhen) Company Limited | Data processing method and apparatus based on blockchain network, electronic device, and storage medium |
CN112988075A (zh) * | 2021-04-26 | 2021-06-18 | 睿至科技集团有限公司 | 一种通过区块链技术存储用户数据的方法及系统 |
CN112988764A (zh) * | 2021-05-14 | 2021-06-18 | 北京百度网讯科技有限公司 | 数据存储方法、装置、设备和存储介质 |
US20210209091A1 (en) * | 2020-09-29 | 2021-07-08 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Blockchain-Based Data Processing Method and Apparatus, Device, and Storage Medium |
CN113157648A (zh) * | 2021-04-28 | 2021-07-23 | 中国工商银行股份有限公司 | 基于区块链的分布式数据存储方法、装置、节点及系统 |
US20210326357A1 (en) * | 2020-09-17 | 2021-10-21 | Alipay (Hangzhou) Information Technology Co., Ltd. | Data processing methods, apparatuses, and devices |
-
2021
- 2021-12-10 CN CN202111509703.3A patent/CN113900598B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019235A (zh) * | 2017-12-29 | 2019-07-16 | 百度在线网络技术(北京)有限公司 | 基于区块链的数据存储、恢复方法、装置、设备及介质 |
CN108712488A (zh) * | 2018-05-11 | 2018-10-26 | 北京奇虎科技有限公司 | 一种基于区块链的数据处理方法、装置、区块链系统 |
CN108648084A (zh) * | 2018-05-18 | 2018-10-12 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的数据处理方法、装置、设备及存储介质 |
CN108681943A (zh) * | 2018-05-18 | 2018-10-19 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的数据处理方法、装置、设备及存储介质 |
CN111324902A (zh) * | 2018-12-14 | 2020-06-23 | 航天信息股份有限公司 | 一种基于区块链的数据存取方法、装置及系统 |
US20200175583A1 (en) * | 2019-04-10 | 2020-06-04 | Alibaba Group Holding Limited | Blockchain-based leasing |
CN110597824A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据存储方法以及装置 |
US20210157788A1 (en) * | 2019-10-15 | 2021-05-27 | Tencent Technology (Shenzhen) Company Limited | Data processing method and apparatus based on blockchain network, electronic device, and storage medium |
US20210326357A1 (en) * | 2020-09-17 | 2021-10-21 | Alipay (Hangzhou) Information Technology Co., Ltd. | Data processing methods, apparatuses, and devices |
US20210209091A1 (en) * | 2020-09-29 | 2021-07-08 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Blockchain-Based Data Processing Method and Apparatus, Device, and Storage Medium |
CN112988075A (zh) * | 2021-04-26 | 2021-06-18 | 睿至科技集团有限公司 | 一种通过区块链技术存储用户数据的方法及系统 |
CN113157648A (zh) * | 2021-04-28 | 2021-07-23 | 中国工商银行股份有限公司 | 基于区块链的分布式数据存储方法、装置、节点及系统 |
CN112988764A (zh) * | 2021-05-14 | 2021-06-18 | 北京百度网讯科技有限公司 | 数据存储方法、装置、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
RUINIAN LI等: "Blockchain for Large-Scale Internet of Things Data Storage and Protection", 《IEEE TRANSACTIONS ON SERVICES COMPUTING》 * |
夏沅: "区块链智能合约技术应用", 《中国金融》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115017236A (zh) * | 2022-07-04 | 2022-09-06 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备及存储介质 |
CN115017236B (zh) * | 2022-07-04 | 2023-03-21 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备及存储介质 |
CN116489224A (zh) * | 2023-06-19 | 2023-07-25 | 中国联合网络通信集团有限公司 | 多云容器调度方法、装置、设备及存储介质 |
CN116489224B (zh) * | 2023-06-19 | 2023-08-22 | 中国联合网络通信集团有限公司 | 多云容器调度方法、装置、设备及存储介质 |
CN116662453A (zh) * | 2023-08-01 | 2023-08-29 | 天津理工大学 | 基于区块链的数字资产存储方法 |
CN116662453B (zh) * | 2023-08-01 | 2023-11-03 | 天津理工大学 | 基于区块链的数字资产存储方法 |
CN117082083A (zh) * | 2023-08-30 | 2023-11-17 | 杭州浩联智能科技有限公司 | 一种基于分布式物联网架构的数据存储方法、装置及介质 |
CN117648057A (zh) * | 2024-01-29 | 2024-03-05 | 瑞达可信安全技术(广州)有限公司 | 一种基于分布式存储的数据安全管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113900598B (zh) | 2022-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113900598B (zh) | 基于区块链的数据存储方法、装置、设备以及存储介质 | |
US10657526B2 (en) | System and method to dynamically setup a private sub-blockchain based on agility of transaction processing | |
US10540209B2 (en) | Event-driven blockchain workflow processing | |
US20210351939A1 (en) | Parachain Data Synchronization Method, Device and Storage Medium | |
CN110168523A (zh) | 改变监测跨图查询 | |
CN106487486B (zh) | 业务处理方法和数据中心系统 | |
MX2012003721A (es) | Sistemas y metodos para analitica de datos graficos sociales para determinar conectividad dentro de una comunidad. | |
KR20230006033A (ko) | 연합 계산 처리 방법, 장치, 전자 기기 및 저장 매체 | |
CN104486407A (zh) | 编号的生成方法及装置 | |
WO2022048357A1 (zh) | 交易背书方法、装置及存储介质 | |
US10026067B2 (en) | Storage and recovery of digital data based on social network | |
CN108650289A (zh) | 一种基于区块链的管理数据的方法和装置 | |
CN113204598A (zh) | 一种数据同步方法、系统及存储介质 | |
CN112529400A (zh) | 一种数据处理方法、装置、终端和可读存储介质 | |
CN113918102B (zh) | 一种基于区块链的数据处理方法、装置、设备及存储介质 | |
CN115357939B (zh) | 一种隐私保护数据计算方法和设备 | |
CN111738837A (zh) | 一种信用卡额度处理方法及装置 | |
WO2016184341A1 (zh) | 一种业务处理方法和设备 | |
CN113032817B (zh) | 基于区块链的数据对齐方法、装置、设备和介质 | |
CN102868594B (zh) | 一种消息处理方法和装置 | |
CN114363094A (zh) | 一种数据分享方法、装置、设备及存储介质 | |
CN115204993A (zh) | 基于电子签证的公共资源电子交易管理方法及系统 | |
CN110489568B (zh) | 生成事件图的方法、装置、存储介质和电子设备 | |
CN112738213A (zh) | 基于区块链的任务需求响应方法、装置、系统及存储介质 | |
CN108551484B (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 |