CN116932636A - 区块链分叉校正方法、装置、设备、存储介质及程序产品 - Google Patents
区块链分叉校正方法、装置、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN116932636A CN116932636A CN202210373199.7A CN202210373199A CN116932636A CN 116932636 A CN116932636 A CN 116932636A CN 202210373199 A CN202210373199 A CN 202210373199A CN 116932636 A CN116932636 A CN 116932636A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- blockchain
- classification
- main chain
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012937 correction Methods 0.000 title claims abstract description 51
- 238000004590 computer program Methods 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 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/21—Design, administration or maintenance of databases
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (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)
Abstract
本申请公开了一种区块链分叉校正方法、装置、设备、存储介质及程序产品。该方法包括:在区块链系统中多个节点同时生成区块的情况下,确定同时生成的区块的工作证明,并计算各工作证明在区块链系统的使用占比;获取区块链系统的历史主链广播数据,并根据历史主链广播数据构建区块链系统中各节点的拓扑图谱;确定最大使用占比对应的工作证明为主链工作证明,并根据拓扑图谱,确定使用主链工作证明的数据链;将包含节点数量最多的数据链设置为主链,向各节点广播主链,以使各节点根据主链更新自身存储的区块链。根据本申请实施例,能快速校正区块链分叉。
Description
技术领域
本申请属于数据处理技术领域,尤其涉及一种区块链分叉校正方法、装置、设备、存储介质及程序产品。
背景技术
区块链(Blockchain)是一种将数据区块有序连接,并以密码学方式保证其不可篡改、不可伪造的分布式账本(数据库)技术。区块链中,公链主流的共识算法采用POW共识机制,让区块链系统中各节点互相竞争求解一个新的区块,先解出的节点把自己成功解出的区块广播出去。当两个节点同时解出一个新的区块。由于网络信号传输速度及节点之间距离不同,一部分节点接收到的区块与另一部分节点接收到的区块可能不相同,导致区块链出现分叉现象。区块链出现分叉后,使得区块链底层存储数据不一致,需要多次共识实现数据的一致性,影响区块链数据共识效率,造成数据交易高延时,严重时甚至引起区块链系统分化成两个版本,系统永久不可恢复。
发明内容
本申请实施例提供了一种区块链分叉校正方法、装置、设备、存储介质及程序产品,能够解决现有区块链发生分叉现象后,实现数据共识速率慢的技术问题。
第一方面,本申请实施例提供一种区块链分叉校正方法,方法包括:
在区块链系统中多个节点同时生成区块的情况下,确定同时生成的区块的工作证明,并计算各工作证明在区块链系统的使用占比;
获取区块链系统的历史主链广播数据,并根据历史主链广播数据构建区块链系统中各节点的拓扑图谱;
确定最大使用占比对应的工作证明为主链工作证明,并根据拓扑图谱,确定使用主链工作证明的数据链;
将包含节点数量最多的数据链设置为主链,向各节点广播主链,以使各节点根据主链更新自身存储的区块链。
在一些实施例中,所述获取区块链系统的历史主链广播数据,并根据历史主链广播数据构建区块链系统中各节点的拓扑图谱,之后包括:
根据拓扑图谱对各节点进行分类,得到多个分别具有至少一个中心节点的分类簇;
所述包含节点数量最多的数据链设置为主链,向各节点广播主链,包括:
将包含节点数量最多的数据链设置为主链,将主链向各个中心节点广播,以使中心节点向其所在的分类簇中的其他节点广播主链。
在一些实施例中,所述根据拓扑图谱对各节点进行分类,得到多个分别具有至少一个中心节点的分类簇,包括:
根据拓扑图谱,对各节点进行广度优先遍历,并根据遍历结果计算各节点对应的亲密参数;
根据亲密参数对各节点进行分类,得到多个分类簇;
针对每个分类簇,根据亲密参数设置至少一个节点为中心节点。
在一些实施例中,所述亲密参数包括节点连接数和亲密度,所述节点连接数为与当前节点为一度连接关系的节点数量;所述根据亲密参数对各节点进行分类,得到多个分类簇,包括:
对节点连接数进行排序,在最大节点连接数对应的至少一个节点中,随机选取一个节点为一分类簇的初始分类节点;
根据拓扑图谱,根据初始分类节点、与初始分类节点有一度连接关系的节点生成排除节点集合;
针对非排除节点集合中的其他节点,在最大节点连接数对应的至少一个节点中,随机选取一个节点为另一分类簇的初始分类节点;
重复执行:所述根据拓扑图谱,根据初始分类节点、与初始分类节点有一度连接关系的节点生成排除节点集合的步骤,直至获得与预设分类簇数量相同的初始分类节点;
根据各初始分类节点与其他节点的亲密度,将各非初始分类节点分配至各分类簇。
在一些实施例中,所述各初始分类节点与其他节点的亲密度,将各非初始分类节点分配至各分类簇,包括:
依次遍历每个分类簇,在未分类的节点中,将与各初始分类节点亲密度最高的节点与初始分类节点归为同一分类簇;
重复执行:所述依次遍历每个分类簇,在未分类的节点中,将与各初始分类节点亲密度最高的节点与初始分类节点归为同一分类簇的步骤,直至区块链系统中各节点分配至各分类簇。
在一些实施例中,所述针对每个分类簇,根据亲密参数设置至少一个节点为中心节点,包括:
针对每个分类簇,对各节点进行广度优先遍历,生成与各节点对应的节点连接数,根据节点连接数大小,对节点进行正序排序;
将位于前预设个数的节点设置为中心节点。
第二方面,本申请实施例提供一种区块链分叉校正装置,装置包括:
占比生成模块,在区块链系统中多个节点同时生成区块的情况下,确定同时生成的区块的工作证明,并计算各工作证明在区块链系统的使用占比;
图谱生成模块,获取区块链系统的历史主链广播数据,并根据历史主链广播数据构建区块链系统中各节点的拓扑图谱;
分析模块,确定最大使用占比对应的工作证明为主链工作证明,并根据拓扑图谱,确定使用主链工作证明的数据链;
校正模块,将包含节点数量最多的数据链设置为主链,向各节点广播主链,以使各节点根据主链更新自身存储的区块链。
第三方面,本申请实施例提供了一种区块链分叉校正设备,设备包括:处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现如上的区块链分叉校正方法。
第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如上的区块链分叉校正方法。
第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序指令,所述计算机程序指令被处理器执行时实现如上的区块链分叉校正方法。
目前区块链出现分叉后,需要通过多次共识实现数据的一致性,从而影响区块链数据共识效率,造成数据交易高延时,严重时甚至引起区块链系统分化成两个版本,系统永久不可恢复。基于此,本申请实施例提供的区块链分叉校正方法、装置、设备、存储介质及程序产品,在区块链发生分叉现象时,通过确定同时产生的区块,以及该区块对应的工作证明使用占比,以确定当前区块链系统中哪一工作证明较多的被用于进行下一区块的计算,再根据使用该工作证明的节点,确定较长的数据链为主链,从而将各节点存储的区块链均校正为确定得到的主链。该方法在一个区块生成周期即可完成整个区块链系统分叉校正,提升分叉校正效率,减小或避免影响区块链数据共识效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的区块链分叉校正方法的流程示意图;
图2是本申请又一实施例提供的区块链分叉校正方法的流程示意图;
图3是本申请一实施例提供的区块链分叉校正方法的S500的细化流程示意图;
图4是本申请区块链系统的图谱图谱示意图;
图5是本申请一实施例提供的区块链分叉校正方法的S520和S530的细化流程示意图;
图6是本申请一实施例提供的区块链分叉校正装置的结构示意图;
图7是本申请一实施例提供的区块链分叉校正设备的硬件结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请的更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将结合附图对实施例进行详细描述。
目前区块链出现分叉后,需要通过多次共识实现数据的一致性,从而影响区块链数据共识效率,造成数据交易高延时,严重时甚至引起区块链系统分化成两个版本,系统永久不可恢复。
为了解决现有技术问题,本申请实施例提供了一种区块链分叉校正方法、装置、设备、存储介质及程序产品。下面首先对本申请实施例所提供的区块链分叉校正方法进行介绍。
图1示出了本申请一个实施例提供的区块链分叉校正方法的流程示意图。该方法包括以下步骤:
S100,在区块链系统中多个节点同时生成区块的情况下,确定同时生成的区块的工作证明,并计算各工作证明在区块链系统的使用占比;
区块链是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。区块链被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。这些服务器在区块链系统中被称为节点,它们为整个区块链系统提供存储空间和算力支持。
当区块链系统中两个以上的节点同时计算得到一个区块,即产生区块链分叉现象。工作证明是向区块链添加新区块的必要环节。每当节点计算得到一个新的区块,需要向其他节点广播工作证明,以证明其计算得到一个新的区块,而其他节点通过该工作证明进行又一新的区块的计算。所以使用占比为使用某一工作证明的节点数量与区块链系统中所有节点总数的比值。
例如,在一区块链系统具有100个节点,其中节点A和节点B同时分别计算得到一个区块a和区块b,即产生区块链分叉现象。若在当前区块链系统中,使用区块a对应的工作证明a的节点数量为60,使用区块b对应的工作证明b的节点数量为40,则与工作证明a对应的使用占比为60/100,与工作证明b对应的使用占比为40/100。
S200,获取区块链系统的历史主链广播数据,并根据历史主链广播数据构建区块链系统中各节点的拓扑图谱;
S300,确定最大使用占比对应的工作证明为主链工作证明,并根据拓扑图谱,确定使用主链工作证明的数据链;
S400,将包含节点数量最多的数据链设置为主链,向各节点广播主链,以使各节点根据主链更新自身存储的区块链。
历史主链广播数据包括各节点接收到各区块的时间、广播区块的节点识别码、区块从接收到接收完毕的时间、工作证明等。拓扑图谱为体现各个节点相互广播关系、通信速率、通信距离的图谱。根据拓扑图谱即能确定使用主链工作证明的节点的链式关系,并通过该节点链式关系确定包含节点数量最多的数据链,同时向外广播该数据链,使得各个节点同步该数据链,实现共识。也就是说各个节点共识为当前区块链系统被更多使用的工作证明。
在一些实施例中,在区块链发生分叉现象时,通过确定同时产生的区块,以及该区块对应的工作证明使用占比,以确定当前区块链系统中哪一工作证明较多的被用于进行下一区块的计算,再根据使用该工作证明的节点,确定较长的数据链为主链,从而将各节点存储的区块链均校正为确定得到的主链。该方法在一个区块生成周期即可完成整个区块链系统分叉校正,提升分叉校正效率,减小或避免影响区块链数据共识效率。
作为一个可选实施例,请参照图2,为了进一步提高共识效率,S200之后包括:
S500,根据拓扑图谱对各节点进行分类,得到多个分别具有至少一个中心节点的分类簇;
S400包括:
将包含节点数量最多的数据链设置为主链,将主链向各个中心节点广播,以使中心节点向其所在的分类簇中的其他节点广播主链。
可以通过节点之间相互广播关系、广播速度等、使用的工作证明对各节点进行分类,并确定至少一个节点为中心节点。分析得到的主链可以先广播至各个中心节点,再通过各中心节点广播至其所在分类簇中的其他节点,从而提高区块链系统中数据共识效率。当然本领域技术人员可以理解的是,当区块链系统中其他数据还需要进行共识时,例如交易数据,同样可以从一个节点将数据广播至各个中心节点,再通过各中心节点广播至其所在分类簇中的其他节点。
本领域技术人员可以理解的是,在本实施例中,在执行S400之前需要执行S500,S500与S300之间的先后关系不做限定。
在本实施例中,通过对节点进行分类,并为各个分类簇设置中心节点,使得进行区块链校正时,可以先对中心节点广播新的历史主链广播数据,再通过中心节点对其他节点广播新的历史主链广播数据,提高新的历史主链广播数据实现共识的效率。
作为一个可选实施例,请参照图3,S500包括:
S510,根据拓扑图谱,对各节点进行广度优先遍历,并根据遍历结果计算各节点对应的亲密参数;
本领域技术人员可以自定义亲密参数的计算方式,亲密参数仅需体现各节点两两之间的在区块链系统中关联度即可。可选地,亲密参数可以包括与当前节点存在预设度数关系的节点数量。预设度数关系具体为一度连接关系、二度连接关系、三度连接关系等,一度连接关系即两者具有直接广播关系,二度连接关系为两者为间隔一个节点的广播关系,以此类推。本领域技术人员可以根据不同需要设置不同度数关系。在一实施例中,亲密参数包括与当前节点存在一度连接关系和二度连接关系的节点数量。请结合参阅图4,节点1、4、8均与节点2具有一度连接关系,节点7与节点2具有二度连接关系,则节点2对应的亲密参数为4。
S520,根据亲密参数对各节点进行分类,得到多个分类簇;
本领域技术人员可以将具有较高亲密参数的节点设置为一个分类簇的中心节点,将与该中心节点有直接广播关系的节点分类为一个簇。亲密参数还可以是各分类簇的中心位置,将最靠近该中心位置的节点设置为中心节点。
请参阅图5,在一实施例中,所述亲密参数包括节点连接数和亲密度,所述节点连接数为与当前节点为一度连接关系的节点数量,亲密度为拓扑图谱中,两节点之间的距离;S520包括:
S521,对节点连接数进行排序,在最大节点连接数对应的至少一个节点中,随机选取一个节点为一分类簇的初始分类节点;
S522,根据拓扑图谱,根据初始分类节点、与初始分类节点有一度连接关系的节点生成排除节点集合;
S523,针对非排除节点集合中的其他节点,在最大节点连接数对应的至少一个节点中,随机选取一个节点为另一分类簇的初始分类节点;
重复执行S522,直至获得与预设分类簇数量相同的初始分类节点;
S524,根据各初始分类节点与其他节点的亲密度,将各非初始分类节点分配至各分类簇。
请结合参阅图4和表1,对S520进行举例说明。对节点连接数进行排序,最大节点连接数为3,那么在节点2、5、6、7中随机选取一个节点为一分类簇A的初始分类节点。若随机选取得到节点2为分类簇A的初始分类节点,那么生成排除节点集合包括节点2、以及与节点2有直接广播关系的节点1、4、8。再在除排除节点集合的其他节点3、5、6、7、9中确定最大节点连接数对应节点,即节点5、6、7,在节点5、6、7中随机选取一个节点为另一分类簇B的初始分类节点。若随机选取得到节点5为分类簇B的初始分类节点,那么将节点5、以及与节点5有直接广播关系的节点3、6、8并入排除节点集合。再在除排除节点集合的其他节点7和9中确定最大节点连接数对应节点,得到节点7为分类簇C的初始分类节点。
若预设分类簇数量比举例说明的更多,则重复在剩余节点中随机选取一个最大节点连接数对应节点、将初始分类节点和相关联节点并入排除节点集合入等步骤,直至得到与预设分类簇数量相同的初始分类节点。预设分类簇数量为本领域技术人员根据需要自行设置,当区块链系统中节点数量较多,可以设置更多的分类簇,从而提高从中心节点到分类簇中其他节点的广播速度。当区块链系统中节点数量较少,可以设置少量的分类簇,从而提高从广播至各中心节点的速度。
获取得到了各个分类簇对应的初始分类节点,则可以根据各节点与初始分类节点的亲密度对区块链系统中的各个节点进行分类,得到预设分类簇数量的分类簇。
表1各节点之间节点连接数
节点名称 | 具有直接广播关系的节点 | 节点连接数 |
节点1 | 节点2、节点7 | 2 |
节点2 | 节点1、节点4、节点8 | 3 |
节点3 | 节点5、节点6 | 2 |
节点4 | 节点2 | 1 |
节点5 | 节点3、节点6、节点9 | 3 |
节点6 | 节点3、节点5、节点7 | 3 |
节点7 | 节点1、节点6 | 3 |
节点8 | 节点2 | 1 |
节点9 | 节点5 | 1 |
在一实施例中,S524包括:
A.依次遍历每个分类簇,在未分类的节点中,将与各初始分类节点亲密度最高的节点与初始分类节点归为同一分类簇;
重复执行步骤A,直至区块链系统中各节点分配至各分类簇。
请继续参阅图4和表1,对A524进行距离说明,节点2归为分类簇A,节点5归为分类簇B,节点7归为分类簇C,那么遍历每个分类簇,为每个分类簇选取第二个节点,在未分类的节点1、3、4、6、8、9中,选取与节点2亲密度最高的节点1归为分类簇A,在未分类的节点3、4、6、8、9中,选取与节点5亲密度最高的节点3归为分类簇B,在未分类的节点4、6、8、9中,选取与节点7亲密度最高的节点6归为分类簇C;再次遍历每个分类簇,为每个分类簇选取第三个节点,依此类推,得到以下分类簇。
A={节点2,节点1,节点4}
B={节点5,节点3,节点9}
C={节点7,节点6,节点8}
通过根据亲密度对将各个节点分配至各分类簇,从而使得具有较近广播关系的节点位于同一分类簇,方便中心节点向分类簇中各节点广播信息。
请继续参阅图3,在S520之后,执行:
S530,针对每个分类簇,根据亲密参数设置至少一个节点为中心节点。
具体可以将最大亲密度对应的节点设置为中心节点。两个节点之间亲密度越大,证明相较于其他节点,两者在物理距离、或者网路距离更近,数据广播速度更快。通过根据拓扑图谱计算得到亲密参数,并根据亲密参数对节点进行分类、设置中心节点,使得广播关系较近的节点可以分到一个分类簇中,从而提高中心节点对分类簇中的其他节点进行广播的速度。
请继续参阅图5,在一实施例中,S530包括:
S531,针对每个分类簇,对各节点进行广度优先遍历,生成与各节点对应的节点连接数,根据节点连接数大小,对节点进行正序排序;
S532,将位于前预设个数的节点设置为中心节点。
在S530中,可以根据已分类完成的分类簇,计算分类簇中节点之间的节点连接数。本领域技术人员可以根据一个分类簇中节点的总数确定预设个数的大小。例如预设个数为2,则由大到小排列节点连接数,将位于第一位和第二位的亲密参数对应的节点设置为中心节点。
首先参见图6,本申请实施例提供的区块链分叉校正装置900包括以下模块:
占比生成模块901,在区块链系统中多个节点同时生成区块的情况下,确定同时生成的区块的工作证明,并计算各工作证明在区块链系统的使用占比;
图谱生成模块902,获取区块链系统的历史主链广播数据,并根据历史主链广播数据构建区块链系统中各节点的拓扑图谱;
分析模块903,确定最大使用占比对应的工作证明为主链工作证明,并根据拓扑图谱,确定使用主链工作证明的数据链;
校正模块904,将包含节点数量最多的数据链设置为主链,向各节点广播主链,以使各节点根据主链更新自身存储的区块链;
设备可以在区块链发生分叉现象时,通过确定同时产生的区块,以及该区块对应的工作证明使用占比,以确定当前区块链系统中哪一工作证明较多的被用于进行下一区块的计算,再根据使用该工作证明的节点,确定较长的数据链为主链,从而将各节点存储的区块链均校正为确定得到的主链。该方法在一个区块生成周期即可完成整个区块链系统分叉校正,提升分叉校正效率,减小或避免影响区块链数据共识效率。
作为本申请的一种实现方式,区块链分叉校正装置900还可以包括:
分类模块905,根据拓扑图谱对各节点进行分类,得到多个分别具有至少一个中心节点的分类簇;
校正模块904还可以包括:
校正单元,将包含节点数量最多的数据链设置为主链,将主链向各个中心节点广播,以使中心节点向其所在的分类簇中的其他节点广播主链。
作为本申请的一种实现方式,上述分类模块905还可以包括:
参数生成单元,根据拓扑图谱,对各节点进行广度优先遍历,并根据遍历结果计算各节点对应的亲密参数;
分类单元,根据亲密参数对各节点进行分类,得到多个分类簇;
中心节点设置单元,针对每个分类簇,根据亲密参数设置至少一个节点为中心节点。
作为本申请的一种实现方式,所述亲密参数包括节点连接数和亲密度,所述节点连接数为与当前节点为一度连接关系的节点数量;上述分类单元还可以用于:
对节点连接数进行排序,在最大节点连接数对应的至少一个节点中,随机选取一个节点为一分类簇的初始分类节点;
根据拓扑图谱,根据初始分类节点、与初始分类节点有一度连接关系的节点生成排除节点集合;
针对非排除节点集合中的其他节点,在最大节点连接数对应的至少一个节点中,随机选取一个节点为另一分类簇的初始分类节点;
重复执行:所述根据拓扑图谱,根据初始分类节点、与初始分类节点有一度连接关系的节点生成排除节点集合的步骤,直至获得与预设分类簇数量相同的初始分类节点;
根据各初始分类节点与其他节点的亲密度,将各非初始分类节点分配至各分类簇。
作为本申请的一种实现方式,上述分类单元还可以用于:
依次遍历每个分类簇,在未分类的节点中,将与各初始分类节点亲密度最高的节点与初始分类节点归为同一分类簇;
重复执行:所述依次遍历每个分类簇,在未分类的节点中,将与各初始分类节点亲密度最高的节点与初始分类节点归为同一分类簇的步骤,直至区块链系统中各节点分配至各分类簇。
作为本申请的一种实现方式,上述中心节点设置单元还可以用于:
针对每个分类簇,对各节点进行广度优先遍历,生成与各节点对应的节点连接数,根据节点连接数大小,对节点进行正序排序;
将位于前预设个数的节点设置为中心节点。
本发明实施例提供的区块链分叉校正装置能够实现图1至图5的方法实施例中的各个步骤,为避免重复,这里不再赘述。
图7示出了本申请实施例提供的区块链分叉校正设备的硬件结构示意图。
在区块链分叉校正设备可以包括处理器1001以及存储有计算机程序指令的存储器1002。
具体地,上述处理器1001可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器1002可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器1002可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器1002可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器1002可在综合网关容灾设备的内部或外部。在特定实施例中,存储器1002是非易失性固态存储器。
存储器可包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。
处理器1001通过读取并执行存储器1002中存储的计算机程序指令,以实现上述实施例中的任意一种区块链分叉校正方法。
在一个示例中,区块链分叉校正设备还可包括通信接口1003和总线1010。其中,如图7所示,处理器1001、存储器1002、通信接口1003通过总线1010连接并完成相互间的通信。
通信接口1003,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线1010包括硬件、软件或两者,将区块链分叉校正设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线1010可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该区块链分叉校正设备可以基于上述实施例,从而实现结合图1至图6描述的区块链分叉校正方法和装置。
另外,结合上述实施例中的区块链分叉校正方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种区块链分叉校正方法,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,上述计算机可读存储介质可包括非暂态计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等,在此并不限定。
另外,本申请实施例还提供了一种计算机程序产品,包括计算机程序指令,计算机程序指令被处理器执行时可实现前述方法实施例的步骤及相应内容。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程区块链分叉校正装置的处理器,以产生一种机器,使得经由计算机或其它可编程区块链分叉校正装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种区块链分叉校正方法,其特征在于,方法包括:
在区块链系统中多个节点同时生成区块的情况下,确定同时生成的区块的工作证明,并计算各工作证明在区块链系统的使用占比;
获取区块链系统的历史主链广播数据,并根据历史主链广播数据构建区块链系统中各节点的拓扑图谱;
确定最大使用占比对应的工作证明为主链工作证明,并根据拓扑图谱,确定使用主链工作证明的数据链;
将包含节点数量最多的数据链设置为主链,向各节点广播主链,以使各节点根据主链更新自身存储的区块链。
2.根据权利要求1的区块链分叉校正方法,其特征在于,所述获取区块链系统的历史主链广播数据,并根据历史主链广播数据构建区块链系统中各节点的拓扑图谱,之后包括:
根据拓扑图谱对各节点进行分类,得到多个分别具有至少一个中心节点的分类簇;
所述将包含节点数量最多的数据链设置为主链,向各节点广播主链,包括:
将包含节点数量最多的数据链设置为主链,将主链向各个中心节点广播,以使中心节点向其所在的分类簇中的其他节点广播主链。
3.根据权利要求2的区块链分叉校正方法,其特征在于,所述根据拓扑图谱对各节点进行分类,得到多个分别具有至少一个中心节点的分类簇,包括:
根据拓扑图谱,对各节点进行广度优先遍历,并根据遍历结果计算各节点对应的亲密参数;
根据亲密参数对各节点进行分类,得到多个分类簇;
针对每个分类簇,根据亲密参数设置至少一个节点为中心节点。
4.根据权利要求3的区块链分叉校正方法,其特征在于,所述亲密参数包括节点连接数和亲密度,所述节点连接数为与当前节点为一度连接关系的节点数量;所述根据亲密参数对各节点进行分类,得到多个分类簇,包括:
对节点连接数进行排序,在最大节点连接数对应的至少一个节点中,随机选取一个节点为一分类簇的初始分类节点;
根据拓扑图谱,根据初始分类节点、与初始分类节点有一度连接关系的节点生成排除节点集合;
针对非排除节点集合中的其他节点,在最大节点连接数对应的至少一个节点中,随机选取一个节点为另一分类簇的初始分类节点;
重复执行:所述根据拓扑图谱,根据初始分类节点、与初始分类节点有一度连接关系的节点生成排除节点集合的步骤,直至获得与预设分类簇数量相同的初始分类节点;
根据各初始分类节点与其他节点的亲密度,将各非初始分类节点分配至各分类簇。
5.根据权利要求4的区块链分叉校正方法,其特征在于,所述根据各初始分类节点与其他节点的亲密度,将各非初始分类节点分配至各分类簇,包括:
依次遍历每个分类簇,在未分类的节点中,将与各初始分类节点亲密度最高的节点与初始分类节点归为同一分类簇;
重复执行:所述依次遍历每个分类簇,在未分类的节点中,将与各初始分类节点亲密度最高的节点与初始分类节点归为同一分类簇的步骤,直至区块链系统中各节点分配至各分类簇。
6.根据权利要求3的区块链分叉校正方法,其特征在于,所述针对每个分类簇,根据亲密参数设置至少一个节点为中心节点,包括:
针对每个分类簇,对各节点进行广度优先遍历,生成与各节点对应的节点连接数,根据节点连接数大小,对节点进行正序排序;
将位于前预设个数的节点设置为中心节点。
7.一种区块链分叉校正装置,其特征在于,所述区块链分叉校正装置包括:
占比生成模块,在区块链系统中多个节点同时生成区块的情况下,确定同时生成的区块的工作证明,并计算各工作证明在区块链系统的使用占比;
图谱生成模块,获取区块链系统的历史主链广播数据,并根据历史主链广播数据构建区块链系统中各节点的拓扑图谱;
分析模块,确定最大使用占比对应的工作证明为主链工作证明,并根据拓扑图谱,确定使用主链工作证明的数据链;
校正模块,将包含节点数量最多的数据链设置为主链,向各节点广播主链,以使各节点根据主链更新自身存储的区块链。
8.一种区块链分叉校正设备,其特征在于,所述区块链分叉校正设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-6中任一项所述的区块链分叉校正方法。
9.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-6中任一项所述的区块链分叉校正方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序指令,所述计算机程序指令被处理器执行时实现权利要求1-6中任一项所述的区块链分叉校正方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210373199.7A CN116932636A (zh) | 2022-04-11 | 2022-04-11 | 区块链分叉校正方法、装置、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210373199.7A CN116932636A (zh) | 2022-04-11 | 2022-04-11 | 区块链分叉校正方法、装置、设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932636A true CN116932636A (zh) | 2023-10-24 |
Family
ID=88379429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210373199.7A Pending CN116932636A (zh) | 2022-04-11 | 2022-04-11 | 区块链分叉校正方法、装置、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932636A (zh) |
-
2022
- 2022-04-11 CN CN202210373199.7A patent/CN116932636A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111835537B (zh) | 一种通信网络级联故障中节点识别方法、装置及设备 | |
CN107968987B (zh) | 基于定积分结合环境参数的rssi加权质心定位方法 | |
CN113099384B (zh) | 一种室内定位方法、装置、设备及计算机存储介质 | |
CN116150125A (zh) | 结构化数据生成模型的训练方法、装置、设备及存储介质 | |
CN111162945B (zh) | 一种告警关联关系的确定方法、装置、设备及存储介质 | |
CN107545318A (zh) | 公交线路优先级确定、公交换乘线路排序方法及装置 | |
CN116932636A (zh) | 区块链分叉校正方法、装置、设备、存储介质及程序产品 | |
CN106991436B (zh) | 噪声点检测方法及装置 | |
CN113852933A (zh) | 车联网网络的中继节点选择方法、装置、设备及存储介质 | |
CN112488245A (zh) | 业务模型超参数配置确定方法、装置、设备及存储介质 | |
CN115982415A (zh) | 增量图划分方法、装置、设备、介质及产品 | |
CN113866734B (zh) | 一种分布式雷达系统航迹误差校正方法及装置 | |
CN110830978A (zh) | 基于区域的用户数据处理方法、装置、设备及介质 | |
CN115987947A (zh) | 用于主机的分配地址的方法和装置 | |
CN112529639B (zh) | 异常账户识别方法、装置、设备及介质 | |
CN113793295A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN110620724B (zh) | 用于实现业务链路径追踪的方法、节点和通信系统 | |
CN113852692B (zh) | 服务确定方法、装置、设备及计算机存储介质 | |
CN109996274B (zh) | Lte小区参数的调整方法、装置、设备及介质 | |
CN108064069B (zh) | 一种WiFi子网络的唯一标识确定方法、介质及设备 | |
CN110782238A (zh) | 异常资源转移组合识别方法、装置、设备及介质 | |
CN109587528B (zh) | 分配cdn资源的方法、装置、设备及介质 | |
CN118822724A (zh) | 区块链的共识方法、装置、电子设备以及可读存储介质 | |
CN111984634B (zh) | 告警事务提取方法、装置、设备及计算机存储介质 | |
CN113382441A (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 |