一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于区块链分片系统的存储轮换方法、系统、设备及应用与流程

2022-05-21 10:37:48 来源:中国专利 TAG:


1.本发明属于区块链及区块链分片应用技术领域,尤其涉及一种用于区块链 分片系统的存储轮换方法、系统、设备及应用。


背景技术:

2.目前,智能电网由于本身的精确测量,高级配电,高级资产管理等业务需 求,其体系结构庞大又复杂。区块链技术在智能电网中应用时,必然会接入大 量不同种类的节点,这些节点包括监控设备的传感器网路节点、工业互联网的 控制节点、设备运维方的节点、各种发电厂的接入节点,用户方的轻量节点等。 目前,以太坊和hyperledger fabric等著名的区块链项目都面临着一个问题:由 于全网每一节点都要处理、存出全网的所有交易和全部数据,整个区块链系统 的处理能力受限于单个计算节点。此外,由于共识算法的影响,随个全网节点 数目的增加,区块链系统的整体处理能力很可能不会提升,反而还会下降。
3.分片技术将全网节点划分为若干个片区,利用多个并行的委员会来处理系 统中的交易,提升了区块链系统的交易处理效率,解决了区块链的横向扩展问 题。其流程通常包括验证节点的加入、委员会成员的选举与分配、分布式一致 性算法、广播区块和重新配置委员会等步骤。从分片层次来看,分片技术可以 分为通信分片、计算分片、存储分片三个层次,三个方案层层递进。
4.分片技术的关键在于设计合理的分片方式,支持周期的轮换片区和新旧节 点的更替。因此,针对智能电网的应用场景,亟需设计一套契合电网业务的分 片方案,并提供一种高效的分片存储信息的划分和重置方案。
5.通过上述分析,现有技术存在的问题及缺陷为:
6.(1)传统区块链系统的事务处理能力受限于单个节点的计算能力,系统的 吞吐量和可扩展性太低,无法满足智能电网等新兴场景的业务需求。
7.(2)传统区块链分片技术使得区块链的吞吐量可以随着分片委员会的数量 线性增加,但牺牲了区块链系统的部分安全性,分片系统需要频繁的重配置来 保证系统的安全性,大大增加系统的通信开销和中断服务时间。
8.解决以上问题及缺陷的难度为:智能电网等新兴场景的业务需求对区块链 系统的吞吐量要求较高,传统的区块链技术无法满足要求,在保证区块链去中 心化和安全性的同时,提高区块链的可扩展性较为困难;利用分片技术提高区 块链可扩展性,实现高吞吐量的同时,如何减少系统的通信开销和中断服务时 间较为困难。
9.解决以上问题及缺陷的意义为:保证区块链系统去中心化和安全性的同时 提升区块链系统的可扩展性,并且减少了分片系统频繁的通信开销和网络载荷, 实现了新兴业务场景的高吞吐量需求;还减少了区块链分片系统重配置导致的 服务中断时间,大大增加了分片系统的稳定性。


技术实现要素:

10.针对现有技术存在的问题,本发明提供了一种用于区块链分片系统的存储 轮换方法、系统、设备及应用。
11.本发明是这样实现的,一种用于区块链分片系统的存储轮换方法,所述用 于区块链分片系统的存储轮换方法包括以下步骤:
12.步骤一,节点通过解决一个简单的pow问题加入区块链系统;
13.步骤二,区块链主链广播分片协议,将诸多节点划分到不同委员会;
14.步骤三,阵列配置模块将不同委员会按照协议要求组成委员会阵列;
15.步骤四,epoch结束时,系统进行重组轮换,将交易无缝迁移到委员会阵列 中其他的委员会,而不中断系统。
16.步骤一的作用:节点通过求解pow问题才能加入系统,避免恶意节点制造 大量虚拟节点对系统进行女巫攻击。
17.步骤二的作用:节点运行分片协议,可以生成一个个能异步并行处理区块 链事务的委员会,提升系统的吞吐量。
18.步骤三的作用:阵列配置模块生成一个个委员会阵列,可以在部分委员会 中断服务时,让系统继续向外界提供支持。
19.步骤四的作用:一个epoch结束时,区块链系统进行重组轮换,对节点进行 重新分配,生成新的分片委员会,保证委员会不会被恶意节点霸占,影响系统 安全性。
20.进一步,步骤三中,所述委员会阵列包含若干委员会,在一个epoch中,只 有一个委员会具有记账权。
21.进一步,所述用于区块链分片系统的存储轮换方法,还包括区块链系统的 分片初始化设置;其中,所述区块链系统的分片初始化设置,包括:
22.(1)区块链主链模块向所有验证节点广播分片协议,各节点依照随机发生 模块自发地组成一个个分片委员会;
23.(2)初步形成的分片委员会进行内部节点的共识,直至委员会内部达成稳 定共识;若未达成共识,否则解散委员会,验证节点重新运行分片协议;
24.(3)委员会向主链模块广播分组情况;
25.(4)主链模块验证节点的分片情况,若情况属实,更新节点的身份信息并 记录委员会分片情况;
26.(5)主链模块公布区块链分片结果并广播委员会阵列配置协议;
27.(6)各委员会向阵列配置模块请求配置;
28.(7)委员会阵列配置模块在收到信息后对委员会进行配置:阵列配置模块 依照内部算法,选取一定数量的分片委员会c
ii
,c
ij
,...进行配置,形成委员会阵 列ai;
29.(8)初步形成的委员会阵列进行内部节点的共识,直至阵列内部达成稳定 共识;若未达成共识,否则解散委员会阵列,重新配置委员会阵列;
30.(9)阵列内部达成稳定共识后,将新生成的委员会阵列信息,传递到主链 模块,主链模块更新委员会阵列配置情况。
31.进一步,所述用于区块链分片系统的存储轮换方法,还包括分片系统的高 效存储重配置;其中,所述分片系统的高效存储重配置,包括:
32.(1)主链模块检测到部分委员会阵列ai,aj运行时间已经到达了一个 epoch,立即记录当前最新区块的merkel根和最新交易的hash值,此后这些阵 列向主链模块发送的交易记录均视为无效交易;
33.(2)主链模块向epoch已满的委员会阵列ai,aj发送更新委员会的命令;
34.(3)委员会阵列在特定端口监测到主链模块的命令,验证消息后立即解散 阵列内部一直在进行交易的委员会c
ii
,c
jj
,向主链模块发送当前阵列配置状况;
35.(4)主链模块更新委员会阵列配置信息,向更新后的委员会阵列发送之前 记录的最新交易的hash值,继续进行事务处理;
36.(5)委员会阵列根据最新交易hash值,将此笔之后的交易重新分配阵列 内部的其他委员会c
ix
,c
jy
(x≠i,y≠j);
37.(6)被解散的节点达到一定数目后,这些节点共同运行分片协议,利用随 机发生模块重新组合成新的委员会;
38.(7)新生成的委员会进行内部共识,若达成稳定共识,则进行步骤(8), 否则执行步骤(6);
39.(8)新生成的委员会向委员会阵列配置模块发送希望加入委员会阵列的请 求;
40.(9)委员会阵列配置模块根据阵列配置状况,将新生成的委员会加入到委 员阵列中;
41.(10)新加入的委员会的节点从阵列内部其他委员会的节点同步区块数据, 阵列内部达成共识后,则进行步骤(11),否则执行步骤(9);
42.(11)主链模块更新委员会阵列配置情况。
43.本发明的另一目的在于提供一种应用所述的用于区块链分片系统的存储轮 换方法的用于区块链分片系统的存储轮换系统,所述用于区块链分片系统的存 储轮换系统包括:主链模块、随机发生模块以及委员会阵列配置模块。
44.其中,所述主链模块由一批全节点组成,用于记录该系统的每一笔交易和 每一次委员会生成或重组信息;
45.所述随机发生模块,用于产生良好的分布式随机性,节点组成委员会的随 机性由此模块保证;
46.所述委员会阵列模块,用于对已经生成的委员会进行重组和解散在内的管 理操作,表现形式与随机发生模块类似。
47.进一步,所述随机发生模块的实现形式,包括特殊节点组成的委员会、主 链模块上启动的一个服务以及所有验证节点所运行的一部分协议。
48.本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器 和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行 时,使得所述处理器执行如下步骤:
49.节点通过解决一个简单的pow问题加入区块链系统;区块链主链广播分片 协议,将诸多节点划分到不同委员会;阵列配置模块将不同委员会按照协议要 求组成委员会阵列;所述委员会阵列包含若干委员会,在一个epoch中,只有一 个委员会具有记账权;epoch结束时,系统进行重组轮换,将交易无缝迁移到委 员会阵列中其他的委员会,而不中断系统。
50.本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序, 所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
51.节点通过解决一个简单的pow问题加入区块链系统;区块链主链广播分片 协议,将诸多节点划分到不同委员会;阵列配置模块将不同委员会按照协议要 求组成委员会阵列;所述委员会阵列包含若干委员会,在一个epoch中,只有一 个委员会具有记账权;epoch结束时,系统进行重组轮换,将交易无缝迁移到委 员会阵列中其他的委员会,而不中断系统。
52.本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终 端用于实现所述的用于区块链分片系统的存储轮换系统。
53.本发明的另一目的在于提供一种所述的用于区块链分片系统的存储轮换系 统在基于区块链系统的智能电网中的应用。
54.结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提 供的用于区块链分片系统的存储轮换方法,具体是设计了一种区块链分片存储 的划分和重置方案,在传统分片协议的基础上,借鉴独立冗余磁盘阵列的思维, 将一个个委员会视为一个个独立的区块链分片数据库,把原本一个个处理不同 交易的委员会合并成新的委员会阵列;在每一个epoch中,轮换使用阵列中的委 员会,降低因epoch轮换而产生的服务停止时间,也大大降低了节点因存储重置 而引起的网络负载压力,提高了区块链分片系统的稳定性。
55.本发明提供了一种区块链分片的快速划分和重置方法,该方法可以显著减 少区块链系统为重置分片而暂停服务的时间,可以显著减少区块链系统为重置 分片而暂停服务的时间,使系统能一直保持较高的吞吐量;该方法可以有效的 减轻新分片节点同步数据进行数据交换带来的网络负载压力,提高分片系统的 稳定性。
56.本发明设计了一种区块链的分片存储的划分和重置方案,在传统分片协议 的基础上,借鉴独立冗余磁盘阵列的思维,将一个个委员会视为一个个独立的 区块链分片数据库,把原本一个个处理不同交易的委员会合并成新的委员会阵 列,增加了系统的冗余度。虽然使得分片系统的并行处理任务的上限有所降低, 但是解决了系统轮换epoch时,委员会重组无法继续执行交易验证的问题。
57.此外,当某一个epoch结束时,如果全体委员会都要进行重组,所有验证节 点都主链模块同步数据,会导致区块链网络负载过大,出现拥堵状态,并且, 这一段时间内,区块链系统无法处理任何交易事务。本方案设计的划分和重置 则不会遇到这种情况,新加入委员会阵列的验证节点都会从阵列内部的节点同 步数据,大大降低主链模块的网络负载,减小系统内部的通信开销。
附图说明
58.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所 需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下 还可以根据这些附图获得其他的附图。
59.图1是本发明实施例提供的用于区块链分片系统的存储轮换方法流程图。
60.图2是本发明实施例提供的区块链分片阵列系统结构示意图。
61.图3是本发明实施例提供的区块链分片系统的初始化示意图。
62.图4是本发明实施例提供的分片系统的存储轮换重置示意图。
具体实施方式
63.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例, 对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以 解释本发明,并不用于限定本发明。
64.针对现有技术存在的问题,本发明提供了一种用于区块链分片系统的存储 轮换方法、系统、设备及应用,下面结合附图对本发明作详细的描述。
65.如图1所示,本发明实施例提供的用于区块链分片系统的存储轮换方法包 括以下步骤:
66.s101,节点通过解决一个简单的pow问题加入区块链系统;
67.s102,区块链主链广播分片协议,将诸多节点划分到不同委员会;
68.s103,阵列配置模块将不同委员会按照协议要求组成委员会阵列;
69.s104,epoch结束时,系统进行重组轮换,将交易无缝迁移到委员会阵列中 其他的委员会,而不中断系统。
70.下面结合具体实施例对本发明的技术方案作进一步描述。
71.实施例1:区块链分片阵列系统的整体方案
72.本实施例设计了一种区块链分片系统的划分方案,其处理流程如下:分片 系统主链模块对想要的节点进行验证,避免恶意节点创建多个女巫身份;验证 节点加入区块链系统后,按照传统的分片方案,对节点进行分片,得到若干个 委员会;委员会阵列配置模块对委员会进行配置重组,生成委员会阵列;主链 模块将交易分发到各委员会阵列中。
73.本实施例还设计了一种区块链分片系统的存储轮换重置方案,其处理流程 如下:分片系统主链模块检测到部分委员会当前epoch生命周期结束,要求委员 会阵列解散对应委员会;委员会阵列向对应委员会发出解散命令,更新当前阵 列的信息;主链模块重新向委员会阵列发送事务,委员会阵列开始工作;被解 散的节点重新运行分片协议,形成委员会,并由阵列模块对委员会进行重组。
74.本发明提出了一种区块链分片存储的划分和重置方案,为更好的支持区块 链分片的重置及节点的轮换,本发明在已有的分片协议进行了修改,并提出了 全新的委员会重配置方法,具体包括一下两个方面:
75.1.区块链系统的分片初始化设置
76.2.分片系统的高效存储重配置方案
77.下面分别介绍:
78.1.区块链系统的分片初始化设置
79.该部分中涉及的模块包括主链模块、随机发生模块、委员会阵列配置模块。 主链模块由一批全节点组成,记录着该系统的每一笔交易和每一次委员会生成 或重组等信息;随机发生模块主要用来产生良好的分布式随机性,节点组成委 员会的随机性由此模块保证,其具体实现形式可能是一些特殊节点组成的委员 会,也可能是主链模块上启动的一个
服务,也可能是所有验证节点所运行的一 部分协议;委员会阵列模块的功能是,对已经生成的委员会进行重组、解散等 管理操作,其表现形式与随机发生模块类似。如图3所示,具体步骤如下:
80.s201,区块链主链模块向所有验证节点广播分片协议,各节点依照随机发 生模块自发地组成一个个分片委员会;
81.s202,初步形成的分片委员会进行内部节点的共识,直至委员会内部达成 稳定共识;若未达成共识,否则解散委员会,验证节点重新运行分片协议;
82.s203,委员会向主链模块广播分组情况;
83.s204,主链模块验证节点的分片情况,若情况属实,更新节点的身份信息 并记录委员会分片情况;
84.s205,主链模块公布区块链分片结果并广播委员会阵列配置协议;
85.s206,各委员会向阵列配置模块请求配置;
86.s207,委员会阵列配置模块在收到信息后对委员会进行配置:阵列配置模 块依照内部算法,选取一定的数量的分片委员会c
ii
,c
ij


进行配置,形成委员 会阵列ai;
87.s208,初步形成的委员会阵列进行内部节点的共识,直至阵列内部达成稳 定共识;若未达成共识,否则解散委员会阵列,重新配置委员会阵列;
88.s209,阵列内部达成稳定共识后,将新生成的委员会阵列信息,传递到主 链模块,主链模块更新委员会阵列配置情况。
89.2.分片系统的高效存储重配置(见图4)
90.s301,主链模块检测到部分委员会阵列ai,aj运行时间已经到达了一个 epoch,立即记录当前最新区块的merkel根和最新交易的hash值,此后这些阵 列向主链模块发送的交易记录均视为无效交易;
91.s302,主链模块向epoch已满的委员会阵列ai,aj发送更新委员会的命令;
92.s303,委员会阵列在特定端口监测到主链模块的命令,验证消息后立即解 散阵列内部的一直在进行交易的委员会c
ii
,c
jj
,并向主链模块发送当前阵列配置 状况;
93.s304,主链模块更新委员会阵列配置信息,向更新后的委员会阵列发送之 前记录的最新交易的hash值,继续进行事务处理;
94.s305,委员会阵列根据最新交易hash值,将此笔之后的交易重新分配阵列 内部的其他委员会c
ix
,c
jy
(x≠i,y≠j);
95.s306,被解散的节点达到一定数目后,这些节点共同运行分片协议,利用 随机发生模块重新组合成新的委员会;
96.s307,新生成的委员会进行内部共识,若达成稳定共识,则进行s308,否 则执行s306;
97.s308,新生成的委员会向委员会阵列配置模块发送希望加入委员会阵列的 请求;
98.s309,委员会阵列配置模块根据阵列配置状况,将新生成的委员会加入到 委员阵列中;
99.s310,新加入的委员会的节点从阵列内部其他委员会的节点同步区块数据, 阵列内部达成共识后,则进行s311,否则执行s309;
100.s311,主链模块更新委员会阵列配置情况。
101.实施例2:智能电网下的区块链分片阵列系统
102.区块链分片阵列系统的整体结构如图2所示,整个系统主要有用户、验证 节点、委员会以及委员会阵列、主链模块和阵列配置模块组成。对应到智能电 网场景下,各模块有了不同表征形式,具体说明如下:
103.用户对应着一个个电表,每一个电表在系统中都具有一个不变的区块链地 址(即公钥哈希),地址中记录着用户剩余的电力余额;
104.验证节点对应着智能电网中的基础设施,即发电站、变压器、传感器等智 能电力设备,这些设备或多或少具有一定的算力,可以用来维护整个区块链系 统;此外,验证节点也可以向公众开放注册;
105.委员会是由若干验证节点组成的分片网络,不同的委员会可以同时并行处 理区块链系统的交易,可以大幅度提升区块链系统的吞吐量,足以满足智能电 网系统内频繁的交易;
106.委员会阵列由若干委员会配置而成,参考raid技术,可以设计不同的配 置方案,图2展现了raid1型和raid3型两种:raid1型由两个存储数据信 息完全一致的委员会组成;raid3型至少由三个委员会组成,其中一个委员会 存储校验信息,其余委员会存储数据信息;
107.主链模块即区块链的主链,记录着区块链系统的全部信息,由于各分片委 员会要保持轻量且快速,只记录部分节点和交易的信息,因此,主链模块的作 用是即为重要的,用来承载智能电网的其他具体业务,实现电网信息化、配电 自动化、电网信息化等;
108.阵列配置模块是用来将委员会组成一个个委员会阵列,使得区块链系统能 无中断地提供服务,不会像传统区块链分片系统一样,因为委员会重组导致区 块链停止一段时间的服务,其具体表征形式可以是区块链系统上的智能合约, 也可以是分布式应用(dapp)等形式。
109.实施例3:验证节点的加入
110.每一个节点在加入委员会前,区块链系统会对其进行验证,避免不发分子 对系统进行女巫攻击。例如使用pow进行校验,节点必须能够完成一定的工作, 系统才允许进入,否则不允许节点加入委员会。具体步骤如下:
111.步骤一:节点加入区块链系统后,需要进行将身份信息(包括但不限于节 点的公钥、ip地址等)广播给系统内每一个节点;
112.步骤二:主链模块记录每个节点的身份信息;
113.步骤三:节点将自己的每一个身份信息按照固定的顺序拼接,生成一个hash 值,检验前x位是否全为零,不满足则不断的尝试nonce值,直到生成前x位全 为零的hash值,广播这一结果;
114.步骤四:主链模块对其这一hash值进行交易,满足则将这一节点列为下一 个epoch的待划分节点。
115.实施例4:区块链系统分片
116.步骤一:带划分的节点运行分片协议,启动随机发生模块,将验证节点随 机的划分为几个不同的委员会中;
117.步骤二:委员会内部运行共识算法,以pbft为例:按照机器编号选举轮流 选择主
节点,主节点在委员会内发起共识请求,如果不相同的结果小于委员会 内节点总数的1/3,即可认为达成稳定共识,进行下一步,否则执行步骤一;
118.步骤三:启动委员会阵列配置模块,按照协议要求对委员会进行组合配置, 例如参照raid 1,则将划分好的委员会两两组合形成raid 1阵列;
119.步骤四:同样在阵列内运行共识算法,如果达成稳定共识则进行步骤五, 未达成则执行步骤三;
120.步骤五:主链模块对达成稳定共识的委员会阵列分发交易。
121.实施例5:区块链分片的轮换和重置
122.假设某一时刻,委员会阵列a0,a1,a2中的委员会c
01
,c
10
,c
21
的epoch结束, 区块链系统的分片轮换步骤如下:
123.步骤一:主链模块向委员会阵列a0,a1,a2发送解散委员会c
01
,c
10
,c
21
的命 令,并记录此时委员会阵列a0,a1,a2落盘区块的最新交易hash值h0,h1,h2;
124.步骤二:委员会阵列配置模块收到命令后,解散委员会c
01
,c
10
,c
21

125.步骤三:委员会阵列a
′0,a
′1,a
′2重新进行共识达成稳定后,进行广播;
126.步骤四:主链模块分发刚刚记录的hash值h0,h1,h2;
127.步骤五:委员会将所有事务转移到c
00
,c
11
,c
20
进行处理,并根据hash值 h0,h1,h2重新开始处理交易数事务;
128.步骤六:解散后的委员会节点和所有带分片的验证节点,重新运行分片协 议,形成委员会,剩余步骤参照实施例4。
129.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组 合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程 序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指 令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可 以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算 机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向 另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、 计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或 无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据 中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用 介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。 所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、 或者半导体介质(例如固态硬盘solid state disk(ssd))等。
130.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明 的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的 保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献