CN111832063A - 基于pbft共识的个人健康数据存储方法及装置 - Google Patents
基于pbft共识的个人健康数据存储方法及装置 Download PDFInfo
- Publication number
- CN111832063A CN111832063A CN201911326633.0A CN201911326633A CN111832063A CN 111832063 A CN111832063 A CN 111832063A CN 201911326633 A CN201911326633 A CN 201911326633A CN 111832063 A CN111832063 A CN 111832063A
- Authority
- CN
- China
- Prior art keywords
- storage
- personal health
- health data
- stored
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明实施例提供了一种基于PBFT共识的个人健康数据存储方法及装置。该方法包括:出块节点接收来自用户设备的业务数据存储请求;出块节点选择多个存储节点,并将待存储的个人健康数据发送至多个存储节点;多个存储节点中的每个存储节点基于PBFT共识机制对待存储的个人健康数据进行验证以及对待存储的个人健康数据进行存储;存储节点向出块节点发送存储证明;出块节点在接收到存储证明后向用户设备发送存储证明,以及将待存储的个人健康数据记录在区块链中,用户设备在接收到存储证明预设时间后,通过区块链确认待存储的个人健康数据的被存储的真实性。以此解决业务数据的实时存储,降低数据的存储延时,提高用户体验的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于PBFT(Practical ByzantineFault Tolerance,实用拜占庭容错算法)共识的个人健康数据存储方法及装置。
背景技术
区块链技术,也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。
如果我们把数据库假设成一本账本,读写数据库就可以看做一种记账的行为,区块链技术的原理就是在一段时间内找出记账最快最好的人,由这个人来记账,然后将账本的这一页信息发给整个系统里的其他所有人。这也就相当于改变数据库所有的记录,发给全网的其他每个节点,所以区块链技术也称为分布式账本(distributed ledger)。
目前在数据上链,需要等待该数据被打包成区块、区块完成验证后上链,也就是需要等待数据被完成共识,成为不可逆区块后,才会给用户发送数据上链响应。
在PoW共识中,一个不可逆区块需要60分钟左右;DPoS共识中也需要10分钟左右,这么长的区块确认时间,使得数据的存储延时过长,极大的影响了用户使用区块链系统的体验。
发明内容
基于上述问题,本发明实施例提供了一种基于PBFT共识的个人健康数据存储方法及装置。
第一方面,提供了一种基于PBFT共识的个人健康数据存储方法。区块链系统中的区块链节点包括存储节点和出块节点,所述方法应用于所述区块链系统,所述方法包括:所述出块节点接收来自用户设备的业务数据存储请求,所述业务数据存储请求包括待存储的个人健康数据;所述出块节点选择多个存储节点,并将所述待存储的个人健康数据发送至所述多个存储节点;所述多个存储节点中的每个存储节点基于PBFT共识机制对所述待存储的个人健康数据进行验证以及对所述待存储的个人健康数据进行存储;所述多个存储节点中的任意一个或多个向所述出块节点发送所述存储证明;所述出块节点在接收到所述存储证明后向所述用户设备发送所述存储证明,以及将所述待存储的个人健康数据记录在区块链中,以使得所述用户设备在接收到所述存储证明预设时间后,通过所述区块链确认所述待存储的个人健康数据的被存储的真实性。
在一个可选的实现中,所述多个存储节点为3N+1个存储节点,N为大于等于1的正整数,其中,所述3N+1个存储节点的总宕机概率小于等于所述宕机阈值。
在一个可选的实现中,所述多个存储节点中的每个存储节点基于PBFT共识机制对所述待存储的个人健康数据进行验证以及对所述待存储的个人健康数据进行存储的步骤,包括:所述多个存储节点中的每个存储节点基于PBFT共识机制对所述待存储的个人健康数据进行验证;当所述待存储的个人健康数据验证通过后,将所述待存储的个人健康数据的存储在已验证个人健康数据的数据池。
在一个可选的实现中,所述出块节点将所述待存储的个人健康数据记录在区块链中的步骤,包括:所述出块节点在当前的已验证个人健康数据的数据池中获取指定数据量的已验证的个人健康数据;所述出块节点将所述指定数据量的已验证的个人健康数据进行打包生成区块后,全网广播。
在一个可选的实现中,所述区块链节点还包括验证节点,所述方法还包括:所述验证节点接收所述出块节点发送的区块;所述验证节点验证所述区块中的个人健康数据是否来自所述已验证个人健康数据的数据池。
在一个可选的实现中,所述个人健康数据包括身体指标数据、作息数据、运动数据、体检数据中的一项或多项;所述身体指标数据包括身高、体重、体脂率、心率、呼吸、血压中的一项或多项;所述作息数据包括入睡时间、起床时间、深度睡眠时长、午睡时长、饮食数据中的一项或多项;所述运动数据包括运动种类、运动时长、运动强度、运动地点中的一项或多项;所述体检数据包括体检时间、体检地点、体检种类、体检报告中的一项或多项。
在一个可选的实现中,所述存储证明包括存储节点的标识、用户标识、数据标识、存储地址以及存储节点的签名。
在一个可选的实现中,还包括:所述存储节点接收用户设备发送的数据访问请求,所述数据访问请求包括用户标识和/或数据标识;所述存储节点根据所述用户标识和/或数据标识确定所述访问请求对应的已存储的个人健康数据;所述存储节点将所述已存储的个人健康数据发送至所述用户设备。
在一个可选的实现中,还包括:所述出块节点接收所述用户设备发送的真实性查询请求,所述查询请求包括用户标识和/或数据标识;所述出块节点根据所述用户标识和/或数据标识在所述区块链中进行查询,确定是否存在对应的个人健康数据;所述出块节点将所述查询结果发送至所述用户设备。
在一个可选的实现中,所述业务数据存储请求还包括用户标识,所述用户标识对应有剩余存储空间,在所述出块节点选择多个存储节点的步骤之前,还包括:所述出块节点基于所述待存储的个人健康数据的数据量确定所述用户标识对应的剩余存储空间是否充足;如果充足,所述出块节点针对所述待存储的个人健康数据选择多个存储节点。
在一个可选的实现中,还包括:所述存储节点向所述出块节点发送存储证明查询请求;如果在指定时间段内,所述出块节点未将所述存储证明对应的待存储的个人健康数据记录在所述区块链中,则向所述出块节点重新发送所述存储证明。
在一个可选的实现中,还包括:所述出块节点在接收到所述存储证明后,基于所述存储证明向所述存储节点进行查询,确认所述存储证明是否真实;如果是,对所述存储节点进行奖励;如果不是,对所述存储节点进行处罚。
在一个可选的实现中,还包括:当所述待存储的个人健康数据记录在所述区块链上后,基于预设规则对所述用户进行扣费;其中,所述预设规则包括按照存储空间进行计费或者按照时间进行计费。
在一个可选的实现中,还包括:所述用户设备向所述区块链节点发送抵押操作,所述抵押操作包括用户标识以及抵押积分;所述区块链节点基于所述抵押积分,为所述用户分配存储空间。
第二方面,提供了一种基于PBFT共识的个人健康数据存储装置。区块链系统中的区块链节点包括存储节点和出块节点,所述装置应用于所述区块链系统,所述装置包括:第一接收单元,用于接收来自用户设备的业务数据存储请求,所述业务数据存储请求包括待存储的个人健康数据;选择单元,用于选择多个存储节点,并将所述待存储的个人健康数据发送至所述多个存储节点;第一验证单元,用于基于PBFT共识机制对所述待存储的个人健康数据进行验证;存储单元,用于对所述待存储的个人健康数据进行存储;第一发送单元,用于向所述出块节点发送所述存储证明;第二发送单元,用于在接收到所述存储证明后向所述用户设备发送所述存储证明,以及将所述待存储的个人健康数据记录在区块链中,以使得所述用户设备在接收到所述存储证明预设时间后,通过所述区块链确认所述待存储的个人健康数据的被存储的真实性。
第三方面,本说明书实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述第一方面所述的方法步骤。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的方法步骤。
第五方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得计算机执行上述第一方面所述的方法步骤。
本发明实施例提供了一种基于PBFT共识的个人健康数据存储方法及装置。通过在基于区块链对个人健康数据进行存储时,在基于PBFT共识对个人健康数据存储完成后即向用户设备返回存储证明,该存储证明即可表示该个人健康数据已经被区块链系统存储,时间快,完全保证数据的存储,将个人健康数据记录在区块链中,用户在预设时间后基于区块链确认业务数据被存储的真实性,保证了业务数据的安全性以及不可篡改性等等。解决业务数据的实时存储,降低数据的存储延时,提高用户体验的问题。
附图说明
图1应用本申请提供的实施例的示例性架构;
图2为本发明实施例提供的一种基于PBFT共识的个人健康数据存储方法的流程图;
图3为本发明实施例提供的一种基于PBFT共识的个人健康数据存储装置的结构示意图;
图4示出了本说明书实施例所提供的一种计算机设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种基于PBFT共识的个人健康数据存储方法及装置。图1示出了应用本申请提供的实施例的示例性架构。
如图1所示,该示例性架构可以包括一个或多个用户设备101和一个或多个区块链节点102,当区块链节点102为多个时,形成区块链系统,其中,该区块链系统中的区块链节点可以包括存储节点和出块节点。用户设备101可以用于与区块链节点102进行交互,例如,用户设备101发送业务数据给存储节点;存储节点对该业务数据进行存储,存储完成后,返回给用户设备存储证明;接收到业务数据的存储节点可以将该业务数据发送给其他存储节点,该其他存储节点对该业务数据进行存储。存储节点将存储证明发送给出块节点,由出块节点打包出块,完成共识后,成为不可逆区块。用户设备101在预设时间后,可以在区块节点上查询其业务数据是否真的被存储。
值得说明的是,本实施例架构并不限定其实现其他功能,例如用户设备101也可以作为区块链节点等。
为便于对本发明实施例的理解,下面将结合附图以具体实施例作进一步的解释说明,实施例并不构成对本发明实施例的限定。
图2为本发明提供的一种基于PBFT共识的个人健康数据存储方法流程示意图。如图2所示,区块链系统中的区块链节点包括存储节点和出块节点,该方法应用于区块链系统,该方法可以包括如下步骤:
S210,出块节点接收来自用户设备的业务数据存储请求,该业务数据存储请求包括待存储的个人健康数据;
该个人健康数据包括身体指标数据、作息数据、运动数据、体检数据等等中的一项或多项;
身体指标数据包括身高、体重、体脂率、心率、呼吸、血压等中的一项或多项;
作息数据包括入睡时间、起床时间、深度睡眠时长、午睡时长、饮食数据等中的一项或多项;
运动数据包括运动种类、运动时长、运动强度、运动地点等中的一项或多项;
体检数据包括体检时间、体检地点、体检种类、体检报告等中的一项或多项。
该用户设备可以为手机、手环、血压仪等能够对个人健康数据进行登记或进行监测的设备。
S220,出块节点选择多个存储节点,并将待存储的个人健康数据发送至多个存储节点;
该多个存储节点为3N+1个存储节点,该N为大于等于1的正整数,其中,3N+1个存储节点的总宕机概率(每个存储节点宕机的概率相乘)小于等于宕机阈值。越少的存储节点,通过PBFT共识验证的速度就越快,就越符合要求。
在选择存储节点时,可以采用随机的方式进行选择,该随机方式还可以为可以验证随机性的随机方式。
S230,多个存储节点中的每个存储节点基于PBFT共识机制对待存储的个人健康数据进行验证以及对待存储的个人健康数据进行存储;
该存储证明包括存储节点的标识、用户标识、数据标识、存储地址以及存储节点的签名。
其中,存储节点的标识可以为存储节点的ID、存储节点的签名或者存储节点的地址等等。该存储节点的地址可以为存储节点用于记录积分的地址。该用户标识可以为用户的ID、用户的账户名、用户的签名或者用户的地址等等。该用户的地址可以为用户用于支付存储空间使用费的地址。该存储节点的地址和该用户的地址可以为同一个区块链上的地址。
多个存储节点在对待存储的个人健康数据存储完成后,可以生成存储证明。该存储证明,可以包括该多个存储节点的签名,当该多个存储节点均签名后,才可以表示该业务数据被成功存储。
其中,数据的标识可以为待存储的个人健康数据的哈希值,也可以是该待存储的个人健康数据对应的时间戳或序列号等等。
该存储地址可以为存储路径,例如存储的磁盘的位置。
在对于存储节点存储的数据,用户设备可以进行查询,可以通过如下步骤实现:存储节点接收用户设备发送的数据访问请求,数据访问请求包括用户标识和/或数据标识;存储节点根据用户标识和/或数据标识确定访问请求对应的已存储的个人健康数据;存储节点将已存储的个人健康数据发送至用户设备。
对于个人健康数据的校验可以包括多种方式。例如,可以对个人健康数据的完整性以及合法性进行校验。作为一个示例,还可以对基于个人健康数据对该用户的监控状态进行校验,当发现该个人健康数据指示该用户的健康出现异常时,向与该用户对应的指定终端发送告警。与该用户对应的指定终端可以为该用户的终端或系统中等级的该用户对应的紧急联系人的终端。
S240,多个存储节点中的任意一个或多个向出块节点发送存储证明;
多个存储节点,通过PBFT共识,对该待存储的个人健康数据进行验证后,任意一个存储节点将存储证明发回给出块节点。举例来说,存储节点在对个人健康数据验证完成后,可以在存储证明上进行签名,并将签名后的存储证明发送至其他存储节点,其他存储节点也对该个人健康数据进行验证,并在验证完成后,在最新的存储证明上进行签名,在签名后,判断该存储证明上是否具有该多个存储节点全部的签名,如果有,则将该存储证明发送至出块节点。如果没有,则将该存储证明发送至其他存储节点。
其中,每个用户标识可以对应多个数据标识,该数据标识可以为一个数据分片的标识或者一个数据段的标识等等。
S250,出块节点在接收到存储证明后向用户设备发送存储证明,以及将待存储的个人健康数据记录在区块链中,以使得用户设备在接收到存储证明预设时间后,通过区块链确认待存储的个人健康数据的被存储的真实性。
出块节点对该已验证的待存储的个人健康数据进行打包出块,完成共识后,成为不可逆区块。用户设备在预设时间后,可以在区块节点上查询其业务数据是否真的被存储。
通过本发明实施例,在基于区块链对个人健康数据进行存储时,在基于PBFT共识对个人健康数据存储完成后即向用户设备返回存储证明,该存储证明即可表示该个人健康数据已经被区块链系统存储,时间快,完全保证数据的存储,将个人健康数据记录在区块链中,用户在预设时间后基于区块链确认业务数据被存储的真实性,保证了业务数据的安全性以及不可篡改性等等。解决业务数据的实时存储,降低数据的存储延时,提高用户体验的问题。
在一些实施例中,PBFT降低了拜占庭协议的运行复杂度,从指数级别降低到多项式级别(Polynomial),使拜占庭协议在分布式系统中应用成为可能。
PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,通常假设故障节点数为m个,整个服务节点数为|R|=3m+1个,这里m是有可能失效的副本的最大个数。尽管可以存在多于3m+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。PBFT要求共同维护一个状态,所有节点采取的行动一致。为此,需要运行三类基本协议,包括一致性协议、检查点协议和视图更换协议。我们主要关注支持系统日常运行的一致性协议。一致性协议至少包含若干个阶段:请求(request)、序号分配(pre-prepare)和响应(reply)。根据协议设计的不同,可能包含相互交互(prepare),序号确认(commit)等阶段。
作为一个示例,上述步骤S230具体可以通过如下步骤实现:
步骤1.1),多个存储节点中的每个存储节点基于PBFT共识机制对待存储的个人健康数据进行验证;
步骤1.2),当待存储的个人健康数据验证通过后,将待存储的个人健康数据的存储在已验证个人健康数据的数据池。
在一些实施例中,对一个数据进行验证后,出块节点不用再对该数据进行验证,直接将该数据打包成区块即可,相当于这些经过存储节点验证的数据,存储在被验证过的数据池中,出块节点直接从数据池中捞取一定量(每个区块的存储容量有限,可以认为是预设数据量)的数据进行打包成区块,然后上链,其他出块节点只要确定该数据是从数据池中获取的数据,那么该数据就不用再进行验证;以此来保证经过存储节点PBFT共识后的数据,一定会上链;因此,相当于,给客户反馈的存储证明,就是表示数据已经被完成存储。基于此,对于步骤S250中的出块节点将待存储的个人健康数据记录在区块链中的步骤,具体可以通过如下步骤实现:
步骤2.1),出块节点在当前的已验证个人健康数据的数据池中获取指定数据量的已验证的个人健康数据;
步骤2.2),出块节点将指定数据量的已验证的个人健康数据进行打包生成区块后,全网广播。
在一些实施例中,该区块链节点还可以包括验证节点,该验证节点可以为专用的验证节点,也可以为其他出块节点,还可以为存储节点,可以通过验证节点对区块进行验证,以实现上链。作为一个示例,该方法还可以包括如下步骤:
步骤3.1),验证节点接收出块节点发送的区块;
步骤3.2),验证节点验证区块中的个人健康数据是否来自已验证个人健康数据的数据池。
在一些实施例中,用户设备可以通过多种方式对待存储的个人健康数据的被存储的真实性进行查询。作为一个示例,用户设备可以基于存储证明中的信息向出块节点进行查询。基于此,该方法还可以包括如下步骤:
步骤4.1),出块节点接收用户设备发送的真实性查询请求,查询请求包括用户标识和/或数据标识;
步骤4.2),出块节点根据用户标识和/或数据标识在区块链中进行查询,确定是否存在对应的个人健康数据;
步骤4.3),出块节点将查询结果发送至用户设备。
其中,查询结果可以包括存在对应的已上链的个人健康数据或不存在对应的已上链的个人健康数据。其中,该查询结果可以包括出块节点的签名。
在一个实施例中,对于业务数据的存储,可以基于数据量进行存储,对于数据量较大的业务数据,可以进行分片存储,以确保存储效率。
在一些实施例中,业务数据存储请求还包括用户标识,用户标识对应有剩余存储空间,在出块节点选择多个存储节点的步骤之前,还包括:
步骤5.1),出块节点基于待存储的个人健康数据的数据量确定用户标识对应的剩余存储空间是否充足;也就是,校验用户标识对应的剩余存储空间是否≥本次存储需要的存储空间。
步骤5.2),如果充足,出块节点针对待存储的个人健康数据选择多个存储节点。
步骤5.3),如果不充足,向用户设备发送告警,所述告警用于指示存储空间不足。
在一些实施例中,存储节点会校验出块节点是否将待存储的个人健康数据上链;出块节点会校验存储节点的存储证明是否真实。作为一个示例,上述方法还可以包括如下步骤:
步骤6.1),存储节点向出块节点发送存储证明查询请求;
步骤6.2),如果在指定时间段内,出块节点未将存储证明对应的待存储的个人健康数据记录在区块链中,则向出块节点重新发送存储证明。
如果出块节点将待存储的个人健康数据记录在区块链中则可以停止向所述出块节点发送所述存储证明查询请求。
在一些实施例中,还包括:
步骤7.1),当待存储的个人健康数据记录在区块链上后,基于预设规则对用户进行扣费;
其中,预设规则包括按照存储空间进行计费或者按照时间进行计费。该预设规则包括按照存储空间进行计费或者按照时间进行计费。按照存储空间进行计费可以指按照存储空间的总量扣费,该总量等于每单位时间存储空间*存储时间。按照时间进行计费可以指在每个单位时间开始前,扣除单位时间内的存储空间。该单位时间可以根据实际需要确定,例如,年/月/日。
在一些实施例中,在存储节点执行完存储任务后,还可以对存储节点进行奖励,该奖励可以通过区块链以积分的形式发放,作为一个示例,该方法还可以包括如下步骤:
步骤8.1),出块节点在接收到存储证明后,基于存储证明向存储节点进行查询,确认存储证明是否真实;出块节点可以根据存储证明向该存储节点进行查询,确认该存储证明是不是真实的。
步骤8.2),如果是,对存储节点进行奖励;该奖励可以为通过区块链发放积分。
步骤8.3),如果不是,对存储节点进行处罚。该处罚可以为不向该存储节点发放积分。或者,指示该存储节点在指定的时间段内暂停对新的业务数据进行存储。
在一些实施例中,用户设备可以通过向链抵押或者锁仓等行为,来获得存储空间。对于已经使用了的存储空间,抵押的积分不能够用来赎回。作为一个示例,该方法还可以包括如下步骤:
步骤9.1),用户设备向区块链节点发送抵押操作,抵押操作包括用户标识以及抵押积分;
步骤9.2),区块链节点基于抵押积分,为用户分配存储空间。
图3为本申请实施例提供的一种基于PBFT共识的个人健康数据存储装置结构示意图。如图3所示,区块链系统中的区块链节点包括存储节点和出块节点,装置应用于区块链系统,装置包括:
第一接收单元301,用于接收来自用户设备的业务数据存储请求,业务数据存储请求包括待存储的个人健康数据;
选择单元302,用于选择多个存储节点,并将待存储的个人健康数据发送至多个存储节点;
第一验证单元303,用于基于PBFT共识机制对待存储的个人健康数据进行验证;
存储单元304,用于对待存储的个人健康数据进行存储;
第一发送单元305,用于向出块节点发送存储证明;
第二发送单元306,用于在接收到存储证明后向用户设备发送存储证明,以及将待存储的个人健康数据记录在区块链中,以使得用户设备在接收到存储证明预设时间后,通过区块链确认待存储的个人健康数据的被存储的真实性。
在一些实施例中,多个存储节点为3N+1个存储节点,N为大于等于1的正整数,其中,3N+1个存储节点的总宕机概率小于等于宕机阈值。
在一些实施例中,第一验证单元303具体用于,基于PBFT共识机制对待存储的个人健康数据进行验证;
存储单元具体用于,当待存储的个人健康数据验证通过后,将待存储的个人健康数据的存储在已验证个人健康数据的数据池。
在一些实施例中,存储单元304具体用于:
出块节点在当前的已验证个人健康数据的数据池中获取指定数据量的已验证的个人健康数据;
出块节点将指定数据量的已验证的个人健康数据进行打包生成区块后,全网广播。
在一些实施例中,还包括:
第二接收单元,用于接收出块节点发送的区块;
第二验证单元,用于验证区块中的个人健康数据是否来自已验证个人健康数据的数据池。
在一些实施例中,存储证明包括存储节点的标识、用户标识、数据标识、存储地址以及存储节点的签名。该装置还包括,访问单元,该访问单元具体用于:
接收用户设备发送的数据访问请求,数据访问请求包括用户标识和/或数据标识;
根据用户标识和/或数据标识确定访问请求对应的已存储的个人健康数据;
将已存储的个人健康数据发送至用户设备。
在一些实施例中,还包括,查询单元,该查询单元具体用于:
接收用户设备发送的真实性查询请求,查询请求包括用户标识和/或数据标识;
根据用户标识和/或数据标识在区块链中进行查询,确定是否存在对应的个人健康数据;
将查询结果发送至用户设备。
在一些实施例中,业务数据存储请求还包括用户标识,用户标识对应有剩余存储空间,该装置还包括:确定单元,该确定单元具体用于:
基于待存储的个人健康数据的数据量确定用户标识对应的剩余存储空间是否充足;
如果充足,出块节点针对待存储的个人健康数据选择多个存储节点。
在一些实施例中,该装置还包括,查询单元,该查询单元具体用于:
向出块节点发送存储证明查询请求;
如果在指定时间段内,出块节点未将存储证明对应的待存储的个人健康数据记录在区块链中,则向出块节点重新发送存储证明。
在一些实施例中,还包括,查询单元,该查询单元具体用于:
在接收到存储证明后,基于存储证明向存储节点进行查询,确认存储证明是否真实;
如果是,对存储节点进行奖励;
如果不是,对存储节点进行处罚。
在一些实施例中,还包括,计费单元,该计费单元具体用于:
当待存储的个人健康数据记录在区块链上后,基于预设规则对用户进行扣费;
其中,预设规则包括按照存储空间进行计费或者按照时间进行计费。
在一些实施例中,还包括,抵押单元,该抵押单元具体用于:
向区块链节点发送抵押操作,抵押操作包括用户标识以及抵押积分;
基于抵押积分,为用户分配存储空间。
可以理解,本实施例的基于PBFT共识的个人健康数据存储装置与图2所示的方法实施例相对应,因此,以上关于图2所示的方法实施例的描述同样适用于本实施例的装置,在此不再赘述。
图4示出了本说明书实施例所提供的一种计算机设备结构示意图,该计算机设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线450。其中处理器410、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线450包括一通路,在设备的各个组件(例如处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线450,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的范围之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于PBFT共识的个人健康数据存储方法,其特征在于,区块链系统中的区块链节点包括存储节点和出块节点,所述方法应用于所述区块链系统,所述方法包括:
所述出块节点接收来自用户设备的业务数据存储请求,所述业务数据存储请求包括待存储的个人健康数据;
所述出块节点选择多个存储节点,并将所述待存储的个人健康数据发送至所述多个存储节点;
所述多个存储节点中的每个存储节点基于PBFT共识机制对所述待存储的个人健康数据进行验证以及对所述待存储的个人健康数据进行存储;
所述多个存储节点中的任意一个或多个向所述出块节点发送存储证明;
所述出块节点在接收到所述存储证明后向所述用户设备发送所述存储证明,以及将所述待存储的个人健康数据记录在区块链中,以使得所述用户设备在接收到所述存储证明预设时间后,通过所述区块链确认所述待存储的个人健康数据的被存储的真实性。
2.根据权利要求1所述的方法,其特征在于,所述多个存储节点为3N+1个存储节点,N为大于等于1的正整数,其中,所述3N+1个存储节点的总宕机概率小于等于预设的宕机阈值。
3.根据权利要求1所述的方法,其特征在于,所述多个存储节点中的每个存储节点基于PBFT共识机制对所述待存储的个人健康数据进行验证以及对所述待存储的个人健康数据进行存储的步骤,包括:
所述多个存储节点中的每个存储节点基于PBFT共识机制对所述待存储的个人健康数据进行验证;
当所述待存储的个人健康数据验证通过后,将所述待存储的个人健康数据的存储在已验证个人健康数据的数据池。
4.根据权利要求3所述的方法,其特征在于,所述出块节点将所述待存储的个人健康数据记录在区块链中的步骤,包括:
所述出块节点在当前的已验证个人健康数据的数据池中获取指定数据量的已验证的个人健康数据;
所述出块节点将所述指定数据量的已验证的个人健康数据进行打包生成区块后,全网广播。
5.根据权利要求4所述的方法,其特征在于,所述区块链节点还包括验证节点,所述方法还包括:
所述验证节点接收所述出块节点发送的区块;
所述验证节点验证所述区块中的个人健康数据是否来自所述已验证个人健康数据的数据池。
6.根据权利要求1所述的方法,其特征在于,所述存储证明包括存储节点的标识、用户标识、数据标识、存储地址以及存储节点的签名。
7.根据权利要求6所述的方法,其特征在于,还包括:
所述存储节点接收用户设备发送的数据访问请求,所述数据访问请求包括用户标识和/或数据标识;
所述存储节点根据所述用户标识和/或数据标识确定所述访问请求对应的已存储的个人健康数据;
所述存储节点将所述已存储的个人健康数据发送至所述用户设备。
8.一种基于PBFT共识的个人健康数据存储装置,其特征在于,区块链系统中的区块链节点包括存储节点和出块节点,所述装置应用于所述区块链系统,所述装置包括:
第一接收单元,用于接收来自用户设备的业务数据存储请求,所述业务数据存储请求包括待存储的个人健康数据;
选择单元,用于选择多个存储节点,并将所述待存储的个人健康数据发送至所述多个存储节点;
第一验证单元,用于基于PBFT共识机制对所述待存储的个人健康数据进行验证;
存储单元,用于对所述待存储的个人健康数据进行存储;
第一发送单元,用于向所述出块节点发送存储证明;
第二发送单元,用于在接收到所述存储证明后向所述用户设备发送所述存储证明,以及将所述待存储的个人健康数据记录在区块链中,以使得所述用户设备在接收到所述存储证明预设时间后,通过所述区块链确认所述待存储的个人健康数据的被存储的真实性。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-7任意一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911326633.0A CN111832063A (zh) | 2019-12-20 | 2019-12-20 | 基于pbft共识的个人健康数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911326633.0A CN111832063A (zh) | 2019-12-20 | 2019-12-20 | 基于pbft共识的个人健康数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111832063A true CN111832063A (zh) | 2020-10-27 |
Family
ID=72912060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911326633.0A Pending CN111832063A (zh) | 2019-12-20 | 2019-12-20 | 基于pbft共识的个人健康数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111832063A (zh) |
-
2019
- 2019-12-20 CN CN201911326633.0A patent/CN111832063A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018158936A1 (ja) | ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム | |
CN109981281B (zh) | 基于区块链提案随机共识确定候选元素的方法及装置 | |
JP7003995B2 (ja) | ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム | |
CN114039733B (zh) | 一种针对联盟链的存证业务转移方法、装置及设备 | |
CN106209974B (zh) | 一种数据同步方法、设备及系统 | |
CN111078706A (zh) | 基于区块链的个人健康数据存储方法及装置 | |
CN109586949A (zh) | 区块生成方法及计算机存储介质 | |
CN110298757B (zh) | 涉及DPoS的共识方法及其装置 | |
CN111831641A (zh) | 基于pbft共识的交通数据存储方法及装置 | |
CN112035350A (zh) | 针对区块链系统的测试方法、装置及计算机设备 | |
CN110225103B (zh) | 一种业务推荐方法、装置及设备 | |
CN111833051A (zh) | 基于pbft共识的实物抵押数据存储方法及装置 | |
CN111831851A (zh) | 基于pbft共识的家庭监控数据存储方法及装置 | |
CN111832063A (zh) | 基于pbft共识的个人健康数据存储方法及装置 | |
CN111831666A (zh) | 基于pbft共识的家具数据存储方法及装置 | |
CN111831669A (zh) | 根据区块链上互联网投票数据的存储方法及其装置 | |
CN111832077A (zh) | 基于区块链的合同抵押数据存储方法及装置 | |
CN111831726A (zh) | 基于区块链的金融抵押数据存储方法及装置 | |
CN111447216B (zh) | 用于变更共识节点的方法和装置 | |
CN111831665A (zh) | 基于pbft共识的金融抵押数据存储方法及装置 | |
CN111833050A (zh) | 基于pbft共识的信用抵押数据存储方法及装置 | |
CN111831640A (zh) | 基于pbft共识的合同抵押数据存储方法及装置 | |
CN111831714A (zh) | 基于pbft共识的服饰数据存储方法及装置 | |
CN111831733A (zh) | 基于pbft共识的家用电器数据存储方法及装置 | |
CN111831648A (zh) | 基于pbft共识的化妆品数据存储方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20201027 |
|
WD01 | Invention patent application deemed withdrawn after publication |