一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种区块链中记账节点的确定方法及装置与流程

2022-02-21 07:35:33 来源:中国专利 TAG:


1.本技术涉及区块链技术领域,尤其涉及一种区块链中记账节点的确定方法 及装置。


背景技术:

2.区块链是在对等网络环境中通过透明可信的规则构建的一种不可伪造、不 可篡改和可追溯的块链式数据结构,区块链的重要技术之一是共识机制。
3.相关技术中,主要利用工作量证明(proof of work,pow)在区块链的不 同节点之间寻求共识,pow需区块链中的所有节点都进行耗时运算,然而,实 际上只有少数节点的运算结果会最终被记录上链,所以许多节点进行的运算都 是无效的,这样,既浪费各节点算力又难以快速达成共识。


技术实现要素:

4.本技术实施例提供一种区块链中记账节点的确定方法及装置,用以解决相 关技术中区块链中的共识机制存在的既浪费节点算力又难以缩短共识达成时 间的问题。
5.第一方面,本技术实施例提供一种区块链中记账节点的确定方法,包括:
6.接收区块链中其它节点的记账节点选择信息,所述记账节点选择信息至少 包括记账节点的第一选择结果和所述第一选择结果的冲突解决次数;
7.若所述第一选择结果与自身对记账节点的第二选择结果不同,则基于所述 第一选择结果的冲突解决次数和所述第二选择结果的冲突解决次数进行冲突 分析,得到第三选择结果;
8.基于所述第二选择结果与所述第三选择结果是否相同,确定是否更新所述 第二选择结果;
9.基于是否更新所述第二选择结果,确定是否向区块链中的其它节点发送自 身的记账节点选择信息;
10.若基于接收到的各节点的第一选择结果和自身最新的第二选择结果确定 区块链中超过预设比例的节点的选择结果相同,则将对应选择结果确定为最终 的记账节点选择结果。
11.在一些实施例中,基于所述第一选择结果的冲突解决次数和所述第二选择 结果的冲突解决次数进行冲突分析,得到第三选择结果,包括:
12.若所述第一选择结果的冲突解决次数和所述第二选择结果的冲突解决次 数相同,则对所述第一选择结果和所述第二选择结果进行冲突解决,得到所述 第三选择结果;
13.若所述第一选择结果的冲突解决次数和所述第二选择结果的冲突解决次 数不同,则将所述第一选择结果和所述第二选择结果中冲突解决次数大的确定 为所述第三选择结果。
14.在一些实施例中,对所述第一选择结果和所述第二选择结果进行冲突解决, 得到
所述第三选择结果,包括:
15.按照节点出现次数对所述第一选择结果和所述第二选择结果中的节点进 行排序;
16.按照节点出现次数从多到少的顺序,从所述第一选择结果和所述第二选择 结果中选择所述预设比例的节点作为所述第三选择结果。
17.在一些实施例中,基于所述第二选择结果与所述第三选择结果是否相同, 确定是否更新所述第二选择结果,包括:
18.若所述第二选择结果与所述第三选择结果相同,则确定不更新所述第二选 择结果;
19.若所述第二选择结果与所述第三选择结果不同,则用所述第三选择结果替 换所述第二选择结果。
20.在一些实施例中,基于是否更新所述第二选择结果,确定是否向区块链中 的其它节点发送自身的记账节点选择信息,包括:
21.若更新所述第二选择结果,则基于更新后的第二选择结果向区块链中的其 它节点发送自身的记账节点选择信息;
22.若不更新所述第二选择结果,则不向区块链中的其它节点发送自身的记账 节点选择信息。
23.在一些实施例中,所述记账节点选择信息还包括在生成所述第一选择结果 时使用的第一节点信息表,还包括:
24.在基于所述第一选择结果的冲突解决次数和所述第二选择结果的冲突解 决次数进行冲突分析,得到第三选择结果之前,确定所述第一节点信息表与第 二节点信息表相同,所述第二节点信息表是在生成所述第二选择结果时使用的 节点信息表。
25.在一些实施例中,还包括:
26.若所述第一节点信息表与所述第二节点信息表不同、且所述第一节点信息 表未包含在所述第二节点信息表中,则对所述第一节点信息表和所述第二节点 信息表进行合并处理,得到第三节点信息表;
27.用所述第三节点信息表替换所述第二节点信息表,并向区块链中其它节点 发送替换后的第二节点信息表。
28.在一些实施例中,当所述第二选择结果的冲突解决次数为零时,第二选择 结果是从所述第二节点信息表中随机选择的。
29.在一些实施例中,在将对应选择结果确定为最终的记账节点选择结果之后, 还包括:
30.若确定自身属于记账节点,则在指定时间段内进行区块铸造,将铸造的区 块发送给区块链中的其它节点进行验证处理,并对接收到的区块链中的其它记 账节点发送的区块进行验证处理;
31.若确定自身不属于记账节点,则在指定时间段内对区块链中的任一记账节 点发送的区块进行验证处理。
32.第二方面,本技术实施例提供一种区块链中记账节点的确定装置,包括:
33.接收模块,用于接收区块链中其它节点的记账节点选择信息,所述记账节 点选择
信息至少包括记账节点的第一选择结果和所述第一选择结果的冲突解 决次数;
34.冲突分析模块,用于若所述第一选择结果与自身对记账节点的第二选择结 果不同,则基于所述第一选择结果的冲突解决次数和所述第二选择结果的冲突 解决次数进行冲突分析,得到第三选择结果;
35.更新控制模块,用于基于所述第二选择结果与所述第三选择结果是否相同, 确定是否更新所述第二选择结果;
36.发送控制模块,用于基于是否更新所述第二选择结果,确定是否向区块链 中的其它节点发送自身的记账节点选择信息;
37.确定模块,用于若基于接收到的各节点的第一选择结果和自身最新的第二 选择结果确定区块链中超过预设比例的节点的选择结果相同,则将对应选择结 果确定为最终的记账节点选择结果。
38.在一些实施例中,所述冲突分析模块具体用于:
39.若所述第一选择结果的冲突解决次数和所述第二选择结果的冲突解决次 数相同,则对所述第一选择结果和所述第二选择结果进行冲突解决,得到所述 第三选择结果;
40.若所述第一选择结果的冲突解决次数和所述第二选择结果的冲突解决次 数不同,则将所述第一选择结果和所述第二选择结果中冲突解决次数大的确定 为所述第三选择结果。
41.在一些实施例中,所述冲突分析模块具体用于:
42.按照节点出现次数对所述第一选择结果和所述第二选择结果中的节点进 行排序;
43.按照节点出现次数从多到少的顺序,从所述第一选择结果和所述第二选择 结果中选择所述预设比例的节点作为所述第三选择结果。
44.在一些实施例中,所述更新控制模块具体用于:
45.若所述第二选择结果与所述第三选择结果相同,则确定不更新所述第二选 择结果;
46.若所述第二选择结果与所述第三选择结果不同,则用所述第三选择结果替 换所述第二选择结果。
47.在一些实施例中,所述发送控制模块具体用于:
48.若更新所述第二选择结果,则基于更新后的第二选择结果向区块链中的其 它节点发送自身的记账节点选择信息;
49.若不更新所述第二选择结果,则不向区块链中的其它节点发送自身的记账 节点选择信息。
50.在一些实施例中,所述记账节点选择信息还包括在生成所述第一选择结果 时使用的第一节点信息表,所述冲突分析模块还用于:
51.在基于所述第一选择结果的冲突解决次数和所述第二选择结果的冲突解 决次数进行冲突分析,得到第三选择结果之前,确定所述第一节点信息表与第 二节点信息表相同,所述第二节点信息表是在生成所述第二选择结果时使用的 节点信息表。
52.在一些实施例中,还包括:
53.合并模块,用于若所述第一节点信息表与所述第二节点信息表不同、且所 述第一
节点信息表未包含在所述第二节点信息表中,则对所述第一节点信息表 和所述第二节点信息表进行合并处理,得到第三节点信息表;
54.所述发送控制模块,还用于用所述第三节点信息表替换所述第二节点信息 表,并向区块链中其它节点发送替换后的第二节点信息表。
55.在一些实施例中,当所述第二选择结果的冲突解决次数为零时,第二选择 结果是从所述第二节点信息表中随机选择的。
56.在一些实施例中,还包括业务处理模块,用于:
57.在将对应选择结果确定为最终的记账节点选择结果之后,若确定自身属于 记账节点,则在指定时间段内进行区块铸造,将铸造的区块发送给区块链中的 其它节点进行验证处理,并对接收到的区块链中的其它记账节点发送的区块进 行验证处理;
58.若确定自身不属于记账节点,则在指定时间段内对区块链中的任一记账节 点发送的区块进行验证处理。
59.第三方面,本技术实施例提供一种电子设备,包括:至少一个处理器,以 及与所述至少一个处理器通信连接的存储器,其中:
60.存储器存储有可被至少一个处理器执行的指令,该指令被所述至少一个处 理器执行,以使所述至少一个处理器能够执行上述任一区块链中记账节点的确 定方法。
61.第四方面,本技术实施例提供一种存储介质,当所述存储介质中的指令由 电子设备的处理器执行时,所述电子设备能够执行上述任一区块链中记账节点 的确定方法。
62.本技术实施例中,在确定区块链中记账节点的过程中,区块链中的节点除 了会接收到其它节点关于记账节点的第一选择结果,还会接收到第一选择结果 的冲突解决次数,若第一选择结果与自身对记账节点的第二选择结果不同,则 可基于第一选择结果的冲突解决次数和第二选择结果的冲突解决次数进行冲 突分析,得到第三选择结果,基于第二选择结果与第三选择结果是否相同,确 定是否更新第二选择结果,基于是否更新第二选择结果,确定是否向区块链中 的其它节点发送自身的记账节点选择信息,直至基于接收到的各节点的第一选 择结果和自身最新的第二选择结果确定区块链中超过预设比例的节点的选择 结果相同时,将对应选择结果确定为最终的记账节点选择结果。这样,借助于 冲突解决次数可使节点得知其它节点已做过的节点选择操作,减少重复性选择 操作,既利于缩短共识达成时间使区块链中的各节点快速确定出最终的记账节 点,还可节省各节点的算力。
附图说明
63.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分, 本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限 定。在附图中:
64.图1为本技术实施例提供的一种区块链中记账节点的确定方法的流程图;
65.图2为本技术实施例提供的又一种区块链中记账节点的确定方法的流程图;
66.图3为本技术实施例提供的一种区块链中各节点自身的节点信息表的示意 图;
67.图4为本技术实施例提供的又一种区块链中各节点自身的节点信息表的示 意图;
68.图5为本技术实施例提供的又一种区块链中各节点自身的节点信息表的示 意图;
69.图6为本技术实施例提供的一种区块链中节点的选择结果的示意图;
70.图7为本技术实施例提供的又一种区块链中节点的选择结果的示意图;
71.图8为本技术实施例提供的又一种区块链中节点的选择结果的示意图;
72.图9为本技术实施例提供的一种区块链中记账节点的确定装置的结构示意 图;
73.图10为本技术实施例提供的一种用于实现区块链中记账节点的确定方法 的电子设备的硬件结构示意图。
具体实施方式
74.为了解决相关技术中区块链中的共识机制存在的既浪费节点算力又难以 缩短共识达成时间的问题,本技术实施例提供了一种区块链中记账节点的确定 方法及装置。
75.以下结合说明书附图对本技术的优选实施例进行说明,应当理解,此处所 描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不 冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
76.为了便于理解本技术,本技术涉及的技术术语中:
77.区块链,本质上是通过去中心化和集体监管的方式集体维护的一个可靠数 据库,区块链技术是一种集体参与记账的方式。
78.区块,区块链上记录的一个一个的数据块。
79.算力,也称哈希率,是指计算机(cpu)计算哈希函数的速度。例如,当算 力达到10th/s时,意味着cpu可以每秒进行10万亿次哈希计算,一个cpu 每秒钟能做多少次哈希计算,就是其算力的代表。
80.pow,区块链技术中的一种共识算法。按照节点持有的算力占全网算力的 百分比来决定本次记账权归属的概率,节点需要不断的消耗算力,进行哈希求 解,寻找符合期望的随机数。pow具有算法简单、去中心化程度高、安全性高 的优点,但由于所有参与节点都在进行耗时运算,但终只有极少数节点的运算 结果会最终记录上链所以算力浪费问题比较突出,而且,达成共识的时间也难 以缩短。
81.记账权,区块链中节点能向数据库中写入区块的权利,共识机制就是一种 用于确认记账权利的机制。
82.区块铸造,区块链参与者生成区块的过程就是区块铸造。
83.本技术实施例提供的区块链中记账节点的确定方法的执行主体为区块链 中的节点,下面结合图1所示的流程图对该方法进行介绍,该流程图包括以下 步骤。
84.在步骤s101中,接收区块链中其它节点的记账节点选择信息,记账节点 选择信息至少包括记账节点的第一选择结果和第一选择结果的冲突解决次数。
85.其中,第一选择结果中可包括区块链中节点的节点标识,第一选择结果的 冲突解决次数可表征第一选择结果的优选级,第一选择结果的冲突解决次数越 大说明第一选择结果的优先级越高,第一选择结果的冲突解决次数越小说明第 一选择结果的优先级越低。
86.在步骤s102中,若第一选择结果与自身对记账节点的第二选择结果不同, 则基于第一选择结果的冲突解决次数和第二选择结果的冲突解决次数进行冲 突分析,得到第三选择结果。
87.类似地,第一选择结果的冲突解决次数可表征第二选择结果的优选级,第 二选择结果的冲突解决次数越大则说明第二选择结果的优先级越高,第二选择 结果的冲突解决次数越小则说明第二选择结果的优先级越低。
88.在一些实施例中,第一选择结果的冲突解决次数和第二选择结果的冲突解 决次数相同。
89.该种情况,可对第一选择结果和第二选择结果进行冲突解决,得到第三选 择结果,且此时第三选择结果的冲突解决次数比第一选择结果和第二选择结果 的冲突解决次数要大。
90.以第一选择结果和第二选择结果的冲突解决次数为1为例,可按照节点出 现次数对第一选择结果和第二选择结果中的节点进行排序,然后,按照节点出 现次数从多到少的顺序,从第一选择结果和第二选择结果中选择预设比例的节 点作为第三选择结果,并且可确定第三选择结果的冲突解决次数为2,其中, 预设比例如10%。
91.在一些实施例中,第一选择结果的冲突解决次数和第二选择结果的冲突解 决次数不同。
92.该种情况,可将第一选择结果和第二选择结果中冲突解决次数大的确定为 第三选择结果,且此时第三选择结果的冲突解决次数等于第一选择结果和第二 选择结果对应的最大冲突解决次数。
93.以第一选择结果的冲突解决次数为0、第二选择结果的冲突解决次数为1 为例,则可将第二选择结果确定为第三选择结果,且确定第三选择结果的冲突 解决次数为1。
94.在步骤s103中,基于第二选择结果与第三选择结果是否相同,确定是否 更新第二选择结果。
95.具体实施时,若第二选择结果与第三选择结果相同(指两者包含的节点一 样),则确定不更新第二选择结果;若第二选择结果与第三选择结果不同(指 两者包含的节点不一样),则可用第三选择结果替换第二选择结果,以更新第 二选择结果。
96.在步骤s104中,基于是否更新第二选择结果,确定是否向区块链中的其 它节点发送自身的记账节点选择信息。
97.具体实施时,若更新第二选择结果,则可基于更新后的第二选择结果向区 块链中的其它节点发送自身的记账节点选择信息;若不更新第二选择结果,则 可不向区块链中的其它节点发送自身的记账节点选择信息。
98.在步骤s105中,若基于接收到的各节点的第一选择结果和自身最新的第 二选择结果确定区块链中超过预设比例的节点的选择结果相同,则将对应选择 结果确定为最终的记账节点选择结果。
99.一般地,经过一段时间后,区块链中的各节点会收到其它节点关于记账节 点的第一选择结果且本地会有自身最新的关于记账节点的第二选择结果,若基 于各节点的第一选择结果和自身最新的第二选择结果,确定区块链中超过预设 比例如51%的节点的选择结果相同,则说明区块链中超过预设比例的节点就记 账节点的选择已达成共识,可按照少数服从多数的原则将对应选择结果确定为 最终的记账节点选择结果。
100.这样,借助于冲突解决次数可使节点得知其它节点已做过的节点选择操作, 减少重复性选择操作,既利于缩短共识达成时间使区块链中的各节点快速确定 出最终的记账节点,还可节省各节点的算力。
101.图2为本技术实施例提供的又一种区块链中记账节点的确定方法的流程图, 包括以下步骤。
102.在步骤s201中,接收区块链中其它节点的记账节点选择信息,记账节点 选择信息包括记账节点的第一选择结果、第一选择结果的冲突解决次数和在生 成第一选择结果时使用的第一节点信息表。
103.在步骤s202中,判断第一节点信息表与在生成第二选择结果时使用的第 二节点信息表是否相同,若否,则进入s203,若是,则进入s207。
104.在步骤s203中,判断第一节点信息表是否包含在第二节点信息表中,若 是,则进入s204,若否,则进入s205。
105.具体实施时,当第一节点信息表包含在第二节点信息表中时,说明第一选 择结果是其它节点基于不完整的节点信息表生成的,无需再向外发布第一选择 结果和第一节点信息表,而当第一节点信息表未包含在第二节点信息表中时, 说明第一选举结果和第二选择结果均是基于不完整的节点信息表生成的,可更 新自身的第二节点信息表且重新生成第二选择结果。
106.在步骤s204中,丢弃第一节点信息表和第一选择结果。
107.在步骤s205中,对第一节点信息表和第二节点信息表进行合并处理,得 到第三节点信息表。
108.即,第三节点信息表中包含第一节点信息表和第二节点信息表中的所有节 点信息。
109.在步骤s206中,用第三节点信息表替换第二节点信息表,并向区块链中 其它节点发送替换后的第二节点信息表。
110.这样,可使区块链中其它节点尽快得知区块链中所有的节点信息。
111.在步骤s207中,若第一选择结果与自身对记账节点的第二选择结果不同, 则基于第一选择结果的冲突解决次数和第二选择结果的冲突解决次数进行冲 突分析,得到第三选择结果。
112.需要说明的是,区块链中的每个节点进行冲突分析的前提是第一节点信息 表与在生成第二选择结果时使用的第二节点信息表相同,所以基于第一选择结 果的冲突解决次数和第二选择结果的冲突解决次数进行冲突分析,得到的第三 选择结果所使用的节点信息表还是原来的节点信息表,第三选择结果是基于已 有选择结果进行的再次选择,基于已有选择结果进行的再次选择不会改原先选 择结果所对应的变节点信息表。
113.在步骤s208中,基于第二选择结果与第三选择结果是否相同,确定是否 更新第二选择结果。
114.在步骤s209中,基于是否更新第二选择结果,确定是否向区块链中的其 它节点发送自身的记账节点选择信息。
115.在步骤s210中,若基于接收到的各节点的第一选择结果和自身最新的第 二选择结果确定区块链中超过预设比例的节点的选择结果相同,则将对应选择 结果确定为最终的记账节点选择结果。
116.其中,预设比例如51%。
117.本技术实施例中,区块链中的任一节点在接收到其它节点的记账节点选择 信息时,先判断其它节点使用的第一节点信息表与自身使用的第二节点信息表 是否相同,在两者不同且第一节点信息表未包含在第二节点信息表中时,仅向 外发布两者合并后的节点
信息表,在第一节点信息表与第二节点信息表相同但 其它节点的第一选择结果与自身的第二选择结果不同时,基于第一选择结果的 冲突解决次数和第二选择结果的冲突解决次数进行冲突分析,以确定是否向其 它节点发送自身的记账节点选择信息,直至基于接收到的各节点的第一选择结 果和自身最新的第二选择结果,确定区块链中超过预设比例的节点的选择结果 相同,则将对应选择结果确定为最终的记账节点选择结果。这样,可避免当前 节点重复做其它节点已做的选择操作,既利于缩短共识达成时间使区块链中的 各节点快速确定出最终的记账节点,还可节省各节点的算力
118.在上述任一实施例中,当第二选择结果的冲突解决次数为零时,第二选择 结果是从第二节点信息表中随机选择的,即每个节点初次是随机从自身的节点 信息表中选择记账节点的。
119.这样,可保证区块链中的各节点能公平竞争记账权,使各节点成为记账节 点的机会基本相同,避免算力较低的节点一直得不到记账权而削弱节点参与感 的情况,从而提升区块链中各节点的地位平等性。
120.另外,上述任一实施例中,在将对应选择结果确定为最终的记账节点选择 结果之后,对于任一节点而言,若该节点属于记账节点,则可在指定时间段内 进行区块铸造,将铸造的区块发送给区块链中的其它节点进行验证处理,并对 接收到的区块链中的其它记账节点发送的区块进行验证处理;若该节点不属于 记账节点,则在指定时间段内对区块链中的任一记账节点发送的区块进行验证 处理。
121.也就是说,区块链中的记账节点在指定时间段内可同时进行区块铸造和区 块验证操作,而区块链中的非记账节点在指定时间段内仅可进行区块验证操作 而不能进行区块铸造操作。
122.这样,只需要区块链中的部分节点进行区块铸造,不再需要所有节点进行 暴力求解,所以可节省节点算力,并且,由于参与区块铸造的节点数量减少, 也利于缩短后续区块验证过程中的共识耗时。
123.下面结合具体实施例对本技术实施例的方案进行介绍。
124.假设区块链中有4个节点:节点1、节点2、节点3和节点4,这4个节点 接入统一的时钟服务器如使用北斗卫星时钟系统,所有节点定时如每分钟与时 钟服务器同步一次系统时钟,以保证各节点之间的时间能够同步。
125.假设各节点在每天0点开始记账节点选择流程,账节点选择流程大体包括 两个阶段:全网节点信息同步和全网选择并共识选择结果,下面对这两个阶段 分别进行介绍。
126.1、全网节点信息同步
127.全网0点开始时,每个节点的节点信息表中只有自己的节点信息,每个节 点向外发布自己的节点信息表,参见图3。任一节点在接收到邻近节点发布的 节点信息表后,可判断接收到的节点信息表和自身的节点信息表是否一致,如 果一致,则可不做处理,如果不一致且接收到的节点信息表不是自身节点信息 表的子集,则可合并两张节点信息,以合并后的节点信息表替换自身的节点信 息表,并向外发布替换后自身的节点信息表,以使各节点尽快得知全网的节点 信息。
128.假设某个时间点全网中各节点的节点信息表如图4所示,由于节点3邻近 节点1、2、4,所以节点3接收到了节点1、2、4发布的节点信息表,合并这 些节点信息表之后,自身的
节点信息表中有了节点1、2、3、4的节点信息, 且节点3会向外发布此节点信息表。同时,节点1和2自身的节点信息表中都 有了节点1、2、3的节点信息。而节点4由于只跟节点3有直接的网络连接关 系,所以自身的节点信息表中只有节点3、4的节点信息。由于每个节点在确 定接收到的节点信息表中有自身的节点信息表中没有的节点时,就会合并两个 节点信息表且发布合并后的节点信息表,所以最终全网的节点信息表趋于一致, 即各节点自身的节点信息表相同,如图5所示,图5中每个节点自身的节点信 息表中都有了其它节点的节点信息。
129.需要说明的是,实际情况可能没有这么理想,可能有的节点由于各种原因 无法接收到其它节点发布的节点信息或者自己发布的节点信息表无法达到其 它节点。但这并不妨碍节点信息同步和选择记账节点,节点信息同步是为了为 全网选择记账节点创造前提条件,一旦某个节点自身的节点信息表中的节点信 息满足预设选择条件(比如节点信息表中的节点数量达到预设阈值),就可以 开始选择记账节点。在选择记账节点的过程中,只要有两个节点的节点信息表 不一致,同步节点信息表的操作就会一直存在,节点信息同步是一个全网节点 信息慢慢趋于一致然后消失的动态过程。
130.2、全网选择并共识选择结果
131.具体实施时,当任一节点确定自身的节点信息表中的节点数量超过预设阈 值时,可随机地从自身的节点信息表中选择预设比例如10%的节点,并将节点 选择信息发布出去,节点选择信息包括节点信息表、选择结果和选择结果的冲 突解决次数,初次选择的选择结果的冲突解决次数为零。
132.参见图6,假设节点2自身的节点信息表中有n个节点,且已满足预设选 择条件,则节点2可从自身的n个节点中随机选择10%的节点,将选择结果附 加在节点信息表头部。另外,节点2还可标记该选择结果与其它节点的选择结 果之间的冲突解决次数,由于节点2尚未进行冲突解决,所以该选择结果的冲 突解决次数为0,之后,可向外发布节点选择信息。
133.当邻近节点收到节点2发布的节点选择信息可判断节点选择信息中的节点 信息表和自身的节点信息表是否一致,并基于判断结果执行不同的处理流程。
134.比如,节点3在确定自身的节点信息表与节点2发来的节点信息表不一致 后,可判断自身的节点信息表是否是节点2的节点信息表的子集(两张表内容 一致也可视为是子集),若是,则合并两者的节点信息表,向外发布合并后的 节点信息表、节点2的选择结果和该选择结果的冲突解决次数;若否,则合并 两者的节点信息表,向外发布合并后的节点信息表而丢弃节点2的选择结果。
135.再比如,节点1在确定自身的节点信息表与节点2发来的节点信息表一致 后,若节点1还未开始选择记账节点或者自身的选择结果与节点2发来的选择 结果一致,则可向外发布节点2的选择结果和该选择结果的冲突解决次数。若 节点1的选择结果与节点2发来的选择结果不一致,则可对自身的选择结果和 节点2发来的选择结果进行冲突解决。
136.需要说明的是,选择结果冲突的前提是2个节点的节点信息表一致,如果 2个节点的节点信息表不一致本质上还是节点信息同步,因为任一节点遇到收 到的节点信息表与自身的节点信息表不一致、且收到的节点信息表不为自身的 节点信息表的子集时,会合并两个节点信息表,发布合并后的节点信息表而丢 弃接收到的相应选择结果。
137.下面对冲突解决进行介绍。
138.冲突解决的准则有:
139.第一、节点信息表一致时,以冲突解决次数最大的选择结果为准。即,几 个冲突解决次数不一样的选择结果之间以冲突解决次数最大的选择结果为准。
140.第二、冲突只发生在几个冲突解决次数相同的选择结果中。即,只有冲突 解决次数相同的选择结果之间才存在冲突问题。
141.下面基于这两个准则对冲突解决的情况进行举例说明。
142.在一些实施例中,一个节点接收到了邻近节点发来的2个选择结果:选择 结果1和选择结果2,选择结果1的冲突解决次数为1,选择结果2的冲突解 决次数为0,那么,该节点只会向外发布冲突解决次数为1的选择结果1,冲 突解决次数为0的选择结果2只会被存储在本地而不会被向外发布。
143.在一些实施例中,节点在解决冲突的过程中,若接收到其它节点发来的冲 突解决次数比自己正在解决的冲突解决次数更高的选择结果,可立即结束冲突 解决,存储冲突解决次数更高的选择结果,并向外发布该选择结果和该选择结 果的冲突解决次数。
144.继续参见图6,假设节点1接收到节点2、3发来的冲突解决次数均为0 的选择结果,开始解决冲突,在解决冲突过程中又接收到节点3发来的冲突解 决次数为1的选择结果。那么,节点1会结束冲突解决,保存节点3发来的选 择结果,并向外发布该选择结果和该选择结果的冲突解决次数。
145.也就是说,当前节点无需重复解决其它节点已经解决了的冲突,这样,利 于减少冲突发生次数,减少区块链传播的选择结果,避免数据爆炸,也利于节 省节点的算力,缩短共识达成时间。
146.在一些实施例中,节点可能解决的是接收到的选择结果之间的冲突,也可 能是接收到的选择结果与自身选择结果之间的冲突。
147.参见图7,假设节点1、2、3分别基于自身的节点信息表随机产生了冲突 解决次数为0的选择结果,且各自向外发布了自身的节点选择信息,包括节点 信息表、选择结果和选择结果的冲突解决次数。假设节点1接收到了节点2、3 发送的节点选择信息,节点1可对比自身的节点信息表和节点2、3的节点信 息表,确定三者的节点信息表一致且三者选择结果的冲突解决次数相同之后, 可开始解决三者选择结果之间的冲突。
148.具体地,节点1可按照节点出现次数对节点1、2、3的选择结果中的节点 进行排序,假设得到表1所示的排序结果,然后,可按照节点出现次数由高到 低的顺序从表1中选择10%的节点,得到冲突解决次数为1的选择结果,如图8所示,然后,可将该选择结果存储到本地,并向其它节点发布该选择结果和 该选择结果的冲突解决次数。
149.表1
150.节点名节点在选择结果中的出现次数节点36次节点14次节点24次节点43次
……
151.另外,假设在节点1解决冲突的过程中,节点2、3也在解决冲突,但它 们解决冲突
的速度没有节点1快,即,在节点2、3各自产生冲突解决次数为1 的选择结果之前,节点1已得到了冲突解决次数为1的选择结果,且将该选择 结果发送给了节点2、3,这时节点2、3无需再继续进行冲突解决,可将该选 择结果存储到本地,并向外发送该选择结果和该选择结果的冲突解决次数。
152.在一些实施例中,节点可能无需自己生成选择结果。
153.假设图6中节点4自身的节点信息表还不满足预设选择条件或者节点4正 在选择记账节点还未生成选择结果,一旦节点4接收到节点1发送的冲突解决 次数为1的选择结果,即可结束选择(若已开始选择),更新自身的节点信息 表并发布该选择结果和该选择结果的冲突解决次数。
154.需要说明的是,无论发生冲突的选择结果的冲突解决次数为1,还是为2、 3或者更大的数,冲突解决方式是相同的,因此,不再对冲突解决次数不为1 的选择结果之间的冲突解决方式进行赘述。
155.随着时间的推移,全网的节点信息表趋于一致,且每个节点可收到其它节 点最新的选择结果,若基于自身最新的选择结果和其它节点最新的选择结果, 确定有超过51%的节点的选择结果相同,则说明大多数节点就选择结果已达成 共识,可将这个选择结果作为最终的记账节点选择结果。
156.后续,在当前天的剩余时间中,区块链中的记账节点可进行区块铸造,将 铸造的区块发送给区块链中的其它节点进行验证处理,并对接收到的区块链中 的其它记账节点发送的区块进行验证处理;区块链中的非记账节点可对任一记 账节点发送的区块进行验证处理。
157.这样,只需要区块链中的部分节点进行区块铸造,不再需要所有节点进行 暴力求解,所以可节省节点算力,并且,由于参与区块铸造的节点数量减少, 也利于缩短后续区块验证过程中的共识耗时。
158.基于相同的技术构思,本技术实施例还提供一种区块链中记账节点的确定 装置,区块链中记账节点的确定装置解决问题的原理与上述区块链中记账节点 的确定方法相似,因此区块链中记账节点的确定装置的实施可参见区块链中记 账节点的确定方法的实施,重复之处不再赘述。
159.图9为本技术实施例提供的一种区块链中记账节点的确定装置的结构示意 图,包括接收模块901、冲突分析模块902、更新控制模块903、发送控制模块 904、确定模块905。
160.接收模块901,用于接收区块链中其它节点的记账节点选择信息,所述记 账节点选择信息至少包括记账节点的第一选择结果和所述第一选择结果的冲 突解决次数;
161.冲突分析模块902,用于若所述第一选择结果与自身对记账节点的第二选 择结果不同,则基于所述第一选择结果的冲突解决次数和所述第二选择结果的 冲突解决次数进行冲突分析,得到第三选择结果;
162.更新控制模块903,用于基于所述第二选择结果与所述第三选择结果是否 相同,确定是否更新所述第二选择结果;
163.发送控制模块904,用于基于是否更新所述第二选择结果,确定是否向区 块链中的其它节点发送自身的记账节点选择信息;
164.确定模块905,用于若基于接收到的各节点的第一选择结果和自身最新的 第二选
择结果确定区块链中超过预设比例的节点的选择结果相同,则将对应选 择结果确定为最终的记账节点选择结果。
165.在一些实施例中,所述冲突分析模块902具体用于:
166.若所述第一选择结果的冲突解决次数和所述第二选择结果的冲突解决次 数相同,则对所述第一选择结果和所述第二选择结果进行冲突解决,得到所述 第三选择结果;
167.若所述第一选择结果的冲突解决次数和所述第二选择结果的冲突解决次 数不同,则将所述第一选择结果和所述第二选择结果中冲突解决次数大的确定 为所述第三选择结果。
168.在一些实施例中,所述冲突分析模块902具体用于:
169.按照节点出现次数对所述第一选择结果和所述第二选择结果中的节点进 行排序;
170.按照节点出现次数从多到少的顺序,从所述第一选择结果和所述第二选择 结果中选择所述预设比例的节点作为所述第三选择结果。
171.在一些实施例中,所述更新控制模块903具体用于:
172.若所述第二选择结果与所述第三选择结果相同,则确定不更新所述第二选 择结果;
173.若所述第二选择结果与所述第三选择结果不同,则用所述第三选择结果替 换所述第二选择结果。
174.在一些实施例中,所述发送控制模块904具体用于:
175.若更新所述第二选择结果,则基于更新后的第二选择结果向区块链中的其 它节点发送自身的记账节点选择信息;
176.若不更新所述第二选择结果,则不向区块链中的其它节点发送自身的记账 节点选择信息。
177.在一些实施例中,所述记账节点选择信息还包括在生成所述第一选择结果 时使用的第一节点信息表,所述冲突分析模块902还用于:
178.在基于所述第一选择结果的冲突解决次数和所述第二选择结果的冲突解 决次数进行冲突分析,得到第三选择结果之前,确定所述第一节点信息表与第 二节点信息表相同,所述第二节点信息表是在生成所述第二选择结果时使用的 节点信息表。
179.在一些实施例中,还包括:
180.合并模块906,用于若所述第一节点信息表与所述第二节点信息表不同、 且所述第一节点信息表未包含在所述第二节点信息表中,则对所述第一节点信 息表和所述第二节点信息表进行合并处理,得到第三节点信息表;
181.所述发送控制模块904,还用于用所述第三节点信息表替换所述第二节点 信息表,并向区块链中其它节点发送替换后的第二节点信息表。
182.在一些实施例中,当所述第二选择结果的冲突解决次数为零时,第二选择 结果是从所述第二节点信息表中随机选择的。
183.在一些实施例中,还包括业务处理模块907,用于:
184.在将对应选择结果确定为最终的记账节点选择结果之后,若确定自身属于 记账节点,则在指定时间段内进行区块铸造,将铸造的区块发送给区块链中的 其它节点进行验
证处理,并对接收到的区块链中的其它记账节点发送的区块进 行验证处理;
185.若确定自身不属于记账节点,则在指定时间段内对区块链中的任一记账节 点发送的区块进行验证处理。
186.本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实 际实现时可以有另外的划分方式,另外,本技术各实施例中的各功能模块可以 集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集 成在一个模块中。各个模块相互之间的耦合可以是通过一些接口实现,这些接 口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因 此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位 于一个地方,也可以分布到同一个或不同设备的不同位置上。上述集成的模块 既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
187.在介绍了本技术示例性实施方式的对比学习方法和装置之后,接下来,介 绍根据本技术的另一示例性实施方式的电子设备。
188.所属技术领域的技术人员能够理解,本技术的各个方面可以实现为系统、 方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完 全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和 软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
189.在一些可能的实施方式中,根据本技术的电子设备可以至少包括至少一个 处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被 处理器执行时,使得处理器执行本说明书上述描述的根据本技术各种示例性实 施方式的方法。例如,处理器可以执行如基于对比学习的神经网络模型训练方 法中的步骤或提取图像特征的方法的步骤。
190.下面参照图10来描述根据本技术的这种实施方式的电子设备130。图10 显示的电子设备130仅仅是一个示例,不应对本技术实施例的功能和使用范围 带来任何限制。
191.如图10所示,电子设备130以通用电子设备的形式表现。电子设备130 的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、 连接不同系统组件(包括存储器132和处理器131)的总线133。
192.总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器 控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总 线。
193.存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器 (ram)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(rom) 1323。
194.存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用 工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应 用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能 包括网络环境的实现。
195.电子设备130也可以与一个或多个外部设备134(例如键盘、指向设备等) 通信,还可与一个或者多个使得用户能与电子设备130交互的设备通信,和/ 或与使得该电子设备130能与一个或多个其它电子设备进行通信的任何设备 (例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o) 接口135进行。并且,电子设备130还可以通过网络适配器136与一个或者多 个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网) 通信。如图所示,网络适配器136通过总线133与用于电子设备130的其它模 块通信。
应当理解,尽管图中未示出,可以结合电子设备130使用其它硬件和 /或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱 动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
196.在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如 包括指令的存储器132,上述指令可由处理器131执行以完成上述对比学习方 法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临 时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、 磁带、软盘和光数据存储设备等。
197.在示例性实施例中,还提供一种计算机程序产品,包括计算机程序,所述 计算机程序被处理器131执行时实现如本技术提供的示例性方法。
198.在示例性实施例中,本技术提供的一种基于对比学习的神经网络模型的训 练方法和提取图像特征的方法的各个方面还可以实现为一种程序产品的形式, 其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机 设备执行本说明书上述描述的根据本技术各种示例性实施方式的方法中的步 骤。
199.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读 信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、 电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存 储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、 便携式盘、硬盘、ram、rom、可擦式可编程只读存储器(erasable programmableread-only memory,eprom)、闪存、光纤、光盘只读存储器(compact disk readonly memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的 组合。
200.本技术实施例中用于区块链中记账节点的确定的程序产品可以采用 cd-rom并包括程序代码,并可以在计算设备上运行。然而,本技术的程序产 品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介 质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
201.可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其 中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限 于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存 储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令 执行系统、装置或者器件使用或者与其结合使用的程序。
202.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无 线、有线、光缆、射频(radio frequency,rf)等等,或者上述的任意合适的 组合。
203.可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作 的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言诸如“c”语言或类似的程序设计语言。 程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为 一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、 或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远 程计算设备可以通过任意种类的网络如局域网(local area network,lan)或 广域网(wide area network,wan)连接到用户计算设备,或者,可以连接到 外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
204.应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是 这种划分仅仅是示例性的并非强制性的。实际上,根据本技术的实施方式,上 文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文 描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
205.此外,尽管在附图中以特定顺序描述了本技术方法的操作,但是,这并非 要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的 操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤 合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
206.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计 算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结 合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包 含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 cd-rom、光学存储器等)上实施的计算机程序产品的形式。
207.本技术是参照根据本技术实施例的方法、装置(系统)、和计算机程序产 品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入 式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算 机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一 个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
208.这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设 备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中 的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个 流程和/或方框图一个方框或多个方框中指定的功能。
209.这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使 得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处 理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个 流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
210.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基 本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要 求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
211.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本申 请的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及 其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献