CN109886690B - 一种区块链同步账本的方法 - Google Patents

一种区块链同步账本的方法 Download PDF

Info

Publication number
CN109886690B
CN109886690B CN201910169462.9A CN201910169462A CN109886690B CN 109886690 B CN109886690 B CN 109886690B CN 201910169462 A CN201910169462 A CN 201910169462A CN 109886690 B CN109886690 B CN 109886690B
Authority
CN
China
Prior art keywords
block
node
data
block number
initial
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.)
Active
Application number
CN201910169462.9A
Other languages
English (en)
Other versions
CN109886690A (zh
Inventor
于欢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Gonglian Information Technology Co ltd
Original Assignee
Shanghai Gonglian Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Gonglian Information Technology Co ltd filed Critical Shanghai Gonglian Information Technology Co ltd
Priority to CN201910169462.9A priority Critical patent/CN109886690B/zh
Publication of CN109886690A publication Critical patent/CN109886690A/zh
Application granted granted Critical
Publication of CN109886690B publication Critical patent/CN109886690B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种区块链同步账本的方法,当新建节点加入到区块链网络中时,指定需要同步区块全数据的起始区块号,其中,起始区块号前的区块只同步区块头数据;起始区块号的区块同步区块全数据和当前区块时刻的状态快照;起始区块号之后的区块同步区块的全数据;区块链节点选择性同步账本方法包括如下步骤:S1、初始化区块链节点;S2、启动节点,并设置节点起始区块号;S3、从所有连接节点中选择最佳的节点进行区块同步;S4、从最佳节点同步所有区块的区块头数据;S5、验证起始区块号之前所有区块头的有效性。本发明节点能够选择性同步账本,能够了减少存储在账本中的数据量,降低了存储资源的消耗,并提高了同步效率。

Description

一种区块链同步账本的方法
技术领域
本发明涉及区块链,特别涉及一种区块链同步账本的方法。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
区块链系统中每一个节点都实时同步完整账本数据,这种模式产生了大量冗余数据,大量消耗存储资源,并且数据存储容量会受到单机存储上限的限制。在数据量多的情况下,新节点同步全账本数据需要的时间较多。比如,目前以太坊的数据存储已经超过1T,这种水平已经让很多普通用户,无法运行一个全量的以太坊节点了。在实际的应用中,很多用户只关注区块链的最新状态,并不不关注历史记录,或者只关注部分历史记录,这种场景下用户不需要同步完整账本数据,目前区块链现有的账本同步方法不支持节点同步部分账本数据。
发明内容
本发明要解决的技术问题是克服现有技术的缺陷,提供一种区块链同步账本的方法。
为了解决上述技术问题,本发明提供了如下的技术方案:
本发明一种区块链同步账本的方法,当新建节点加入到区块链网络中时,指定需要同步区块全数据的起始区块号,其中,
起始区块号前的区块只同步区块头数据;
起始区块号的区块同步区块全数据和当前区块时刻的状态快照;
起始区块号之后的区块同步区块的全数据;
区块链节点选择性同步账本方法包括如下步骤:
S1、初始化区块链节点;
S2、启动节点,并设置节点起始区块号;
S3、从所有连接节点中选择最佳的节点进行区块同步;
S4、从最佳节点同步所有区块的区块头数据;
S5、验证起始区块号之前所有区块头的有效性;
S6、从最佳节点同步起始区块号的区块全数据;
S7、对起始区块号进行验证;
S8、起始区块号之后的区块同步区块头、区块体数据;
S9、从起始区块号之后顺序执行区块体数据中的交易,根据执行结果验证区块数据的有效性,验证通过区块全数据写入数据库。
作为本发明的一种优选技术方案,所述S3的最佳节点选择规则为:连接节点起始区块号小于本节点起始区块号,其中,连接节点起始区块号小于本节点起始区块号,其中,满足连接节点起始区块号小于本节点起始区块号的所有连接节点中,选择最新区块难度最大的节点为最佳节点。
作为本发明的一种优选技术方案,所述S5验证通过后,将起始区块号之前的区块头数据写入数据库。
作为本发明的一种优选技术方案,所述S6同步的数据包括区块头、区块体、交易执行结果、当前区块世界状态。
作为本发明的一种优选技术方案,所述步骤S7中,对起始区块号进行的验证包括:验证起始区块号的区块的区块头、区块体、交易执行结果、以及世界状态的有效性,验证通过区块全数据写入数据库。
本发明所达到的有益效果是:节点能够选择性同步账本,能够了减少存储在账本中的数据量,降低了存储资源的消耗,并提高了同步效率。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明的流程示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例
如图1所示,本发明提供一种区块链同步账本的方法,当新建节点加入到区块链网络中时,指定需要同步区块全数据的起始区块号,其中,
起始区块号前的区块只同步区块头数据;
起始区块号的区块同步区块全数据和当前区块时刻的状态快照;
起始区块号之后的区块同步区块的全数据;
区块链节点选择性同步账本方法包括如下步骤:
S1、初始化区块链节点;
S2、启动节点,并设置节点起始区块号;
S3、从所有连接节点中选择最佳的节点进行区块同步;
S4、从最佳节点同步所有区块的区块头数据;
S5、验证起始区块号之前所有区块头的有效性;
S6、从最佳节点同步起始区块号的区块全数据;
S7、对起始区块号进行验证;
S8、起始区块号之后的区块同步区块头、区块体数据;
S9、从起始区块号之后顺序执行区块体数据中的交易,根据执行结果验证区块数据的有效性,验证通过区块全数据写入数据库。
进一步的,步骤S3的最佳节点选择规则为:连接节点起始区块号小于本节点起始区块号,其中,满足连接节点起始区块号小于本节点起始区块号的所有连接节点中,选择最新区块难度最大的节点为最佳节点。
在本发明的另一个优选的实施例中,步骤S5验证通过后,将起始区块号之前的区块头数据写入数据库。
在本发明的另一个优选的实施例中,步骤S6同步的数据包括区块头、区块体、交易执行结果、当前区块世界状态。
在本发明的另一个优选的实施例中,步骤S7中,对起始区块号进行的验证包括:验证起始区块号的区块的区块头、区块体、交易执行结果、以及世界状态的有效性,验证通过区块全数据写入数据库。
具体的,新节点加入已有区块链网络的情况,包括如下步骤:
(1)配置本地节点的初始化参数,并对本地节点进行初始化;
(2)配置本地节点待连接的其他运行节点的连接信息,包括IP、端口号等;
(3)启动本地节点,设置起始区块号;
(4)本地节点主动连接(2)中配置的所有节点,连接成功后,从所有连接节点中筛选出起始区块号小于本地节点的连接节点;
(5)判断是否有满足(4)中条件的节点,有满足条件节点进入(6),否则进入(17)同步结束;
(6)从满足条件节点中选择难度最大的节点作为最佳节点;
(7)当最佳节点难度大于本地节点难度时进入(8),否则进入(17)同步结束;
(8)向最佳节点请求起始区号号之前区块的区块头数据;
(9)接收所请求的区块头数据并进行校验;
(10)将通过校验的区块头数据按顺序依次写入本地账本中;
(11)向最佳节点请求起始区号区块的区块头、区块体、交易执行结果、世界状态数据;
(12)接收所请求的数据并进行校验;
(13)将通过校验的区块头、区块体、交易执行结果、世界状态数据写入本地账本中;
(14)向最佳节点请求起始区号之后区块的区块头、区块体数据;
(15)接收所请求的数据,并执行区块体中的交易生成交易执行结果,并对数据进行校验;
(16)将通过校验的区块头、区块体、交易执行结果、世界状态的变更写入本地账本中;
(17)同步结束。
本发明节点能够选择性同步账本,能够了减少存储在账本中的数据量,降低了存储资源的消耗,并提高了同步效率。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种区块链同步账本的方法,其特征在于,当新建节点加入到区块链网络中时,指定需要同步区块全数据的起始区块号,其中,起始区块号前的区块只同步区块头数据;起始区块号的区块同步区块全数据和当前区块时刻的状态快照;起始区块号之后的区块同步区块的全数据;区块链节点选择性同步账本方法包括如下步骤:
S1、初始化区块链节点;
S2、启动节点,并设置节点起始区块号;
S3、从所有连接节点中选择最佳的节点进行区块同步;最佳节点选择规则为:连接节点起始区块号小于本节点起始区块号,其中,满足连接节点起始区块号小于本节点起始区块号的所有连接节点中,选择最新区块难度最大的节点为最佳节点;
S4、从最佳节点同步所有区块的区块头数据;
S5、验证起始区块号之前所有区块头的有效性;验证通过后,将起始区块号之前的区块头数据写入数据库;
S6、从最佳节点同步起始区块号的区块全数据;同步的数据包括区块头、区块体、交易执行结果、当前区块世界状态;
S7、对起始区块号进行验证;对起始区块号进行的验证包括:验证起始区块号的区块的区块头、区块体、交易执行结果、以及世界状态的有效性,验证通过区块全数据写入数据库;
S8、起始区块号之后的区块同步区块头、区块体数据;
S9、从起始区块号之后顺序执行区块体数据中的交易,根据执行结果验证区块数据的有效性,验证通过区块全数据写入数据库。
CN201910169462.9A 2019-03-06 2019-03-06 一种区块链同步账本的方法 Active CN109886690B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910169462.9A CN109886690B (zh) 2019-03-06 2019-03-06 一种区块链同步账本的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910169462.9A CN109886690B (zh) 2019-03-06 2019-03-06 一种区块链同步账本的方法

Publications (2)

Publication Number Publication Date
CN109886690A CN109886690A (zh) 2019-06-14
CN109886690B true CN109886690B (zh) 2023-07-25

Family

ID=66931085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910169462.9A Active CN109886690B (zh) 2019-03-06 2019-03-06 一种区块链同步账本的方法

Country Status (1)

Country Link
CN (1) CN109886690B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489495A (zh) * 2019-10-21 2019-11-22 杭州趣链科技有限公司 一种基于修改集的区块链快照制作方法
CN111211876B (zh) * 2020-01-02 2021-10-12 支付宝(杭州)信息技术有限公司 发送针对数据请求的应答消息的方法及装置、区块链系统
CN111756829A (zh) * 2020-06-19 2020-10-09 深圳市蔚链科技有限公司 账本数据同步方法、装置、设备和存储介质
CN111813866B (zh) * 2020-07-30 2021-03-16 河南中盾云安信息科技有限公司 一种改进的区块链账本同步方法
CN113434599A (zh) * 2021-06-29 2021-09-24 北京市大数据中心 一种基于半节点的区块链账本同步方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451002A (zh) * 2017-03-24 2017-12-08 北京瑞卓喜投科技发展有限公司 针对修改区块体数据的区块链的主动验证方法及系统
CN108429759A (zh) * 2018-03-28 2018-08-21 电子科技大学成都研究院 去中心化存储安全实现方法
CN108810119A (zh) * 2018-05-31 2018-11-13 中国联合网络通信集团有限公司 区块链处理方法、装置及区块链节点
CN108924223A (zh) * 2018-06-29 2018-11-30 北京金山安全软件有限公司 一种区块链的节点同步方法及装置
CN109327528A (zh) * 2018-10-31 2019-02-12 阿里巴巴集团控股有限公司 一种基于区块链的节点管理方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451002A (zh) * 2017-03-24 2017-12-08 北京瑞卓喜投科技发展有限公司 针对修改区块体数据的区块链的主动验证方法及系统
CN108429759A (zh) * 2018-03-28 2018-08-21 电子科技大学成都研究院 去中心化存储安全实现方法
CN108810119A (zh) * 2018-05-31 2018-11-13 中国联合网络通信集团有限公司 区块链处理方法、装置及区块链节点
CN108924223A (zh) * 2018-06-29 2018-11-30 北京金山安全软件有限公司 一种区块链的节点同步方法及装置
CN109327528A (zh) * 2018-10-31 2019-02-12 阿里巴巴集团控股有限公司 一种基于区块链的节点管理方法和装置

Also Published As

Publication number Publication date
CN109886690A (zh) 2019-06-14

Similar Documents

Publication Publication Date Title
CN109886690B (zh) 一种区块链同步账本的方法
JP7362654B2 (ja) 分割されたブロックチェーンネットワークにおけるブロックチェーンのブロックの維持管理
TWI743881B (zh) 用於在區塊鏈網路中添加節點的系統和方法
CN111049902B (zh) 基于区块链网络的数据存储方法、装置、存储介质和设备
CN110532247B (zh) 数据迁移方法和数据迁移系统
AU2019203861B2 (en) System and method for ending view change protocol
AU2019203862B2 (en) System and method for ending view change protocol
CN103780638B (zh) 数据同步方法及系统
CN104281506B (zh) 一种文件系统的数据维护方法及系统
US6532494B1 (en) Closed-loop node membership monitor for network clusters
CN102265277B (zh) 数据存储系统的操作方法和装置
US7739371B2 (en) Computer system
CN109547211B (zh) 应用数字签名技术的分级并发拜占庭共识方法及系统
US11200123B2 (en) Consensus process recovery method and related node
CN111163148B (zh) 一种区块链系统的共识状态的同步方法及相关设备
WO2021047541A1 (zh) 一种区块链内获取交易依赖关系的方法及装置
CN104536852B (zh) 数据恢复方法及装置
CN112069259B (zh) 一种基于区块链的多云环境数据存储系统及方法
CN113268382B (zh) 在区块链系统中切换分片节点的方法及装置
CN109739684A (zh) 基于向量时钟的分布式键值数据库的副本修复方法与装置
CN113157450A (zh) 在区块链系统中执行区块的方法及装置
CN114328518A (zh) 基于utxo模型的低存储消耗的方法和系统
CN110825758B (zh) 一种交易处理的方法及装置
KR20190086301A (ko) 블록 체인을 이용한 분산 데이터베이스 시스템 및 방법
CN107122442A (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