[发明专利]一种区块链的可扩展共识方法有效

专利信息
申请号: 202110774096.7 申请日: 2021-07-08
公开(公告)号: CN113535849B 公开(公告)日: 2023-03-07
发明(设计)人: 李若欣;薛瑞尼;王诏贤;宋泽欣;唐大贺;杨中宇 申请(专利权)人: 电子科技大学
主分类号: G06F16/27 分类号: G06F16/27;G06F16/23;G06F16/22;G06F16/2455;G06Q40/04
代理公司: 四川鼎韬律师事务所 51332 代理人: 温利平
地址: 611731 四川省成*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 区块 扩展 共识 方法
【权利要求书】:

1.一种区块链的可扩展共识方法,其特征在于,包括以下步骤:

(1)、启动DHT-Orderer服务并初始化配置;

启动DHT-Orderer服务,将参与排序的DHT节点通过哈希算法形成一个二进制数组hash_node,每个DHT节点通过hash_node加入到DHT-Orderer的哈希环中;

通过写入配置文件方式对区块推荐容量PreferredSize和区块最大容量PreferredMaxSize、区块容纳交易最大数量MaxMessageCount、区块超时时间BatchTimeout进行初始化;

(2)、定义区块结构并初始化;

区块结构分为:区块头与数据域;区块头又包含PreviousHash、Number、DataHash三个字段,其中,PreviousHash用于记录了当前区块在区块链中的上一个区块的哈希值,初始化为空;区块高度Number用于记录当前区块在区块链中的顺序,初始化为0;DataHash记录了本区块在区块链中的哈希值,初始化为空;数据域用于记录该区块包含的所有的交易消息,初始化为空;

(3)、选举mainNode节点;

通过一致性哈希算法定位DHT环中key=0的后继节点,将该节点选举为主节点mainNode;mainNode节点包含lastBlockHash与blockNum两个字段,其中,lastBlockHash字段赋值为区块链中最后一个区块的哈希值DataHash,blockNum字段赋值为区块链中最后一个区块的区块高度Number;

(4)、消息预处理;

接收从客户端发来的交易消息Tx,先通过过滤器进行过滤处理,将交易消息Tx超过区块最大容量PreferredMaxSize过滤掉,再进入步骤(5);

(5)、交易路由;

经过预处理后的交易消息Tx通过哈希算法映射到由排序节点组成的哈希环,通过查询本地排序节点的路由表,得到该交易的后继节点的地址,如果本地节点未记录后继节点地址,在本地的路由表中找到距离后继节点最近的节点CloseNode,远程连接该节点,再通过迭代方式查询CloseNode的路由表中的后继节点,并记录后继节点地址,再进入步骤(6);

(6)、通过步骤(5)得到的地址,将交易消息Tx转发给相应的排序节点,并对交易消息Tx进行区块打包;

(6.1)、设置缓存pendingBatch,初始化为空;为缓存pendingBatch设置一个计时器timer,初始化为0,当缓存清空时,启动计时器;

(6.2)、定义区块打包法;

将缓存中的所有交易打包并作为返回值写入到区块的数据域,使用哈希算法对区块的数据域输出定长数组,再将该数组的长度值作为当前区块的哈希值,在DataHash字段中进行填充,从而生成包含多条交易消息的一个区块;区块打包完成后,将打包后的区块转发给mainNode;

(6.3)、将预处理后的交易消息Tx通过DHT的一致性哈希算法路由到指定的DHT节点,判断计时器timer的值是否到达预设的超时时间BatchTimeout,如果达到,则按照步骤(6.2)所述方法进行区块打包并转发给mainNode,然后重置计时器,清空缓存,并跳转至步骤(7);否则,进入步骤(6.4);

(6.4)、判断当前的交易Tx的大小messageSize是否大于区块打包的推荐容量PreferredSize,如果messageSize>PreferredSize,则进一步判断缓存是否为空,如果缓存为空,则再按照步骤(6.2)所述方法进行区块打包并转发给mainNode,然后重置计时器,清空缓存,并跳转至步骤(7);如果缓存不为空,则按照步骤(6.2)所述方法将缓存中的所有交易打包为一个区块转发给mainNode,然后重置计时器,清空缓存,并跳转至步骤(7);如果不满足messageSize>PreferredSize,进入步骤(6.5);

(6.5)、判断当前的交易消息Tx的大小messageSize与当前缓存大小pendingBatchSizeBytes之和是否大于最大容量PreferredMaxSize,如果超过了最大容量,则按照步骤(6.2)所述方法进行区块打包并转发给mainNode,然后重置计时器,清空缓存,并跳转至步骤(7);否则,进入步骤(6.6);

(6.6)、将当前的交易消息Tx存放到缓存pendingBatch中,新的缓存大小pendingBatchSizeBytes为未加入当前交易的缓存大小pendingBatchSizeBytes与当前的普通交易Tx的大小messageSizeBytes之和;然后判断缓存中的交易消息Tx的个数是否超过区块容纳交易最大数量MaxMessageCount,如果超过,执行步骤(6.2),按照步骤(6.2)所述方法进行区块打包并转发给mainNode,然后重置计时器,清空缓存,并跳转至步骤(7);

(7)、mainNode依次对接收的区块进行更新;

(7.1)、mainNode节点收到区块后,读取该区块的Number字段和PreviousHash字段,再通过mainNode本地的blockNum和lastBlockHash字段对该区块的区块高度Number与上一个区块的哈希值PreviousHash进行赋值操作,然后进入步骤(7.2);

(7.2)、mainNode更新本地的lastBlockHash和blockNum字段,其中,lastBlockHash更新为该区块的哈希值DataHash,blockNum更为blockNum加1;从而完成该区块的更新操作;

(7.3)、当mainNode收到下一个区块时,循环执行步骤(7.1)-(7.2),直到最后一个区块更新完成,然后进入步骤(8);

(8)、mainNode将更新完毕的区块写入本地账本,最终将分布式独立的区块形成可追溯的区块链。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110774096.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top