CN111813852B - 一种区块链网络的分叉控制方法和装置 - Google Patents
一种区块链网络的分叉控制方法和装置 Download PDFInfo
- Publication number
- CN111813852B CN111813852B CN202010475257.8A CN202010475257A CN111813852B CN 111813852 B CN111813852 B CN 111813852B CN 202010475257 A CN202010475257 A CN 202010475257A CN 111813852 B CN111813852 B CN 111813852B
- Authority
- CN
- China
- Prior art keywords
- blockchain
- bifurcation
- state
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000001514 detection method Methods 0.000 claims abstract description 7
- 238000004088 simulation Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000001934 delay Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种区块链网络的分叉控制方法,具体包括以下步骤:步骤S101:区块链上每个区块链节点检测当前所在的位置是否存在分叉,若否则继续保持检测,若是转至步骤S102;步骤S102:每个区块链节点放弃处于分叉状态的区块,将区块链回退至消除分叉的唯一主干链状态;步骤S103:对于所有向区块链添加处于分叉状态区块的节点,各节点进行互相独立的随机延迟,各节点的随机延迟结束后,重新执行向区块链添加区块的操作,转至步骤S101。与现有技术相比,本发明具有最小化区块链分叉状态持续时间、避免对下一轮区块链写操作的依赖、降低区块链客户端的复杂度等优点。
Description
技术领域
本发明涉及互联网技术领域,尤其是涉及一种区块链网络的分叉控制方法和装置。
背景技术
在区块链应用中,如果有多个节点同时对区块链执行写操作(即向区块链添加区块),则区块链产生分叉。在当前的区块链技术中,通过下一轮对区块链的写操作以及最长链胜出的冲突解决规则,区块链分叉得到解决。在公有链中,区块链分叉随着下一轮对区块链的写操作而解决,同时,在对区块链的读操作中,节点会将区块链与内存池中的分叉交易都纳入查询,所以对于公有链来说,区块链分叉对于区块链的客户端来说几乎没有影响。
但是在联盟链和私有链应用中,存在很多区块链应用,客户端需要经常性读取或者复制区块链。同时,节点对区块链写操作的频率显著小于客户端读操作或者复制操作的频率。这类应用一旦出现区块链分叉,从分叉到下一轮对区块链的写操作需要较长的时间间隔,在此期间区块链网络将会处于分叉中。此时,客户端对区块链的读操作或者复制操作将产生冲突,即从不同节点读到的区块链不一致。
现有的解决方案是要求客户端与公链节点一样,在对区块链的读操作时考虑区块链分叉的情况,在客户端数量显著大于节点数量的情况下,这种方案将提高客户端的实现复杂度,进而对***造成额外的复杂度。
现有技术中公开了一种分叉问题的处理方法及装置,当区块链存在分叉时,通过在区块链上的n个公正节点中选择出m个节点,让这m个节点自由选择跟随任意一个方向的链,自由选择完毕时,分别统计两个分叉的方向上公正节点的个数,并选择较多公正节点的链的方向为后续的全网链发展方向。但是该方案复杂度较高,同时仍然没有解决区块链分叉状态持续时间较长的问题。
发明内容
本发明的目的就是为了克服上述现有技术存在的需要依赖下一轮对区块链的写操作来解决分叉、最长链胜出原则的区块链分叉状态持续时间较长的缺陷而提供一种区块链网络的分叉控制方法和装置。
本发明的目的可以通过以下技术方案来实现:
一种区块链网络的分叉控制方法,具体包括以下步骤:
步骤S101:区块链上每个区块链节点检测当前所在的位置是否存在分叉,若否则继续保持检测,若是转至步骤S102;
步骤S102:每个区块链节点放弃处于分叉状态的区块,将区块链回退至消除分叉的唯一主干链状态;
步骤S103:对于所有向区块链添加处于分叉状态区块的节点,各节点进行互相独立的随机延迟,各节点的随机延迟结束后,重新执行向区块链添加区块的操作,转至步骤S101。
所述区块链的唯一主干链状态具体指区块链上只有一条主干链、不存在分叉的状态。
所述存在分叉的区块链节点之间的随机延迟的长度为取值范围在最小值与最大值之间的相互独立的随机数,避免新区块的重新添加发生在同一时刻,最小化区块链分叉状态持续时间。
进一步地,所述随机延迟的长度的最小值为0,最大值由区块链节点间的最大延时参数通过仿真确定。
所述向区块链添加处于分叉状态区块的节点上设有计时器,步骤S103中当所述计时器从零开始计时后的时长等于随机延迟时,向区块链添加处于分叉状态区块的节点重新向所述区块链添加新区块。
一种基于区块链网络的分叉控制方法的装置,包括存储器和处理器,所述存储器包括分叉检测部,所述处理器包括区块链回退部和重新执行添加区块部,所述控制方法以计算机程序的形式存储于所述存储器内,并由所述处理器执行,执行时实现以下步骤:
步骤S101:分叉检测部在区块链上的每个区块链节点检测当前所在的位置是否存在分叉,若否则继续保持检测,若是转至步骤S102;
步骤S102:区块链回退部控制每个区块链节点放弃处于分叉状态的区块,将区块链回退至消除分叉的唯一主干链状态;
步骤S103:重新执行添加区块部对于所有向区块链添加处于分叉状态区块的节点,各节点进行互相独立的随机延迟,各节点随机延迟结束后,重新执行向区块链添加区块的操作,转至步骤S101。
与现有技术相比,本发明通过将放弃处于分叉状态的区块,使区块链恢复至唯一主干链状态,再通过随机延迟的方式让所有向区块链添加处于分叉状态区块的节点重新向区块链添加新区块,最小化区块链分叉状态持续时间,避免了对下一轮区块链写操作的依赖,同时该方案降低了区块链客户端的复杂度。
附图说明
图1为本发明控制方法的流程示意图;
图2为本发明装置的结构示意图。
附图标记:
201-分叉检测部;202-区块链回退部;203-重新执行添加区块部。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
一种区块链网络的分叉控制方法,最小化区块链分叉状态持续时间,避免了对下一轮区块链写操作的依赖,具体包括以下步骤:
步骤S101:区块链上每个区块链节点检测当前所在的位置是否存在分叉,若否则继续保持检测,若是转至步骤S102;
步骤S102:每个区块链节点放弃处于分叉状态的区块,将区块链回退至消除分叉的唯一主干链状态;
步骤S103:对于所有向区块链添加处于分叉状态区块的节点,各节点进行互相独立的随机延迟,各节点的随机延迟结束后,重新执行向区块链添加区块的操作,转至步骤S101。
区块链的唯一主干链状态具体指区块链上只有一条主干链、不存在分叉的状态。
存在分叉的区块链节点之间的随机延迟的长度为取值范围在最小值与最大值之间的相互独立的随机数,避免新区块的重新添加发生在同一时刻,最小化区块链分叉状态持续时间。
随机延迟的长度的最小值为0,最大值由区块链节点间的最大延时参数通过仿真确定。
向区块链添加处于分叉状态区块的节点上设有计时器,步骤S103中当计时器从零开始计时后的时长等于随机延迟时,向区块链添加处于分叉状态区块的节点重新向区块链添加新区块。
一种基于区块链网络的分叉控制方法的装置,包括存储器和处理器,存储器包括分叉检测部201,处理器包括区块链回退部202和重新执行添加区块部203,控制方法以计算机程序的形式存储于存储器内,并由处理器执行,执行时实现以下步骤:
步骤S101:分叉检测部201在区块链上的每个区块链节点检测当前所在的位置是否存在分叉,若否则继续保持检测,若是转至步骤S102;
步骤S102:区块链回退部202控制每个区块链节点放弃处于分叉状态的区块,将区块链回退至消除分叉的唯一主干链状态;
步骤S103:重新执行添加区块部203对于所有向区块链添加处于分叉状态区块的节点,各节点进行互相独立的随机延迟,各节点随机延迟结束后,重新执行向区块链添加区块的操作,转至步骤S101。
实施例一
区块链上每个区块链节点检测当前所在的位置是否存在分叉,若检测到存在分叉的节点则实行本发明的方法,将处于分叉状态的区块删除,并重新添加新区块作为对应节点的区块。
此外,需要说明的是,本说明书中所描述的具体实施例,所取名称可以不同,本说明书中所描述的以上内容仅仅是对本发明结构所做的举例说明。凡依据本发明构思的构造、特征及原理所做的等效变化或者简单变化,均包括于本发明的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实例做各种各样的修改或补充或采用类似的方法,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
Claims (8)
1.一种区块链网络的分叉控制方法,其特征在于,具体包括以下步骤:
步骤S101:区块链上每个区块链节点检测当前所在的位置是否存在分叉,若否则继续保持检测,若是转至步骤S102;
步骤S102:每个区块链节点放弃处于分叉状态的区块,将区块链回退至消除分叉的唯一主干链状态;
步骤S103:对于所有向区块链添加处于分叉状态区块的节点,各节点进行互相独立的随机延迟,各节点的随机延迟结束后,重新执行向区块链添加区块的操作,转至步骤S101;
存在分叉的区块链节点之间的随机延迟的长度为取值范围在最小值与最大值之间的相互独立的随机数。
2.根据权利要求1所述的一种区块链网络的分叉控制方法,其特征在于,所述区块链的唯一主干链状态具体指区块链上只有一条主干链、不存在分叉的状态。
3.根据权利要求1所述的一种区块链网络的分叉控制方法,其特征在于,所述随机延迟的长度的最小值为0,最大值由区块链节点间的最大延时参数通过仿真确定。
4.根据权利要求1所述的一种区块链网络的分叉控制方法,其特征在于,所述向区块链添加处于分叉状态区块的节点上设有计时器,步骤S103中当所述计时器从零开始计时后的时长等于随机延迟时,向区块链添加处于分叉状态区块的节点重新向所述区块链添加新区块。
5.一种基于区块链网络的分叉控制方法的装置,其特征在于,包括存储器和处理器,所述存储器包括分叉检测部(201),所述处理器包括区块链回退部(202)和重新执行添加区块部(203),所述控制方法以计算机程序的形式存储于所述存储器内,并由所述处理器执行,执行时实现以下步骤:
步骤S101:分叉检测部(201)在区块链上的每个区块链节点检测当前所在的位置是否存在分叉,若否则继续保持检测,若是转至步骤S102;
步骤S102:区块链回退部(202)控制每个区块链节点放弃处于分叉状态的区块,将区块链回退至消除分叉的唯一主干链状态;
步骤S103:重新执行添加区块部(203)对于所有向区块链添加处于分叉状态区块的节点,各节点进行互相独立的随机延迟,各节点随机延迟结束后,重新执行向区块链添加区块的操作,转至步骤S101;
存在分叉的区块链节点之间的随机延迟的长度为取值范围在最小值与最大值之间的相互独立的随机数。
6.根据权利要求5所述的一种基于区块链网络的分叉控制方法的装置,其特征在于,所述区块链的唯一主干链状态具体指区块链上只有一条主干链、不存在分叉的状态。
7.根据权利要求5所述的一种基于区块链网络的分叉控制方法的装置,其特征在于,所述随机延迟的长度的最小值为0,最大值由区块链节点间的最大延时参数通过仿真确定。
8.根据权利要求5所述的一种基于区块链网络的分叉控制方法的装置,其特征在于,所述向区块链添加处于分叉状态区块的节点上设有计时器,步骤S103中当所述计时器从零开始计时后的时长等于随机延迟时,向区块链添加处于分叉状态区块的节点重新向所述区块链添加新区块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010475257.8A CN111813852B (zh) | 2020-05-29 | 2020-05-29 | 一种区块链网络的分叉控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010475257.8A CN111813852B (zh) | 2020-05-29 | 2020-05-29 | 一种区块链网络的分叉控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813852A CN111813852A (zh) | 2020-10-23 |
CN111813852B true CN111813852B (zh) | 2023-12-01 |
Family
ID=72848329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010475257.8A Active CN111813852B (zh) | 2020-05-29 | 2020-05-29 | 一种区块链网络的分叉控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813852B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033832A (zh) * | 2018-06-22 | 2018-12-18 | 深圳前海益链网络科技有限公司 | 一种防范对区块链网络进行短暂分叉双花攻击的方法 |
CN109255057A (zh) * | 2018-09-18 | 2019-01-22 | 百度在线网络技术(北京)有限公司 | 区块生成方法、装置、设备及存储介质 |
CN109361740A (zh) * | 2018-09-27 | 2019-02-19 | 百度在线网络技术(北京)有限公司 | 一种区块链的区块生成方法、装置、设备和介质 |
CN109391480A (zh) * | 2018-10-19 | 2019-02-26 | 微梦创科网络科技(中国)有限公司 | 一种数据存储方法、装置及电子设备 |
CN109446266A (zh) * | 2018-09-20 | 2019-03-08 | 成都捕风数据科技有限公司 | 一种适用于区块链网络改进事务效率与稳定性的方法 |
CN110223174A (zh) * | 2019-05-23 | 2019-09-10 | 北京清红微谷技术开发有限责任公司 | 区块交易记账方法和***、数据处理终端、区块链*** |
CN110704464A (zh) * | 2019-09-12 | 2020-01-17 | 广州蚁比特区块链科技有限公司 | 一种分叉问题的处理方法及装置 |
CN111190831A (zh) * | 2020-01-02 | 2020-05-22 | 南京邮电大学 | 区块链共识算法的鲁棒性分析方法及区块链*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11095432B2 (en) * | 2017-04-05 | 2021-08-17 | Samsung Sds Co., Ltd. | System for processing data based on blockchain and operating method thereof |
-
2020
- 2020-05-29 CN CN202010475257.8A patent/CN111813852B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033832A (zh) * | 2018-06-22 | 2018-12-18 | 深圳前海益链网络科技有限公司 | 一种防范对区块链网络进行短暂分叉双花攻击的方法 |
CN109255057A (zh) * | 2018-09-18 | 2019-01-22 | 百度在线网络技术(北京)有限公司 | 区块生成方法、装置、设备及存储介质 |
CN109446266A (zh) * | 2018-09-20 | 2019-03-08 | 成都捕风数据科技有限公司 | 一种适用于区块链网络改进事务效率与稳定性的方法 |
CN109361740A (zh) * | 2018-09-27 | 2019-02-19 | 百度在线网络技术(北京)有限公司 | 一种区块链的区块生成方法、装置、设备和介质 |
CN109391480A (zh) * | 2018-10-19 | 2019-02-26 | 微梦创科网络科技(中国)有限公司 | 一种数据存储方法、装置及电子设备 |
CN110223174A (zh) * | 2019-05-23 | 2019-09-10 | 北京清红微谷技术开发有限责任公司 | 区块交易记账方法和***、数据处理终端、区块链*** |
CN110704464A (zh) * | 2019-09-12 | 2020-01-17 | 广州蚁比特区块链科技有限公司 | 一种分叉问题的处理方法及装置 |
CN111190831A (zh) * | 2020-01-02 | 2020-05-22 | 南京邮电大学 | 区块链共识算法的鲁棒性分析方法及区块链*** |
Non-Patent Citations (2)
Title |
---|
A Comprehensive Survey of Blockchain: From Theory to IoT Applications and Beyond;Mingli Wu et al.;《IEEE INTERNET OF THINGS JOURNAL》;8114-8154 * |
去中心化区块链DNS研究与实现;郑旭;《中国优秀硕士学位论文全文数据库 信息科技辑》;I138-1074 * |
Also Published As
Publication number | Publication date |
---|---|
CN111813852A (zh) | 2020-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ailijiang et al. | WPaxos: Wide area network flexible consensus | |
CN107391628B (zh) | 数据同步方法及装置 | |
JP2023546249A (ja) | トランザクション処理方法、装置、コンピュータ機器及びコンピュータプログラム | |
US20070078911A1 (en) | Replicating data across the nodes in a cluster environment | |
WO2018144255A1 (en) | Systems, methods, and computer-readable media for a fast snapshot of application data in storage | |
WO2019014531A1 (en) | METHOD, APPARATUS AND ELECTRONIC DEVICE FOR PROCESSING CONSENSUS REQUESTS IN BLOCK CHAIN CONSENSUS NETWORK | |
CN113743941A (zh) | 一种在区块链中执行交易的方法、区块链和主节点 | |
WO2024001024A1 (zh) | 在区块链***中执行交易的方法、区块链***和节点 | |
CN110502583A (zh) | 分布式数据同步方法、装置、设备及可读存储介质 | |
Pandey et al. | IDRC: a distributed real-time commit protocol | |
CN113743950A (zh) | 在区块链中执行交易的方法、区块链节点和区块链 | |
CN113743942A (zh) | 交易执行方法、区块链、主节点和主存储设备 | |
CN109739684A (zh) | 基于向量时钟的分布式键值数据库的副本修复方法与装置 | |
CN113743943B (zh) | 在区块链中执行交易的方法、区块链、主节点和从节点 | |
CN113744062B (zh) | 在区块链中执行交易的方法、区块链节点和区块链 | |
US20210012025A1 (en) | System and method for session-aware datastore for the edge | |
CN110888761A (zh) | 一种基于关键任务部分主动备份的容错方法和流处理平台 | |
CN111813852B (zh) | 一种区块链网络的分叉控制方法和装置 | |
CN117112508A (zh) | 基于序号的文件同步方法、装置、计算机设备及存储介质 | |
WO2024036829A1 (zh) | 一种数据融合方法、装置、设备及存储介质 | |
CN113744061B (zh) | 在区块链***中执行交易的方法、区块链***、和从节点 | |
CN113961641A (zh) | 数据库同步方法、装置、设备和存储介质 | |
US20140115024A1 (en) | Simulating synchronous execution of asynchronous operations | |
US9424261B2 (en) | Techniques to take clean database file snapshot in an online database | |
Ailijiang et al. | Wpaxos: Ruling the archipelago with fast consensus |
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 |