logo好方法网

一种多层区块链网络架构及其数据存储与分享方法


技术摘要:
本发明提供了一种多层区块链网络架构,通过索引链网络和边缘链网络相结合,搭建出多层次的区块链网络架构,使得区块链网络更加便于管理,数据传输更加方便。本发明还提供了一种多层区块链网络架构的数据存储与分享方法,S1:搭建所述多层区块链网络架构;S2:通过设计  全部
背景技术:
完整连续的病例资料对于医生的医疗诊断以及个人的健康管理均具有重要的价 值。在当前的官方医护体系下,健康档案记录通常由医生出具,由医生所在医疗机构存档, 患者则仅可获取其纸质副本。来源于不同医疗机构的健康档案纸质副本由于容易遗失、难 以归档等问题,个人很难实现系统化的管理。虽然近年来医院信息系统与电子病历系统发 展迅速,被广泛应用于各大医院,但在个人自由的生命历程中,历次病历资料不可避免的分 散、孤立地存在于不同医疗机构之中。由于不同医院之间数据标准不统一、技术架构差异以 及数据归属等问题,很难实现有效的整合与交互。对于个人而言,健康档案记录是一种隐私 数据,需要数据所有者的同意,授权给个人或者官方医护服务机构才能使用。 区块链是一种将数据区块按照时间序列组织和存储,并以密码学方式保证其不可 篡改和不可伪造的分布式记账技术。由于其分布式、去中心化的计算网络以及不可篡改、数 据加密的链式数据存储结构,满足健康档案的分散式、多数据源环境及其健康档案记录时 间序列式的数据存储特征,因此“区块链 医疗”成为了区块链领域中的一个热门的研究方 向。 目前,将区块链应用于医疗领域中的方法大致可以分为两类: 一类是搭建联盟链,令各大医院成为联盟链的成员,各成员将其所有医疗数据存 入联盟链中,如此虽然可以将个人历次健康档案有效整合,也能使得联盟成员外的组织和 个体无法直接得到用户医疗数据,但是联盟链上的医疗数据对于联盟成员而言是公开的, 个人对自己的医疗数据并没有真正的控制权,无法做到真正保护隐私。 另一类则是将病历数据以加密的形式存储在中心化的数据库中,区块链存储的是 索引和密钥,只有通过区块链才能找到真实数据的位置和解密数据的方法。将医疗数据加 密存储在数据库中,区块链只存索引和密钥,虽然使得数据的隐私性加强,但是数据在解密 过程中会耗费大量时间,牺牲了数据查询和存储的效率。而且真实数据存储在可篡改的中 心化数据库中不能保证数据的安全性,如果真实的数据被删除了,那么区块链中的索引会 变成“空指针”,没有实际意义。 由于现有的区块链网络中的各个节点是对等的,每个节点都会保存所有交易记录 的区块链副本。如果将所有医疗数据保存到区块链上,那么链上的每个节点都保存所有人 的健康档案数据的副本,而这种方式会带来巨大而不必要的存储成本,因为为个人提供服 务以及健康档案数据的医疗机构数量是有限的。
技术实现要素:
本发明为克服目前应用在医疗方面的区块链网络存在大量存储冗余的技术缺陷, 5 CN 111556140 A 说 明 书 2/10 页 提供一种多层区块链网络架构及其数据存储与分享方法。 为解决上述技术问题,本发明的技术方案如下: 一种多层区块链网络架构,包括一个索引链网络和若干个边缘链网络,所述索引 链网络至少由两个索引节点连接组成;所述边缘链网络至少由共识节点、索引节点和存储 节点各一个相互连接组成;所述索引链网络与所述边缘链网络通过所述索引节点连接。 上述方案中,通过索引链网络和边缘链网络相结合,搭建出多层次的区块链网络 架构,使得区块链网络更加便于管理,数据传输更加方便;其中,区块链网络架构的层数与 边缘链网络的数量相等。 优选的,所述共识节点、索引节点、存储节点之间通过超文本传输协议HTTP进行连 接。 上述方案中,采用HTTP连接,实现各个节点之间简单、快速、灵活的传输通信。 优选的,所述多层区块链网络架构还包括数据库,所述数据库采用CouchDB数据 库。 上述方案中,采用CouchDB数据库实现多层区块链网络中数据的灵活存储、增删。 一种多层区块链网络架构的数据存储与分享方法,包括以下步骤: S1:搭建所述多层区块链网络架构; S2:通过设计智能合约定义数据在所述多层区块链网络架构的存储与分享过程; S3:编写链码并部署在所述多层区块链网络架构中; S4:将数据源(第三方医疗机构)接入所述多层区块链网络架构并上传,完成数据 上链的过程,实现所述多层区块链网络架构的数据存储与分享。 上述方案中,搭建一种索引链网络和边缘链网络相结合的多层区块链网络架构, 并通过编程设计出在这个多层区块链网络架构下动态运行智能合约,定义数据在多层区块 链网络架构的存储与分享过程,实现个人健康档案数据在医疗领域中有效整合、稀疏共享 的需求,避免个人健康档案数据存在大量存储冗余,节约存储成本。 优选的,步骤S1具体包括以下步骤: S1 .1:在全国各个省份中搭建服务器作为边缘节点,并且搭建一个额外的服务器 作为主节点; S1 .2:在每个服务器上通过提供区块链服务的平台搭建区块链网络,形成所述多 层区块链网络架构。 上述方案中,搭建服务器可以选择在华为云或者阿里云等提供云服务的企业租借 服务器,在每个服务器上通过华为云BCS(或者其他提供区块链服务的平台)搭建基于 Hyperledger  Fabric的区块链网络。 优选的,在步骤S2中,数据在所述多层区块链网络架构中的保存形式定义为: 存储节点以key-value的形式保存单个用户的单次档案数据,形成用户列表;其 中,用户的ID作为key,且该用户的单次档案数据作为value; 索引节点以key-value的形式保存该索引节点所在的边缘链网络内的所有用户在 其他保存有相同用户的档案数据的边缘链网络的索引节点的地址,形成地址列表;其中,用 户的ID作为key,value采用列表保存其他索引节点的地址; 共识节点以key-value的形式保存该共识节点所在的边缘链网络内的所有用户在 6 CN 111556140 A 说 明 书 3/10 页 该边缘链网络内注册过的存储节点的地址,形成注册列表;其中,用户的ID作为key,value 采用列表保存存储节点的地址; 共识节点以key-value的形式保存该共识节点所在的边缘链网络内的所有用户在 该边缘链网络内的注册时间,形成时间列表;其中,用户的ID作为key,value采用列表保存 注册时间。 上述方案中,以key-value的形式保存数据,实现快速的数据查询。 优选的,步骤S2具体包括以下步骤: S2.1:定义数据的存储过程; S2.2:定义用户的注册过程; S2.3:定义数据的迁移过程; S2.4:设置授权访问机制。 上述方案中,通过设计智能合约实现多层区块链网络架构的数据的存储过程、用 户的注册过程和数据的迁移过程,实现个人健康档案数据的整合、稀疏共享的需求;同时通 过设置授权访问机制,使第三方医疗机构需要在用户授权的情况下才能在存储节点中获得 该用户的所有健康档案记录,更好地保护了用户的隐私,实现了授权复用的需求。 优选的,步骤S2.1具体包括以下步骤: S2.1.1:存储节点接收到用户上传数据的请求; S2.1.2:接收到上传请求的存储节点根据提出上传请求的用户的ID检查其用户列 表是否存在该用户的ID; 如果存在,接收到上传请求的存储节点向其所在的边缘链网络的其余存储节点发 出广播; 如果不存在,执行S2.1.10; S2.1.3:其余存储节点接收到广播后根据该用户的ID检查其用户列表是否存在该 用户的ID; 如果存在,则向同一边缘链网络内的共识节点返回该用户存在的用户存在性标 识; 如果不存在,则向同一边缘链网络内的共识节点返回该用户不存在的用户存在性 标识; S2.1 .4:共识节点接收到返回的用户存在性标识后,检查用户存在性标识与其注 册列表是否对应; 如果对应,该共识节点向对应的存储节点反馈共识通过的结果,并将该用户的ID 和上传的数据发送到该共识节点所在的边缘链网络的索引节点中; 如果不对应,执行S2.1.10; S2.1.5:接收到共识通过的存储节点存储该用户上传的数据; 接收到该用户的ID和上传的数据的索引节点检查其地址列表是否存在该用户的 ID; 如果存在,该索引节点按照其地址列表分别向其他存储有该用户的ID的索引节点 发送该用户的ID和上传的数据; 如果不存在,执行S2.1.10; 7 CN 111556140 A 说 明 书 4/10 页 S2.1.6:接收到该用户的ID和上传的数据的索引节点各自在其所在的边缘链网络 进行广播; S2.1.7:接收到广播的存储节点根据接收到的用户的ID检查其用户列表是否存在 该用户的ID,并各自向其所在的边缘链网络的共识节点返回用户存在性标识; S2.1.8:接收到用户存在性标识的共识节点检查用户存在性标识与其注册列表是 否对应; 如果对应,该共识节点向对应的存储节点反馈共识通过的结果; 如果不对应,执行S2.1.10; S2.1.9:接收到共识通过的存储节点存储该用户上传的数据; S2.1.10:数据的存储过程结束。 上述方案中,用户只需要在任意一个注册过的存储节点上上传个人健康档案数 据,该用户注册过的其他存储节点也会同步存储。因此,当用户想要查询其个人健康档案数 据时,无论在任意一个该用户注册过的存储节点上都能查询到该用户的可追溯的、完整的 健康档案数据,实现了个人健康档案数据的跨网络存储、整合、稀疏共享功能。 优选的,步骤S2.2具体包括以下步骤: S2.2.1:存储节点接收到用户的注册请求; S2.2.2:接收到注册请求的存储节点根据提出注册请求的用户的ID检查其用户列 表是否存在该用户的ID; 如果存在,执行S2.2.7; 如果不存在,该存储节点向其所在的边缘链网络的共识节点和索引节点发出广 播; S2.2.3:接收到广播的共识节点根据该用户的ID检查其注册列表是否存在该用户 的ID; 如果存在,为该用户添加新注册的存储节点的地址; 如果不存在,将该用户的ID和新注册的存储节点的地址保存到该共识节点中; 接收到广播的索引节点根据该用户的ID检查其地址列表是否存在该用户的ID; 如果存在,执行S2.2.4; 如果不存在,该索引节点添加该用户的ID并在索引链网络中向其余索引节点发出 广播,执行S2.2.5; S2.2.4:存在该用户的ID的索引节点检查该用户的ID有没有在其他边缘链网络注 册; 如果有,该索引节点不作任何处理,执行S2.2.7; 如果没有,该索引节点向索引链网络中其他索引节点发出广播; S2.2.5:其余索引节点接收到广播后检查各自的地址列表是否存在该用户的ID; 存在该用户的ID的索引节点添加发出广播的索引节点的地址,并将自身的地址发 送到发出广播的索引节点中, 不存在该用户的ID的索引节点不作任何处理; S2.2.6:发出广播的索引节点添加其他索引节点反馈回来的地址; S2.2.7:用户的注册过程结束。 8 CN 111556140 A 说 明 书 5/10 页 上述方案中,用户在存储节点新注册之后,同一边缘链网络的共识节点同步保存 该用户的ID和该用户新注册的存储节点的地址;该用户注册过的所有边缘链网络的索引节 点互相保存地址。 优选的,步骤S2.3具体包括以下步骤: S2.3.1:用户新注册成功后,新注册所在的存储节点在其所在的边缘链网络内向 索引节点和其余存储节点发起广播; S2.3.2:接收到广播的存储节点检查各自的用户列表是否存在该用户的ID;存在 该用户的ID的存储节点将该用户的数据发送到发出广播的存储节点中;不存在该用户的ID 的存储节点不执行任何操作; 该边缘链网络的索引节点接收到广播后,根据该用户的ID向其他存储有该用户的 ID的索引节点发出广播; S2.3.3:其他索引节点收到该边缘链网络的索引节点发出的广播后,各自向其所 在的边缘链网络中的共识节点发出广播; S2.3.4:各个共识节点接收到广播后向各自所在的边缘链网络内存储有该用户的 ID的存储节点发出广播; S2 .3 .5:接收到广播的存储节点向各自所在的边缘链网络内的索引节点发送数 据; S2.3.6:收到存储节点发送的数据的索引节点把数据转发到新注册所在的边缘链 网络的索引节点中; S2.3.7:新注册所在的边缘链网络的索引节点接收到数据后转发到新注册所在的 存储节点中; S2.3.8:数据的迁移过程结束。 上述方案中,用户在新的存储节点注册后,能够将历来保存在多层区块链网络架 构中的数据同步到新注册的存储节点上,实现数据的分享,提高查询效率。 与现有技术相比,本发明技术方案的有益效果是: 本发明提供了一种多层区块链网络架构,通过索引链网络和边缘链网络相结合, 搭建出多层次的区块链网络架构,使得区块链网络更加便于管理,数据传输更加方便。还提 供了一种多层区块链网络架构的数据存储与分享方法,搭建一种索引链网络和边缘链网络 相结合的多层区块链网络架构,并通过编程设计出在这个多层区块链网络架构下动态运行 智能合约,定义数据在多层区块链网络架构的存储与分享过程,实现个人健康档案数据在 医疗领域中有效整合、稀疏共享的需求,避免个人健康档案数据存在大量存储冗余,节约存 储成本。 附图说明 图1为本发明中一实施例的两层区块链网络架构示意图; 图2为本发明中一种多层区块链网络架构的数据存储与分享方法的实施流程图; 图3为本发明中一实施例的存储节点存储用户列表的部分内容示意图; 图4为本发明中一实施例的索引节点存储地址列表的部分内容示意图; 图5为本发明中一实施例的共识节点存储注册列表的部分内容示意图; 9 CN 111556140 A 说 明 书 6/10 页 图6为本发明中一实施例的共识节点存储时间列表的部分内容示意图; 图7为本发明中一实施例的数据的存储过程的实施流程图; 图8为本发明中一实施例的用户的注册过程的实施流程图; 图9为本发明中一实施例的数据的迁移过程的实施流程图。
下载此资料需消耗2积分,
分享到:
收藏