首页 / 专利库 / 资料储存系统 / 区块链 / 区块链共识网络中处理共识请求的方法、装置和电子设备

链共识网络中处理共识请求的方法、装置和电子设备

阅读:327发布:2023-01-24

专利汇可以提供链共识网络中处理共识请求的方法、装置和电子设备专利检索,专利查询,专利分析的服务。并且本 申请 公开了一种 区 块 链 共识网络中处理共识 请求 的方法,包括:确定待处理请求集合,待处理请求集合中包含待处理的共识请求;确定已处于共识阶段的子集合的数量,子集合由从待处理请求集合中获取到的待处理的共识请求构成;当已处于共识阶段的子集合的数量小于共识网络的预设并发数时,向共识网络发起对新的子集合的共识提议,使得新的子集合进入共识阶段进行共识请求的处理;其中,预设并发数为共识网络中允许同时处于共识阶段的子集合的数量上限。,下面是链共识网络中处理共识请求的方法、装置和电子设备专利的具体信息内容。

1.一种链共识网络中处理共识请求的方法,包括:
确定待处理请求集合,所述待处理请求集合中包含待处理的共识请求;
确定已处于共识阶段的子集合的数量,所述子集合由从所述待处理请求集合中获取到的待处理的共识请求构成;
当已处于共识阶段的子集合的数量小于共识网络的预设并发数时,向所述共识网络发起对新的子集合的共识提议,使得所述新的子集合进入所述共识阶段进行共识请求的处理;其中,所述预设并发数为所述共识网络中允许同时处于所述共识阶段的子集合的数量上限。
2.如权利要求1所述方法,在确定待处理请求集合之后,所述方法还包括:
从所述待处理请求集合中获取待处理的共识请求,构成所述子集合。
3.如权利要求2所述方法,从所述待处理请求集合中获取待处理的共识请求,构成所述子集合之后,所述方法还包括:
为所述子集合分配序列号,所述序列号为连续单调递增的自然数。
4.如权利要求3所述方法,确定已处于共识阶段的子集合的数量,包括:
依据已结束共识阶段的子集合的序列号,确定第一序列号;依据已进入共识阶段的子集合的序列号,确定第二序列号;
依据所述第一序列号和所述第二序列号,确定已处于共识阶段的子集合的数量。
5.如权利要求4所述方法,依据已结束共识阶段的子集合的序列号,确定第一序列号,包括:将已结束共识阶段的多个子集合的序列号中的最大者,确定为所述第一序列号;
依据已进入共识阶段的子集合的序列号,确定第二序列号,包括:将已进入共识阶段的多个子集合的序列号中的最大者,确定为所述第二序列号;
则依据所述第一序列号和所述第二序列号,确定已处于共识阶段的子集合的数量,包括:
将所述第一序列号和所述第二序列号的差值,确定为处于共识阶段的子集合的数量。
6.如权利要求5所述方法,当处于共识阶段的子集合的数量小于共识网络的预设并发数时,向所述共识网络发起对新的子集合的共识提议,使得所述新的子集合进入所述共识阶段,包括:
当处于共识阶段的子集合的数量小于共识网络的预设并发数时,依据所述第二序列号确定所述新的子集合及其序列号;
向所述共识网络发起对所述新的子集合的共识提议,使得所述新的子集合进入所述共识阶段。
7.如权利要求6所述方法,依据所述第二序列号确定所述新的子集合及其序列号,包括:
从所述待处理请求集合中获取待处理的共识请求,构成所述新的子集合;
依据所述第二序列号,将所述第二序列号的数值加一,作为所述新的子集合的序列号。
8.如权利要求6所述方法,依据所述第二序列号确定所述新的子集合及其序列号,包括:
依据所述第二序列号,将所述第二序列号的数值加一,作为所述新的子集合的序列号;
依据所述新的子集合的序列号,确定所述新的子集合。
9.如权利要求1~8之任一所述方法,确定已处于共识阶段的子集合的数量,包括:
在向所述共识网络发起对新的子集合的共识提议,使得所述新的子集合进入所述共识阶段之后,重新确定已处于共识阶段的子集合的数量。
10.如权利要求1~8之任一所述方法,在向所述共识网络发起对新的子集合的共识提议之后,所述方法还包括:
对所述新的子集合中包含的待处理的共识请求进行共识;
当满足预设条件时,将对所述新的子集合中包含的待处理的共识请求的共识结果写入所述区块链,结束所述共识阶段。
11.如权利要求10所述方法,满足预设条件包括:
序列号在所述新的子集合的序列号之前的子集合已结束所述共识阶段。
12.如权利要求10所述方法,确定已处于共识阶段的子集合的数量,包括:
在将对所述新的子集合中包含的待处理的共识请求的共识结果写入所述区块链之后,重新确定已处于共识阶段的子集合的数量。
13.如权利要求10所述方法,将对所述新的子集合中包含的待处理的共识请求的共识结果写入所述区块链,包括:
将对所述新的子集合中包含的待处理的共识请求的共识结果,按照接收到所述待处理的共识请求的时间顺序,写入所述区块链。
14.一种区块链共识网络中处理共识请求的方法,包括:
确定待处理请求集合,所述待处理请求集合中包含待处理的共识请求;
在接收到对新的子集合的共识提议之后,判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数;其中,所述子集合由主节点从所述待处理请求集合中获取到的待处理的共识请求构成;
若已处于共识阶段的子集合的数量小于共识网络的预设并发数,则所述新的子集合进入所述共识阶段,进行共识请求的处理。
15.如权利要求14所述方法,在判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数之前,所述方法还包括:
确定已处于共识阶段的子集合的数量。
16.如权利要求14所述方法,所述新的子集合进入所述共识阶段,进行共识请求的处理,包括:
对所述新的子集合中包含的待处理的共识请求进行共识;
当满足预设条件时,将对所述新的子集合中包含的待处理的共识请求的共识结果写入所述区块链,结束所述共识阶段。
17.如权利要求16所述方法,满足预设条件,包括:
序列号在所述新的子集合的序列号之前的子集合已结束所述共识阶段。
18.一种区块链共识网络中处理共识请求的装置,包括:
集合确定模块,确定待处理请求集合,所述待处理请求集合中包含待处理的共识请求;
数量确定模块,确定已处于共识阶段的子集合的数量,所述子集合由从所述待处理请求集合中获取到的待处理的共识请求构成;
判断模块,判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数。
19.如权利要求18所述装置,还包括:
共识提议发起模块,当已处于共识阶段的子集合的数量小于共识网络的预设并发数时,向所述共识网络发起对新的子集合的共识提议,使得所述新的子集合进入所述共识阶段进行共识请求的处理;其中,所述预设并发数为所述共识网络中允许同时处于所述共识阶段的子集合的数量上限。
20.如权利要求18所述装置,还包括:
共识模块,对所述新的子集合中包含的待处理的共识请求进行共识;
入链模块,当满足预设条件时,将对所述新的子集合中包含的待处理的共识请求的共识结果写入所述区块链,结束所述共识阶段。
21.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
确定待处理请求集合,所述待处理请求集合中包含待处理的共识请求;
确定已处于共识阶段的子集合的数量,所述子集合由从所述待处理请求集合中获取到的待处理的共识请求构成;
当已处于共识阶段的子集合的数量小于共识网络的预设并发数时,向所述共识网络发起对新的子集合的共识提议,使得所述新的子集合进入所述共识阶段进行共识请求的处理;其中,所述预设并发数为所述共识网络中允许同时处于所述共识阶段的子集合的数量上限。
22.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
确定待处理请求集合,所述待处理请求集合中包含待处理的共识请求;
在接收到对新的子集合的共识提议之后,判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数;其中,所述子集合由主节点从所述待处理请求集合中获取到的待处理的共识请求构成;
若已处于共识阶段的子集合的数量小于共识网络的预设并发数,则所述新的子集合进入所述共识阶段,进行共识请求的处理。

说明书全文

链共识网络中处理共识请求的方法、装置和电子设备

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及一种区块链共识网络中处理共识请求的方法、装置和电子设备。

背景技术

[0002] 随着计算机技术的发展,区块链技术(又称分布式账本技术)以其去中心化、公开透明、不可篡改、可信任等优点,备受青睐,在智能合约证券交易、电子商务物联网、社交通讯、文件存储、存在性证明、身份验证、股权众筹等众多领域得到广泛应用。
[0003] 在区块链的应用中,区块链的共识网络中的多个副本往往需要就多个备选方案最终达成一致确定的、唯一的选择结果,进行这一选择的过程,就可称为共识。然而,现有技术中的共识过程存在性能瓶颈,在共识请求的处理效率上难以提升。
[0004] 因此,亟需一种能够提高处理效率的方案,以提升共识网络的处理性能。发明内容
[0005] 本申请实施例提供区块链共识网络中处理共识请求的方法、装置和电子设备,旨在提高共识网络对共识请求的处理效率。
[0006] 本申请实施例采用下述技术方案:
[0007] 第一方面,本申请实施例提供一种区块链共识网络中处理共识请求的方法,包括:
[0008] 确定待处理请求集合,所述待处理请求集合中包含待处理的共识请求;
[0009] 确定已处于共识阶段的子集合的数量,所述子集合由从所述待处理请求集合中获取到的待处理的共识请求构成;
[0010] 当已处于共识阶段的子集合的数量小于共识网络的预设并发数时,向所述共识网络发起对新的子集合的共识提议,使得所述新的子集合进入所述共识阶段进行共识请求的处理;其中,所述预设并发数为所述共识网络中允许同时处于所述共识阶段的子集合的数量上限。
[0011] 优选地,在本申请实施例第一方面提供的方法中,在确定待处理请求集合之后,所述方法还包括:
[0012] 从所述待处理请求集合中获取待处理的共识请求,构成所述子集合。
[0013] 优选地,在本申请实施例第一方面提供的方法中,从所述待处理请求集合中获取待处理的共识请求,构成所述子集合之后,所述方法还包括:
[0014] 为所述子集合分配序列号,所述序列号为连续单调递增的自然数。
[0015] 优选地,在本申请实施例第一方面提供的方法中,确定已处于共识阶段的子集合的数量,包括:
[0016] 依据已结束共识阶段的子集合的序列号,确定第一序列号;依据已进入共识阶段的子集合的序列号,确定第二序列号;
[0017] 依据所述第一序列号和所述第二序列号,确定已处于共识阶段的子集合的数量。
[0018] 优选地,在本申请实施例第一方面提供的方法中,依据已结束共识阶段的子集合的序列号,确定第一序列号,包括:将已结束共识阶段的多个子集合的序列号中的最大者,确定为所述第一序列号;
[0019] 依据已进入共识阶段的子集合的序列号,确定第二序列号,包括:将已进入共识阶段的多个子集合的序列号中的最大者,确定为所述第二序列号;
[0020] 则依据所述第一序列号和所述第二序列号,确定已处于共识阶段的子集合的数量,包括:
[0021] 将所述第一序列号和所述第二序列号的差值,确定为处于共识阶段的子集合的数量。
[0022] 优选地,在本申请实施例第一方面提供的方法中,当处于共识阶段的子集合的数量小于共识网络的预设并发数时,向所述共识网络发起对新的子集合的共识提议,使得所述新的子集合进入所述共识阶段,包括:
[0023] 当处于共识阶段的子集合的数量小于共识网络的预设并发数时,依据所述第二序列号确定所述新的子集合及其序列号;
[0024] 向所述共识网络发起对所述新的子集合的共识提议,使得所述新的子集合进入所述共识阶段。
[0025] 优选地,在本申请实施例第一方面提供的方法中,依据所述第二序列号确定所述新的子集合及其序列号,包括:
[0026] 从所述待处理请求集合中获取待处理的共识请求,构成所述新的子集合;
[0027] 依据所述第二序列号,将所述第二序列号的数值加一,作为所述新的子集合的序列号。
[0028] 优选地,在本申请实施例第一方面提供的方法中,依据所述第二序列号确定所述新的子集合及其序列号,包括:
[0029] 依据所述第二序列号,将所述第二序列号的数值加一,作为所述新的子集合的序列号;
[0030] 依据所述新的子集合的序列号,确定所述新的子集合。
[0031] 优选地,在本申请实施例第一方面提供的方法中,确定已处于共识阶段的子集合的数量,包括:
[0032] 在向所述共识网络发起对新的子集合的共识提议,使得所述新的子集合进入所述共识阶段之后,重新确定已处于共识阶段的子集合的数量。
[0033] 优选地,在本申请实施例第一方面提供的方法中,在向所述共识网络发起对新的子集合的共识提议之后,所述方法还包括:
[0034] 对所述新的子集合中包含的待处理的共识请求进行共识;
[0035] 当满足预设条件时,将对所述新的子集合中包含的待处理的共识请求的共识结果写入所述区块链,结束所述共识阶段。
[0036] 优选地,在本申请实施例第一方面提供的方法中,满足预设条件包括:
[0037] 序列号在所述新的子集合的序列号之前的子集合已结束所述共识阶段。
[0038] 优选地,在本申请实施例第一方面提供的方法中,确定已处于共识阶段的子集合的数量,包括:
[0039] 在将对所述新的子集合中包含的待处理的共识请求的共识结果写入所述区块链之后,重新确定已处于共识阶段的子集合的数量。
[0040] 优选地,在本申请实施例第一方面提供的方法中,将对所述新的子集合中包含的待处理的共识请求的共识结果写入所述区块链,包括:
[0041] 将对所述新的子集合中包含的待处理的共识请求的共识结果,按照接收到所述待处理的共识请求的时间顺序,写入所述区块链。
[0042] 第二方面,本申请实施例还提供一种区块链共识网络中处理共识请求的方法,包括:
[0043] 确定待处理请求集合,所述待处理请求集合中包含待处理的共识请求;
[0044] 在接收到对新的子集合的共识提议之后,判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数;其中,所述子集合由主节点从所述待处理请求集合中获取到的待处理的共识请求构成;
[0045] 若已处于共识阶段的子集合的数量小于共识网络的预设并发数,则所述新的子集合进入所述共识阶段,进行共识请求的处理。
[0046] 优选地,在本申请实施例第二方面提供的方法中,在判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数之前,所述方法还包括:
[0047] 确定已处于共识阶段的子集合的数量。
[0048] 优选地,在本申请实施例第二方面提供的方法中,所述新的子集合进入所述共识阶段,进行共识请求的处理,包括:
[0049] 对所述新的子集合中包含的待处理的共识请求进行共识;
[0050] 当满足预设条件时,将对所述新的子集合中包含的待处理的共识请求的共识结果写入所述区块链,结束所述共识阶段。
[0051] 优选地,在本申请实施例第二方面提供的方法中,满足预设条件,包括:
[0052] 序列号在所述新的子集合的序列号之前的子集合已结束所述共识阶段。
[0053] 第三方面,本申请实施例提供一种区块链共识网络中处理共识请求的装置,包括:
[0054] 集合确定模块,确定待处理请求集合,所述待处理请求集合中包含待处理的共识请求;
[0055] 数量确定模块,确定已处于共识阶段的子集合的数量,所述子集合由从所述待处理请求集合中获取到的待处理的共识请求构成;
[0056] 判断模块,判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数。
[0057] 优选地,在本申请实施例第三方面提供的装置中,还包括:
[0058] 共识提议发起模块,当已处于共识阶段的子集合的数量小于共识网络的预设并发数时,向所述共识网络发起对新的子集合的共识提议,使得所述新的子集合进入所述共识阶段进行共识请求的处理;其中,所述预设并发数为所述共识网络中允许同时处于所述共识阶段的子集合的数量上限。
[0059] 优选地,在本申请实施例第三方面提供的装置中,还包括:
[0060] 共识模块,对所述新的子集合中包含的待处理的共识请求进行共识;
[0061] 入链模块,当满足预设条件时,将对所述新的子集合中包含的待处理的共识请求的共识结果写入所述区块链,结束所述共识阶段。
[0062] 第四方面,本申请实施例提供一种电子设备,包括:
[0063] 处理器;以及
[0064] 被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
[0065] 确定待处理请求集合,所述待处理请求集合中包含待处理的共识请求;
[0066] 确定已处于共识阶段的子集合的数量,所述子集合由从所述待处理请求集合中获取到的待处理的共识请求构成;
[0067] 当已处于共识阶段的子集合的数量小于共识网络的预设并发数时,向所述共识网络发起对新的子集合的共识提议,使得所述新的子集合进入所述共识阶段进行共识请求的处理;其中,所述预设并发数为所述共识网络中允许同时处于所述共识阶段的子集合的数量上限。
[0068] 第五方面,本申请实施例提供一种电子设备,包括:
[0069] 处理器;以及
[0070] 被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
[0071] 确定待处理请求集合,所述待处理请求集合中包含待处理的共识请求;
[0072] 在接收到对新的子集合的共识提议之后,判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数;其中,所述子集合由主节点从所述待处理请求集合中获取到的待处理的共识请求构成;
[0073] 若已处于共识阶段的子集合的数量小于共识网络的预设并发数,则所述新的子集合进入所述共识阶段,进行共识请求的处理。
[0074] 本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
[0075] 一方面,从待处理请求集合中获取一批待处理的共识请求构成子集合,并以子集合为单位,发起对这一批请求的共识提议,有利于提高对共识请求的处理效率。
[0076] 再一方面,在共识网络中设定预设并发数,允许多个子集合处于共识阶段进行共识请求的处理,使得共识网络可以并行的处理多条待处理的共识请求,从而有利于提高对共识请求的处理效率,提升了共识网络的处理性能。附图说明
[0077] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0078] 图1为本申请实施例提供的一种区块链共识网络中处理共识请求的方法的流程示意图;
[0079] 图2为本申请实施例提供的另一种区块链共识网络中处理共识请求的方法的流程示意图;
[0080] 图3为本申请实施例提供的一种区块链共识网络中处理共识请求的装置的结构示意图;
[0081] 图4为本申请实施例提供的第二种区块链共识网络中处理共识请求的装置的结构示意图;
[0082] 图5为本申请实施例提供的一种电子设备的结构示意图;
[0083] 图6为本申请实施例提供的另一种电子设备的结构示意图。

具体实施方式

[0084] 为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0085] 以下结合附图,详细说明本申请各实施例提供的技术方案。
[0086] 参见图1所示,本申请实施例提供一种区块链共识网络中处理共识请求的方法,包括:
[0087] S101:确定待处理请求集合,待处理请求集合中包含待处理的共识请求;
[0088] S103:确定已处于共识阶段的子集合的数量,子集合由从待处理请求集合中获取到的待处理的共识请求构成;
[0089] S105:当已处于共识阶段的子集合的数量小于共识网络的预设并发数时,向共识网络发起对新的子集合的共识提议,使得新的子集合进入共识阶段进行共识请求的处理;其中,预设并发数为共识网络中允许同时处于共识阶段的子集合的数量上限。
[0090] 上述实施例中的共识网络,可以理解为是区块链系统中能够参与共识过程的多个节点所构成的网络。在共识网络中,同一时刻只有一个主节点,负责捞取待处理的共识请求以构成子集合,对这些子集合进行编号、排序,进而依次发起对这些子集合的共识提议,以便进一步完成对待处理的共识请求的共识。图1所示的实施例适用于共识网络中的主节点,主要体现了主节点如何发起共识提议进而完成共识请求处理的方法。
[0091] 在本申请实施例所称的共识网络中,可以参考例如三阶段共识(包括预准备阶段pre-prepare、准备阶段prepare和确认阶段commit)等机制进行共识请求的处理。待处理的共识请求所在的子集合被提议共识后,该子集合将进入共识阶段;在该子集合处于共识阶段时,共识网络对该子集合中的待处理的共识请求进行共识;当满足预设条件时,如当该子集合中的所有待处理的共识请求都已得到确定的共识结果时,将对该子集合中包含的待处理的共识请求的共识结果写入区块链,至此,该子集合结束共识阶段,该子集合中的待处理的共识请求也都处理完毕。
[0092] 具体地,区块链系统的一个或多个客户端(又可称作Client)将待执行的共识请求发送到区块链中提供共识服务的节点,这些提供共识服务的节点构成共识网络,在共识网络中又可以称为副本节点(又可称作replicas)。待执行的共识请求用于请求共识网络中的副本节点对相应的事项进行共识,形成共识结果并将共识结果写入区块链。在共识网络中的每个副本节点(replicas)都会收到客户端(Client)发送来的待处理的共识请求。各副本节点,包括当前时刻的主节点(又可称作primary)和备份节点(又可称作backups,为共识网络中主节点以外的副本节点),可以对接收到的待处理的共识请求进行格式检查,若格式检查通过,则将待处理的共识请求存入待处理请求集合,可记为P。更具体地,待处理请求集合可以缓存在主节点的缓存池中。
[0093] 需要说明的是,共识网络中的主节点并非一成不变的,而可以采用视图切换协议(又可称作view change协议)在各共识节点(即副本节点)中进行切换。例如,协议可以约定每一副本节点充当主节点的时间,定期进行主节点的切换。协议也可以由当前时刻充当备份节点的副本节点在一定条件下提出切换视图的申请,例如,当认为主节点作恶,出现错误,或通过timeout机制检测到主节点已经宕机时,备份节点可以触发view change协议选举出新的主节点。当共识网络中针对这一切换视图的申请达成一致意见时,即可进行视图的切换,改变主节点。视图与主节点之间的对应关系可以由视图切换协议确定,例如,可以约定,编号为1的视图对应编号为1的副本节点,编号为2的视图对应编号为2的副本节点,依此类推;则当切换到编号为1的视图时,编号为1的副本节点充当主节点,等等。
[0094] 主节点执行步骤S101确定待处理请求集合后,可以进一步执行步骤S103,确定已处于共识阶段的子集合的数量。其中,子集合由从待处理请求集合中获取到的待处理的共识请求构成的,可以是主节点在执行步骤S101之后,从待处理请求集合P中获取(也可称作捞取)一批待处理的共识请求,构成子集合。在捞取时,可遵循一定的预设规则,例如,可约定捞取请求的条数,每次捞取100条待处理共识请求;可约定从多个缓存池中平均的捞取待处理的共识请求等。在捞取时的具体规则可以通过对副本节点的配置进行调整,本申请实施例对此不做限定。
[0095] 还可以理解到的是,当某条待处理的共识请求从待处理请求集合中被捞取构成子集合后,可以将该条待处理的共识请求从待处理请求集合中删除,也可以对其置以标识信息以便不再被捞取构成其他子集合,从而避免对待处理的共识请求进行重复处理。
[0096] 在执行步骤S103,确定已处于共识阶段的子集合的数量时,有多种可行的具体方案。例如,可以设置一计数器,当某一子集合进入共识阶段时,该计数器的值加1;当某一子集合结束共识阶段时,该计数器的值减1。因此,通过读取该计数器的值,就能够确定已处于共识阶段的子集合的数量,进而可以进行后续步骤确定是否可以发起共识提议。
[0097] 在本申请实施例中,优选对子集合进行连续递增编号,并根据编号的数值大小确定已处于共识阶段的子集合的数量。具体的,在从待处理请求集合中获取待处理的共识请求,构成子集合之后,还进一步为子集合分配序列号,序列号为连续单调递增的自然数,即稠密自然数。
[0098] 需要说明的是,从待处理请求集合中捞取待处理的共识请求构成子集合的过程,可以在确定了待处理请求集合后按照一定的规则直接捞取待处理的共识请求,构成多个子集合,可以存在缓存中供读取。此时,可以为多个子集合分配连续单调递增的自然数作为子集合的序列号,在对新的子集合发起新的共识提议时,也依据序列号的先后顺序发起,即在后发起共识提议的子集合的序列号比在先发起共识提议的子集合的序列号多1。那么相应地,在要发起新的共识提议时,可以在当前时刻最后被提议共识的子集合的序列号(即稍后将要介绍的第二序列号)的基础上加1,作为新的子集合的序列号;再依据新的子集合的序列号,确定新的子集合。
[0099] 从待处理请求集合中捞取待处理的共识请求构成子集合的过程,也可以在满足发起新的共识提议的条件时,再进行待处理共识请求的捞取,构成新的子集合并对该新的子集合发起共识提议。此时,可以在构成新的子集合后,在当前时刻最后被提议共识的子集合的序列号(即稍后将要介绍的第二序列号)的基础上加1,作为新的子集合的序列号。相对于前文所述的捞取请求构成子集合的方式,这种方式因实现复杂度更低而可作为优选。
[0100] 在对子集合进行连续单调递增的编号后,上述步骤S103的实现,可以具体包括:
[0101] 依据已结束共识阶段的子集合的序列号,确定第一序列号;依据已进入共识阶段的子集合的序列号,确定第二序列号;
[0102] 依据第一序列号和第二序列号,确定已处于共识阶段的子集合的数量。
[0103] 进一步地,依据已结束共识阶段的子集合的序列号,确定第一序列号,可以包括:将已结束共识阶段的多个子集合的序列号中的最大者,确定为第一序列号;
[0104] 依据已进入共识阶段的子集合的序列号,确定第二序列号,可以包括:将已进入共识阶段的多个子集合的序列号中的最大者,确定为第二序列号;
[0105] 则依据第一序列号和第二序列号,确定已处于共识阶段的子集合的数量,包括:将第一序列号和第二序列号的差值,确定为处于共识阶段的子集合的数量。
[0106] 需要说明的是,第一序列号和第二序列号的确定过程,在顺序上不做要求,可以同时并行进行,也可以以任意顺序串行进行。
[0107] 还需要说明的是,已结束共识阶段的子集合,表示该子集合中的待处理的共识请求已经过成功共识,并且,共识的结果已成功入链,即表示该子集合中的待处理的共识请求已处理完毕。此时,为保证区块链数据的一致性,在将某子集合的共识结果写入区块链之前,需要进行预设条件的判断,如共识网络的各副本节点需要确保序列号在该子集合的序列号之前的子集合已结束共识阶段,完成共识结果的入链。因此,可以将已结束共识阶段的多个子集合的序列号中的最大者,确定为第一序列号,使得第一序列号代表主节点所知的最新被成功共识且共识结果已成功入链的子集合的序列号。
[0108] 还需要说明的是,已进入共识阶段的子集合,表示该子集合中的待处理的共识请求已被发起共识提议,正处于共识阶段。如前所述,由于按照序列号的大小顺序依次对相应的子集合发起共识提议,因此,可以将已进入共识阶段的多个子集合的序列号中的最大者,确定为第二序列号,使得第二序列号代表主节点所知的最新发起了共识提议的子集合的序列号。
[0109] 因此,上述第一序列号和第二序列号的差值,就表示已经被发起共识提议但尚未完成共识请求处理的子集合的数量,从而可以将该差值确定为处于共识阶段的子集合的数量。
[0110] 在执行步骤S103确定已处于共识阶段的子集合的数量之后,主节点进一步判断处于共识阶段的子集合的数量是否小于共识网络的预设并发数。若处于共识阶段的子集合的数量等于共识网络的预设并发数,表示共识网络已无法接纳新的子集合进入共识阶段,则主节点将等待条件满足时再对新的子集合发起共识提议。而若处于共识阶段的子集合的数量小于共识网络的预设并发数,则表示共识网络还能够接纳新的子集合进入共识阶段,则主节点可以依据上述的第二序列号确定新的子集合及其序列号,进而向共识网络发起对新的子集合的共识提议,使得新的子集合进入共识阶段。本领域技术人员能够理解的是,正常情况下,共识网络中不会出现“处于共识阶段的子集合的数量大于共识网络的预设并发数”这一情况。而一旦出现,则表示主节点可能出现序列号分配错误等异常状态,或者表示共识网络已经存在某种异常,则共识网络中的各副本节点可以触发视图切换协议以进行主节点的切换,也可以采取其他救济措施。
[0111] 特别说明的是,对于其他作为备份节点的副本节点而言,也可以对主节点发起的共识提议是否进行验证。在验证时,也需要判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数。具体实现时,备份节点可以根据自己所知的最新发起了共识提议的子集合的序列号(相当于第二序列号)和最新被成功共识且共识结果已成功入链的子集合的序列号(相当于第一序列号)进行判断和验证。
[0112] 还需说明的是,主节点在发起共识提议时,应以合法的共识提议消息的形式向共识网络中所有副本节点广播,从而发起针对新的子集合的这轮共识。主节点发送的共识提议中,可以包括主节点的签名信息,子集合的序列号,子集合的消息摘要等内容,供接收到共识提议的副本节点对该提议进行检查。
[0113] 以上阐述从不同度介绍了本申请实施例在发起新的共识提议时多种可选的具体实施方式。事实上,在待处理请求集合中的请求尚未全部处理完毕时,可以循环执行上述步骤S103和步骤S105,即在执行S105向共识网络发起对新的子集合的共识提议,使得新的子集合进入共识阶段之后,若待处理请求集合中仍然有未发起共识提议的待处理的共识请求,则主节点可返回执行步骤S103,重新确定已处于共识阶段的子集合的数量,以便判断是否可对新的子集合发起新的共识提议。依此类推,直至所有的待处理共识请求全部处理完毕,成功取得共识结果且共识结果成功入链。类似地,在将对新的子集合中包含的待处理的共识请求的共识结果写入区块链之后,也需要重新确定已处于共识阶段的子集合的数量,以便确定共识网络是否可接纳新的子集合,进而确定是否可对新的子集合发起新的共识提议。
[0114] 现进一步举例说明主节点在判断是否可以针对新的子集合发起新的共识提议时的具体过程。假设预设并发数(记为w)取为5,最新被成功共识且共识结果被成功入链(可以理解为该子集合中所有待处理的共识请求被成功执行)的子集合的序列号(记为e)取为91,最新被发起共识提议的子集合的序列号记为p,则“处于共识阶段的子集合的数量小于共识网络的预设并发数”这一条件,可以表示为:e≤p<(e+w)。在w=5,e=91的情况下,若要满足“e≤p
[0115] 进一步地,在将对新的子集合中包含的待处理的共识请求的共识结果写入区块链时,为了确保区块链数据的一致性,需要按照接收到待处理的共识请求的时间顺序,将共识结果写入区块链。换言之,在将多个子集合所包含待处理的共识请求的共识结果写入区块链时,若采用以上举例的方式(连续单调递增)进行序列号的分配,则应先写入序列号在先的子集合所对应的共识结果,后写入序列号在后的子集合所对应的共识结果;而对每一子集合而言,应按照待处理的共识请求在其子集合内的时间顺序,将请求所对应的共识结果写入区块链。
[0116] 在上述本申请实施例中,一方面,从待处理请求集合中获取一批待处理的共识请求构成子集合,并以子集合为单位,发起对这一批请求的共识提议,有利于提高对共识请求的处理效率。再一方面,在共识网络中设定预设并发数,允许多个子集合同时处于共识阶段进行共识请求的处理,使得共识网络可以并行的处理多条待处理的共识请求,从而分属于不同子集合的待处理的共识请求之间允许并行乱序处理,有利于提高对共识请求的处理效率,提升了共识网络的处理性能。
[0117] 本申请实施例还提供了一种区块链共识网络中处理共识请求的方法,适用于参与共识的各副本节点,具体流程参见图2所示,包括:
[0118] S201:确定待处理请求集合,待处理请求集合中包含待处理的共识请求;
[0119] S203:在接收到对新的子集合的共识提议之后,判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数;
[0120] S205:若已处于共识阶段的子集合的数量小于共识网络的预设并发数,则新的子集合进入共识阶段,进行共识请求的处理。
[0121] 对于各参与共识服务的副本节点而言,与前述主节点类似地,都会接收到客户端发送来的待处理的共识请求。各副本节点对接收到的请求消息进行格式检查后,将格式检查通过的待处理的共识请求放入待处理请求集合中。
[0122] 各副本节点可检查自己是否为共识网络当前时刻的主节点,若为主节点,则可进一步参照图1所示的方法确定是否发起新的共识提议;若不是主节点,则作为备份节点的副本节点将等待主节点发起的共识提议。
[0123] 当副本节点接收到主节点对新的子集合发起的共识提议之后,副本节点将执行步骤S203,判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数,即副本节点在接收到新的共识提议后,也会对该共识提议的发起是否合法、是否正确进行验证,这就有利于保证共识网络的正确性。而在此之前,还需确定已处于共识阶段的子集合的数量,具体的确定方法可以与主节点在发起共识提议前对已处于共识阶段的子集合的数量的确认方法一样,区别仅在于,各副本节点均依据自己所知的情况进行计算,此处不再赘述。
[0124] 需要说明的是,副本节点在接收到主节点发送的共识提议之后,还可以检查接收到的共识提议格式上是否合法,该共识提议是否满足接受该提议的三阶段共识协议的条件,例如主节点的签名是否合法、是否已接受序列号相同但消息摘要不同的共识提议等。若各项检查均通过,新的子集合进入共识阶段,进行共识请求的处理。
[0125] 更具体地,新的子集合进入共识阶段,进行共识请求的处理,可包括:
[0126] 对新的子集合中包含的待处理的共识请求进行共识;
[0127] 当满足预设条件时,如序列号在新的子集合的序列号之前的子集合已结束时,共识阶段将对新的子集合中包含的待处理的共识请求的共识结果写入区块链,结束共识阶段。
[0128] 更具体地,对新的子集合中包含的待处理的共识请求进行共识的过程,可以采用三阶段共识机制来进行。需要特别说明的是,对每一条待处理的共识请求所进行的三阶段共识,需按照三个阶段的顺序串行进行,以便保证共识结果的正确性。
[0129] 以上本申请实施例所提供的区块链共识网络中处理共识请求的方法,适用于拜占庭容错的多副本状态机(State Machine Replication)算法。通用的拜占庭容错状态机副本实现,其最重要的组件是一套拜占庭容错的全序广播(Total Order Broadcast)协议的实现。这是因为,状态机副本模型需要满足四个基本性质:
[0130] 1、对于任意两个正确的副本r和r',若它们都对状态s应用操作o,则r与r'都将到达状态s'。
[0131] 2、任意两个正确的副本r和r'的状态都始于s0。
[0132] 3、任意两个正确的副本r和r'都执行相同的操作序列:o0,o1,...,oi。
[0133] 4、来自正确客户端的操作请求总是会被执行。
[0134] 而性质3与性质4就要求区块链共识网络实现全序广播协议。
[0135] 采用本申请实施例即可实现满足要求的全序广播协议,具体方法大致如下:
[0136] 1、对每一个从待处理请求集合中捞取出的、由正确的待处理的共识请求构成的子集合,分配一个唯一的序列号,该序列号为稠密自然数,满足连续单调递增的条件;
[0137] 2、对每一个<子集合,序列号>对,在满足共识网络的预设并发数条件的情况下,依次发起一个三阶段共识,保证所有正确的副本节点就该<子集合,序列号>对中的每一条待处理的共识请求达成共识;
[0138] 3、对所有已达成共识的<子集合、序列号>对,所有正确的副本节点根据序列号依次顺序的执行对应的请求,将共识的结果写入区块链。
[0139] 更具体地,本申请实施例中,被发起共识提议的子集合中的每一条待处理的共识请求可采用以下三阶段共识的过程,得到共识的结果。具体过程可简述如下:
[0140] 1、预准备阶段(pre-prepare阶段)
[0141] 客户端向全网的副本节点广播待处理的共识请求。当前主节点针对客户端发送的请求,分配子集合,并相应的分配子集合的序列号。进一步地,当前主节点向全网的副本节点广播预准备消息(PRE-PREPARE消息),相当于本申请实施例中所述的共识提议。
[0142] 2、准备阶段(prepare阶段)
[0143] 副本节点收到当前主节点发送的预准备消息后,按照一定规则验证该消息并选择是否接受。若接受,则该副本节点向全网广播相应的准备消息(PREPARE消息);同时该副本等待并收集全网其他副本的准备消息。当副本收集到满足一定数量的合法的准备消息时,则称该副本获得了“已准备证书”(prepared certificate)。
[0144] 3、确认阶段(commit阶段)
[0145] 获得“已准备证书”的副本,立刻向全网广播相应的确认消息;同时等待并收集全网其他副本的确认消息。当副本收集到满足一定数量且合法的确认消息,则称该副本获得了“已确认证书”(committed certificate),相应的客户端请求此时可被该副本执行。
[0146] 本申请实施例采用以上所述的方法和手段,实现了对区块链共识网络中共识请求的处理,并提高了对共识请求的处理效率,提升了共识网络的处理性能。
[0147] 本申请实施例还提供一种区块链共识网络中处理共识请求的装置,参见图3所示,包括:
[0148] 集合确定模块101,确定待处理请求集合,待处理请求集合中包含待处理的共识请求;
[0149] 数量确定模块103,确定已处于共识阶段的子集合的数量,子集合由从待处理请求集合中获取到的待处理的共识请求构成;
[0150] 判断模块105,判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数。
[0151] 进一步地,上述装置还可包括,参见图4所示:
[0152] 共识提议发起模块107,当已处于共识阶段的子集合的数量小于共识网络的预设并发数时,向共识网络发起对新的子集合的共识提议,使得新的子集合进入共识阶段进行共识请求的处理;其中,预设并发数为共识网络中允许同时处于共识阶段的子集合的数量上限。
[0153] 进一步地,上述装置还可包括,参见图4所示:
[0154] 共识模块109,对新的子集合中包含的待处理的共识请求进行共识;
[0155] 入链模块111,当满足预设条件时,将对新的子集合中包含的待处理的共识请求的共识结果写入区块链,结束共识阶段。
[0156] 由于上述装置与前文实施例中所介绍的方法相对应,因此,前文实施例中的相关描述均适用于此处所称的区块链共识网络中处理共识请求的装置,不再赘述。
[0157] 图5是本申请的一个实施例电子设备的结构示意图。请参考图5,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
[0158] 处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。总线可以分为地址总线数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0159] 存储器,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
[0160] 处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成区块链共识网络中处理共识请求的装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
[0161] 确定待处理请求集合,待处理请求集合中包含待处理的共识请求;
[0162] 确定已处于共识阶段的子集合的数量,子集合由从待处理请求集合中获取到的待处理的共识请求构成;
[0163] 当已处于共识阶段的子集合的数量小于共识网络的预设并发数时,向共识网络发起对新的子集合的共识提议,使得新的子集合进入共识阶段进行共识请求的处理;其中,预设并发数为共识网络中允许同时处于共识阶段的子集合的数量上限。
[0164] 上述如本申请图1所示实施例揭示的区块链共识网络中处理共识请求的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0165] 该电子设备还可执行图1中区块链共识网络中处理共识请求的装置执行的方法,并实现区块链共识网络中处理共识请求的装置在图1所示实施例的功能,本申请实施例在此不再赘述。
[0166] 本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中区块链共识网络中处理共识请求的装置执行的方法,并具体用于执行:
[0167] 确定待处理请求集合,待处理请求集合中包含待处理的共识请求;
[0168] 确定已处于共识阶段的子集合的数量,子集合由从待处理请求集合中获取到的待处理的共识请求构成;
[0169] 当已处于共识阶段的子集合的数量小于共识网络的预设并发数时,向共识网络发起对新的子集合的共识提议,使得新的子集合进入共识阶段进行共识请求的处理;其中,预设并发数为共识网络中允许同时处于共识阶段的子集合的数量上限。
[0170] 图6是本申请的一个实施例电子设备的结构示意图。请参考图6,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
[0171] 处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0172] 存储器,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
[0173] 处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成区块链共识网络中处理共识请求的装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
[0174] 确定待处理请求集合,待处理请求集合中包含待处理的共识请求;
[0175] 在接收到对新的子集合的共识提议之后,判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数;其中,子集合由主节点从待处理请求集合中获取到的待处理的共识请求构成;
[0176] 若已处于共识阶段的子集合的数量小于共识网络的预设并发数,则新的子集合进入共识阶段,进行共识请求的处理。
[0177] 上述如本申请图2所示实施例揭示的区块链共识网络中处理共识请求的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0178] 该电子设备还可执行图2中区块链共识网络中处理共识请求的装置执行的方法,并实现区块链共识网络中处理共识请求的装置在图2所示实施例的功能,本申请实施例在此不再赘述。
[0179] 本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图2所示实施例中区块链共识网络中处理共识请求的装置执行的方法,并具体用于执行:
[0180] 确定待处理请求集合,待处理请求集合中包含待处理的共识请求;
[0181] 在接收到对新的子集合的共识提议之后,判断已处于共识阶段的子集合的数量是否小于共识网络的预设并发数;其中,子集合由主节点从待处理请求集合中获取到的待处理的共识请求构成;
[0182] 若已处于共识阶段的子集合的数量小于共识网络的预设并发数,则新的子集合进入共识阶段,进行共识请求的处理。
[0183] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0184] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0185] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0186] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0187] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0188] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0189] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0190] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0191] 本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0192] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈