[发明专利]一种基于文件的区块链区块存储和读取方法有效
| 申请号: | 201810534022.4 | 申请日: | 2018-05-29 |
| 公开(公告)号: | CN108829772B | 公开(公告)日: | 2020-01-10 |
| 发明(设计)人: | 邱炜伟;李启雷;李伟;梁秀波;尹可挺 | 申请(专利权)人: | 杭州趣链科技有限公司 |
| 主分类号: | G06F3/06 | 分类号: | G06F3/06 |
| 代理公司: | 33200 杭州求是专利事务所有限公司 | 代理人: | 邱启旺 |
| 地址: | 310012 浙江省杭州*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 区块 读取 写入 区块信息 存储 当前文件 常规的 链节点 更新 索引 重写 成功 重复 应用 网络 保证 | ||
本发明公开一种基于文件的区块链区块存储和读取方法,在一个区块链节点中,写入时,读取最后一次成功提交的区块号,定位到当前文件写入的位置,然后写入最新的区块信息;根据写入的区块信息生出索引,更新最后一次成功提交的区块号,重复前述步骤,完成整个区块的写入,若有写入错误,则需要更新区块号进行区块重写;读取采用常规的读取方法。本发明应用于现有的区块链网络中,在保证了区块信息能够被准确且完整的写入的情况下,提高了整个区块存储的效率,是在传统基于Key/Value的区块链体系下一个新的突破。
技术领域
本发明涉及去中心化的区块链存储体系,尤其涉及一种基于文件的区块链区块存储和读取方法。
背景技术
区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。
传统区块链的存储体系均基于开源的Key/Value数据库,例如LevelDB,尽管LevelDB面利用多层合并的方式对数据的写入以及读取做了很大的优化,读写效率较其他传统的数据库也得到了一定的提高,但是针对大数据量且连续的区块数据仍无法达到实际生产所要求达到的吞吐量。
传统的区块链网络中,节点中所有的信息,包括状态信息以及区块均存储Key/Value数据库中,区块数据庞大,一旦系统运行过久区块数据量过大,会导致整个区块链网络的存储读写性能严重降低,成为整个区块链网络运行性能的瓶颈,是区块链在实际应用中的一大痛点。
发明内容
本发明的目的是针对现有技术的不足,提供一种基于文件的区块链区块存储和读取方法,该方法是针对区块数据量大且连续的特性,进行存储的优化。具体技术方案如下:
一种基于文件的区块链区块存储和读取方法,其特征在于,所述的存储包括如下步骤:
(1)读取最后一次成功提交的区块号,将其存储为变量名为LastCommit的键值对;
(2)根据最后一次提交的区块号,定位到当前文件写入的位置,然后写入最新的区块信息;
(3)根据写入的区块信息获得该区块在文件中的偏移量,根据区块号和偏移量定义为当前区块号的索引信息,写入索引文件中;
(4)更新最后一次成功提交的区块号,重复步骤(1)-(3),完成整个区块的写入;
(5)经过区块链网络若干个节点共识,若此时发现某个节点的区块写入错误,则从其他节点获取正确写入的区块号,更新错误节点最后一次成功提交的区块号,重复步骤(1)-(4),直到区块链网络达成网络共识。
所述的读取包括如下步骤:
根据需要读取的区块号读取相应区块的索引信息,根据索引信息定位到区块位于文件的具体偏移量,根据偏移量读取区块信息。
优选地,所述的读取进一步包括如下步骤:
定义迭代器,选择初始遍历的区块号,根据初始区块号读取相应区块的索引信息,根据索引信息定位到区块位于文件的具体偏移量,依次遍历整个文件,根据需要读取所需要区块的区块信息。
优选地,所述的步骤(2)中,当写入最新的区块信息后文件大于500M,则放弃此次写入,新建区块存储文件和区块索引文件,重新写入最新区块信息。
优选地,所述的区块号和索引文件按如下规则进行命名:
将新建区块存储以及索引文件后第一个区块号作为文件名,文件后缀分别为.LOG和.IDX。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州趣链科技有限公司,未经杭州趣链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810534022.4/2.html,转载请声明来源钻瓜专利网。





