(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210586470.5
(22)申请日 2022.05.26
(71)申请人 南京邮电大 学
地址 210003 江苏省南京市 鼓楼区新模范
马路66号
(72)发明人 付雄 范文昊 邓松 王俊昌
陈云芳
(74)专利代理 机构 南京经纬专利商标代理有限
公司 32200
专利代理师 田凌涛
(51)Int.Cl.
H04L 67/1097(2022.01)
H04L 9/40(2022.01)
H04L 9/32(2006.01)
G06F 16/23(2019.01)G06F 16/901(2019.01)
G06F 16/906(2019.01)
G06F 21/60(2013.01)
G06F 21/64(2013.01)
(54)发明名称
基于云存储的区块链数据链下存 储方法
(57)摘要
本发明涉及基于云存储的区块链数据链下
存储方法, 通过区块创建时间进行分类打包, 并
标记区块集合中用户节点参与的区块, 减轻了区
块链节点存储压力, 提高存储和检索效率; 具体
对在本地保存时间超 过预设时长的区块打包, 并
根据区块集合中的区块数量和记录用户参与交
易的区块, 生成描述字符串保存在链上; 并对打
包后的区块集合进行非对称加密, 获取数字签名
与打包文件一起上传云端; 运用这种策略可以减
少上传云存储频率, 提高存储性能, 并且区块链
节点保存区块集合信息, 提高访问效率, 以及非
对称加密和多处备份保证区块不可伪造、 不可篡
改。
权利要求书2页 说明书6页 附图1页
CN 115052008 A
2022.09.13
CN 115052008 A
1.基于云存储 的区块链数据链下存储方法, 其特征在于: 基于区块链系统Blockchain
按正常程序出块生成区块, 并经用户节点UN验证后, 按出块顺序依次将各区块加入区块链
表BLK, 以及区块头中包含区块创建时间Time、 区块体中包含交易列表Transactions, 按预
设周期执 行如下步骤A至步骤E, 执 行存储;
步骤A.初始化待存储区块动态数组BA、 相 关时间戳动态数组TL, 以及初始化结算时间
字符串ST为当前时间戳, 并进入步骤B;
步骤B.基于区块链表BLK, 获得其中区块创建时间Time与结算时间字符串ST之间差值
不小于预设时长阈值的连续各区块、 以及用户节点UN参与交易的各区块, 加入待存储区块
动态数组BA中, 同时并将用户节 点UN参与交易的各区块的区块创建时间Time加入相关时间
戳动态数组TL中, 然后进入步骤C;
步骤C.删除区块链表BLK中属于待存储区块动态数组BA中的各个区块, 更新区块链表
BLK, 然后进入步骤D;
步骤D.构建待存储区块动态数组BA所对应的描述信息字符串BA.info, 以及构建待存
储区块动态数组BA与相关时间戳动态数组TL所对应的相关性字符串BA.relativity, 进而
构成区块数组描述字符串BA.des, 然后进入步骤E;
步骤E.将待存储区块动态数组BA保存为json格式的区块数组文件BA.file, 并针对区
块数组描述字符串BA.des、 区块数组文件BA.file, 实现用户节点UN本地保存、 以及区块链
上保存。
2.根据权利要求1所述基于云存储的区块链数据链下存储方法, 其特征在于: 所述步骤
B包括如下步骤B1至步骤B6;
步骤B1.初始化 参数i等于1, 并进入步骤B2;
步骤B2.判断区块链表BLK中第i个区块的区块创建时间Time与结算时间字符串ST之间
差值是否不小于预设时长阈值, 是则将区块链表BLK中第i个区块加入待存储区块动态数 组
BA中, 并针对i的值进行加1更新, 然后进入步骤B3; 否则进入步骤B4;
步骤B3.判断i是否大于区块链表BLK中区块的个数, 是则进入步骤B4, 否则返回步骤
B2;
步骤B4.遍历待存储区块动态数组BA, 将其中交易列表Transactions公共字段包含用
户节点UN账户信息UN.account的各个区块的区块创建时间Time, 加入相关时间戳动态数组
TL中; 然后判断若待存储区块动态数 组BA中最后一个区块的交易列表Transactions公共字
段是否包含用户节点UN账户信息UN.account, 是则定义k=待存储区块动态数组BA中区块
数量+1, 并进入步骤B5; 否则进入至步骤C;
步骤B5.判断区块链表BLK中第k个区块交易列表Transactions公共字段是否包含用户
节点UN账户信息UN.account, 是则将区块链表BLK中第k个区块加入待存储区块动态数组BA
中, 以及将区块链表BLK中第k个区块的区块创建时间Time, 加入相关时间戳动态数 组TL中,
并针对k的值进行加1更新, 然后进入步骤B6; 否则进入步骤C;
步骤B6.判断k是否大于区块链 表BLK中区块的个数, 是则进入步骤C, 否则返回步骤B5 。
3.根据权利要求1所述基于云存储的区块链数据链下存储方法, 其特征在于: 所述步骤
D包括如下:
首先根据待存储区块动态数组BA中第一个区块的区块创建时间Time、 最后一个区块的权 利 要 求 书 1/2 页
2
CN 115052008 A
2区块创建时间Time、 以及待存储区块动态数组BA中区块的数量, 构成描述信息字符串
BA.info;
然后根据相关时间戳动态数组TL长度cntun, 若cntun等于0, 则定义相关性字符串
BA.relativit y为No transaction records; 若cntun不等于0, 则遍历待存储区块动态数组
BA中各区块的区块创建时间Time, 获取彼此最长公共前缀子串str0, 并将该各个区块创建
时间Time分别分割为str0、 以及剩余部分str, 然后按如下方式, 构成相关性字符串
BA.relativity;
BA.relativity=cntun+str0+“:”+str+“,”+str+“,”...+str+“。”
最后将描述信息字符串BA.info和相关性字符串BA.relativity以json格式进行合 并,
构成区块数组描述字符串BA.des。
4.根据权利要求1所述基于云存储的区块链数据链下存储方法, 其特征在于: 所述步骤
E包括如下步骤E1至步骤E7;
步骤E1.将待存储区块动态数组BA保存为json格式的区块数组文件BA.file, 并对区块
数组文件BA.file字符串进行哈希计算, 获得区块数组 哈希BA.hash, 然后应用用户节点UN
的私钥字符串UN.PrivateKey对区块数组哈希BA.hash进行非对称加密, 获得数字签名字符
串BA.signature, 然后进入步骤E2;
步骤E2.调用预设各公共云空间分别所提供的对象存储服务OBS, 或者调用内部云空间
所提供的对象存储服务OBS, 并获得相应 云空间的存储空间和各地址, 由各地址构成地址数
组URL, 然后进入步骤E 3;
步骤E3.应用所调用的对象存储服务OBS, 将区块数组文件BA.file和数字签名字符串
BA.signature打包上传到地址数组URL中相应地址对应的云空间, 并等待相应云空间的返
回数据respo nse, 进入步骤E4;
步骤E4.读取返回数据response中的确认应答字符ack, 若确认应答字符ack为存储成
功, 则进入步骤E 5; 否则返回步骤E2;
步骤E5.由地址数组URL与返回数据response作为字段名, 生成json格式的地址文件
URL.file, 并对URL.file字符串进行哈希计算, 得到对应的地址文件哈希URL.hash, 然后进
入步骤E6;
步骤E6.建立区块地址对照表BUT, 将区块数组描述字符串BA.des和地址文件哈希
URL.hash作为键值对, 写入区块地址对照表BUT中, 并由用户节 点UN本地保存区块地址对照
表BUT, 然后进入步骤E7;
步骤E7.在区块链上生成正式区块, 包含区块头H和区块体B, 其中, 区块头H中保存区块
数组哈希BA.hash和结算时间字符串ST, 区块体B中保存区块数组描述字符串BA.des、 相关
性字符串BA.relativity、 区块 地址对照表BU T。权 利 要 求 书 2/2 页
3
CN 115052008 A
3
专利 基于云存储的区块链数据链下存储方法
文档预览
中文文档
10 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共10页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-24 00:47:05上传分享