CN114116899A - 一种基于区块链的卫星集群分布式数据安全存储方法 - Google Patents
一种基于区块链的卫星集群分布式数据安全存储方法 Download PDFInfo
- Publication number
- CN114116899A CN114116899A CN202111402149.9A CN202111402149A CN114116899A CN 114116899 A CN114116899 A CN 114116899A CN 202111402149 A CN202111402149 A CN 202111402149A CN 114116899 A CN114116899 A CN 114116899A
- Authority
- CN
- China
- Prior art keywords
- block chain
- data
- block
- node
- blockchain
- 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
- 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
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于区块链的卫星集群分布式数据安全存储方法,本发明采用区块链技术分布式存储卫星集群中的敏感数据,解决了传统集中式存储服务易产生的单点失效等问题;采用高效共识算法和双层存储架构,解决了传统区块链存储开销较大,共识效率较低,数据检索较慢等问题;将区块链系统和客户端平台适配部署于云计算平台中,解决了传统区块链系统开发中部署复杂,兼容困难等问题;采用基于前端界面的客户端平台,为区块链数据库的存储与查询过程提供可视化界面,方便用户使用面向卫星集群的基于区块链的分布式数据存储系统。
Description
技术领域
本发明属于云计算安全领域,具体涉及一种基于区块链的卫星集群分布式数据安全存储方法。
背景技术
自20世纪以来,卫星集群系统基础建设的发展正逐渐成为各航天大国竞争的主要目标,随着航天空间技术的发展,构建一个基于卫星集群网络的分布式计算系统迫在眉睫。目前,从卫星集群网络的发展趋势来看,卫星采集的数据量正在逐渐增加,且数据信息的安全性越发敏感。然而,传统的基于集中式存储服务的架构具有一定的局限性,无法提供分布式、多层次、负载均衡的数据存储服务,因而不适用于卫星集群的分布式系统架构。此外,在传统的关系型数据库领域中,以具有代表性的MySQL为例,虽然该数据库能够实现存储数据的高效操作,但是因为其集中式架构易产生单点失效的问题,因而不适应于数据敏感的卫星集群系统。
区块链作为一种高安全的分布式计算及存储的新兴技术,其去中心化、不可篡改和追踪溯源等特性,为实现天基网络数据的安全备份容灾、异构群体共享、多边利益最大化提供了可能。然而,在传统的区块链数字账本领域中,以支持智能合约的以太坊为例,虽然该数据库可以实现抗单点失效与防数据篡改等功能,但是其数据操作效率较低,不能满足卫星集群系统实时性的需求;另一方面,在现有的区块链技术开发中,区块链节点的部署较繁琐复杂,需要提前静态设置配置文件中的参数信息,不适应于卫星集群中区块链节点加入的动态性需求。
作为全球首个基于区块链的数据库应用平台,ChainSQL是国内最先获得国家密码管理局颁发的商用密码产品型号证书的区块链软件产品。该平台集合了区块链技术与传统数据库的优点,不仅具有区块链的分布式、去中心化、可审计的特性,同时兼备传统数据库的快速查询、数据结构优美的特性,但是其在共识节点选取阶段效率较低,无法满足卫星集群系统中数据量高并发的业务场景需求。
综上所述,在现有技术中,卫星集群的数据存储存在单点故障,数据存储安全性低,开销成本大等问题;在基于区块链的分布式数据存储情况下,现有方案未考虑区块链节点部署加入的动态性,共识协议的高效性,数据存储与检索的实时性。
发明内容
本发明的目的在于克服卫星集群中数据集中式存储易产生的安全问题,提供一种基于区块链的卫星集群分布式数据安全存储方法,通过结合区块链和云计算平台,保证在没有可信第三方参与的卫星集群环境下,区块链节点的稳定快速部署和空间集群数据的分布式安全存储。
为了达到上述目的,本发明采用的技术方案如下:
一种基于区块链的卫星集群分布式数据安全存储方法,包括以下步骤:
S1,生成区块链系统,确定基于Raft的随机共识协议,基于Raft的随机共识协议的内容包括每轮生成新区块的同时,由该轮的记账代理节点随机选取下一轮的记账节点;
S2,生成区块链节点,在智能集群嵌入式节点中选取至少三个节点作为区块链主节点,在区块链主节点上部署区块链系统,部署区块链系统后的区块链主节点用于获取客户端平台的交易上链请求,区块链主节点能够通过随机共识协议将交易中的数据存储于主节点的数据库中,并部署客户端平台;
S3,通过客户端平台或调用区块链系统提供的API接口向部署于卫星集群节点的区块链系统中插入数据。
S1中,确定基于Raft的随机共识协议的具体方法如下:
步骤一,区块链节点j用自己的公钥Kpub解密第n-1轮区块Block(n-1)的秘密息字段Nx_M并判断自己是否为第n轮记账区块链节点,如果是,则执行步骤二;
步骤二,区块链节点j通过Raft随机函数Raft(.),生成下一轮记账区块链节点x,并将自身的签名Sig,公钥证书Cert,区块链节点x的秘密信息Nx_M,时间戳Tamp以及当前一段时间内收集的交易数据填入区块Blockn中;
步骤三,区块链节点j将生成的新区块Blockn广播至集群内其余的区块链节点,然后等待其他区块链节点的数据反馈,统计接收到反馈数据的数量,当节点j接收到超过整个区块链网络中共识节点数量的三分之二时,它将把区块Blockn写入本地区块链中;
步骤四,当集群内部的其他区块链节点收到Blockn时,他们首先验证该区块前后的哈希链式关系,然后用节点j的公钥证书Cert验证区块头中的签名字段Sig是否成立,随后获取Blockn区块头中的秘密信息字段Pr_M字段和Nx_M字段,验证第n轮记账节点和第n+1轮记账节点身份的真实性;
步骤五,如果验证全部通过,该节点向当前打包节点j发送一个接受信息true,并将区块Blockn写入本地区块链。
S1中,区块链系统包括底层区块链和顶层数据库,区块链系统的数据写入包括底层区块链的写入和顶层数据库的写入;
底层区块链为采用区块链数据结构存储的数据变化增量,顶层数据库是由底层数据变化增量得到的数据最终状态集;底层区块链采用关系型数据库进行结构化存储,顶层数据库采用业务所需的数据库类型;
底层区块链为采用区块链数据结构存储的数据变化增量,底层区块链采用拥有较高的尾部写入性能的链式数据结构;底层区块链通过API接受用户的上链请求,将该上链请求以待上链交易的形式在节点间广播,共识出块时间到达时,节点将当前待上链交易打包为区块,遵循区块链数据结构,存储在底层区块链的数据库中;
顶层数据库是由底层数据变化增量得到的数据最终状态集,顶层数据库采用块式结构存储,同时使用B+树建立索引;每当各代理节点,利用共识协议获取到一致的区块后,会将新区块中的数据变化增量复现到顶层状态数据库中,顶层状态数据库为最新状态,利用B+树建立索引。
S1中,区块链系统基于javascript web的客户端平台设计。
S2中,将客户端平台适配部署于云计算平台中,能够向智能集群内部的区块链系统发起上链请求交易。
S2中,生成区块链节点的具体方法如下:
采用容器技术将区块链系统封装成容器镜像,容器镜像包括区块链镜像和数据库镜像,将区块链系统镜像上传至卫星集群的镜像仓库中;
声明Deployment容器应用,将区块链镜像和数据库镜像从镜像仓库中拉至容器中;然后将config配置文件挂载到容器卷内;随后声明应用标签名称,用于区分各Deployment容器应用;最后设置pod端口号,用于接收或发送数据信息;
声明Service容器应用,将各Deployment容器应用的端口号映射为服务的端口号,用于接收集群内部其他服务的数据,采用Service容器应用固定IP号,设置Service下的clusterIP参数为None;
在云计算平台中添加并启动区块链系统的yaml文件和区块链服务的yaml文件。
S2中,部署客户端平台的具体方法如下:
采用容器技术将客户端平台封装成容器镜像,然后将客户端平台镜像上传至卫星集群的镜像仓库中;
声明Deployment容器应用,将客户端平台镜像从镜像仓库中拉至容器中;然后声明应用标签名称,用于区分各Deployment容器应用;最后设置pod端口号,用于接收或发送数据信息;
声明Service容器应用,将各Deployment容器应用的端口号映射为服务的端口号,用于接收集群内部其他服务的数据。然后设置该Service为NodePort类型,保证集群外部用户对于集群内部区块链系统的数据访问;
将客户端平台容器的yaml文件和客户端平台服务的yaml文件添加至云计算平台的yaml文件集中,通过控制行命令启动客户端平台。
当通过客户端平台向部署于卫星集群节点的区块链系统中插入数据时,用户直接启动界面,选择数据插入选项,在相应窗口下输入sql插入语句,完成向部署于卫星集群节点的区块链系统中插入数据。
当用户选择通过区块链系统提供的API接口向部署于卫星集群节点的区块链系统中插入数据时,具体方法如下:
调用区块链数据上链请求接口,区块链数据上链请求接口作为区块链系统的网关负责接收新数据的上链请求;
采用容器技术将用户自主编写的应用程序编译成镜像文件并上传至镜像仓库中;
设计编写yaml文件,将用户自主编写的应用程序适配部署于云计算平台,当启动该yaml文件后,数据将根据程序进程自动地存储于部署于卫星集群节点的区块链系统中。
与现有技术相比,本发明所具有的有益效果如下:
本发明采用区块链技术分布式存储卫星集群中的敏感数据,实现了卫星集群环境下数据的分布式安全存储,解决了传统集中式存储服务易产生的单点失效等问题;采用安全高效的基于Raft的随机共识协议,在保证代理记账节点选择的随机性和可验证性的同时,大大地降低了节点的计算能耗,提升了共识协议的效率;采用双层存储架构,解决了传统区块链存储开销较大,数据检索较慢等问题;将区块链系统和客户端平台适配部署于云计算平台中,解决了传统区块链系统开发中部署复杂,兼容困难等问题;采用基于前端界面的客户端平台,为区块链数据库的存储与查询过程提供可视化界面,方便用户使用面向卫星集群的基于区块链的分布式数据存储系统。
进一步的,本发明采用了底层区块链和顶层数据库的双层存储架构,底层区块链用于存储交易中的数据增量,顶层数据库用于存储数据的最终状态,在保证集群内部数据安全存储的同时,优化了数据查询的检索过程。
进一步的,本发明将区块链系统和客户端平台适配部署于云计算平台中,通过设计yaml配置文件,保证了区块链节点的快速部署和横向拓展,从而方便了区块链节点的动态迁移,提升了区块链系统的启动进程。
附图说明
图1为本发明的区块链数据结构图;
图2为本发明中区块链系统共识算法的流程图;
图3为本发明的客户端平台界面展示;
图4为本发明中区块链系统适配阶段流程图;
图5为本发明的数据存储查询阶段流程图。
具体实施方式
下面结合附图对本发明做进一步说明。
在信息化时代下,卫星,武器装备正朝着网络化,集群化的群体智能方向发展,它们以嵌入式和互联网等技术平台作为支撑,把不同功能的设备或系统连接成一个相互支持,相互联动的整体,使不同层面的资源要素之间的联系更加紧密,能够形成全方位攻击和全维防护的立体、高效、功能要素齐全整体,以提高协作效能。然而,在智能集群场景中,具备资源分散,混合异构,网络拓扑高动态变化等特点,为了保证集群设备间信息共享的安全性和可靠性,迫切需要一个无中心化、高可用的分布式数据共享方案,来合理利用整个集群中信息资源,为上层应用提供可靠、功能丰富的服务。
本发明针对这些问题展开创新与研究,提出一种基于区块链的卫星集群分布式数据安全存储方法。为了保证分布式空间集群网络环境中卫星设备间数据存储的安全性,需要采用区块链作为智能化集群网络中数据安全存储的关键技术。
本发明是一种基于区块链的卫星集群分布式数据安全存储方法,其中智能集群是由分布在不同空间的多个卫星节点组成,集群中任一节点均至少与两条线路相连,当任意一条线路发生故障时,通信可转经其他链路完成,具有较高的安全可靠性;区块链是一种由多方共同维护且能够实现数据一致性存储的分布式账本架构,该帐本中的数据不需要可信第三方进行维护,而是由智能集群网络中的各区块链节点共同参与数据的验证和维护。本发明面向卫星集群的基于区块链的分布式数据存储分为三个阶段进行:第一阶段为区块链系统生成阶段,第二阶段为区块链系统部署阶段,第三阶段为数据存储查询阶段,具体包括如下步骤:
为了更加方便清楚地表述卫星集群网络中卫星设备间数据存储的活动流程。假设该集群内部的卫星节点都已提前在CA处注册了公私钥对(Kpub,Kpri)。
1.区块链系统生成阶段:
(1.1)构建块链数据结构:
参见图1,本发明所设计的卫星集群设备存储的数据以交易账单的形式存储在区块链中,相邻区块间以哈希链方式形成区块链。同时,考虑到区块链庞大的存储开销不适应于空间集群节点有限的存储空间,本发明采用滑动窗口机制仅保留最近一段时间的数据,具体区块链的数据结构如下:
区块头:前一区块链的哈希值P_Hash;当前区块的编号Num,具体地,第n个区块Blockn的编号为n;当前时间戳Tamp;本轮记账节点的公钥证书Cert;本轮记账节点的信息Pr_M;区块体的哈希根值Hash;下一轮记账节点的秘密信息Nx_M;本轮记账节点对整个区块信息的签名Sig。
区块体:包含当前一段时间内全网获取的交易请求信息,通过计算哈希生成当前区块头中的哈希根值Hash。
滑动窗口机制:为了实现卫星集群环境下的轻量级的数据存储,本发明采用滑动窗口机制,即仅保留窗口内部的全部区块及创世区块Block0,并删除窗口外部其余历史区块中的区块体数据。
(1.2)设计共识协议:
共识算法是保证卫星集群环境下存储数据一致性共享的关键技术,它运行在区块链节点上。本发明采用安全高效的基于Raft的随机共识协议,其核心思想是在每轮生成新区块的同时,由该轮的记账区块链节点随机选取下一轮的记账区块链节点。下面以第n轮共识为例(假设在第n-1轮的记账区块链节点i,选取的第n轮记账区块链节点为j),具体描述该共识协议的步骤:
(1.21)参见图2,区块链节点j用自己的公钥Kpub解密第n-1轮区块Block(n-1)的秘密息字段Nx_M并判断自己是否为第n轮记账区块链节点,如果是,则执行步骤(1.22);
(1.22)区块链节点j通过Raft随机函数Raft(.),生成下一轮记账区块链节点x,并将自身的签名Sig,公钥证书Cert,区块链节点x的秘密信息Nx_M,时间戳Tamp以及当前一段时间内收集的交易数据填入区块Blockn中;
(1.23)区块链节点j将生成的新区块Blockn广播至集群内其余的区块链节点,然后等待其他区块链节点的数据反馈,统计接收到反馈数据的数量,当节点j接收到超过整个区块链网络中共识节点数量的三分之二时,它将把区块Blockn写入本地区块链中;
(1.24)当集群内部的其他区块链节点收到Blockn时,他们首先验证该区块前后的哈希链式关系,然后用节点j的公钥证书Cert验证区块头中的签名字段Sig是否成立,随后获取Blockn区块头中的秘密信息字段Pr_M字段和Nx_M字段,验证第n轮记账节点和第n+1轮记账节点身份的真实性;
(1.25)如果验证全部通过,该节点向当前打包节点j发送一个接受信息true,并将区块Blockn写入本地区块链。
(1.3)生成双层数据库存储架构:
本发明采用底层区块链和顶层数据库的双层区块链数据库架构,数据的写入由下至上完成。包括分层区块链数据库、底层区块链的写入和顶层数据库的写入,具体表述为如下步骤:
(1.31)通过分层设计将数据分为2层;底层为采用区块链数据结构存储的数据变化增量,顶层是由底层数据变化增量得到的数据最终状态集。底层采用关系型数据库进行结构化存储,顶层可以采用业务所需的数据库类型。
(1.32)底层为采用区块链数据结构存储的数据变化增量,链式数据结构拥有较高的尾部写入性能;通过API接受用户的上链请求,将该上链请求以待上链交易的形式在节点间广播,共识出块时间到达时,节点将当前待上链交易打包为区块,遵循区块链数据结构,存储在底层区块链数据库中。
(1.33)顶层是由底层数据变化增量得到的数据最终状态集,采用块式结构存储,同时使用B+树建立索引;每当各代理节点,利用共识协议获取到一致的区块后,会将新区块中的数据变化增量复现到顶层状态数据库中,顶层状态数据库为最新状态,利用B+树建立索引。
(1.4)搭建客户端平台:
参见图3,为了保证区块链数据的快速插入和可视化数据查询,本发明开发了基于区块链服务器系统的客户端网站平台,在该平台中,用户可向区块链节点以域名的方式发起交易上链请求。同时,用户也可以查询最近区块(窗口内)的区块数据和具体表名下的记录内容。
本发明将区块链技术运用于卫星集群场景,实现了分布式环境下卫星集群间的安全存储。本发明采用高效共识协议和滑动窗口机制,大大降低了区块链系统运行时的计算能耗和存储消耗。双层存储架构,在保证集群内部数据安全存储的同时,优化了用户数据查询的检索时耗。同时,用户可通过界面友好的方式向卫星集群插入敏感数据并查询相关记录。
2.区块链系统部署阶段
(2.1)生成区块链节点:
在智能集群嵌入式节点中选取至少三个节点作为区块链主节点并在其上部署区块链系统,用于获取客户端平台的交易上链请求,然后,区块链主节点能够通过共识协议将交易中的数据存储于该主节点的数据库中。为了保证后续区块链节点的高效部署和快速横向拓展,本方案将区块链系统适配部署于云计算平台中,方便区块链系统的启动和负载均衡。
步骤(2.1)中所述的将区块链系统适配部署于云计算平台并生成区块链节点,为了方便区块链系统的高效部署和区块链节点的快速启动,需提前在各空间集群节点上部署云计算平台,使空间节点能够轻易地部署和管理容器化的应用(区块链系统),参见图4,具体部署过程如下:
(2.11)编译区块链系统镜像文件。本发明采用容器技术,将区块链系统封装成容器镜像,包括区块链镜像和数据库镜像。然后将区块链系统镜像上传至卫星集群的镜像仓库中,以便后续的基于区块链的分布式安全存储应用服务使用。
(2.12)配置区块链系统yaml文件。由于本发明所涉及的区块链系统包括区块链镜像,数据库镜像和config配置文件,因此需要设计、配置、添加yaml文件,将区块链系统适配部署于云计算平台,具体表述为如下步骤:
(2.12a)设计区块链系统的yaml文件。首先声明Deployment容器应用,将区块链镜像和数据库镜像从镜像仓库中拉至容器中;然后将config配置文件挂载到容器卷内;随后声明应用标签名称,用于区分各Deployment容器应用;最后设置pod端口号,用于接收或发送数据信息;
(2.12b)设计区块链服务的yaml文件。首先声明Service容器应用,将各Deployment容器应用的端口号映射为服务的端口号,用于接收集群内部其他服务的数据。由于podIP值在每次重新启动系统的过程中都会发生改变,因此本发明采用Service容器应用来固定IP号,集群内部的其他服务或容器只需访问服务的固定IP和容器的端口号,即可访问该服务下的容器,然后设置Service下的clusterIP参数为None,便于区块链节点之间通过“域名+端口号”的方式进行访问;
(2.12c)在云计算平台中添加并启动区块链系统的yaml文件和区块链服务的yaml文件,此时可以看到卫星集群节点上已随机部署上了区块链系统,且该节点成为了区块链节点。
本发明将区块链系统适配部署于云计算平台中,通过配置yaml文件,保证了区块链系统在卫星集群中的快速部署以及区块链节点的横向拓展,且云计算平台支持容器自动化管理、负载均衡、日志查询等功能,因此本发明在卫星集群环境中的部署和运行过程将更加高效和稳定。
(2.2)部署客户端平台:
为了向智能集群内部的区块链系统发起上链请求交易,将客户端平台适配部署于云计算平台中。
步骤(2.2)中为了实现数据快速安全的存储于云计算平台中的区块链系统下,需要将客户端平台同样部署于云计算平台中,其具体部署过程如下:
(2.21)编译客户端镜像文件。同样采用容器技术,将客户端平台封装成容器镜像,然后将客户端平台镜像上传至卫星集群的镜像仓库中。
(2.22)配置客户端平台yaml文件。为了保证用户快速方便地向卫星集群插入、存储、查询敏感数据,需要设计、配置、添加客户端平台的yaml文件,将客户端平台适配部署于云计算平台,具体表述为如下步骤:
(2.22a)设计客户端平台容器的yaml文件。首先声明Deployment容器应用,将客户端平台镜像从镜像仓库中拉至容器中;然后声明应用标签名称,用于区分各Deployment容器应用;最后设置pod端口号,用于接收或发送数据信息;
(2.22b)设计客户端平台服务的yaml文件。首先声明Service容器应用,将各Deployment容器应用的端口号映射为服务的端口号,用于接收集群内部其他服务的数据。然后设置该Service为NodePort类型,保证集群外部用户对于集群内部区块链系统的数据访问;
(2.22c)将客户端平台容器的yaml文件和客户端平台服务的yaml文件添加至云计算平台的yaml文件集中,通过控制行命令即可启动客户端平台,此时用户可在集群外部访问客户端界面并进行数据存储和数据查询操作。
本发明将基于javascript web开发的客户端平台部署于云计算平台中,在保证用户向卫星集群存储敏感数据的同时,形象生动地以可视化的形式展示了空间集群内部存储的具体数据内容。
3.数据存储查询阶段
(3.1)数据存储与查询:
本系统可通过客户端平台或调用区块链系统提供的API接口向卫星集群插入数据。同时,本系统可通过客户端平台查询获取卫星集群存储的数据内容。
步骤(3.1)中所述的用户可通过客户端平台或编写程序调用区块链系统提供的API接口向卫星集群插入数据,参见图5,具体包括如下步骤:
(3.11)本发明提供两种数据存储的方式,用户可根据自身需求自行选择,若用户需要快速的向区块链系统插入数量有限的数据,则用户可启动客户端平台,完成数据存储的过程;若用户需要向区块链插入海量数据,则用户可自行编写数据插入程序,通过调用区块链系统提供的API接口的方式来完成海量数据存储的过程;
(3.12)若用户选择通过客户端平台向区块链系统插入数据,则用户可直接启动界面,选择数据插入选项,在相应窗口下输入sql插入语句,即可向部署于卫星集群节点的区块链系统中插入敏感数据。
(3.13)若用户选择通过编写应用程序并调用接口的方式向区块链系统插入数据,则其数据存储过程如下:
(3.13a)在编写数据存储功能模块时调用区块链数据上链请求接口,该接口作为区块链系统的网关负责接收新数据的上链请求,值得注意的是,用户在设置数据传输的目的地址时,需要填写区块链节点的域名和端口号;
(3.13b)采用容器技术,将用户自主编写的应用程序编译成镜像文件并上传至镜像仓库中;
(3.13c)设计编写yaml文件,将用户自主编写的应用程序适配部署于云计算平台,当启动该yaml文件后,其海量数据将根据程序进程自动地存储于区块链系统中;
(3.14)用户可通过客户端平台查询数据库中的表记录以及区块信息。
以上描述仅不构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式上和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变在本发明的权利要求保护范围之内。
简而言之,本发明公开的是一种基于区块链的卫星集群分布式数据安全存储方法。主要解决现有卫星集群中数据集中式存储易产生的安全问题,通过结合区块链和云计算平台,保证在没有可信第三方参与的卫星集群环境下,区块链节点的稳定快速部署和集群数据的分布式安全存储。其实现方案是:1.在区块链系统生成阶段中,通过设计区块链数据结构,共识算法和数据库存储架构实现区块链系统的去中心化存储功能和前端界面展示功能;2.在区块链系统适配阶段中,结合容器技术,将区块链系统和客户端平台编译成镜像文件;3.通过设计编写yaml文件,将区块链系统和客户端平台适配部署于云计算平台;4.在数据存储查询阶段,用户通过客户端平台或编写自己的存储程序向区块链系统插入敏感数据;5.用户通过客户端平台查询卫星集群内数据库中存储的具体记录信息。
Claims (9)
1.一种基于区块链的卫星集群分布式数据安全存储方法,其特征在于,包括以下步骤:
S1,生成区块链系统,确定基于Raft的随机共识协议,基于Raft的随机共识协议的内容包括每轮生成新区块的同时,由该轮的记账代理节点随机选取下一轮的记账节点;
S2,生成区块链节点,在智能集群嵌入式节点中选取至少三个节点作为区块链主节点,在区块链主节点上部署区块链系统,部署区块链系统后的区块链主节点用于获取客户端平台的交易上链请求,区块链主节点能够通过随机共识协议将交易中的数据存储于主节点的数据库中,并部署客户端平台;
S3,通过客户端平台或调用区块链系统提供的API接口向部署于卫星集群节点的区块链系统中插入数据。
2.根据权利要求1所述的一种基于区块链的卫星集群分布式数据安全存储方法,其特征在于,S1中,确定基于Raft的随机共识协议的具体方法如下:
步骤一,区块链节点j用自己的公钥Kpub解密第n-1轮区块Block(n-1)的秘密息字段Nx_M并判断自己是否为第n轮记账区块链节点,如果是,则执行步骤二;
步骤二,区块链节点j通过Raft随机函数Raft(.),生成下一轮记账区块链节点x,并将自身的签名Sig,公钥证书Cert,区块链节点x的秘密信息Nx_M,时间戳Tamp以及当前一段时间内收集的交易数据填入区块Blockn中;
步骤三,区块链节点j将生成的新区块Blockn广播至集群内其余的区块链节点,然后等待其他区块链节点的数据反馈,统计接收到反馈数据的数量,当节点j接收到超过整个区块链网络中共识节点数量的三分之二时,它将把区块Blockn写入本地区块链中;
步骤四,当集群内部的其他区块链节点收到Blockn时,他们首先验证该区块前后的哈希链式关系,然后用节点j的公钥证书Cert验证区块头中的签名字段Sig是否成立,随后获取Blockn区块头中的秘密信息字段Pr_M字段和Nx_M字段,验证第n轮记账节点和第n+1轮记账节点身份的真实性;
步骤五,如果验证全部通过,该节点向当前打包节点j发送一个接受信息true,并将区块Blockn写入本地区块链。
3.根据权利要求1所述的一种基于区块链的卫星集群分布式数据安全存储方法,其特征在于,S1中,区块链系统包括底层区块链和顶层数据库,区块链系统的数据写入包括底层区块链的写入和顶层数据库的写入;
底层区块链为采用区块链数据结构存储的数据变化增量,顶层数据库是由底层数据变化增量得到的数据最终状态集;底层区块链采用关系型数据库进行结构化存储,顶层数据库采用业务所需的数据库类型;
底层区块链为采用区块链数据结构存储的数据变化增量,底层区块链采用拥有较高的尾部写入性能的链式数据结构;底层区块链通过API接受用户的上链请求,将该上链请求以待上链交易的形式在节点间广播,共识出块时间到达时,节点将当前待上链交易打包为区块,遵循区块链数据结构,存储在底层区块链的数据库中;
顶层数据库是由底层数据变化增量得到的数据最终状态集,顶层数据库采用块式结构存储,同时使用B+树建立索引;每当各代理节点,利用共识协议获取到一致的区块后,会将新区块中的数据变化增量复现到顶层状态数据库中,顶层状态数据库为最新状态,利用B+树建立索引。
4.根据权利要求1所述的一种基于区块链的卫星集群分布式数据安全存储方法,其特征在于,S1中,区块链系统基于javascript web的客户端平台设计。
5.根据权利要求1所述的一种基于区块链的卫星集群分布式数据安全存储方法,其特征在于,S2中,将客户端平台适配部署于云计算平台中,能够向智能集群内部的区块链系统发起上链请求交易。
6.根据权利要求1所述的一种基于区块链的卫星集群分布式数据安全存储方法,其特征在于,S2中,生成区块链节点的具体方法如下:
采用容器技术将区块链系统封装成容器镜像,容器镜像包括区块链镜像和数据库镜像,将区块链系统镜像上传至卫星集群的镜像仓库中;
声明Deployment容器应用,将区块链镜像和数据库镜像从镜像仓库中拉至容器中;然后将config配置文件挂载到容器卷内;随后声明应用标签名称,用于区分各Deployment容器应用;最后设置pod端口号,用于接收或发送数据信息;
声明Service容器应用,将各Deployment容器应用的端口号映射为服务的端口号,用于接收集群内部其他服务的数据,采用Service容器应用固定IP号,设置Service下的clusterIP参数为None;
在云计算平台中添加并启动区块链系统的yaml文件和区块链服务的yaml文件。
7.根据权利要求1所述的一种基于区块链的卫星集群分布式数据安全存储方法,其特征在于,S2中,部署客户端平台的具体方法如下:
采用容器技术将客户端平台封装成容器镜像,然后将客户端平台镜像上传至卫星集群的镜像仓库中;
声明Deployment容器应用,将客户端平台镜像从镜像仓库中拉至容器中;然后声明应用标签名称,用于区分各Deployment容器应用;最后设置pod端口号,用于接收或发送数据信息;
声明Service容器应用,将各Deployment容器应用的端口号映射为服务的端口号,用于接收集群内部其他服务的数据;然后设置该Service为NodePort类型,保证集群外部用户对于集群内部区块链系统的数据访问;
将客户端平台容器的yaml文件和客户端平台服务的yaml文件添加至云计算平台的yaml文件集中,通过控制行命令启动客户端平台。
8.根据权利要求1所述的一种基于区块链的卫星集群分布式数据安全存储方法,其特征在于,当通过客户端平台向部署于卫星集群节点的区块链系统中插入数据时,用户直接启动界面,选择数据插入选项,在相应窗口下输入sql插入语句,完成向部署于卫星集群节点的区块链系统中插入数据。
9.根据权利要求1所述的一种基于区块链的卫星集群分布式数据安全存储方法,其特征在于,当用户选择通过区块链系统提供的API接口向部署于卫星集群节点的区块链系统中插入数据时,具体方法如下:
调用区块链数据上链请求接口,区块链数据上链请求接口作为区块链系统的网关负责接收新数据的上链请求;
采用容器技术将用户自主编写的应用程序编译成镜像文件并上传至镜像仓库中;
设计编写yaml文件,将用户自主编写的应用程序适配部署于云计算平台,当启动该yaml文件后,数据将根据程序进程自动地存储于部署于卫星集群节点的区块链系统中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111402149.9A CN114116899A (zh) | 2021-11-19 | 2021-11-19 | 一种基于区块链的卫星集群分布式数据安全存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111402149.9A CN114116899A (zh) | 2021-11-19 | 2021-11-19 | 一种基于区块链的卫星集群分布式数据安全存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116899A true CN114116899A (zh) | 2022-03-01 |
Family
ID=80371719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111402149.9A Pending CN114116899A (zh) | 2021-11-19 | 2021-11-19 | 一种基于区块链的卫星集群分布式数据安全存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116899A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115550375A (zh) * | 2022-08-31 | 2022-12-30 | 云南电网有限责任公司信息中心 | 基于容器化技术实现区块链轻量化的系统、方法及设备 |
-
2021
- 2021-11-19 CN CN202111402149.9A patent/CN114116899A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115550375A (zh) * | 2022-08-31 | 2022-12-30 | 云南电网有限责任公司信息中心 | 基于容器化技术实现区块链轻量化的系统、方法及设备 |
CN115550375B (zh) * | 2022-08-31 | 2024-03-15 | 云南电网有限责任公司信息中心 | 基于容器化技术实现区块链轻量化的系统、方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471744B (zh) | 基于区块链的主链加并行多子链系统架构 | |
CN107193490B (zh) | 一种基于区块链的分布式数据存储系统及方法 | |
CN106534317B (zh) | 一种基于区块链技术的灾备云存储系统构建方法 | |
CN106790112B (zh) | 一种集成轻量级区块链的节点操作系统及数据更新的方法 | |
WO2020211460A1 (zh) | 一种区块链节点的逻辑分片方法及其系统 | |
CN113114759B (zh) | 一种实现多链互通的跨链方法及系统 | |
CN110213352B (zh) | 名字空间统一的分散自治存储资源聚合方法 | |
CN109493051B (zh) | 可动态进行账户分配及迁移的主链加并行多子链系统架构 | |
WO2015192661A1 (zh) | 一种分布式存储系统中的数据同步方法、装置及系统 | |
CN105471960A (zh) | 一种私有云与公有云的信息交互系统及方法 | |
CN105025053A (zh) | 基于云存储技术的分布式文件的上传方法及其系统 | |
CN104008152A (zh) | 支持海量数据访问的分布式文件系统的架构方法 | |
CN112671840B (zh) | 一种基于区块链技术的跨部门数据共享系统及方法 | |
CN110661812A (zh) | 一种基于区块链的级联认证系统 | |
CN103561033B (zh) | 用户远程访问hdfs集群的装置及方法 | |
CN112417001B (zh) | 基于区块链网络的数据处理方法及相关设备 | |
CN113067897B (zh) | 跨链交互方法及装置 | |
CN102480489A (zh) | 一种用于分布式环境下的日志记录方法和设备 | |
CN114116899A (zh) | 一种基于区块链的卫星集群分布式数据安全存储方法 | |
CN111491020B (zh) | 数据处理方法、装置、计算机设备以及存储介质 | |
CN110730241B (zh) | 面向全局规模的区块链基础设施 | |
CN113923232A (zh) | 区块链子网的信息同步方法及装置 | |
CN114254150B (zh) | 一种基于区块链的分布式视频存储系统及存储方法 | |
CN105516343A (zh) | 一种网络动态自组织的文件共享系统及实现方法 | |
CN105376307A (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 |