CN115834512A - 一种数据共享方法、***、电子设备及存储介质 - Google Patents
一种数据共享方法、***、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115834512A CN115834512A CN202211416728.3A CN202211416728A CN115834512A CN 115834512 A CN115834512 A CN 115834512A CN 202211416728 A CN202211416728 A CN 202211416728A CN 115834512 A CN115834512 A CN 115834512A
- Authority
- CN
- China
- Prior art keywords
- consensus
- node
- nodes
- management
- current
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据共享方法、***、电子设备及存储介质,涉及数据共享技术领域,所述方法包括:将联盟链的节点集中的各节点划分为一个排序节点和G个共识集;将共识集中的节点划分为一个管理节点和多个普通节点;将任一个共识集作为当前共识集,将G个共识集中除当前共识集之外的共识集作为剩余共识集,执行数据共享过程;数据共享过程为:先进行集内共识;然后进行集外共识;集外共识完成后,当前共识集中的管理节点和排序节点获取剩余共识集中的管理节点发送的共识结果;排序节点将共识结果发送至客户端,待共享的数据完成共享。本发明降低了通信开销和***消耗,提高了数据共享的速度。
Description
技术领域
本发明涉及数据共享技术领域,特别是涉及一种数据共享方法、***、电子设备及存储介质。
背景技术
近年来,随着计算机技术的发展,医疗信息化建设进程不断完善,越来越多的医院选择将患者的医疗数据存储在云端,这些数据贯穿了患者整个就医过程,既能体现患者的健康状况,又可以为后续的就医提供便利。但随着医疗数据指数级增长,数据集中存储成为极具挑战的问题,一旦发生恶意攻击或单点故障,医疗数据的完整性和安全性就不能得到保证。同时,各医院的医疗***中,不同的数据结构、存储格式也使得跨机构之间的数据交换难以实现,导致患者每到一个医院都需要重新办理一张诊疗卡记录医疗信息,形成信息孤岛。因此,医疗机构与患者迫切需要一种能够在各医院之间实现医疗信息及时共享,并能够保证患者信息不会泄露的***,而使用区块链是解决这一问题的绝佳方式。区块链是一种去中心化的分布式存储技术,根据节点准入机制的不同,一般分为公有链、私有链和联盟链。
一种基于区块链和人工智能的医疗服务数据隐私保护方案,帮助解决医疗数据被垄断、篡改、难以共享和不信任等问题。薛腾飞等人设计了一个基于区块链的医学数据共享模型,通过提供感觉机制,可以解决医疗机构之间的数据检查和同步问题,但该方法在数据存储方面还存在一些不足。
在基于区块链的医疗***中,所有患者的数据都在一个去中心化、不可篡改的环境中流通,共识机制是保证这些特征的区块链底层技术之一,在很大程度上决定了***的性能,例如吞吐量、延迟、安全级别等。
但是现有的基于区块链的医疗数据存储***中PBFT算法将一个节点作为主结点,其他节点作为从节点,进行数据共享,通信开销大、***消耗高等问题。
发明内容
本发明的目的是提供一种数据共享方法、***、电子设备及存储介质,降低了通信开销和***消耗,提高了数据共享的速度。
为实现上述目的,本发明提供了如下方案:
一种数据共享方法,所述方法包括:
将联盟链的节点集中的各节点划分为一个排序节点和G个共识集;G≥4;
将所述共识集中的节点划分为一个管理节点和多个普通节点;
将任一个共识集作为当前共识集,将G个所述共识集中除所述当前共识集之外的共识集作为剩余共识集,执行数据共享过程;
其中,所述数据共享过程为:
所述当前共识集中的管理节点根据区块向所述当前共识集发起共识提议,进行集内共识;所述共识提议包括所述当前共识集中的管理节点的签名、所述区块的编号、待共享的数据和所述待共享的数据的摘要;所述区块是所述排序节点根据客户发送的交易请求对所述客户端进行验证后,将验证通过的交易请求打包形成的区块;所述交易请求包括:待共享的数据和所述待共享的数据的摘要;
当所述集内共识完成后,所述当前共识集中的管理节点向所述剩余共识集的管理节点发送所述共识提议,所述剩余共识集的管理节点进行集外共识;
当所述集外共识完成后,所述当前共识集中的管理节点和所述排序节点获取所述剩余共识集中的管理节点发送的共识结果;
所述排序节点将所述共识结果发送至所述客户端,所述待共享的数据完成共享。
可选地,所述将联盟链的节点集中的各节点划分为一个排序节点和G个共识集,具体包括:
从联盟链的节点集中确定一个节点为排序节点,确定G个节点为预备管理节点;
根据第一节点集中的各节点对所述预备管理节点的响应,将所述第一节点集中的各节点划分为G个预备共识子集;所述第一节点集为所述联盟链的节点集中除所述排序节点和G个所述预备管理节点之外的节点;
将所述预备共识子集和相应的预备管理节点确定为预备共识集;
所述预备管理节点向相应的预备共识子集中的节点发送分组探测消息;所述分组探测消息包括所述预备管理节点的签名;
当所述预备共识子集中的节点对所述预备管理节点的签名验证通过时,向所述预备管理节点发送加入申请;所述加入申请包括:所述预备共识子集中的节点的签名;
所述预备管理节点根据所述预备共识子集中的节点的签名判断所述预备共识集中的节点是否大于预设值;
若是,所述预备管理节点拒绝所述预备共识子集中的节点加入所述预备共识集;
若否,所述预备管理节点接收所述预备共识子集中的节点加入所述预备共识集,得到所述共识集。
可选地,所述将所有所述共识集中的节点划分为一个管理节点和多个普通节点,包括:
通过所述共识集中的所述预备管理节点获取所述共识集中各节点的信用值;
所述共识集中的各节点根据所述信用值进行管理节点投票;
将获得的票数超过投票总数一半的节点确定为所述管理节点,将所述共识集中除所述管理节点之外的节点确定为所述普通节点。
可选地,所述当前共识集中的管理节点根据所述区块向当前共识集中发起共识提议,进行集内共识,具体包括:
所述当前共识集中的管理节点向当前共识集中发起共识提议;
所述当前共识集中的普通节点对所述共识提议中的所述当前共识集中的管理节点的签名进行集内验证;
当集内验证通过时,所述当前共识集中的普通节点将所述共识提议的第一回应发送至所述当前共识集中的管理节点;所述第一回应包括:所述当前共识集中的普通节点的签名、所述区块的编号、所述待共享的数据和所述待共享的数据的摘要;
所述当前共识集中的管理节点对所有所述当前共识集中的普通节点的签名进行确认;
当确认通过时,集内共识完成。
可选地,所述当前共识集中的管理节点向剩余共识集中的管理节点发送所述共识提议,进行集外共识,具体包括:
所述当前共识集中的管理节点将所述共识提议发送至剩余共识集中的管理节点;
所述剩余共识集中的管理节点对所述共识提议中的所述当前共识集中的管理节点的签名进行集外验证;
当集外验证通过时,且所述剩余共识集中的管理节点收得预设值个所述集外验证通过的所述共识提议时,集外共识完成。
一种数据共享***,所述***包括:
第一划分模块,用于将联盟链的节点集中的各节点划分为一个排序节点和G个共识集;G≥4;
第二划分模块,用于将所述共识集中的节点划分为一个管理节点和多个普通节点;
第三划分模块,用于将任一个共识集作为当前共识集,将G个所述共识集中除所述当前共识集之外的共识集作为剩余共识集,执行数据共享模块;
其中,所述数据共享模块,包括:
集内共识子模块,用于所述当前共识集中的管理节点根据区块向所述当前共识集发起共识提议,进行集内共识;所述共识提议包括所述当前共识集中的管理节点的签名、所述区块的编号、待共享的数据和所述待共享的数据的摘要;所述区块是所述排序节点根据客户发送的交易请求对所述客户端进行验证后,将验证通过的交易请求打包形成的区块;所述交易请求包括:待共享的数据和所述待共享的数据的摘要;
集外共识子模块,用于当所述集内共识完成后,所述当前共识集中的管理节点向所述剩余共识集的管理节点发送所述共识提议,所述剩余共识集的管理节点进行集外共识;
第一共识结果发送子模块,用于当所述集外共识完成后,所述当前共识集中的管理节点和所述排序节点获取所述剩余共识集中的管理节点发送的共识结果;
第二共识结果发送子模块,用于所述排序节点将所述共识结果发送至所述客户端,所述待共享的数据完成共享。
一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述所述的方法。
一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如上述所述的方法。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明公开了一种数据共享方法、***、电子设备及存储介质,首先将联盟链的节点划分为G个共识集,即对节点首先进行分组,对分组后的共识集首先进行集内共识,集内共识完成后,再进行集外共识,集外共识完成后,即完成了数据共享。和现有的不分组的数据共享方法相比,先分组,然后集内共识,最后集外共识,降低了通信开销和***消耗,提高了数据共享的速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的数据共享方法流程示意图;
图2为改进PBFT算法流程示意图;
图3为分组形成过程示意图;
图4管理节点选举与数据同步过程示意图;
图5为基于改进PBFT算法的数据共享方法流程示意图;
图6为本发明实施例2提供的数据共享***结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种数据共享方法、***、电子设备及存储介质,旨在降低通信开销和***消耗,提高数据共享的速度,可应用于数据共享技术领域。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明实施例1提供的数据共享方法流程示意图。如图1所示,本实施例中的数据共享方法,包括:
步骤101:将联盟链的节点集中的各节点划分为一个排序节点和G个共识集;G≥4。
步骤102:将共识集中的节点划分为一个管理节点和多个普通节点。
步骤103:将任一个共识集作为当前共识集,将G个共识集中除当前共识集之外的共识集作为剩余共识集,执行步骤104。
其中,步骤104为数据共享过程,具体包括:
当前共识集中的管理节点根据区块向当前共识集发起共识提议,进行集内共识;共识提议包括当前共识集中的管理节点的签名、区块的编号、待共享的数据和待共享的数据的摘要;区块是排序节点根据客户发送的交易请求对客户端进行验证后,将验证通过的交易请求打包形成的区块;交易请求包括:待共享的数据和待共享的数据的摘要。
当集内共识完成后,当前共识集中的管理节点向剩余共识集的管理节点发送共识提议,剩余共识集的管理节点进行集外共识。
当集外共识完成后,当前共识集中的管理节点和排序节点获取剩余共识集中的管理节点发送的共识结果。
排序节点将共识结果发送至客户端,待共享的数据完成共享。
作为一种可选的实施方式,步骤101,具体包括:
从联盟链的节点集中确定一个节点为排序节点,确定G个节点为预备管理节点。
根据第一节点集中的各节点对预备管理节点的响应,将第一节点集中的各节点划分为G个预备共识子集;第一节点集为联盟链的节点集中除排序节点和G个预备管理节点之外的节点。
将预备共识子集和相应的预备管理节点确定为预备共识集。
预备管理节点向相应的预备共识子集中的节点发送分组探测消息;分组探测消息包括预备管理节点的签名。
当预备共识子集中的节点对预备管理节点的签名验证通过时,向预备管理节点发送加入申请;加入申请包括:预备共识子集中的节点的签名。
预备管理节点根据预备共识子集中的节点的签名判断预备共识集中的节点是否大于预设值。
若是,预备管理节点拒绝预备共识子集中的节点加入预备共识集。
若否,预备管理节点接收预备共识子集中的节点加入预备共识集,得到共识集。
作为一种可选的实施方式,步骤102,包括:
通过共识集中的预备管理节点获取共识集中各节点的信用值。
共识集中的各节点根据信用值进行管理节点投票。
将获得的票数超过投票总数一半的节点确定为管理节点,将共识集中除管理节点之外的节点确定为普通节点。
作为一种可选的实施方式,当前共识集中的管理节点根据区块向当前共识集中发起共识提议,进行集内共识,具体包括:
当前共识集中的管理节点向当前共识集中发起共识提议。
当前共识集中的普通节点对共识提议中的当前共识集中的管理节点的签名进行集内验证。
当集内验证通过时,当前共识集中的普通节点将共识提议的第一回应发送至当前共识集中的管理节点;第一回应包括:当前共识集中的普通节点的签名、区块的编号、待共享的数据和待共享的数据的摘要。
当前共识集中的管理节点对所有当前共识集中的普通节点的签名进行确认。
当确认通过时,集内共识完成。
作为一种可选的实施方式,当前共识集中的管理节点向剩余共识集中的管理节点发送共识提议,进行集外共识,具体包括:
当前共识集中的管理节点将共识提议发送至剩余共识集中的管理节点。
剩余共识集中的管理节点对共识提议中的当前共识集中的管理节点的签名进行集外验证。
当集外验证通过时,且剩余共识集中的管理节点收得预设值个集外验证通过的共识提议时,集外共识完成。
实施例1提供的数据共享方法是基于改进的实用拜占庭容错(PracticalByzantine Fault Tolerance,PBFT)共识算法(M-PBFT共识算法)的数据共享方法,M-PBFT共识算法的相关概念和算法包括:
1、M-PBFT共识算法分为共识集内局部共识和全局管理节点共识两个部分,先局部共识,再由管理节点带着局部共识结果参与全局共识。假设整个网络的节点数为N,需要满足每组节点数K≥3,分组数G≥4。改进算法的主要流程如图2所示。
(1)每个共识集都有一个管理节点,根据各个节点对管理节点的响应速度作为分组依据。
(2)管理节点的选举是由信用积分与投票机制共同决定的,从表现良好的共识集节点中选举管理节点。
(3)先进行共识集内共识,结束后由管理节点带着共识集内局部共识的结果,参与共识集外的共识。
2、分组策略
利用节点加入联盟链的身份验证机制,选取G个节点作为预备管理节点,根据节点对预备管理节点的响应作为分组依据,将节点划分为G个共识集。
预备管理节点c∈(1,2,3,…,N)向周围其他节点发起分组探测信息<SUBSET,t1,Sc>,其中,SUBSET表示分组开始,t1为时间戳,Sc为预备管理节点c的签名。
节点x∈(1,2,3,…,N)收到分组探测消息,验证消息签名Sc是否正确(发送方客户端用自己唯一的私钥进行加密签名,接收方节点x用客户端的公钥解密验证数字签名,若能使用公钥打开加密的信息,则能验证客户端的身份),正确则向预备管理节点发起申请<SUBSET-REQUEST,x,t2,Sx>,其中,SUBSET-REQUEST表示当前为分组请求阶段,t2为节点x的时间戳,Sx为本轮签名。
预备管理节点c检查共识集内成员是否大于Nmax,若小于Nmax,则验证节点x的信息Sx,验证通过(发送方节点x用自己唯一的私钥进行加密签名,接收方管理节点c用x的公钥解密验证数字签名,若能使用公钥打开加密的信息,则能验证x的身份,因为私钥只有x自己知道)将接收x加入共识集的申请并将其添加至共识集列表Gx,若共识集内成员大于Nmax或者验证节点信息不通过,发送拒绝消息,其中,Nmax为共识集内最多节点数,每个共识集内最多节点数都相同。
节点x若收到拒接消息,可以给下一个预备管理节点发送申请<SUBSET-REQUEST,x,t2,Sx>,重复上述步骤。
分组结束,预备管理节点之间广播得到的共识集列表,验证节点信息,将该信息下发各共识集内部成员,完成分组确认,如图3所示。注意:当分组时间超过给定值或有新节点加入时,需要重新启动分组机制。
3、信用模型与投票机制
在信用模型中,为了便于计算,节点x的信用值Cx(t)取值范围设置为[0,10],初始信用值为5,该值越大,节点就越可信。每个节点的信任值应该根据其历史时期的信用值进行调整,从公式(1)可以看出,该调整机制可以根据每轮共识不断调整区块链网络中所有节点的信用值。具体如下,t轮共识,若有新区块产生,管理节点以及与管理节点有相同投票结果的共识集成员信用值都会增加;若管理节点没有产生新区块、共识集成员未参与投票或者投票结果与共识结果不同,则其信用值就会降低,下降速率由y决定;若管理节点或共识集成员向不同的节点发送了不同的信息,则视该节点为作恶节点,将其信用值清零。
其中,Cx(t+1)为第t轮共识节点x的评分,Cx(t)为第t-1轮共识节点x的评分,y为系数。
参与共识的节点依据信用模型计算节点的信用值,根据信用值的不同,为每个节点添加一个状态标识符,设置3个不同的节点状态,不同的状态拥有不同的投票权重,如表1所示。其中,“excellent”节点是稳定、可靠、交易良好的节点;“middle”节点是有中断或没有响应的节点;“poor”节点是有恶意行为的节点。
表1节点状态与权重
管理节点的选举是由信用积分与投票机制最终共同决定的,节点的最终得分计算公式如下:
其中,K为组内总节点数,i∈(1,2,3,…,N)且x≠i,m、n为两个参数,且m+n=1,weighti为第i个节点的权重。节点的最终得分分为基本分数和投票分数,基本分为该节点的信用值与参数m的乘积,投票分为共识集内其他节点的信用值与权重的乘积,该投票方法能够保证高可信的节点成为管理节点,保证投票选举的公平性,提高***的安全性。
如图4所示,管理节点选举与数据同步的具体步骤为:
广播共识集内各节点的信用值,更新信用值列表。
根据式(2)投票选举管理节点,票数超过投票节点总数的一半有效。
管理节点发起数据同步请求,消息格式为<DATA-REQUEST,num,t3,SG>,data>,其中,DATA-REQUEST表示数据同步的请求阶段,num为区块编号,t3为时间戳,SG为组长签名,data为要同步的数据,共识集成员收到同步消息后,检查签名等信息,若没有异议,更新自己的备份数据。
共识集成员数据同步成功,向管理节点回复同步确认消息<DATA-COMMIT,t4,Sx>,其中,DATA-COMMIT表示数据同步的确认阶段,t4为时间戳,Sx为组员签名。
4、M-PBFT改进共识流程
如图5所示,M-PBFT改进共识流程包括:
Step1:根据各节点之间的响应速度,得到各共识集,以最大限度地提高各节点之间的通信效率。首先利用节点加入联盟链的身份验证机制,选取G个节点作为管理节点,根据节点对管理节点的响应作为分组依据,将节点划分为G个共识集,最终每个共识集内包含一个管理节点与多个网络节点。
Step2:基于选举的管理节点,先进行共识集内共识,根据共识集内的结果,参与共识集外共识,以减少节点间的消息传输,组内外共识过程包括:
1)排序节点(一个固定用于收集网络中事务的节点,将一些事务聚集在一起,打包为一个区块,不参与共识)收集若干客户端发送的交易请求<REQUEST,t,c,tx,Sc>,验证交易与签名无误后(通过签名验证客户端的身份)打包成一个区块,发送给各共识集管理节点<OUT-PRE-PREPARE,n,t,m,So>D(m)>,其中,REQUEST表示M-PBFT算法的请求阶段,OUT-PRE-PREPARE为组外预准备阶段。
2)管理节点收到消息向所有共识集内成员发起共识提议<IN-PREPARE,n,t,D(m),SG>,其中,IN-PREPARE表示组内准备阶段。
3)共识集成员对收到的提议进行验证,若无误则将对提议的回应<IN-COMMIT,n,t,D(m),Sx>发送给管理节点,其中,IN-COMMIT表示组内确认阶段。
4)管理节点对共识集成员的回应进行确认,验证无误共识集内共识完成,所有管理节点代表各共识集参与全局共识,向除了自己之外的所有管理节点广播<OUT-PREPARE,n,t,D(m),SG>,进入准备阶段,其中,OUT-PREPARE表示组外准备阶段。
5)各管理节点对收到的消息进行验证,若有异议则丢弃,若收到超过2f个相同的消息,则向其他管理节点广播<OUT-COMMIT,n,t,D(m),SG>,其中,OUT-COMMIT表示组外确认阶段。
6)各管理节点对收到的确认消息进行验证,收到超过2f个验证通过的消息,则回复共识集内各成员<IN-REPLY,n,t,D(m),SG>,并且回复排序节点<OUT-REPLY,n,t,D(m),SG>,其中,IN-REPLY表示组内回复阶段。
7)排序节点最终回复客户端<SUBMIT,n,t,D(m),So>,共识达成,SUBMIT表示最终确认。其中,t为时间戳,c是客户端编号,tx为具体交易,So为排序节点签名,SG为管理节点签名,SX为共识节点签名,Sc为客户端签名,n表示区块编号,m表示需要共识的信息,D(m)为信息的摘要。
图6为本发明实施例2提供的数据共享***结构示意图。如图6所示,本实施例中的数据共享***,包括:
第一划分模块201,用于将联盟链的节点集中的各节点划分为一个排序节点和G个共识集;G≥4。
第二划分模块202,用于将共识集中的节点划分为一个管理节点和多个普通节点。
第三划分模块203,用于将任一个共识集作为当前共识集,将G个共识集中除当前共识集之外的共识集作为剩余共识集,执行数据共享模块204。
其中,数据共享模块204,包括:
集内共识子模块,用于当前共识集中的管理节点根据区块向当前共识集发起共识提议,进行集内共识;共识提议包括当前共识集中的管理节点的签名、区块的编号、待共享的数据和待共享的数据的摘要;区块是排序节点根据客户发送的交易请求对客户端进行验证后,将验证通过的交易请求打包形成的区块;交易请求包括:待共享的数据和待共享的数据的摘要。
集外共识子模块,用于当集内共识完成后,当前共识集中的管理节点向剩余共识集的管理节点发送共识提议,剩余共识集的管理节点进行集外共识。
第一共识结果发送子模块,用于当集外共识完成后,当前共识集中的管理节点和排序节点获取剩余共识集中的管理节点发送的共识结果。
第二共识结果发送子模块,用于排序节点将共识结果发送至客户端,待共享的数据完成共享。
实施例3
一种电子设备,包括:
一个或多个处理器。
存储装置,其上存储有一个或多个程序。
当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如实施例1中的方法。
实施例4
一种存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如实施例1中的方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种数据共享方法,其特征在于,所述方法包括:
将联盟链的节点集中的各节点划分为一个排序节点和G个共识集;G≥4;
将所述共识集中的节点划分为一个管理节点和多个普通节点;
将任一个共识集作为当前共识集,将G个所述共识集中除所述当前共识集之外的共识集作为剩余共识集,执行数据共享过程;
其中,所述数据共享过程为:
所述当前共识集中的管理节点根据区块向所述当前共识集发起共识提议,进行集内共识;所述共识提议包括所述当前共识集中的管理节点的签名、所述区块的编号、待共享的数据和所述待共享的数据的摘要;所述区块是所述排序节点根据客户发送的交易请求对所述客户端进行验证后,将验证通过的交易请求打包形成的区块;所述交易请求包括:待共享的数据和所述待共享的数据的摘要;
当所述集内共识完成后,所述当前共识集中的管理节点向所述剩余共识集的管理节点发送所述共识提议,所述剩余共识集的管理节点进行集外共识;
当所述集外共识完成后,所述当前共识集中的管理节点和所述排序节点获取所述剩余共识集中的管理节点发送的共识结果;
所述排序节点将所述共识结果发送至所述客户端,所述待共享的数据完成共享。
2.根据权利要求1所述的数据共享方法,其特征在于,所述将联盟链的节点集中的各节点划分为一个排序节点和G个共识集,具体包括:
从联盟链的节点集中确定一个节点为排序节点,确定G个节点为预备管理节点;
根据第一节点集中的各节点对所述预备管理节点的响应,将所述第一节点集中的各节点划分为G个预备共识子集;所述第一节点集为所述联盟链的节点集中除所述排序节点和G个所述预备管理节点之外的节点;
将所述预备共识子集和相应的预备管理节点确定为预备共识集;
所述预备管理节点向相应的预备共识子集中的节点发送分组探测消息;所述分组探测消息包括所述预备管理节点的签名;
当所述预备共识子集中的节点对所述预备管理节点的签名验证通过时,向所述预备管理节点发送加入申请;所述加入申请包括:所述预备共识子集中的节点的签名;
所述预备管理节点根据所述预备共识子集中的节点的签名判断所述预备共识集中的节点是否大于预设值;
若是,所述预备管理节点拒绝所述预备共识子集中的节点加入所述预备共识集;
若否,所述预备管理节点接收所述预备共识子集中的节点加入所述预备共识集,得到所述共识集。
3.根据权利要求2所述的数据共享方法,其特征在于,所述将所有所述共识集中的节点划分为一个管理节点和多个普通节点,包括:
通过所述共识集中的所述预备管理节点获取所述共识集中各节点的信用值;
所述共识集中的各节点根据所述信用值进行管理节点投票;
将获得的票数超过投票总数一半的节点确定为所述管理节点,将所述共识集中除所述管理节点之外的节点确定为所述普通节点。
4.根据权利要求1所述的数据共享方法,其特征在于,所述当前共识集中的管理节点根据所述区块向当前共识集中发起共识提议,进行集内共识,具体包括:
所述当前共识集中的管理节点向当前共识集中发起共识提议;
所述当前共识集中的普通节点对所述共识提议中的所述当前共识集中的管理节点的签名进行集内验证;
当集内验证通过时,所述当前共识集中的普通节点将所述共识提议的第一回应发送至所述当前共识集中的管理节点;所述第一回应包括:所述当前共识集中的普通节点的签名、所述区块的编号、所述待共享的数据和所述待共享的数据的摘要;
所述当前共识集中的管理节点对所有所述当前共识集中的普通节点的签名进行确认;
当确认通过时,集内共识完成。
5.根据权利要求4所述的数据共享方法,其特征在于,所述当前共识集中的管理节点向剩余共识集中的管理节点发送所述共识提议,进行集外共识,具体包括:
所述当前共识集中的管理节点将所述共识提议发送至剩余共识集中的管理节点;
所述剩余共识集中的管理节点对所述共识提议中的所述当前共识集中的管理节点的签名进行集外验证;
当集外验证通过时,且所述剩余共识集中的管理节点收得预设值个所述集外验证通过的所述共识提议时,集外共识完成。
6.一种数据共享***,其特征在于,所述***包括:
第一划分模块,用于将联盟链的节点集中的各节点划分为一个排序节点和G个共识集;G≥4;
第二划分模块,用于将所述共识集中的节点划分为一个管理节点和多个普通节点;
第三划分模块,用于将任一个共识集作为当前共识集,将G个所述共识集中除所述当前共识集之外的共识集作为剩余共识集,执行数据共享模块;
其中,所述数据共享模块,包括:
集内共识子模块,用于所述当前共识集中的管理节点根据区块向所述当前共识集发起共识提议,进行集内共识;所述共识提议包括所述当前共识集中的管理节点的签名、所述区块的编号、待共享的数据和所述待共享的数据的摘要;所述区块是所述排序节点根据客户发送的交易请求对所述客户端进行验证后,将验证通过的交易请求打包形成的区块;所述交易请求包括:待共享的数据和所述待共享的数据的摘要;
集外共识子模块,用于当所述集内共识完成后,所述当前共识集中的管理节点向所述剩余共识集的管理节点发送所述共识提议,所述剩余共识集的管理节点进行集外共识;
第一共识结果发送子模块,用于当所述集外共识完成后,所述当前共识集中的管理节点和所述排序节点获取所述剩余共识集中的管理节点发送的共识结果;
第二共识结果发送子模块,用于所述排序节点将所述共识结果发送至所述客户端,所述待共享的数据完成共享。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至5中任意一项所述的方法。
8.一种存储介质,其特征在于,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至5中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211416728.3A CN115834512A (zh) | 2022-11-14 | 2022-11-14 | 一种数据共享方法、***、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211416728.3A CN115834512A (zh) | 2022-11-14 | 2022-11-14 | 一种数据共享方法、***、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115834512A true CN115834512A (zh) | 2023-03-21 |
Family
ID=85527852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211416728.3A Pending CN115834512A (zh) | 2022-11-14 | 2022-11-14 | 一种数据共享方法、***、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834512A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117220884A (zh) * | 2023-09-05 | 2023-12-12 | 上海雷龙信息科技有限公司 | 一种数字签名交互验证方法、***、设备和介质 |
-
2022
- 2022-11-14 CN CN202211416728.3A patent/CN115834512A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117220884A (zh) * | 2023-09-05 | 2023-12-12 | 上海雷龙信息科技有限公司 | 一种数字签名交互验证方法、***、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mišić et al. | Adapting PBFT for use with blockchain-enabled IoT systems | |
US20230231855A1 (en) | Privacy Preserving Validation And Commit Architecture | |
US11128522B2 (en) | Changing a master node in a blockchain system | |
CN112311735B (zh) | 可信认证方法,网络设备、***及存储介质 | |
CN112541758A (zh) | 基于区块链的多轮投票式容错排序共识机制与方法 | |
CN109194702B (zh) | 医疗数据记录方法、***、计算机设备和存储介质 | |
CN113328997B (zh) | 联盟链跨链***及方法 | |
CN110380847A (zh) | 一种区块链共识方法和装置 | |
Wan et al. | Electronic contract signing without using trusted third party | |
CN112540926A (zh) | 一种基于区块链的资源分配公平的联邦学习方法 | |
CN113806699B (zh) | 一种云际计算环境中跨区块链身份验证方法及*** | |
CN112769580A (zh) | 一种区块链分层激励共识算法 | |
CN115499129A (zh) | 一种多模信任跨链共识方法、***、介质、设备及终端 | |
CN113612604A (zh) | 面向异步网络的安全分布式随机数生成方法及装置 | |
CN113568972A (zh) | 一种面向图式区块链的混合共识实现装置及实现方法 | |
CN115834512A (zh) | 一种数据共享方法、***、电子设备及存储介质 | |
CN115664682A (zh) | 基于联盟链主从多链的医疗数据共享的共识方法 | |
CN111787034B (zh) | 区块生成方法、同步方法、装置、区块链***和存储介质 | |
CN115174570A (zh) | 一种基于动态委员会的跨链共识方法及*** | |
CN114745140A (zh) | 基于聚合加密的城市规划领域区块链共识验证方法及*** | |
CN114449476A (zh) | 一种用于车联网中安全通信的区块链节点共识方法 | |
CN114422146A (zh) | 一种区块链主节点匿名排序方法 | |
Dewan et al. | Securing reputation data in peer-to-peer networks | |
CN115086049B (zh) | 基于可验证延迟函数的区块链医疗数据共享***及方法 | |
CN114172661B (zh) | 一种数字资产的双向跨链方法、***及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |