一种用于区块链子链的发布系统及方法与流程

文档序号:26589629发布日期:2021-09-10 20:29阅读:76来源:国知局
一种用于区块链子链的发布系统及方法与流程

1.本发明涉及区块链技术领域,特别是一种用于区块链子链的发布系统及方法。


背景技术:

2.区块链是未来社会的重要组成部分,不同的社会活动场景也将由不同的链来承载,而链 与链之间的互通也将成为必然需求,由于区块链开放的特性,任何人都可以自己研发一个节 点接入区块链网络,而不同的节点将可能有不同的行为模式,以及不同的参数偏好,区块链 在实际运行过程中,由于区块链共识机制的顶层设计特点,对于具体执行细节的约束并没有 那么强烈,绝大多数时候不同节点之间采用不同的规则处理数据,并不会马上被其它节点通 过共识机制识别出来,往往需要在这些差异不断积累到已经影响共识规则正确性的时候才会 被发现,而此时已经来不及更正错误,或者已经过了业务层面的可追溯时间。
3.如果全体统一采用一个版本的节点接入区块链,又会让区块链网络整体的可靠性变得单 一,只要这个版本出现重大缺陷,那么整个网络都可能瘫痪。在链与链之间的层面也是一样, 无论主链与主链之间,还是主链与子链之间,依然存在不同链之间结构不同导致的互通问题, 如果采用各自研发的方式接入,链与链之间的互通也会存在节点与节点之间因为细微差异累 积导致的最终引发共识错误的问题。对于是否使用多版本问题,在不同的接入层面会引发不 同的结果,那么如何既能保证节点之间数据处理的一致性,又不影响链之间数据的一致性, 还不用约束节点的研发版本要求,成为一个急需解决的问题。


技术实现要素:

4.本发明旨在提出一种用于区块链子链的发布系统及方法。
5.一种用于区块链子链的发布系统,包括节点管理器、创世块管理器、子链管理器;其特 征在于:所述节点管理器用于管理当前网络中所拥有的节点,节点管理器区分节点所属的当 前子链以及特定子链的创世节点的位置;所述创世块管理器用于管理创世块信息,创建创世 块,管理不同创世创保存不同链的区块信息,在执行时将从创世块中提取执行参数,验证接 收到的别人的区块是否符合创世块要求;所述子链管理器用于定义以及管理子链信息,在定 义子链之前从创世块管理器中生成创世块,生成前先将当前子链执行过程中的所有可变量均 定义为参数放入创世块中,创世块生成完成后即可定义子链,定义信息中将指明当前子链的 参数信息,指定当前子链的创世节点,指定当前子链使用的创世块,并将所述信息全部存入 当前子链上;
6.系统通过创世块管理器生成一个空白创世块,生成一个子链发布交易,将交易提交到区 块链上,通过节点管理器接收所述交易,创世块管理器校验所述交易并执行所述交易,并完 成创世节点的清单扩展,同步子链数据,从而完成子链的启动。
7.进一步,所述节点管理器包含节点搜索模块、节点信息模块、节点共识模式、节点扩展 模块;
8.所述节点搜索模块用于搜索网络中的节点;
9.所述节点信息模块用于记录节点的基本信息,保存节点所对应的网络信息,根据上层应 用的不同选取记录的信息数据;
10.所述节点共识模块用于对节点的有效性进行共识,在所述区块链环境中,采用多个节点 一起判断数据的有效性,判定为有效的节点放入有效节点范围,对节点进行动态管理;
11.所述节点扩展模块用于根据其它节点的节点清单扩展自己的节点清单,从其它节点那里 获取的节点清单作为节点搜索模块的搜索地址列表使用,根据扩展后的节点列表再进一步扩 展节点列表。
12.进一步,所述节点搜索模块的搜索模式为根据本地已知的节点进行搜索确认其可用性, 还可以是在没有任何已知节点的情况对网络进行盲扫。
13.进一步,所述创世块管理器包括创世参数配置模块、创世块生成模块、创世块校验模块;
14.所述创世参数配置模块用于配置一条链在运行过程中所需要的所有参数,所述参数是一 个节点启动的组成部分;
15.所述创世块生成模块用于生成一个创世块,所述创世块将决定一条链的创世账户是谁, 以及所述链的资产以及共识要求;
16.所述创世块校验模块用于验证本地节点启动的创世块是否有被篡改,以及其它节点发送 来的区块是否符合创世块的共识要求。
17.进一步,所述子链管理器包括子链清单模块、子链节点模块、子链同步模块;
18.所述子链清单模块用于创建子链的基本信息,并为其它模块提供子链信息的查询;
19.所述子链节点模块用于管理当前链所搜索到的节点,所述节点是指运行了当前子链指定 创世块的节点;
20.所述子链同步模块用于保持与主链信息的同步,当主链对子链信息或创世块信息有变化 时,进行同步和响应。
21.进一步,所述子链包含公有链,私有链,联盟链;所述子链清单模块中的公有链的子链 只能新增,不能修改和删除;私有链和联盟链可以根据需求进行修改和删除;所述子链同步 模块中公有链只用于同步新增的子链信息,在联盟链和私有链根据需要同步已存在链的修改 或删除信息。
22.一种用于区块链子链的发布方法,包括下述步骤:
23.s1创世块管理器生成一个空白创世块,填写创世参数信息,将创世参数信息放入空白创 世块,为创世块打上签名,生成一个子链发布交易,将创世块放入子链发布交易,为子链发 布交易打上签名,将交易提交到区块链上;
24.s2节点管理器接收该交易,区块链解析该交易,校验该交易合法性;
25.s3创世块管理器校验该交易内携带创世块的合法性,全部校验为通过时丢弃该交易;全 部校验通过后,执行该交易;
26.s4创世块管理器:其他节点将创世块切换到该子链的创世块,启动该节点;创世块管理 器对节点解析创世块内容,为节点加载创世块的参数;
27.s5节点管理器:对节点按照创世块的定义所搜创世节点,向该创世节点请求该子链的节 点情况,获取到节点清单,循环该节点清单;
28.s6节点管理完成创世节点的清单扩展,节点向节点列表中的节点同步子链数据,完成子 链的启动。
29.进一步,所述的s3全部校验通过后执行该交易的具体步骤为:
30.s31创世块权利其执行该交易;
31.s32子链管理器在本地添加一条子链的信息;
32.s33创世块管理器在本地保存所述创世块,区块链将交易打入区块,区块被打上签名并 广播到所述区块网络中;
33.s34网络中的节点接收所述区块,完成一条链的创建。
34.进一步,所述的s5循环该节点清单的具体步骤为:
35.s51节点管理器提取所述节点信息,请求该节点返回所述子链的节点清单;
36.s52节点依次检查所述清单的节点是否可用;
37.s53节点将所述可用清单与自身的清单合并,完成所述节点的节点清单扩展。
38.相比现有的技术方案,本发明实现了不同架构不同编码链之间处理逻辑保持一致的作用, 解决了链与链之间、链内节点之间因为小变量不一致积累导致的数据不一致的问题。
39.说明书附图
40.图1是本发明所提及一种用于区块链子链的发布系统的组成示意图
41.图2是本发明所提及节点管理器的组成示意图;
42.图3是本发明所提及创世块管理器的组成示意图;
43.图4是本发明所提及子链管理器的组成示意图;
44.图5是本发明所提及一种用于区块链子链的发布方法的流程示意图;
45.图6是本发明所提及的s3的流程示意图;
46.图7是本发明所提及的s5的流程示意图;
47.其中:100节点管理器、200创世块管理器、300子链管理器;101节点搜索模块、102 节点信息模块、103节点共识模式、104节点扩展模块;201创世参数配置模块、202创世块 生成模块、203创世块校验模块;301子链清单模块、302子链节点模块、303子链同步模块。
具体实施方式
48.下面结合附图和具体实施例对本发明作进一步详述。在此需要说明的是,下面所描述的 本发明各个实施例中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
49.如图1所示,一种用于区块链子链的发布系统,包括节点管理器100、创世块管理器200、 子链管理器300;其特征在于:所述节点管理器100用于管理当前网络中所拥有的节点,节 点管理器100区分节点所属的当前子链以及特定子链的创世节点的位置;所述创世块管理器 200用于管理创世块信息,创建创世块,管理不同创世创保存不同链的区块信息,在执行时 将从创世块中提取执行参数,验证接收到的别人的区块是否符合创世块要求;所述子链管理 器300用于定义以及管理子链信息,在定义子链之前从创世块管理器200中生
成创世块,生 成前先将当前子链执行过程中的所有可变量均定义为参数放入创世块中,创世块生成完成后 即可定义子链,定义信息中将指明当前子链的参数信息,指定当前子链的创世节点,指定当 前子链使用的创世块,并将所述信息全部存入当前子链上;
50.系统通过创世块管理器200生成一个空白创世块,扩展传统创世块只保存起始区块信息 的边界,将区块链在整个运行过程中凡是短期和长期累积都可能影响共识结果正确的可变量, 全部作为创世参数,并融入到创世块中,并将这些创世参数纳入到创世块的签名范围中,组 成一个完备的创世块;生成一个子链发布交易,将这些完备的创世块放入到另一条链中保存, 以保证任何时候这些创世块都是一致的;将交易提交到区块链上,通过节点管理器100接收 所述交易,创世块管理器200校验所述交易并执行所述交易,并完成创世节点的清单扩展, 同步子链数据,从而完成子链的启动。
51.如图2所示,所述节点管理器100包含节点搜索模块101、节点信息模块102、节点共识 模式103、节点扩展模块104;
52.所述节点搜索模块101用于搜索网络中的节点;
53.所述节点信息模块102用于记录节点的基本信息,保存节点所对应的网络信息,根据上 层应用的不同选取记录的信息数据;
54.所述节点共识模块103用于对节点的有效性进行共识,在所述区块链环境中,采用多个 节点一起判断数据的有效性,判定为有效的节点放入有效节点范围,对节点进行动态管理;
55.所述节点扩展模块104用于根据其它节点的节点清单扩展自己的节点清单,从其它节点 那里获取的节点清单作为节点搜索模块101的搜索地址列表使用,根据扩展后的节点列表再 进一步扩展节点列表。
56.所述节点扩展模块104用于根据其它节点的节点清单扩展自己的节点清单,从其它节点 那里获取的节点清单不一定是自己能访问的清单,但是对于提高网络搜索速度很有用,这些 节点虽然不能拿过来直接用,但是可以作为节点搜索模块101的搜索地址列表使用,然后快 速扩展可用节点范围,然后再根据扩展后的节点列表再进一步扩展节点列表。
57.所述节点搜索模块101的搜索模式为根据本地已知的节点进行搜索确认其可用性,还可 以是在没有任何已知节点的情况对网络进行盲扫。
58.如图3所示,所述创世块管理器200包括创世参数配置模块201、创世块生成模块202、 创世块校验模块203;
59.所述创世参数配置模块201用于配置一条链在运行过程中所需要的所有参数,所述参数 是一个节点启动的组成部分;
60.所述创世块生成模块202用于生成一个创世块,所述创世块将决定一条链的创世账户是 谁,以及所述链的资产以及共识要求;
61.所述创世块校验模块203用于验证本地节点启动的创世块是否有被篡改,以及其它节点 发送来的区块是否符合创世块的共识要求。
62.如图4所示,所述子链管理器300包括子链清单模块301、子链节点模块302、子链同步 模块303;
63.所述子链清单模块301用于创建子链的基本信息,并为其它模块提供子链信息的
查询;
64.所述子链节点模块302用于管理当前链所搜索到的节点,所述节点是指运行了当前子链 指定创世块的节点;
65.所述子链同步模块303用于保持与主链信息的同步,当主链对子链信息或创世块信息有 变化时,进行同步和响应。
66.所述子链包含公有链,私有链,联盟链;所述子链清单模块302中的公有链的子链只能 新增,不能修改和删除;私有链和联盟链可以根据需求进行修改和删除;所述子链同步模块302中公有链只用于同步新增的子链信息,在联盟链和私有链根据需要同步已存在链的修改 或删除信息。
67.如图5-7所示,一种用于区块链子链的发布方法,包括下述步骤:
68.s1创世块管理器生成一个空白创世块,填写创世参数信息,将创世参数信息放入空白创 世块,为创世块打上签名,生成一个子链发布交易,将创世块放入子链发布交易,为子链发 布交易打上签名,将交易提交到区块链上;
69.s2节点管理器接收该交易,区块链解析该交易,校验该交易合法性;
70.s3创世块管理器校验该交易内携带创世块的合法性,全部校验为通过时丢弃该交易;全 部校验通过后,执行该交易;所述的s3全部校验通过后执行该交易的具体步骤为:s31创世 块权利其执行该交易;s32子链管理器在本地添加一条子链的信息;s33创世块管理器在本 地保存所述创世块,区块链将交易打入区块,区块被打上签名并广播到所述区块网络中;s34 网络中的节点接收所述区块,完成一条链的创建;
71.s4创世块管理器:其他节点将创世块切换到该子链的创世块,启动该节点;创世块管理 器对节点解析创世块内容,为节点加载创世块的参数;
72.s5节点管理器:对节点按照创世块的定义所搜创世节点,向该创世节点请求该子链的节 点情况,获取到节点清单,循环该节点清单;所述的s5循环该节点清单的具体步骤为:s51节 点管理器提取所述节点信息,请求该节点返回所述子链的节点清单;s52节点依次检查所述 清单的节点是否可用;s53节点将所述可用清单与自身的清单合并,完成所述节点的节点清 单扩展;
73.s6节点管理完成创世节点的清单扩展,节点向节点列表中的节点同步子链数据,完成子 链的启动。
74.以上所述,仅是本发明的较佳实施例而已,并非对本发明的技术范围作任何限制,故但 凡依本发明的权利要求和说明书所做的变化或修饰,皆应属于本发明专利涵盖的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1