[发明专利]账本索引跳表的构建方法及使用其的区块链账本处理方法在审
| 申请号: | 202011369560.6 | 申请日: | 2020-11-30 |
| 公开(公告)号: | CN112269791A | 公开(公告)日: | 2021-01-26 |
| 发明(设计)人: | 许文波;崔建军;刘力政;陈卿 | 申请(专利权)人: | 上海特高信息技术有限公司;上海特库信息技术有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27;G06Q40/04 |
| 代理公司: | 北京科家知识产权代理事务所(普通合伙) 11427 | 代理人: | 徐思波 |
| 地址: | 200120 上海市浦东新区中国*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 账本 索引 构建 方法 使用 区块 处理 | ||
1.一种账本索引跳表的构建方法,其特征在于,包括如下步骤:
(1)构建账本索引跳表数组:账本索引跳表数组的内容由区块的哈希值组成,按区块链高度从小到大顺序排列;
(1-1)第一层账本索引跳表的步进幅度为20 = 1;第一层账本索引跳表数组由从当前区块高度的前面的步进幅度为1的256个连续的区块的区块哈希值组成,如[H2,H3,…,H257];不足256个时,按实际个数填写,后续补充空值,如[H1,H2,H3,…,H254,0,0];
(1-2)第二层账本索引跳表的步进幅度为28= 256;第二层账本索引跳表数组由从区块高度为0开始的,区块高度步进幅度为256的256个连续的区块的区块哈希值组成;因为H0不存在,所以,第一个完成第二层账本索引跳表的数组元素时255,如[H256,H512,…,H65280],其余完整的第二次账本索引跳表的数组元素个数均为256个;不足256个时,按实际个数填写,后续补充空值,如[H256,H512,…,H2048,0,0,…];
(1-3)第三层账本索引跳表的步进幅度为216 = 65536;第三层账本索引跳表数组由从区块高度为65280开始的,区块高度步进幅度为256的256个连续的区块的区块哈希值组成,如[H65280,H130816,H 196352,…,H16776960];完整的第二次账本索引跳表的数组元素个数均为256个,不足256个时,按实际个数填写,后续补充空值,如[H65280,H130816,H196352,…,0,0,…];
(1-4)……,依次类推;
(2)构建账本索引跳表集合:每个区块中账本索引跳表集合由0个或多个账本索引跳表数组组成,每个数组最大存储28 = 256个元素,由区块高度决定,应当包含所有小于当前区块高度的跳表数组,算法如下:
(2-1)当区块高度等于1时,即创世区块,不包含任何账本索引跳表数组,账本索引集合为空;
(2-2)当区块高度大余1时,区块链由一个第一层账本索引跳表和0个或多个第二层及第N层账本索引跳表组成。
2.一种区块链账本处理方法,其特征在于,包括如下步骤:
步骤一、建立区块链账本的数据结构,包括采用权利要求1所述的构建方法构建的账本索引跳表集合;
增加账本索引跳表后的区块链账本的数据结构包括:
版本号、前一区块高度、前一区块时间戳、前一区块哈希值、当前区块链交易集默克尔根、当前区块链账户状态集默克尔根、账本索引跳表集合、当前区块链高度、当前区块链时间戳和当前区块链哈希值;
步骤二、计算区块链的哈希值
区块链的哈希值H′= Hash({版本号、前一区块高度、前一区块时间戳、前一区块哈希值、当前区块链交易集默克尔根、当前区块链账户状态集默克尔根、账本索引跳表集合、当前区块链高度、当前区块链时间戳});
步骤三、区块链账本的并行处理
账本加载、校验、查询过程从当前最新区块高度对应的区块中找到账本索引跳表集合,根据集合中的数组包含的区块哈希值数量,通过多线程账本处理函数,对每个Hash值对应的区块及其前置区块展开并行处理。
3.根据权利要求2所述的区块链账本处理方法,其特征在于,步骤三中区块链账本查询的时间复杂度为O(log(n))。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海特高信息技术有限公司;上海特库信息技术有限公司,未经上海特高信息技术有限公司;上海特库信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011369560.6/1.html,转载请声明来源钻瓜专利网。





