CN108241743A - 一种区块链快照方法 - Google Patents
一种区块链快照方法 Download PDFInfo
- Publication number
- CN108241743A CN108241743A CN201810008046.6A CN201810008046A CN108241743A CN 108241743 A CN108241743 A CN 108241743A CN 201810008046 A CN201810008046 A CN 201810008046A CN 108241743 A CN108241743 A CN 108241743A
- Authority
- CN
- China
- Prior art keywords
- snapshot
- data
- back end
- node
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
Abstract
本发明涉及一种区块链快照方法,将增量快照技术与区块链技术融合,相比于传统的快照技术,不用每次对节点进行整机快照,既能缩小区块链中快照的存储空间,也能快速获得当前区块的状态数据。此种区块链快照方法,适用于在集群中加入节点的应用场景,可以实现快速同步节点的功能。
Description
技术领域
本发明涉及区块链技术领域,涉及一种区块链快照方法。
背景技术
当前,数据节点存储状态数据及交易数据。假设区块链中有X个账户,且X是一个非常大的数值,而区块中只有少数的账户在变更数据;如果使用原有的区块链的快照技术,每个区块都需要存储交易数据及X个账户的状态数据,在形成快照时会造成快照存储空间大,快照存储空间浪费等问题。快照技术是一种动态扩展,其存储空间只增不减,虽然有合并快照、压缩快照等解决方法,但这些方法不能从根本上缩小快照的存储空间。
综上所述,当前需要提供一种技术方案,既能缩小区块链中快照的存储空间,也能快速获得当前区块的状态数据。
发明内容
有鉴于此,本发明提供一种解决或部分解决上述问题的区块链快照方法。
为达到上述技术方案的效果,本发明的技术方案为:一种区块链快照方法,包含以下内容:
快照方法的角色包括:共识节点、数据节点、快照;
共识节点用于共识区块链中每个区块的交易信息;数据节点不参与区块的共识过程,只存储每个经过共识的区块的状态数据的增量数据及交易数据,每隔一定区间区块高度,数据节点为集群做一次快照;快照用于存储区块链的状态数据;
快照方法包括以下步骤:
1.1)每隔一定区间区块高度,数据节点根据本节点保存的状态数据的增量数据及上一个区间区块高度的快照,计算出本区间区块高度的状态数据,并以快照的形式保存;
1.2)数据节点将每个账户的状态数据的增量数据设置为0;
1.3)每生成一个区块,数据节点缓存当前区块内所有账户的交易数据,并记录数据有变动的账户的状态数据的增量数据,其中每个账户的状态数据的增量数据随区间区块高度增加而叠加;
1.4)直到达到下一个区间区块高度时,数据节点以本节点保存的状态数据的增量数据,及上一个区间区块高度的快照,计算出本区间区块高度的状态数据,并以快照的形式保存;
1.5) 数据节点将每个账户的状态数据的增量数据设置为0;
当集群中需要加入共识节点时,依照以下步骤进行处理:
2.1)宕机的共识节点从数据节点获取并缓存最新区间区块高度的快照;
2.2)根据上一个快照与当前状态数据的增量数据,获取最新数据节点的状态数据;
2.3)宕机的共识节点正式成为共识节点,并参与共识;
当集群中需要加入数据节点时,依照以下步骤进行处理:
3.1)宕机的数据节点从集群中的其余正常运行的数据节点获取并缓存最新区间区块高度的快照;
3.2)根据上一个快照与当前状态数据的增量数据,获取最新数据节点的状态数据;
3.3)宕机的数据节点正式成为数据节点,并参与存储状态数据的增量数据及交易数据。
共识节点及数据节点需要加入集群的情况包括:节点宕机后重新加入集群,因集群性能要求额外要求节点加入集群。
本发明的有益成果为:本发明提供了一种区块链快照方法,将增量快照技术与区块链技术融合,相比于传统的快照技术,不用每次对节点进行整机快照,既能缩小区块链中快照的存储空间,也能快速获得当前区块的状态数据。此种区块链快照方法,适用于在集群中加入节点的应用场景,可以实现快速同步节点的功能。
附图说明
图1为传统区块链快照方法的示意图;
图2为本发明一种区块链快照方法的示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,能实现同样功能的产品属于等同替换和改进,均包含在本发明的保护范围之内。具体方法如下:
实施例1:本实施例具体说明了区块链快照方法的步骤,如图1和图2:
如图1,图1是传统区块链快照方法。假设区块链上有X个账户,每隔100个高度的区块做一次快照,在高度为10001的区块上时,每个账户的余额为N,生成高度为10001的快照。
从高度为10001到高度为10098的区块都没有进行任何交易,数据节点存储交易数据,及 “账户000: N,账户001: N,账户010: N,账户011: N,账户100: N,……,账户X:N”的状态数据;
高度为10099的区块,有一笔由账户001向账户000转账价值为A的交易,此时数据节点存储交易数据,及“账户000: N+A,账户001: N-A,账户010: N,账户011: N,账户100:N,……,账户X:N”的状态数据;
高度为10100的区块产生了一笔由账户010向账户001转账价值为B的交易,此时数据节点存储交易数据,及“账户000: N+A,账户001: N-A+B,账户010: N-B,账户011: N,账户100: N,……,账户X:N”的状态数据;
高度为10101的区块,产生了一笔由账户001向账户011转账价值为C的交易,此时数据节点存储交易数据,及“账户000: N+A,账户001: N-A+B-C,账户010: N-B,账户011: N+C,账户100: N,……,账户X:N”的状态数据;在此区块中要生成高度为10101的快照,直接将状态数据生成快照。
如图2,图2是本发明一种区块链快照方法。假设区块链上有X个账户,每隔100个高度的区块做一次快照,在高度为10001的区块上时,每个账户的余额为N,生成高度为10001的快照,将所有账户的增量设置为0。
从高度为10001到高度为10098的区块都没有进行任何交易,数据节点存储交易数据,却没有存储增量数据;
高度为10099的区块,有一笔由账户001向账户000转账价值为A的交易,此时数据节点存储交易数据,及“账户000:+A,账户001:-A”的增量数据;
高度为10100的区块产生了一笔由账户010向账户001转账价值为B的交易,此时数据节点存储交易数据,及“账户000:+A,账户001:-A+B,账户010:-B”的增量数据;
高度为10101的区块,产生了一笔由账户001向账户011转账价值为C的交易,此时数据节点存储交易数据,及“账户000:+A,账户001:-A+B-C,账户010:-B,账户011:+C”的增量数据;在此区块中要生成高度为10101的快照,根据上一个快照的状态数据,以及本区间区块高度的增量数据,可以快速获得当前区块的状态数据“账户000:N+A,账户001:N-A+B-C,账户010:N-B,账户011:N+C,账户100:N,……,账户X:N”;将状态数据生成快照后,所有账户的增量数据设置为0。
本发明的有益成果为:本发明提供了一种区块链快照方法,将增量快照技术与区块链技术融合,相比于传统的快照技术,不用每次对节点进行整机快照,既能缩小区块链中快照的存储空间,也能快速获得当前区块的状态数据。此种区块链快照方法,适用于在集群中加入节点的应用场景,可以实现快速同步节点的功能。
以上所述仅为本发明之较佳实施例,并非用以限定本发明的权利要求保护范围。同时以上说明,对于相关技术领域的技术人员应可以理解及实施,因此其他基于本发明所揭示内容所完成的等同改变,均应包含在本权利要求书的涵盖范围内。
Claims (2)
1.一种区块链快照方法,其特征在于,包含以下内容:
快照方法的角色包括:共识节点、数据节点、快照;
所述共识节点用于共识区块链中每个区块的交易信息;所述数据节点不参与区块的共识过程,只存储每个经过共识的区块的状态数据的增量数据及交易数据,每隔一定区间区块高度,所述数据节点为集群做一次快照;所述快照用于存储区块链的状态数据;
所述快照方法包括以下步骤:
1.1)每隔一定区间区块高度,所述数据节点根据本节点保存的状态数据的增量数据及上一个区间区块高度的快照,计算出本区间区块高度的状态数据,并以快照的形式保存;
1.2)所述数据节点将每个账户的状态数据的增量数据设置为0;
1.3)每生成一个区块,所述数据节点缓存当前区块内所有账户的交易数据,并记录数据有变动的账户的状态数据的增量数据,其中每个账户的状态数据的增量数据随区间区块高度增加而叠加;
1.4)直到达到下一个区间区块高度时,所述数据节点以本节点保存的状态数据的增量数据,及上一个区间区块高度的快照,计算出本区间区块高度的状态数据,并以快照的形式保存;
1.5) 所述数据节点将每个账户的状态数据的增量数据设置为0。
2.根据权利要求1所述的一种区块链快照方法,其特征在于,包括:
当集群中需要加入共识节点时,依照以下步骤进行处理:
2.1)宕机的共识节点从所述数据节点获取并缓存最新区间区块高度的快照;
2.2)根据上一个快照与当前状态数据的增量数据,获取最新数据节点的状态数据;
2.3)宕机的共识节点正式成为共识节点,并参与共识;
当集群中需要加入数据节点时,依照以下步骤进行处理:
3.1)宕机的数据节点从集群中的其余正常运行的数据节点获取并缓存最新区间区块高度的快照;
3.2)根据上一个快照与当前状态数据的增量数据,获取最新数据节点的状态数据;
3.3)宕机的数据节点正式成为数据节点,并参与存储状态数据的增量数据及交易数据;
所述共识节点及所述数据节点需要加入所述集群的情况包括:所述节点宕机后重新加入所述集群,因集群性能要求额外要求节点加入集群。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810008046.6A CN108241743B (zh) | 2018-01-04 | 2018-01-04 | 一种区块链快照方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810008046.6A CN108241743B (zh) | 2018-01-04 | 2018-01-04 | 一种区块链快照方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108241743A true CN108241743A (zh) | 2018-07-03 |
CN108241743B CN108241743B (zh) | 2020-05-12 |
Family
ID=62699440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810008046.6A Active CN108241743B (zh) | 2018-01-04 | 2018-01-04 | 一种区块链快照方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108241743B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109309723A (zh) * | 2018-08-18 | 2019-02-05 | 上海分布信息科技有限公司 | 一种共识节点变更方法及其实现系统 |
CN109408521A (zh) * | 2018-09-28 | 2019-03-01 | 上海擎沣投资控股有限公司 | 一种用于更新区块链全局数据状态的方法及其装置 |
CN109542980A (zh) * | 2018-11-20 | 2019-03-29 | 北京磁云数字科技有限公司 | 一种区块链的数据处理方法、装置、设备及介质 |
CN109636388A (zh) * | 2018-12-07 | 2019-04-16 | 深圳市智税链科技有限公司 | 区块链网络中的数据处理方法、装置、介质及电子设备 |
CN110175188A (zh) * | 2019-05-31 | 2019-08-27 | 杭州复杂美科技有限公司 | 一种区块链状态数据缓存和查询方法、设备及存储介质 |
CN110489495A (zh) * | 2019-10-21 | 2019-11-22 | 杭州趣链科技有限公司 | 一种基于修改集的区块链快照制作方法 |
CN110543446A (zh) * | 2019-08-21 | 2019-12-06 | 杭州趣链科技有限公司 | 一种基于快照的区块链直接归档方法 |
WO2020057158A1 (zh) * | 2018-09-18 | 2020-03-26 | 百度在线网络技术(北京)有限公司 | 一种区块链的数据处理方法、装置、设备及介质 |
CN111316256A (zh) * | 2019-11-29 | 2020-06-19 | 支付宝(杭州)信息技术有限公司 | 拍摄区块链数据的快照 |
CN111507720A (zh) * | 2020-04-22 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 基于区块链的数据快照方法、装置及计算机可读存储介质 |
WO2020098818A3 (en) * | 2019-11-29 | 2020-09-24 | Alipay (Hangzhou) Information Technology Co., Ltd. | Taking snapshots of blockchain data |
CN112667652A (zh) * | 2020-12-31 | 2021-04-16 | 杭州趣链科技有限公司 | 基于区块链的模拟交易方法、装置、设备和可读存储介质 |
CN112988469A (zh) * | 2021-04-27 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 联盟链中的状态备份方法、装置和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677516A (zh) * | 2016-01-07 | 2016-06-15 | 成都市思叠科技有限公司 | 一种计算靠近存储云平台中高效可靠的备份恢复方法 |
CN106055597A (zh) * | 2016-05-24 | 2016-10-26 | 布比(北京)网络技术有限公司 | 数字交易系统、及用于其的账户信息查询方法 |
CN106844523A (zh) * | 2016-12-29 | 2017-06-13 | 北京瑞卓喜投科技发展有限公司 | 顺序型多维拓展的区块链的生成方法及系统 |
CN107018125A (zh) * | 2017-02-17 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种区块链系统、数据存储方法及装置 |
CN107124278A (zh) * | 2017-03-30 | 2017-09-01 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置以及数据共享系统 |
US20170364552A1 (en) * | 2016-06-16 | 2017-12-21 | The Bank Of New York Mellon | Ensuring Data Integrity of Executed Transactions |
CN107526775A (zh) * | 2017-07-18 | 2017-12-29 | 杭州趣链科技有限公司 | 一种区块链数据归档的方法 |
-
2018
- 2018-01-04 CN CN201810008046.6A patent/CN108241743B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677516A (zh) * | 2016-01-07 | 2016-06-15 | 成都市思叠科技有限公司 | 一种计算靠近存储云平台中高效可靠的备份恢复方法 |
CN106055597A (zh) * | 2016-05-24 | 2016-10-26 | 布比(北京)网络技术有限公司 | 数字交易系统、及用于其的账户信息查询方法 |
US20170364552A1 (en) * | 2016-06-16 | 2017-12-21 | The Bank Of New York Mellon | Ensuring Data Integrity of Executed Transactions |
CN106844523A (zh) * | 2016-12-29 | 2017-06-13 | 北京瑞卓喜投科技发展有限公司 | 顺序型多维拓展的区块链的生成方法及系统 |
CN107018125A (zh) * | 2017-02-17 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种区块链系统、数据存储方法及装置 |
CN107124278A (zh) * | 2017-03-30 | 2017-09-01 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置以及数据共享系统 |
CN107526775A (zh) * | 2017-07-18 | 2017-12-29 | 杭州趣链科技有限公司 | 一种区块链数据归档的方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109309723A (zh) * | 2018-08-18 | 2019-02-05 | 上海分布信息科技有限公司 | 一种共识节点变更方法及其实现系统 |
WO2020057158A1 (zh) * | 2018-09-18 | 2020-03-26 | 百度在线网络技术(北京)有限公司 | 一种区块链的数据处理方法、装置、设备及介质 |
US11381385B2 (en) | 2018-09-18 | 2022-07-05 | Baidu Online Network Technology (Beijing) Co., Ltd. | Data processing method and apparatus for blockchain, and storage medium |
CN109408521A (zh) * | 2018-09-28 | 2019-03-01 | 上海擎沣投资控股有限公司 | 一种用于更新区块链全局数据状态的方法及其装置 |
CN109542980A (zh) * | 2018-11-20 | 2019-03-29 | 北京磁云数字科技有限公司 | 一种区块链的数据处理方法、装置、设备及介质 |
CN109636388A (zh) * | 2018-12-07 | 2019-04-16 | 深圳市智税链科技有限公司 | 区块链网络中的数据处理方法、装置、介质及电子设备 |
CN109636388B (zh) * | 2018-12-07 | 2024-02-23 | 深圳市智税链科技有限公司 | 区块链网络中的数据处理方法、装置、介质及电子设备 |
CN110175188B (zh) * | 2019-05-31 | 2021-05-11 | 杭州复杂美科技有限公司 | 一种区块链状态数据缓存和查询方法、设备及存储介质 |
CN110175188A (zh) * | 2019-05-31 | 2019-08-27 | 杭州复杂美科技有限公司 | 一种区块链状态数据缓存和查询方法、设备及存储介质 |
CN110543446A (zh) * | 2019-08-21 | 2019-12-06 | 杭州趣链科技有限公司 | 一种基于快照的区块链直接归档方法 |
CN110489495A (zh) * | 2019-10-21 | 2019-11-22 | 杭州趣链科技有限公司 | 一种基于修改集的区块链快照制作方法 |
CN111316256A (zh) * | 2019-11-29 | 2020-06-19 | 支付宝(杭州)信息技术有限公司 | 拍摄区块链数据的快照 |
WO2020098818A3 (en) * | 2019-11-29 | 2020-09-24 | Alipay (Hangzhou) Information Technology Co., Ltd. | Taking snapshots of blockchain data |
US11100094B2 (en) | 2019-11-29 | 2021-08-24 | Alipay (Hangzhou) Information Technology Co., Ltd. | Taking snapshots of blockchain data |
CN111507720A (zh) * | 2020-04-22 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 基于区块链的数据快照方法、装置及计算机可读存储介质 |
US11782793B2 (en) | 2020-04-22 | 2023-10-10 | Tencent Technology (Shenzhen) Company Limited | Blockchain-based data snapshot method and apparatus, and computer-readable storage medium |
CN112667652A (zh) * | 2020-12-31 | 2021-04-16 | 杭州趣链科技有限公司 | 基于区块链的模拟交易方法、装置、设备和可读存储介质 |
CN112667652B (zh) * | 2020-12-31 | 2022-05-24 | 杭州趣链科技有限公司 | 基于区块链的模拟交易方法、装置、设备和可读存储介质 |
CN112988469A (zh) * | 2021-04-27 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 联盟链中的状态备份方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108241743B (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108241743A (zh) | 一种区块链快照方法 | |
KR102098548B1 (ko) | 블록체인에서 블록 데이터를 검증하기 위한 방법 및 장치 | |
CN102968486B (zh) | 一种基于变化日志的高可靠文件同步方法 | |
CN106407430A (zh) | 一种基于阶段桶的复杂智能合约状态同步方法 | |
CN110493148A (zh) | 一种区块处理、区块共识和区块同步方法及装置 | |
US20140207820A1 (en) | Method for parallel mining of temporal relations in large event file | |
CN106484906A (zh) | 一种分布式对象存储系统闪回方法及装置 | |
CN105989076A (zh) | 一种数据统计方法以及装置 | |
CN102521269A (zh) | 一种基于索引的计算机连续数据保护方法 | |
CN110597785B (zh) | 基于区块链和私有云的汽车零部件再制造共享系统 | |
CN102467525A (zh) | 单据关联方法及系统 | |
CN105208060A (zh) | 业务数据同步方法、装置及系统 | |
CN107861991A (zh) | 单据数据处理方法、装置、计算机设备和存储介质 | |
CN109727030A (zh) | 一种区块链中账户数据存储方法 | |
CN110083372B (zh) | 一种区块链数据版本升级方法 | |
CN103412922B (zh) | 一种数据查询处理方法 | |
CN107239548B (zh) | 基于SQL Server和HIVE的报表处理方法 | |
CN112598510A (zh) | 资源数据处理方法和装置 | |
CN103559574B (zh) | 一种工作流操作方法及系统 | |
CN106528286A (zh) | 一种实现定时器的方法和装置 | |
CN106161056B (zh) | 周期型数据的分布式缓存运维方法及装置 | |
CN106201692A (zh) | 一种定时任务处理系统及方法 | |
CN108090152A (zh) | 一种数据同步方法及系统 | |
CN103914481B (zh) | 数据存储方法和装置 | |
CN112596959A (zh) | 分布式存储集群数据备份方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210423 Address after: 310000 Room 702, 7th Floor, Building 6, East Software Park, No. 90 Wensan Road, Xihu District, Hangzhou City, Zhejiang Province Patentee after: HANGZHOU FUZAMEI TECHNOLOGY Co.,Ltd. Patentee after: Suzhou Jiaoda Chain Technology Co.,Ltd. Address before: 310000 room 409, Huaxing business building, 58 Xihu District Xueyuan Road, Hangzhou, Zhejiang Patentee before: HANGZHOU FUZAMEI TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |