CN113905096B - 一种区块链网络、链重构方法、共识方法及数据同步方法 - Google Patents
一种区块链网络、链重构方法、共识方法及数据同步方法 Download PDFInfo
- Publication number
- CN113905096B CN113905096B CN202110965574.2A CN202110965574A CN113905096B CN 113905096 B CN113905096 B CN 113905096B CN 202110965574 A CN202110965574 A CN 202110965574A CN 113905096 B CN113905096 B CN 113905096B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- block
- virtual
- nodes
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 238000003860 storage Methods 0.000 claims abstract description 71
- 238000013507 mapping Methods 0.000 claims abstract description 10
- 230000001360 synchronised effect Effects 0.000 claims description 64
- 238000012545 processing Methods 0.000 claims description 50
- 238000012546 transfer Methods 0.000 claims description 38
- 238000004519 manufacturing process Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 23
- 230000005540 biological transmission Effects 0.000 claims description 22
- 230000007246 mechanism Effects 0.000 claims description 19
- 238000012795 verification Methods 0.000 claims description 18
- 238000013500 data storage Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 14
- 238000004146 energy storage Methods 0.000 claims description 11
- 238000007726 management method Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000009826 distribution Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000011217 control strategy Methods 0.000 claims description 4
- 238000013506 data mapping Methods 0.000 claims description 4
- 230000003213 activating effect Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000007547 defect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 206010003671 Atrioventricular Block Diseases 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000013068 supply chain management Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/46—Cluster building
Abstract
本发明提供了一种区块链网络、链重构方法、共识方法及数据同步方法;区块链网络包括虚拟节点层区块链网络和设备节点层区块链网络:虚拟节点层区块链网络包括多个虚拟节点,用于分簇管理工业物理设备节点的注册请求和交易请求,以及完成区块链网络的链重构、节点共识和数据同步;设备节点层区块链网络,包括被分簇管理的多个工业物理设备节点,用于接收交易请求,且簇内通过部分数据直接存储和与剩余数据映射关系存储相结合的方式共同配合存储对应虚拟节点的全部交易数据。本发明区块链网络及对应链重构方法、节点共识方法和数据同步方法在实际工业物联网应用中,有效解决了现有技术中安全性低、中心化程度高、多个服务中心之间协作困难的问题。
Description
技术领域
本发明涉及区块链以及工业物联网技术领域,特别是涉及一种基于工业物联网的区块链网络、链重构方法、共识方法及数据同步方法。
背景技术
目前物联网技术快速发展,工业物联网已经成为全球工业体系智能化变革的基础。工业物联网通过工业资源的网络互连、数据互通和系统互操作,最终实现制造原料的灵活配置、制造过程按需执行、制造工艺的合理优化和制造环境的快速适应,达到资源的高效利用,从而构建服务驱动型的新工业生态体系。
当前物联网存在安全性低、海量设备扩展接入管理复杂、多主体间协作困难等问题。而区块链恰好能提供最佳的解决方案,区块链所具备的去中心化与防篡改特性针对工业物联网+区块链的应用模式会带来极大的改变,但是国内在此方面的应用相对较少,且并没有此类应用的相关实现。现有工业物联网技术大多采用中心控制的方式,统一管理其下各个物联网连接点,通过中央服务器集群,提供通用的数据服务与计算服务,且存在一些的缺点:1)整体工业物联网的网络安全性较低,外部入侵容易,设备认证困难;2)中央服务器维护成本高,宕机故障影响范围大;3)多个中心难以实现协同合作。因此,在工业物联网+区块链的应用模式的基础,提供有效解决现有工业物联网技术问题的新型区块链网络及对应的运行管理方法是有重大意义的。
发明内容
本发明的目的是提供一种应用于高性能物联网节点的区块链网络,及对应的链重构方法、节点共识方法及数据同步方法,在有效解决了现有工业物联网技术的安全性低、中心化程度过高、多个服务中心之间协作困难的问题的同时,还提高区块链网络运行的可靠性。
为了实现上述目的,有必要针对上述技术问题,提供了一种区块链网络、链重构方法、节点共识方法及数据同步方法。
第一方面,本发明实施例提供了一种区块链网络,区块链网络包括虚拟节点层区块链网络和设备节点层区块链网络;
所述虚拟节点层区块链网络,包括多个虚拟节点,用于分簇管理工业物理设备节点;所述虚拟节点由按照预设数目对各个所述工业物理设备节点的计算存储能力评估分簇得到;所述虚拟节点,用于处理对应簇的所述工业物理设备节点的注册请求和交易请求,以及进行所述区块链网络的链重构、节点共识和数据同步;
所述设备节点层区块链网络,包括被分簇管理的多个所述工业物理设备节点,用于接收交易请求,以及通过部分数据直接存储和与剩余数据映射关系存储相结合的方式,共同配合存储对应所述虚拟节点的全部交易数据;
所述设备节点层区块链网络的簇内工业物理设备节点之间直接通信;所述设备节点层区块链网络的簇间工业物理设备节点之间分别通过对应的所述虚拟节点层区块链网络的虚拟节点间接通信。
进一步地,所述区块链网络中各区块的区块头采用统一数据格式存储;所述统一数据格式为采用特定字节数目的存储空间存储版本号、前区块hash、本区块hash、时间戳、权限和填充部分。
进一步地,所述区块链网络响应于所述工业物理设备的注册请求,根据所述区块链网络的网络能力、计算存储能力、虚拟节点数据、以及虚拟节点规模,确定待加入虚拟节点,并通知所述待加入虚拟节点处理所述注册请求,生成对应的工业物理设备节点,以及发起所述节点共识和数据同步;所述虚拟节点规模包括所述虚拟节点对应簇内的工业物理设备数目和计算存储能力。
进一步地,所述虚拟节点实时监控对应簇的动态性能指标阈值,若所述虚拟节点的动态性能指标低于对应的所述动态性能指标阈值,则对所述区块链网络进行所述链重构。
第二方面,本发明实施例提供了一种基于上述区块链网络的链重构方法,所述方法包括以下步骤:
由所述虚拟节点统计各自的可分配计算存储能力;
根据所述虚拟节点的可分配计算存储能力,通过区块链竞争机制统计得到所述区块链网络的可分配计算存储能力均值,并根据所述可分配计算存储能力均值生成节点转移分配表,以进行节点转移广播;所述节点转移分配表的内容包括源虚拟节点、目的虚拟节点和待转移计算存储能力值;
响应于所述节点转移广播,由各所述虚拟节点检查自己是否为所述节点转移分配表中的源虚拟节点;
当所述虚拟节点为所述源虚拟节点,则根据所述待转移计算存储能力值,确定待转移工业物理设备节点,并向所述待转移工业物理设备节点发送节点转移指令;所述节点转移指令中包含断连指令和与所述源虚拟节点相对应的目的虚拟节点;
响应于所述节点转移指令,由所述待转移工业物理设备节点根据所述断连指令断开与当前所述虚拟节点的连接,以及删除当前存储数据,并向所述目的虚拟节点发起注册请求;
响应于所述待转移工业物理设备节点的注册请求,由对应的所述目的虚拟节点分配所述待转移工业物理设备节点的待存储数据;
由所述待转移工业物理设备节点同步所述待存储数据,完成所述链重构;所述待存储数据包括所述目的虚拟节点的特定部分数据,以及与剩余部分数据的映射关系。
第三方面,本发明实施例提供了一种基于上述区块链网络的节点共识方法,所述方法包括以下步骤:
响应于新区块加入所述区块链网络,由所述虚拟节点对所述新区块进行可靠性验证,并从所述虚拟节点对应簇中选取第一数目的所述工业物理设备节点进行投票;
统计所述第一数目的工业物理设备节点的投票结果,若所述投票结果为所述第一数目的工业物理设备节点中有第二数目的工业物理设备节点认同,则由所述虚拟节点广播共识成功的共识结果,反之,则由所述虚拟节点广播共识失败的共识结果,通知所述区块链网络停止共识,并拒绝同步所述新区块的区块数据;
响应于所有虚拟节点广播共识成功的共识结果,通过区块链竞争机制,判定所述新区块共识校验成功,并广播通知所述区块链网络进行所述新区块的数据同步。
第四方面,本发明实施例还提供一种基于上述区块链网络的数据同步方法,所述方法包括以下步骤:
预先配置所述区块链网络中各工业物理设备节点的生产队列和消费队列;所述生产队列用于存储按优先级排序的区块生成任务;所述消费队列用于存储按优先级排序的数据处理任务;所述数据处理任务包括数据存储任务、数据同步任务和身份验证任务;
响应于工业物理设备的注册请求,由对应的所述虚拟节点从对应簇中选取处理设备节点,并将区块生成任务写入所述处理设备节点的生产队列;所述处理设备节点为对应簇中当前可分配计算存储能力最大的所述工业物理设备节点;
由所述处理设备节点读取所述生产队列的区块生成任务,进行交易打包,生成所述工业物理设备对应的新区块和所述新区块对应的快照信息,并向所述区块链网络发出对所述新区块的共识校验广播;
响应于所述共识校验广播,由所述区块链网络的其他所述虚拟节点将所述身份验证任务写入对应簇内特定数目的所述工业物理设备节点的消费队列,以使所述区块链网络完成所述共识校验;
响应于所述共识校验成功,由对应的所述虚拟节点将所述新区块的数据存储任务写入所述处理设备节点的消费队列;
由所述处理设备节点读取所述消费队列的数据存储任务,将所述新区块的数据存储在对应的区块链存储地址,并向所述区块链网络的其他所述虚拟节点发出对所述新区块的数据同步广播;
响应于所述新区块的数据同步广播,由所述区块链网络的其他所述虚拟节点,采用不完全同步结合负载均衡的方法对所述新区块的数据同步;
响应于所述区块链网络的所述新区块的数据同步完成,由所述处理设备节点将对应的数据存储任务清除,将所述工业物理设备上线。
进一步地,所述由所述处理设备节点读取所述生产队列的区块生成任务,进行交易打包,生成所述工业物理设备对应的新区块和所述新区对应的快照信息,并向所述区块链网络发出对所述新区块的共识校验广播的步骤包括:
由所述处理设备节点读取所述区块生成任务,构造所述区块头并采用所述统一数据格式进行存储;
根据所述新区块的数据生成对应的快照信息,采用布隆过滤器进行hash运算,并生成所述新区块;所述快照信息包括版本号、设备hash信息、设备权限、快照过期时间和数据填充;
根据所述快照信息,查询K-V缓存进行身份验证;所述K-V缓存与所述处理设备节点对应的所述虚拟节点一一对应;
响应于身份验证通过,将所述快照信息存储在所述K-V缓存,并基于UDP协议广播至所述区块链网络,以使得所述区块链网络的其他所述虚拟节点完成所述快照信息的快照同步;
响应于所述快照同步完成,将预先设为锁定状态的所述工业物理设备状态激活,并向所述区块链网络发出对所述新区块的共识校验广播。
进一步地,所述由所述区块链网络的其他所述虚拟节点,采用不完全同步结合负载均衡的方法对所述新区块的数据同步的步骤包括:
由所述虚拟节点检查自身的区块同步列表,确定待同步区块信息,并从对应簇中选取同步设备节点,并将所述数据同步任务写入所述同步设备节点的消费队列;所述同步设备节点为对应簇中当前可分配计算存储能力最大的所述工业物理设备节点;所述数据同步任务包括待同步区块信息;所述待同步区块信息包括目标虚拟节点、连接地址和区块号;
由所述同步设备节点读取所述待同步区块信息,根据所述连接地址向所述目标虚拟节点发送请求,通过所述同步设备节点对应的虚拟节点获取待同步区块节点地址;
根据所述待同步区块节点地址,由所述同步设备节点发送TCP连接请求;
响应于所述TCP连接请求,由所述待同步区块节点通过负载均衡的方法判断是否建立连接,并在建链成功后,向所述同步设备节点进行数据传输;
响应于所述待同步区块节点的数据传输完成,由所述同步设备节点将对应的数据同步任务清除,并向对应的所述虚拟节点发送同步完成响应,以使得所述虚拟节点向所述区块链网络广播已完成同步消息。
进一步地,所述响应于所述TCP连接请求,由所述待同步区块节点通过负载均衡的方法判断是否建立连接,并在建链成功后,向所述同步设备节点进行数据传输的步骤包括:
由所述待同步区块节点实时监测系统参数,并根据所述系统参数判断是否满足预设的同步触发条件;
当满足同步触发条件时,接受所述同步设备节点的TCP连接请求,并基于快照同步优先的流量控制策略,向所述同步设备节点进行数据传输。
上述本申请提供了一种应用于高性能物联网节点的区块链网络,及对应的链重构方法、节点共识方法及数据同步方法。通过新型区块链网络的设计方案,有效解决了由于不同物联网设备间的计算存储能力存在着较大差异,导致单独作为区块链节点在实际网络运行时带来的性能限制问题,还通过该新型区块链网络对应的链重构方法、节点共识方法和数据同步方法,不仅有效解决了现有工业物联网技术的安全性低、中心化程度过高、多个服务中心之间协作困难的问题,而且实现了工业物理设备的快速认证,支持设备在物联网虚拟节点(汇聚节点)的快速接入与离开,同时保证整个过程的安全可靠,能够拒绝伪造的、有恶意性的设备进行接入,还针对现有区块链网络中存在的节点计算时间长,传输带宽压力大,网络整体负载性高等缺点,建立了信息存储压缩模型与轻量级共识机制,保证了区块链网络在实际运行环境中的高度可靠性,能够用于入侵检测、数据安全防护,灾备预案等多个场景,为整个工业物联网体系提供健壮的底层安全防护、便捷可靠的上层开发支持。
附图说明
图1是本发明实施例中区块链网络结构示意图;
图2是图1所示区块链网络的链重构方法流程示意图;
图3是图1所示区块链网络的节点共识方法流程示意图;
图4是图3所示区块链网络的节点共识方法的实施例示意图;
图5是图1所示区块链网络的数据同步方法的流程示意图;
图6是图5所示数据同步方法中的节点间并行同步和不完全同步的示意图;
图7是本发明实施例中新工业物理设备的生命周期示意图;
图8是本发明实施例中新工业物理设备接入至设备上线的全流程示意图。
具体实施方式
为了使本申请的目的、技术方案和有益效果更加清楚明白,下面结合附图及实施例,对本发明作进一步详细说明,显然,以下所描述的实施例是本发明实施例的一部分,仅用于说明本发明,但不用来限制本发明的范围。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明将区块链技术与传统的工业互联网技术结合,针对工业物联网中海量设备认证困难,中心控制结构协作复杂,物联网络安全性低下,存储与计算资源浪费等现状,提出了适应于工业物联网的新型高可用的区块链网络架构。下面实施例将以基于联盟链可用区块链网络为例进行详细说明,该区块链网络中至少具有9个网络节点,且每个节点具有一定自主性,使得区块链网络具备同步、共识等基础功能。
在一个实施例中,如图1所示,提供了一种区块链网络,包括虚拟节点层区块链网络1和设备节点层区块链网络2;
所述虚拟节点层区块链网络1,包括多个虚拟节点3,用于分簇管理工业物理设备节点4;所述虚拟节点3,为根据预设数目对各个所述工业物理设备节点4的计算存储能力进行评估分簇得到;所述虚拟节点3,用于处理对应簇的所述工业物理设备节点4的注册请求和交易请求,以及进行所述区块链网络的链重构、节点共识和数据同步;
其中,虚拟节点层区块链网络1是基于现有工业物联网中各物联网设备间的计算存储能力差异较大,单独作为节点会在实际网络运行中带来存储运算等性能限制问题的考虑,引入“归一化”的思想来平均各节点间的实际运行能力,通过对底层工业物理设备抽象而形成的一个虚拟节点网络,其虚拟节点3的设计主要通过对现有的工业物理设备的计算存储能力进行合理有效的评估,按照预设数目,基于尽量均分的原则将所有工业物理设备划分为虚拟节点,且虚拟节点的预设数目根据实际应用需求进行选取,如在区块链网络建立时根据所有工业物理设备的数量和总体的计算存储能力进行综合分析确定,也可以根据需求或经验采用人为指定的方法确定具体的虚拟节点数量。
各个虚拟节点3相当于区块链网络中的全节点,其除了负载处理对应簇的工业物理设备节点的注册请求和交易请求,还需要配合完成区块链网络的链重构、节点共识和数据同步等功能,以保证整个区块链网络的正常有效运行。当有新的工业物理设备需要加入时,区块链网络响应于所述工业物理设备的注册请求,根据所述区块链网络的网络能力、计算存储能力、虚拟节点数据、以及虚拟节点规模,确定待加入虚拟节点,并通知所述待加入虚拟节点处理所述注册请求,生成对应的工业物理设备节点,以及发起所述节点共识和数据同步;所述虚拟节点规模包括所述虚拟节点对应簇内的工业物理设备数目和计算存储能力。为了保证工业物理设备节点的频繁加入和离开不会对虚拟节点造成较大的性能影响,每个虚拟节点都维护自己簇对应的一个动态性能指标阈值,实时监测当前簇内工业物理设备的综合动态性能指标是否低于动态性能指标阈值,若虚拟节点监测到的动态性能指标低于对应的动态性能指标阈值,则对区块链网络进行链重构使得区块链网络的状态恢复稳定,即各虚拟节点管理的工业物理设备节点的计算存储能力保持均衡。其中,动态性能指标以及对应的动态性能指标阈值都是随着工业物理设备的加入和删除,可以根据实际需求进行设置和调整,此处不作具体限制。此处,链重构即虚拟节点间的工业物理设备节点的转移,需要虚拟节点和对应工业物理设备配合完成,具体重构方法参见下文基于该区块链网络的链重构方法,此处不再赘述。需要注意的是,为了避免工业物联网环境下工业物理设备节点重新分配的性能损耗与服务宕机,虚拟节点的扩展与删除均需要手动进行,因此链长度在绝大多数情况下保持不变。
所述设备节点层区块链网络2,包括被分簇管理的多个所述工业物理设备节点4,用于接收交易请求,以及通过部分数据直接存储和与剩余数据映射关系存储相结合的方式,共同配合存储对应所述虚拟节点3的全部交易数据;
其中,设备节点层区块链网络2中的工业物理设备节点4可以看作区块链网络中的轻节点,分别与物联网中的一个工业物理设备相对应。工业物联网中的工业物理设备包括各类型传感器、控制器、智能手机,终端设备、智能家居中的智能家电设备等,每个区块链网络中的工业物理设备节点在实际网络运行中都会不断的产生交易数据并上传存储在区块链的区块中,由全区块链网络共享,以实现制造业供应链管理、生产过程工艺优化、生产设备监控管理、环保监测及能源管理、或工业安全生产管理。每个工业物理设备节点在接收交易请求存储交易数据时,会触发该交易数据在整个区块链网络的全网同步,而具体的每个工业物理设备在同步存储数据时,并不是将整个区块链网中的所有数据都进行存储,而是存储由对应簇的虚拟节点根据各工业物理设备节点的计算存储能力进行指定分配的部分数据,剩余的部分数据则以一定的映射关系进行存储,比如,当前整个区块链网络中有9份区块交易数据,而某个虚拟节点下管理着3个工业物理设备节点,则该虚拟节点就会根据3个工业物理设备节点计算存储能力将9份区块交易数据平均分配在各个工业物理设备节点存储:工业物理设备节点1仅存储1-3区块交易数据,4-9区块交易数据只需要存储对应的映射关系;工业物理设备节点2仅存储4-6区块交易数据,1-3、7-9区块交易数据只需要存储对应的映射关系;工业物理设备节点3仅存储7-9区块交易数据,1-6区块交易数据只需要存储对应的映射关系。需要说明的是,各虚拟节点对应簇内的工业物理设备节点的存储规则只需满足各个工业物理设备节点存储的数据各异且总和为整个区块链网络的全部交易数据,上述示例仅为示范性说明,实际应用中的虚拟节点分配簇内各个工业物理设备节点的存储内容根据实际运行过程中各工业物理设备节点的计算存储能力灵活分配,以保证各工业物理设备的负载均衡,在保证保证数据完整性的同时,提高系统整体存储能力。
所述设备节点层区块链网络2的簇内工业物理设备节点4之间直接通信;所述设备节点层区块链网络2的簇间工业物理设备节点4之间分别通过对应的所述虚拟节点层区块链网络1的虚拟节点3间接通信。
其中,虚拟节点3管理的工业物理设备节点4均存储有簇内其他工业物理设备节点的通信地址,可以在任何时间,任何地点发起簇内工业物理设备节点之间通信,而属于不同虚拟节点之间的工业物理设备节点之间不允许能直接通信,必须先通过对应的虚拟节点获取另一虚拟节点管理的目的工业物理设备的具体地址,然后建立链接才能通信。
此外,上述基于工业物联网的区块链网络中的工业物理设备节点的区块设计中,将每个区块抽象为一个物联网接入信息的映射,采用统一的数据格式来处理,如包括生物信息、密码、图像声音等。在区块头中划分出固定的328字节来存储统一规定的信息,分为6个部分:Version(版本号),PreBlockHash(前区块hash),DeviceProof(本区块hash),Time(时间戳),Power(权限),ExtraInfo(填充部分或额外说明)。其中,版本号与hash值的作用与传统区块相同,可以保证区块的数据正确性和完整性,Power(权限)可以由节点通过二进制信息的形式写入,以提高节点的响应速度。ExtraInfo(填充部分)主要是针对节点的身份认证以及一些区块的额外信息提供补充,获取自身需要的认证信息与特殊说明信息,以达到节点快速认证的目标。其中区块链网络中的快速hash包括hash的快速获取以及无效hash的判定,可利用策略性分派的hash算法加高低位混合来实现快速hash值获取,同时利用布隆过滤器来实现hash的有效性快速判定,实现海量连接工业物理设备哈希信息的秒级查询与同步。
本实施例设计的基于工业物联网的新型区块链网络有效解决了由于不同物联网设备间的计算存储能力存在着较大差异,导致单独作为区块链节点在实际网络运行时带来的性能限制问题,且能够实现工业物理设备的快速认证,支持工业物理设备在物联网虚拟节点的快速接入与离开,同时保证整个过程的安全性、可靠性和合理性,十分适合工业物联网的去中心化,能够用于入侵检测、数据安全防护,灾备预案等多个场景,为整个工业物联网体系提供健壮的底层安全防护、便捷可靠的上层开发支持。
在一个实施例中,如图2所示,提供了一种基于上述区块链网络的链重构方法,所述方法包括以下步骤:
S11、由所述虚拟节点统计各自的可分配计算存储能力;
其中,虚拟节点统计的可分配计算存储能力是指由该虚拟节点管理的工业物理设备节点当前剩余的计算存储能力的总和。
S12、根据所述虚拟节点的可分配计算存储能力,通过区块链竞争机制统计得到所述区块链网络的可分配计算存储能力均值,并根据所述可分配计算存储能力均值生成节点转移分配表,以进行节点转移广播;所述节点转移分配表的内容包括源虚拟节点、目的虚拟节点和待转移计算存储能力值;
其中,区块链竞争机制可以根据实际应用需求进行择优选取,用于虚拟节点竞争统计该区块链网络上所有工业物理设备节点的可分配计算存储能力,并在计算出各虚拟节点的可分配计算存储能力均值后,根据该均值对所有虚拟节点的当前可分配存储能力进行分析,生成对应的节点转移分配表,并对整个区块链网络进行节点转移广播。节点转移分配表的内容包括源虚拟节点、目的虚拟节点、待转移计算存储能力值,即指示源虚拟节点需要向目的虚拟节点转移符合待转移计算存储能力值要求的工业物理设备节点。需要说明的是,由于对整个区块链网络上所有工业物理设备节点的可分配计算存储能力进行统计时,网络一直处于运行中,所以会进行两次统计以确定极短时间内的一个较为稳定合理的可分配计算存储能力均值。
S13、响应于所述节点转移广播,由各所述虚拟节点检查自己是否为所述节点转移分配表中的源虚拟节点;
其中,各虚拟节点收到节点转移广播后,下载对应的节点转移分配表,并进行相应的自检,判断是否需要将对应簇的工业设备节点进行相应的转移分配。
S14、当所述虚拟节点为所述源虚拟节点,则根据所述待转移计算存储能力值,确定待转移工业物理设备节点,并向所述待转移工业物理设备节点发送节点转移指令;所述节点转移指令中包含断连指令和与所述源虚拟节点相对应的目的虚拟节点;
其中,待转移工业物理设备节点的选择,是由对应簇的源虚拟节点根据节点转移分配表中指示的待转移计算存储能力值,与当前簇内各工业物理设备节点的可分配计算存储能力值进行匹配,找出的可分配计算存储能力值与待转移计算存储能力值最接近的工业物理设备节点。源虚拟节点在确定待转移工业物理设备节点后,就会向该待转移工业物理设备节点发送对应的节点转移指令,以指示该待转移工业物理设备节点进行相应的节点转移操作。节点转移指令中的断连指令意在通知该待转移工业物理设备节点需要与该源虚拟节点断开连接,并向节点转移指令中指示的目的虚拟节点发起注册请求,以接入该目的虚拟节点。
S15、响应于所述节点转移指令,由所述待转移工业物理设备节点根据所述断连指令断开与当前所述虚拟节点的连接,以及删除当前存储数据,并向所述目的虚拟节点发起注册请求;
其中,待转移工业物理设备节点删除当前存储数据的操作是为了保证能够以一个新节点的身份重新在目的虚拟节点注册接入,链重构中的注册请求与正常的工业物理设备节点请求接入某个虚拟节点的流程在原则上没有区别,此处,可以根据具体应用需求决定是否在虚拟节点处理工业物理设备的注册请求的过程中增加针对链重构场景的节点转移时的新工业物理设备节点接入的特殊判断,此处不作具体限制。
S16、响应于所述待转移工业物理设备节点的注册请求,由对应的所述目的虚拟节点分配所述待转移工业物理设备节点的待存储数据;
其中,待存储数据为当前接入的目的虚拟设备根据当前簇内工业物理设备的可分配计算存储情况所指定的需要该待转移工业设备单独存储的数据内容,且该数据内容的指定原则可参见前述区块链网络中的不完全存储的原则,此处不再赘述。
S17、由所述待转移工业物理设备节点同步所述待存储数据,完成所述链重构;所述待存储数据包括所述目的虚拟节点的特定部分数据,以及与剩余部分数据的映射关系。
本实施例通过虚拟节点簇间的工业物理设备节点转移,即小范围的设备节点调整的方法实现对整个区块链网络的重构,其由虚拟节点会根据统计得到的节点转移分配表,自动选择需要从自身分离的工业物理设备节点,由于虚拟节点在网络上地位完全对等,所以分离工业物理设备的重新划分是公平的,且重分配完成后,待转移工业物理设备节点会删除之前的数据,对目的虚拟节点的数据进行同步,其同步的数据内容由目的虚拟节点自己分配,以配合其他簇内的工业物理设备节点完成整个区块链网络数据的存储。链重构操作是发生在某个虚拟节点的性能难以满足正常服务的情况下的一种紧急措施,因此在区块链网络运行中具备最高的优先级,大规模的链重构过程会导致正常服务几乎处于暂停,但是在工业物联网环境中的工业物理设备相对较为稳定,几乎不会出现工业物理设备在短时间内的大规模删除或加入,因此,该区块链的链重构方法在有效解决由于不同物联网设备间的计算存储能力存在着较大差异,导致单独作为区块链节点在实际网络运行时带来的性能限制问题的基础上,通过动态调配各虚拟节点间的工业物理设备节点的方法对全网可用资源进行合理有效的分配,很好的维护整个区块链的稳定且高效运行。
基于实际工业物联网中的工业物理设备会出现频繁加入或离开的考虑,本发明基于上述工业物联网区块链网络,结合实际应用环境特点,对区块链网络的节点共识机制进行相应改进。
在一个实施例中,如图3所示,提供了一种基于上述区块链网络的节点共识方法,所述方法包括以下步骤:
S21、响应于新区块加入所述区块链网络,由所述虚拟节点对所述新区块进行可靠性验证,并从所述虚拟节点对应簇中选取第一数目的所述工业物理设备节点进行投票;
其中,虚拟节点如前文所述在该区块链网络上属于全节点类型,新区块加入区块链网络时,一定是由对应的虚拟节点发起整个区块链网络的全网共识,再由其他的虚拟节点对该新区块进行共识验证,以判定该新区块是否能够在该区块链网络上公布。虚拟节点收到新区块的共识广播后,会由该虚拟节点先对该区块进行可靠性验证,即对新区块的数据格式合法及数据完整性等进行校验。在新区块的数据格式符合条件时,由该虚拟节点在对应簇内选出第一数目的工业物理设备节点中进行投票。其中,第一数目为一个比例值,且该值可根据实际应用需求进行选择,如可以由虚拟节点选择簇内的1/3数量的工业物理设备节点对该新区块进行投票,并在后续根据该1/3数量的工业物理设备节点的投票结果得到给虚拟节点对该新区块的共识结果。
S22、统计所述第一数目的工业物理设备节点的投票结果,若所述投票结果为所述第一数目的工业物理设备节点中有第二数目的工业物理设备节点认同,则由所述虚拟节点广播共识成功的共识结果,反之,则由所述虚拟节点广播共识失败的共识结果,通知所述区块链网络停止共识,并拒绝同步所述新区块的区块数据;
其中,第一数目的工业物理设备节点的投票结果均只有认同和不认同两种可能,若在第一数目的工业物理设备节点中有第二数目的投票结果为认同,比如在虚拟节点选择的对应簇内的1/3工业物理设备节点对该新区块进行正确性验证,且该1/3工业物理设备节点中有2/3的投票结果是认同(通过),则对应的虚拟节点就会依此给出共识通过的共识结果,并在全区块链网络发起共识通过的广播,反之,则虚拟节点就会给出共识失败的共识结果。与此同时,如图4所示,全部虚拟节点根据快速失败的悲观策略进行最终的共识结果判定,如果有任何一个虚拟节点的结果为共识失败,那么就会通知全网停止所有的共识过程并且拒绝新区块的同步,在保证共识的正确性前提下,有效提升了区块链网络的性能。
S23、响应于所有虚拟节点广播共识成功的共识结果,通过区块链竞争机制,判定所述新区块共识校验成功,并广播通知所述区块链网络进行所述新区块的数据同步。
本实施例中基于快速失败的悲观策略对新区块进行的全网快速共识的共识机制设计在原则上提供了防止恶意设备与数据错误会导致的区块信息错误的机制,采用部分投票的形式提供了轻量化的共识设计,而快速失败的策略又极大的降低了投票失败带来的错误,均衡了区块链在工业物联网中应用的安全问题和性能问题,有效保证了区块链网络在实际运行环境中的高度可靠性。
基于一般区块链网络中存在的节点计算时间长,传输带宽压力大,网络整体负载性高等缺点的考虑,本发明基于上述的工业物联网的区块链网络,针对区块链网络中区块数据同步中的性能问题和实时性问题,建立了新型的信息存储压缩模型、配合工业物理设备的快速认证机制,以及并行同步和不完全同步相补充的数据同步方法,支持工业物理设备在物联网虚拟节点的快速接入与离开,同时保证整个过程的安全可靠,能够拒绝伪造的、有恶意性的设备进行接入。
在一个实施例中,如图5所示,提供了一种基于上述区块链网络的数据同步方法,所述方法包括以下步骤:
S31、预先配置所述区块链网络中各工业物理设备节点的生产队列和消费队列;所述生产队列用于存储按优先级排序的区块生成任务;所述消费队列用于存储按优先级排序的数据处理任务;所述数据处理任务包括数据存储任务、数据同步任务和身份验证任务;
其中,优先级排序是指虚拟节点给簇内的各工业物理设备节点分配任务时,会根据当前任务自身的优先级权重大小进行排序,以保证各任务处理的实时性。对应的区块链网络中各个工业物理设备节点都会维护两个基于优先级权重排序的生产队列(producer队列)和消费队列(consumer队列),其中,生产队列专门用于存储对应簇虚拟节点根据区块生成需求按优先级权重排序写入的区块生成任务,消费队列专门用于存储对应簇虚拟节点根据数据处理需求按优先级权重排序写入的数据处理任务。各个工业物理设备节点会实时根据生产队列和消费队列的内容进行生产和消费,一旦完成任务就会将队列中对应的任务清除。该虚拟节点和簇内工业物理设备节点配合完成区块任务处理的同步处理被称为区块并行同步,如图6所示,该并行同步策略可以让真实的工业物理设备之间同时进行多个区块的同步与生成,有效降低了整个工业物理网在运行中的时间损耗。需要说明的是图6示出的是整个网络中虚拟节点同步中并行同步与不完全同步策略的合作模式,并行同步是在时间上各个节点中并行,各节点的同步内容可以表现为不一致,但是同步完成后的内容保持一致,不完全同步是运行在并行同步下的优化策略,通过对关键数据的优先传输以适应网络环境的波动造成的性能缺陷。
为了提高前述区块链网络的响应速度及匹配虚拟节点的存储分配原则,本实施例在采用上述区块并行同步的基础上,配合使用区块的不完全同步策略,该不完全同步策略主要分为快照优先传输与区块的不完全同步,主要通过将工业物理设备的数据信息和认证信息分开,将重要数据(如认证信息、权限信息、数据格式等)优先传递,之后在该工业物理设备监测到网络空闲度较高的时候进行大规模的完整区块数据传递的方式实现,下述步骤中将会以图7所示的单个新工业物理设备从设备申请接入到设备锁定,再到设备上线的全生命周期为例进行详细说明。
S32、响应于工业物理设备的注册请求,由对应的所述虚拟节点从对应簇中选取处理设备节点,并将区块生成任务写入所述处理设备节点的生产队列;所述处理设备节点为对应簇中当前可分配计算存储能力最大的所述工业物理设备节点;
其中,处理设备节点原则上可以根据实际应用需求进行选取,本实施中优选的由虚拟节点综合分析簇内的各工业物理设备节点的存储性,从中选取当前可分配计算存储能力最大的工业物理设备节点承担当前区块生成任务,并按要求将该区块生成任务按照优选级权重排序存入对应的生存队列,在实时保证簇内各工业物理设备节点的负载均衡的同时,也提高了区块链网络的运行效率。
S33、由所述处理设备节点读取所述生产队列的区块生成任务,进行交易打包,生成所述工业物理设备对应的新区块和所述新区块对应的快照信息,并向所述区块链网络发出对所述新区块的共识校验广播;
其中,工业物理设备对应的新区块如何通过交易打包生成采用现有区块链网络的相应技术按照前述的区块头数据格式实现即可,此处需要在生成新区块的同时融入快照机制,以提高新区块的共识效率,具体地步骤如下:
由所述处理设备节点读取所述区块生成任务,构造所述区块头并采用所述统一数据格式进行存储;其中,区块头采用如前述区块链网络中统一数据格式进行构造,该区块头设计是为了后续的快照、节点身份认证和权限分配提供帮助。其中,版本号与hash值的作用与传统区块相同,可以保证区块的数据正确性和完整性,Power(权限)的作用主要是针对快照生成时提供权限数据支持(快照可以直接抓取其中的全部信息或者部分信息作为自身的组成部分),节点可以通过二进制信息的形式将权限写入,可以提高节点的响应速度。ExtraInfo(填充部分)主要是针对节点的身份认证以及一些区块的额外信息提供补充,快照可以根据预定义的生成逻辑将该部分信息当作数据源来处理,获取自身需要的认证信息与特殊说明信息,以达到对新接入的工业物理设备节点快速认证的目标。
根据所述新区块的数据生成对应的快照信息,采用布隆过滤器进行hash运算,并生成所述新区块;所述快照信息包括版本号、设备hash信息、设备权限、快照过期时间和数据填充;其中,新区块的生成方式采用现有区块链中的相应技术即可实现,快照信息是根据上述生成的新区块数据按照固定数据格式生成的大小为512字节的信息,主要包括版本号、设备hash信息、设备权限、快照过期时间和数据填充等部分,该快照信息主要是辅助新区块共识,在提升身份验证的效率的同时,避免恶意用户在多个节点之间伪造设备hash进行间隔非常短的工业物理设备接入申请,导致出现多条重复的区块链风险的发生,且通过快照过期时间的设置,是针对新工业物理设备接入时,由于K-V缓存自身大小的限制而导致对应的快照信息无法存储是,会将K-V缓存中的存储时间最久的快照信息清除,使得新工业物理设备的接入请求能够正常及时处理,以提升新工业物理设备的接入效率。
根据所述快照信息,查询K-V缓存进行身份验证;所述K-V缓存与所述处理设备节点对应的所述虚拟节点一一对应;其中,K-V缓存是存储所有新区块快照信息的缓存数据库,该k-v缓存仅提供查询与实时更新功能,是针对现有区块链网络中存在的节点计算时间长,传输带宽压力大,网络整体负载性高等缺点,而专门建立的信息存储压缩模型用于辅助轻量级共识机制,能够最大限度减少资源利用,提升响应速度,以提升区块链网络的节点共识效率。其中的快照信息只有到达过期时间或者完整的区块数据同步完成才会删除。工业物理设备在进行身份认证的时候会优先在该K-V缓存中查询快照信息,以有效解决恶意用户伪造区块对区块链网络进行攻击的问题,这样就保证了响应速度。该快照机制能够让工业物理设备节点的接入时,能在很短的时间内完成接入与认证,迅速投入使用,且通过在快照的全节点k-v同步之前,将新接入工业物理设备锁定使其无法进行其他请求操作的方式,确保了接入设备的唯一性和真实性。
响应于身份验证通过,将所述快照信息存储在所述K-V缓存,并基于UDP协议广播至所述区块链网络,以使得所述区块链网络的其他所述虚拟节点完成所述快照信息的快照同步;其中,身份验证指对新区块的数据格式、hash认证信息和权限信息等的认证,即对设备的唯一性和真实性的认证,只有认证通过的快照信息才能够存入K-V缓存,用于对后续短时间内新接入工业物理设备的身份认证。同时,完成该认证任务的工业物理设备节点将以固定数据格式的数据包,基于UDP传输协议,以辐射式多次传输,广播至整个区块链网络,使得整个区块链网络中的全部工业物理设备节点能够在极短时间内获取到这一信息,并按对应虚拟节点分配的快照信息存储任务要求将其保存至对应的虚拟节点,保证区块链网络中的各个工业物理设备节点在全网的唯一性。
响应于所述快照同步完成,将预先设为锁定状态的所述工业物理设备状态激活,并向所述区块链网络发出对所述新区块的共识校验广播。其中,工业物理设备的状态在快照同步完成之前设为锁定状态,是为了避免重复快照导致数据的不一致性问题。快照同步完成,可以将该工业物理设备的状态激活以保证后续能按接入虚拟节点的要求同步存储对应的数据,使得其可以快速做好上线运行的准备。在将该工业物理设备状态激活后,即可将对应的新区块广播至整个区块链网络进行下述的共识校验,以使得该新区块能够成功上链。
S34、响应于所述共识校验广播,由所述区块链网络的其他所述虚拟节点将所述身份验证任务写入对应簇内特定数目的所述工业物理设备节点的消费队列,以使所述区块链网络完成所述共识校验;
其中,特定数目即某一虚拟节点对应簇内参加共识的工业物理设备节点的数目,可以根据实际应用需求选择,可以全部工业物理设备节点都参与共识,也可以部分参与,此次不作具体限制,对应的各工业物理设备节点采取的共识原则也可以根据需求选择符合该区块链网络结构的共识方法实现即可。本实施例优选采用如前所述的节点共识方法,来实现对新区块的共识验证,具体实现参见前述部分,此处不作赘述。需要说明的是,此处虚拟节点通过往簇内确定要参与共识的工业物理设备节点的消费队列按优先级权重大小写入对应的身份照验证任务,使得簇内的工业物理设备节点共同配合完成新区块的共识验证任务,并且在整个区块链网络对该新区的共识验证完成后,不论共识验证成功与否,都会由参与共识验证的各工业物理设备节点将对应的消费队列中的该身份认证任务清除,同时,由上述生成该新区块的处理设备节点将对应的区块生成任务从生产队列中清除。
S35、响应于所述共识校验成功,由对应的所述虚拟节点将所述新区块的数据存储任务写入所述处理设备节点的消费队列;
其中,新区块通过全网共识验证后,就需要通知其他虚拟节点进行对该新区块的数据进行同步。由于该区块链网中工业物理设备节点采用的是不完全存储的方式,且同一簇内的各工业节点需要存储的数据内容都由对应的虚拟节点根据实际设备运行情况进行合理分配,那么,在广播数据同步之前,就需要处理该新区块对应的虚拟节点根据情况为该新区块的数据存储选择合适的工业物理设备节点,并由其将该新区块数据存储在对应的区块链存储地址后,广播至整个区块链网络。
S36、由所述处理设备节点读取所述消费队列的数据存储任务,将所述新区块的数据存储在对应的区块链存储地址,并向所述区块链网络的其他所述虚拟节点发出对所述新区块的数据同步广播;
其中,处理设备节点按照消费队列中的数据存储任务要求进行存储,同时,同簇内的其他工业物理设备节点不直接存储该数据内容,但会存储对应区块之间的映射关系,以保证同一个虚拟节点对应的全网数据的完整性。
S37、响应于所述新区块的数据同步广播,由所述区块链网络的其他所述虚拟节点,采用不完全同步结合负载均衡的方法对所述新区块的数据同步;
其中,不完全同步基于同簇内的工业物理设备节点采用不完全存储的原则,按照虚拟节点的分配原则先选取簇内某个工业物理设备节点存储,并通过下发数据同步任务的方式通知该工业物理设备节点来实现的新区块数据的实时同步,且传输数据端的工业物理设备节点根据自身的负载情况选择合适时机开启数据同步,具体步骤如下:
由所述虚拟节点检查自身的区块同步列表,确定待同步区块信息,并从对应簇中选取同步设备节点,并将所述数据同步任务写入所述同步设备节点的消费队列;所述同步设备节点为对应簇中当前可分配计算存储能力最大的所述工业物理设备节点;所述数据同步任务包括待同步区块信息;所述待同步区块信息包括目标虚拟节点、连接地址和区块号;其中,虚拟节点检查自身的区块同步列表,确定待同步区块信息,并从对应簇中选取同步设备节点都是基于前述的区块链网络中满足符合均衡原则的的工业物理设备节点的不完全存储方式进行设定的,将包括目标虚拟节点、连接地址和区块号的待同步区块信息写入对应的同步设备节点的消费队列,是用于后续该设备依据对应的信息建立设备间的连接获取需要同步的数据信息使用,此处不再赘述。
由所述同步设备节点读取所述待同步区块信息,根据所述连接地址向所述目标虚拟节点发送请求,通过所述同步设备节点对应的虚拟节点获取待同步区块节点地址;其中,同步设备节点只有同簇内其他工业物理设备节点的地址信息,且可以根据需求直接通信,但没有其他簇内的工业物理设备节点的地址信息,簇间的工业物理设备节点之间的通信都需要通过所在簇的虚拟节点获取对端即待同步区块节点地址的地址信息,才能建立连接进行通信,同步设备节点要通过所在簇的虚拟节点向待同步区块节点的虚拟节点发送请求才能获得待同步区块节点地址。
根据所述待同步区块节点地址,由所述同步设备节点发送TCP连接请求;
响应于所述TCP连接请求,由所述待同步区块节点通过负载均衡的方法判断是否建立连接,并在建链成功后,向所述同步设备节点进行数据传输;其中,负载均衡的方法基于实时监控、触发条件判断与流量控制三步来实现的,每次进行大规模区块同步之前都需要进行可行性判断以确保网络的可靠性,在保证数据传输的效率和质量的基础上,提升数据同步的效率。具体步骤如下:
由所述待同步区块节点实时监测系统参数,并根据所述系统参数判断是否满足预设的同步触发条件;其中,系统参数可根据实际应用需求进行选择,具体实时监测的系统参数内容,此处不作限制。在实际应用中,实时监控、触发条件判断是用户可控的,而流量控制部分是不可控的。实时监控主要是通过维护一个后台线程,来定时轮询各项参数,一旦有一定数量的参数满足系统设定的初步条件,那么就会进行触发条件判断的步骤,也可以根据当前节点的计算能力和网络情况来手动调节轮询的周期与参数。预设的同步触发条件的判断包括以下影响因素:当前网络传输质量(包括带宽、时延、丢包率的综合评价)、同步请求优先级(优先选择优先级高的区块进行同步,需要配合请求排队服务进行)、设备接入频繁程度(节点需要根据近期的设备接入数量和接入时间评估一个参数,代表未来一段时间内可能出现的设备接入数量)。根据众多影响因素,阶段会计算出当前的同步触发指数(范围在0到1之间),根据系统指定的触发上限来判断是否进行同步。
当满足同步触发条件时,接受所述同步设备节点的TCP连接请求,并基于快照同步优先的流量控制策略,向所述同步设备节点进行数据传输。其中,基于快照同步优先的流量控制策略是整个数据同步的最后一个步骤,一旦进入这一步,那么控制权将完全交给系统,整个过程是不可撤销的,直到指定的区块数据全部传输完成才会结束。该机制的设计主要是为了防止恶意节点在传输的过程中修改部分信息,导致区块链的断裂。整个传输的过程中会根据当前工业物理设备节点的需要进行快照的需求与数量对数据传输速度进行控制,优先保证快照的传输,但是会保证一个最低的传输速度,确保区块数据在一定的时间内完成传输。
响应于所述待同步区块节点的数据传输完成,由所述同步设备节点将对应的数据同步任务清除,并向对应的所述虚拟节点发送同步完成响应,以使得所述虚拟节点向所述区块链网络广播已完成同步消息。其中,同步设备节点向对应的虚拟节点发送同步完成响应,可以保证虚拟节点广播来告诉其它虚拟节点当前自己已经同步完成的数据,其它节点会根据这个信息和自身比较来确定是否存在一致性问题,可以有效避免在多次同步中导致某些节点遗漏数据。
S38、响应于所述区块链网络的所述新区块的数据同步完成,由所述处理设备节点将对应的数据存储任务清除,将所述工业物理设备上线。
需要说明的是,由上述数据同步步骤可知,完整区块数据的同步会可能会在当前无快照信息的时候发生,那么,前述在完全同步之前,新接入设备不具备产生区块的能力,只具备读取的能力,只有在同步完成之后将该工业物理设备上线,极大的保证了该区块链网络的数据同步机制的合理性与安全性。
本实施例中通过建立图8所示的新型信息存储压缩模型、配合工业物理设备的快速认证机制,以及并行同步和不完全同步相补充,辅以负载均衡的数据同步方法,支持工业物理设备在物联网虚拟节点的快速接入与离开,且保证整个过程的安全可靠,能够拒绝伪造的、有恶意性的设备进行接入,确保了接入设备的唯一性和真实性的基础上,最大限度减少资源利用,提升了区块链网络的运行效率,提高了工业物联网的安全性和可靠性。
综上,本发明实施例提供的应用于高性能物联网节点的区块链网络,及对应的链重构方法、节点共识方法及数据同步方法。通过采用对现有工业物理设备基于计算存储能力进行“归一化”分簇,抽象出合理数目的虚拟节点构成虚拟节点层区块链网络,用于分簇管理簇内的工业物理设备节点,处理对应簇的工业物理设备节点的注册请求和交易请求,以及基于新的区块结构设计及各虚拟节点的动态性能指标监控,管理簇内工业物理设备节点的变动,及完成对应的区块链网络的链重构、节点共识和数据同步的,对应的被分簇管理工业物理设备节点构成设备节点层区块链网络,用于接收交易请求,以及通过部分数据直接存储和与剩余数据映射关系存储相结合的方式共同配合存储对应所述虚拟节点的全部数据的新型区块链网络的设计方案,有效解决了由于不同物联网设备间的计算存储能力存在着较大差异,导致单独作为区块链节点在实际网络运行时带来的性能限制问题,还通过该新型区块链网络对应的链重构方法、节点共识方法和数据同步方法,不仅有效解决了现有工业物联网技术的安全性低、中心化程度过高、多个服务中心之间协作困难的问题,而且实现了工业物理设备的快速认证,支持设备在物联网虚拟节点(汇聚节点)的快速接入与离开,同时保证整个过程的安全可靠,能够拒绝伪造的、有恶意性的设备进行接入,还针对现有区块链网络中存在的节点计算时间长,传输带宽压力大,网络整体负载性高等缺点,建立了信息存储压缩模型与轻量级共识机制,保证了区块链网络在实际运行环境中的高度可靠性,能够用于入侵检测、数据安全防护,灾备预案等多个场景,为整个工业物联网体系提供健壮的底层安全防护、便捷可靠的上层开发支持。
本说明书中的各个实施例均采用递进的方式描述,各个实施例直接相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种优选实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本申请的保护范围。因此,本申请专利的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种区块链网络系统,其特征在于,所述区块链网络系统包括虚拟节点层区块链网络和设备节点层区块链网络;
所述虚拟节点层区块链网络,包括多个虚拟节点,用于分簇管理工业物理设备节点;所述虚拟节点由按照预设数目对各个所述工业物理设备节点的计算存储能力评估分簇得到;所述虚拟节点,用于处理对应簇的所述工业物理设备节点的注册请求和交易请求,以及进行所述区块链网络的链重构、节点共识和数据同步;
所述设备节点层区块链网络,包括被分簇管理的多个所述工业物理设备节点,用于接收交易请求,以及通过部分数据直接存储和与剩余数据映射关系存储相结合的方式,共同配合存储对应所述虚拟节点的全部交易数据;
所述设备节点层区块链网络的簇内工业物理设备节点之间直接通信;所述设备节点层区块链网络的簇间工业物理设备节点之间分别通过对应的所述虚拟节点层区块链网络的虚拟节点间接通信。
2.如权利要求1所示的区块链网络系统,其特征在于,所述区块链网络系统中各区块的区块头采用统一数据格式存储;所述统一数据格式为采用特定字节数目的存储空间存储版本号、前区块hash、本区块hash、时间戳、权限和填充部分。
3.如权利要求1所示的区块链网络系统,其特征在于,所述区块链网络系统响应于所述工业物理设备的注册请求,根据所述区块链网络系统的网络能力、计算存储能力、虚拟节点数据、以及虚拟节点规模,确定待加入虚拟节点,并通知所述待加入虚拟节点处理所述注册请求,生成对应的工业物理设备节点,以及发起所述节点共识和数据同步;所述虚拟节点规模包括所述虚拟节点对应簇内的工业物理设备数目和计算存储能力。
4.如权利要求1所示的区块链网络系统,其特征在于,所述虚拟节点实时监控对应簇的动态性能指标,若所述虚拟节点的动态性能指标低于对应的所述动态性能指标阈值,则对所述区块链网络系统进行所述链重构。
5.一种如权利要求1-4所述的任一区块链网络系统的链重构方法,其特征在于,所述方法包括以下步骤:
由所述虚拟节点统计各自的可分配计算存储能力;
根据所述虚拟节点的可分配计算存储能力,通过区块链竞争机制统计得到所述区块链网络系统的可分配计算存储能力均值,并根据所述可分配计算存储能力均值生成节点转移分配表,以进行节点转移广播;所述节点转移分配表的内容包括源虚拟节点、目的虚拟节点和待转移计算存储能力值;
响应于所述节点转移广播,由各所述虚拟节点检查自己是否为所述节点转移分配表中的源虚拟节点;
当所述虚拟节点为所述源虚拟节点,则根据所述待转移计算存储能力值,确定待转移工业物理设备节点,并向所述待转移工业物理设备节点发送节点转移指令;所述节点转移指令中包含断连指令和与所述源虚拟节点相对应的目的虚拟节点;
响应于所述节点转移指令,由所述待转移工业物理设备节点根据所述断连指令断开与当前所述虚拟节点的连接,以及删除当前存储数据,并向所述目的虚拟节点发起注册请求;
响应于所述待转移工业物理设备节点的注册请求,由对应的所述目的虚拟节点分配所述待转移工业物理设备节点的待存储数据;
由所述待转移工业物理设备节点同步所述待存储数据,完成所述链重构;所述待存储数据包括所述目的虚拟节点的特定部分数据,以及与剩余部分数据的映射关系。
6.一种如权利要求1-4所述的任一区块链网络系统的节点共识方法,其特征在于,所述方法包括以下步骤:
响应于新区块加入所述区块链网络系统,由所述虚拟节点对所述新区块进行可靠性验证,并从所述虚拟节点对应簇中选取第一数目的所述工业物理设备节点进行投票;
统计所述第一数目的工业物理设备节点的投票结果,若所述投票结果为所述第一数目的工业物理设备节点中有第二数目的工业物理设备节点认同,则由所述虚拟节点广播共识成功的共识结果,反之,则由所述虚拟节点广播共识失败的共识结果,通知所述区块链网络系统停止共识,并拒绝同步所述新区块的区块数据;
响应于所有虚拟节点广播共识成功的共识结果,通过区块链竞争机制,判定所述新区块共识校验成功,并广播通知所述区块链网络系统进行所述新区块的数据同步。
7.一种如权利要求1-4所述的任一区块链网络系统的数据同步方法,其特征在于,所述方法包括以下步骤:
预先配置所述区块链网络系统中各工业物理设备节点的生产队列和消费队列;所述生产队列用于存储按优先级排序的区块生成任务;所述消费队列用于存储按优先级排序的数据处理任务;所述数据处理任务包括数据存储任务、数据同步任务和身份验证任务;
响应于工业物理设备的注册请求,由对应的所述虚拟节点从对应簇中选取处理设备节点,并将区块生成任务写入所述处理设备节点的生产队列;所述处理设备节点为对应簇中当前可分配计算存储能力最大的所述工业物理设备节点;
由所述处理设备节点读取所述生产队列的区块生成任务,进行交易打包,生成所述工业物理设备对应的新区块和所述新区块对应的快照信息,并向所述区块链网络系统发出对所述新区块的共识校验广播;
响应于所述共识校验广播,由所述区块链网络系统的其他所述虚拟节点将所述身份验证任务写入对应簇内特定数目的所述工业物理设备节点的消费队列,以使所述区块链网络系统完成所述共识校验;
响应于所述共识校验成功,由对应的所述虚拟节点将所述新区块的数据存储任务写入所述处理设备节点的消费队列;
由所述处理设备节点读取所述消费队列的数据存储任务,将所述新区块的数据存储在对应的区块链存储地址,并向所述区块链网络系统的其他所述虚拟节点发出对所述新区块的数据同步广播;
响应于所述新区块的数据同步广播,由所述区块链网络系统的其他所述虚拟节点,采用不完全同步结合负载均衡的方法对所述新区块的数据同步;
响应于所述区块链网络系统的所述新区块的数据同步完成,由所述处理设备节点将对应的数据存储任务清除,将所述工业物理设备上线。
8.如权利要求7所述的数据同步方法,其特征在于,所述由所述处理设备节点读取所述生产队列的区块生成任务,进行交易打包,生成所述工业物理设备对应的新区块和所述新区对应的快照信息,并向所述区块链网络系统发出对所述新区块的共识校验广播的步骤包括:
由所述处理设备节点读取所述区块生成任务,构造所述区块头并采用统一数据格式进行存储;
根据所述新区块的数据生成对应的快照信息,采用布隆过滤器进行hash运算,并生成所述新区块;所述快照信息包括版本号、设备hash信息、设备权限、快照过期时间和数据填充;
根据所述快照信息,查询K-V缓存进行身份验证;所述K-V缓存与所述处理设备节点对应的所述虚拟节点一一对应;
响应于身份验证通过,将所述快照信息存储在所述K-V缓存,并基于UDP协议广播至所述区块链网络系统,以使得所述区块链网络系统的其他所述虚拟节点完成所述快照信息的快照同步;
响应于所述快照同步完成,将预先设为锁定状态的所述工业物理设备状态激活,并向所述区块链网络系统发出对所述新区块的共识校验广播。
9.如权利要求7所述的数据同步方法,其特征在于,所述由所述区块链网络系统的其他所述虚拟节点,采用不完全同步结合负载均衡的方法对所述新区块的数据同步的步骤包括:
由所述虚拟节点检查自身的区块同步列表,确定待同步区块信息,并从对应簇中选取同步设备节点,并将所述数据同步任务写入所述同步设备节点的消费队列;所述同步设备节点为对应簇中当前可分配计算存储能力最大的所述工业物理设备节点;所述数据同步任务包括待同步区块信息;所述待同步区块信息包括目标虚拟节点、连接地址和区块号;
由所述同步设备节点读取所述待同步区块信息,根据所述连接地址向所述目标虚拟节点发送请求,通过所述同步设备节点对应的虚拟节点获取待同步区块节点地址;
根据所述待同步区块节点地址,由所述同步设备节点发送TCP连接请求;
响应于所述TCP连接请求,由所述待同步区块节点通过负载均衡的方法判断是否建立连接,并在建链成功后,向所述同步设备节点进行数据传输;
响应于所述待同步区块节点的数据传输完成,由所述同步设备节点将对应的数据同步任务清除,并向对应的所述虚拟节点发送同步完成响应,以使得所述虚拟节点向所述区块链网络系统广播已完成同步消息。
10.如权利要求9所述的数据同步方法,其特征在于,所述响应于所述TCP连接请求,由所述待同步区块节点通过负载均衡的方法判断是否建立连接,并在建链成功后,向所述同步设备节点进行数据传输的步骤包括:
由所述待同步区块节点实时监测系统参数,并根据所述系统参数判断是否满足预设的同步触发条件;
当满足同步触发条件时,接受所述同步设备节点的TCP连接请求,并基于快照同步优先的流量控制策略,向所述同步设备节点进行数据传输。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021107240449 | 2021-06-25 | ||
CN202110724044 | 2021-06-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113905096A CN113905096A (zh) | 2022-01-07 |
CN113905096B true CN113905096B (zh) | 2024-02-23 |
Family
ID=79187683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110965574.2A Active CN113905096B (zh) | 2021-06-25 | 2021-08-20 | 一种区块链网络、链重构方法、共识方法及数据同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113905096B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114567907B (zh) * | 2022-03-09 | 2024-01-30 | 广东电网有限责任公司 | 一种跨域网络的资源管理方法、装置及系统 |
CN115208895A (zh) * | 2022-07-19 | 2022-10-18 | 中软航科数据科技(珠海横琴)有限公司 | 一种用于区块链技术的自动化组网方法及系统 |
CN116723202B (zh) * | 2023-08-10 | 2023-11-10 | 深圳海岸线数据技术有限公司 | 一种基于区块链的物联网设备管理系统及其控制方法 |
CN117376352B (zh) * | 2023-10-07 | 2024-03-12 | 山东山科智能科技有限公司 | 基于区块链的物联网系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111311414A (zh) * | 2020-02-27 | 2020-06-19 | 杭州云象网络技术有限公司 | 一种基于一致性哈希算法的区块链多方共识方法 |
KR102139549B1 (ko) * | 2019-04-26 | 2020-08-11 | 에스지에이비엘씨 주식회사 | 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법 |
CN111770073A (zh) * | 2020-06-23 | 2020-10-13 | 重庆邮电大学 | 一种基于区块链技术的雾网络卸载决策和资源分配方法 |
CN112134883A (zh) * | 2020-09-22 | 2020-12-25 | 北京八分量信息科技有限公司 | 基于可信计算进行节点间信任关系快速认证的方法、装置及相关产品 |
CN112163950A (zh) * | 2020-09-25 | 2021-01-01 | 湖南和信安华区块链科技有限公司 | 一种方便扩展、节点资源复用的区块链链网构建方法、系统及终端设备 |
-
2021
- 2021-08-20 CN CN202110965574.2A patent/CN113905096B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102139549B1 (ko) * | 2019-04-26 | 2020-08-11 | 에스지에이비엘씨 주식회사 | 피어의 클러스터에 의한 분할 연산 기반 블록체인망 시스템 및 분할 연산 방법 |
CN111311414A (zh) * | 2020-02-27 | 2020-06-19 | 杭州云象网络技术有限公司 | 一种基于一致性哈希算法的区块链多方共识方法 |
CN111770073A (zh) * | 2020-06-23 | 2020-10-13 | 重庆邮电大学 | 一种基于区块链技术的雾网络卸载决策和资源分配方法 |
CN112134883A (zh) * | 2020-09-22 | 2020-12-25 | 北京八分量信息科技有限公司 | 基于可信计算进行节点间信任关系快速认证的方法、装置及相关产品 |
CN112163950A (zh) * | 2020-09-25 | 2021-01-01 | 湖南和信安华区块链科技有限公司 | 一种方便扩展、节点资源复用的区块链链网构建方法、系统及终端设备 |
Non-Patent Citations (1)
Title |
---|
共识边缘计算及其在能源互联网中的应用;王同贺;电力建设;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113905096A (zh) | 2022-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113905096B (zh) | 一种区块链网络、链重构方法、共识方法及数据同步方法 | |
US20230006846A1 (en) | Data processing method and apparatus based on blockchain network | |
CN106790112B (zh) | 一种集成轻量级区块链的节点操作系统及数据更新的方法 | |
US20210256016A1 (en) | Blockchain system and method | |
CN109189751A (zh) | 基于区块链的数据同步方法及终端设备 | |
CN105357296A (zh) | 一种Docker云平台下弹性缓存系统 | |
CN101997924A (zh) | 云存储文件传输协议(cftp) | |
CN110289999B (zh) | 一种数据处理方法、系统及装置 | |
CN105897827A (zh) | 服务器节点、局域网服务器集群及其实现方法 | |
CN110688213B (zh) | 一种基于边缘计算的资源管理方法、系统及电子设备 | |
CN103401937A (zh) | 日志数据处理方法及系统 | |
CN111046065B (zh) | 可扩展的高性能分布式查询处理方法及装置 | |
CN111225069A (zh) | 一种分布式行情数据处理系统及方法 | |
CN112698838B (zh) | 多云容器部署系统及其容器部署方法 | |
CN112468589A (zh) | 数据分发方法、装置、计算机设备和存储介质 | |
CN114422331A (zh) | 容灾切换方法、装置及系统 | |
CN102939598B (zh) | 基于http的客户机-服务器通信系统和方法 | |
CN116743836A (zh) | 长连接通信链路建立方法及其装置、电子设备及存储介质 | |
CN115643271A (zh) | 一种云上多应用数据同步方法、装置、服务器及介质 | |
CN115102961A (zh) | 一种高并发网络访问分流方法及装置 | |
CN115190139A (zh) | 一种基于多协议的负载均衡能源大数据采集系统及方法 | |
CN115842866A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
Hou et al. | Design scheme for data transmission component of electric internet of things management platform | |
CN104702409A (zh) | 基于云平台的生物识别系统及其方法 | |
TW202020684A (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 |