一种区块链网络连接方法及装置转让专利

申请号 : CN202110335847.5

文献号 : CN112954074B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郝威峰严闪光尹三文

申请人 : 北京三快在线科技有限公司

摘要 :

本说明书公开了一种区块链网络连接方法及装置。从参与区块链网络连接的节点中确定各聚类中心节点,并确定该区块链网络的网络中心节点。根据非聚类中心节点、聚类中心节点以及网络中心节点三者间的距离,确定各非聚类中心节点所属的簇。针对每个节点,根据该节点与所属簇中各其他节点的历史通信数据,确定各其他节点对于该节点的传输稳定值,以对该节点与所属簇中其他节点进行网络连接。确定各簇中的路由节点,根据确定出的传输稳定值,确定各路由节点的簇内稳定值,以及各路由节点间的簇间稳定值,以进行路由节点间的网络连接,使该区块链网络通过簇内节点的网络连接以及路由节点间的网络连接进行通信。使连接的区块链网络稳定且数据传输效率高。

权利要求 :

1.一种区块链网络连接方法,其特征在于,包括:根据参与区块链网络连接的各节点的网络位置特征,确定各聚类中心节点,并从各聚类中心节点中确定所述区块链网络的网络中心节点;

根据各非聚类中心节点与各聚类中心节点的距离、各非聚类中心节点与所述网络中心节点的距离以及各聚类中心节点与所述网络中心节点的距离,对各非聚类中心节点进行聚类,确定各非聚类中心节点所属的簇;

针对所述区块链网络中的每个节点,根据该节点与所属簇中各其他节点的历史通信数据,确定各其他节点对于该节点的传输稳定值,以依次对该节点与所属簇中的各其他节点进行网络连接;

针对每个簇,确定该簇中的路由节点,并根据确定出的传输稳定值,确定所述路由节点的簇内稳定值;

根据各簇的路由节点的簇内稳定值,确定各路由节点之间的簇间稳定值,以依次进行各路由节点间的网络连接,使所述区块链网络通过簇内节点的网络连接以及簇间路由节点的网络连接进行通信。

2.如权利要求1所述的方法,其特征在于,所述方法还包括:针对每个簇中的每个节点,该节点向所属簇中各其他节点广播在线探测信息,并接收各其他节点发送的在线探测信息;

按照接收在线探测信息的顺序,从发送在线探测信息的节点中,确定该节点对应的探测节点,并将其他发送在线探测信息的节点作为订阅节点;

向所述探测节点返回包含各订阅节点标识的探测反馈信息,使所述探测节点继续向该节点发送在线探测信息,以及向各订阅节点返回该节点的订阅反馈信息。

3.如权利要求2所述的方法,其特征在于,所述方法还包括:所述探测节点当在预设时间内未收到该节点的探测反馈信息时,确定该节点失常;

根据各订阅节点的标识,向各订阅节点发送该节点的状态反馈信息。

4.如权利要求1所述的方法,其特征在于,根据该节点与所属簇中各其他节点的历史通信数据,确定各其他节点对于该节点的传输稳定值,具体包括:根据该节点与所属簇中各其他节点在预设时间内传输数据成功的次数以及传输数据失败的次数,确定该节点与所属簇中各其他节点的传输参数,其中,该节点所属簇中各其他节点为与该节点进行过数据传输的节点;

根据该节点所属簇中的认证节点,获取该节点所属簇中各其他节点的历史稳定值;

根据确定出的传输参数以及历史稳定值,确定各其他节点对于该节点自身的直接稳定值,分别作为各其他节点对于该节点的传输稳定值。

5.如权利要求4所述的方法,其特征在于,所述方法还包括:在该节点所属的簇中,确定与该节点以及至少一个其他节点进行过数据传输的节点,作为中间节点;

根据各其他节点对于各中间节点的直接稳定值,以及各中间节点对于该节点的直接稳定值,确定各中间节点的间接稳定值;

根据各中间节点的间接稳定值,确定各其他节点对于该节点的间接稳定值;

根据各其他节点对于该节点的直接稳定值以及各其他节点对于该节点的间接稳定值,确定各其他节点对于该节点的传输稳定值。

6.如权利要求4所述的方法,其特征在于,确定各路由节点的簇内稳定值,具体包括:针对每个路由节点,确定该路由节点所属簇中的各其他节点为目标节点;

针对每个目标节点,确定该路由节点对于该目标节点的直接稳定值,并确定该路由节点所属簇中除该目标节点外的其他节点对于该目标节点的直接稳定值;

根据该路由节点对于各目标节点的直接稳定值,以及除该目标节点外的各其他节点对于该目标节点的直接稳定值,确定该路由节点的簇内稳定值。

7.如权利要求1所述的方法,其特征在于,依次对该节点与所属簇中的各其他节点进行网络连接,具体包括:

将该节点所属簇中其他节点对于该节点的传输稳定值进行排序,根据排序结果依次使该节点所属簇中其他节点与该节点进行网络连接。

8.一种区块链网络连接装置,其特征在于,包括:确定模块,用于根据参与区块链网络连接的各节点的网络位置特征,确定各聚类中心节点,并从各聚类中心节点中确定所述区块链网络的网络中心节点;

聚簇模块,用于根据各非聚类中心节点与各聚类中心节点的距离、各非聚类中心节点与所述网络中心节点的距离以及各聚类中心节点与所述网络中心节点的距离,对各非聚类中心节点进行聚类,确定各非聚类中心节点所属的簇;

簇内连接模块,用于针对所述区块链网络中的每个节点,根据该节点与所属簇中各其他节点的历史通信数据,确定各其他节点对于该节点的传输稳定值,以依次对该节点与所属簇中的各其他节点进行网络连接;

路由确定模块,用于针对每个簇,确定该簇中的路由节点,并根据确定出的传输稳定值,确定所述路由节点的簇内稳定值;

簇间连接模块,用于根据各簇的路由节点的簇内稳定值,确定各路由节点之间的簇间稳定值,以依次进行各路由节点间的网络连接,使所述区块链网络通过簇内节点的网络连接以及簇间路由节点的网络连接进行通信。

9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~7任一项所述的方法。

10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~7任一项所述的方法。

说明书 :

一种区块链网络连接方法及装置

技术领域

[0001] 本说明书涉及网络通信领域,尤其涉及一种区块链网络连接方法及装置。

背景技术

[0002] P2P(Peer to peer)网络是一种对等计算机网络。网络的参与者共享他们所拥有的一部分硬件资源,如处理能力、存储能力等。网络中的节点(Peer)既是资源、服务和内容
的提供者,又是获取者。
[0003] P2P技术被广泛应用于多个领域,如流媒体直播、聊天应用的开发、区块链网络的连接等。在基于P2P的区块链网络连接领域中,区块链网络的结构和网络中节点连接的方式
影响着网络的稳定性、节点间传输数据的成功率以及传输效率。目前,一些区块链网络的连
接方法由于网络结构不合理,导致区块链网络存在稳定性较差、节点间传输数据失败率较
高、节点间传输数据的效率低等问题,且容易造成网络资源的浪费。

发明内容

[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] 图1为本说明书中一种区块链网络连接方法的流程示意图;
[0046] 图2为本说明书提供的一种节点分簇示意图;
[0047] 图3a为本说明书提供的一种节点探测示意图;
[0048] 图3b为本说明书提供的一种节点探测示意图;
[0049] 图3c为本说明书提供的一种节点探测示意图;
[0050] 图3d为本说明书提供的一种节点探测示意图;
[0051] 图4为本说明书提供的一种区块链网络连接装置的示意图;
[0052] 图5为本说明书提供的对应于图1的电子设备的结构示意图。

具体实施方式

[0053] 为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本
说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人
员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
[0054] 目前,在区块链网络中的节点进行网络连接时,通常是由区块链网络中的节点间自主进行随机的网络连接,这样连接形成的区块链网络的网络结构的合理性难以保障,整
个区块链网络传输数据的成本较高,且容易造成网络资源的浪费。在建立了网络连接之后,
区块链网络中的节点需要向所有与自身进行了网络连接的节点发送心跳信号,以进行节点
状态的探测和网络连接的维持,导致探测节点状态和维持网络连接的成本较高。并且在短
时间内,节点间难以通过随机连接形成稳定的区块链网络,使区块链网络在较长时间内处
于不稳定的阶段,导致节点间传输数据的成功率较低。
[0055] 为了解决现有在区块链网络中的节点进行网络连接时区块链网络传输成本高、节点间传输数据的成功率较低等问题,本说明书提供了一种区块链网络连接方法。
[0056] 以下结合附图,详细说明本说明书各实施例提供的技术方案。
[0057] 图1为本说明书中一种区块链网络连接方法的流程示意图,具体包括以下步骤:
[0058] S100:根据参与区块链网络连接的各节点的网络位置特征,确定各聚类中心节点,并从各聚类中心节点中确定所述区块链网络的网络中心节点。
[0059] 在本说明书中,通过将参与区块链网络连接的各节点进行聚类分簇的方法,将各节点划分至不同的网络簇。同簇中进行了网络连接的各节点可直接进行通信,以及发送心
跳信号以检测是否存在因出现故障等原因而离线的节点。不同簇可通过自身簇中的路由节
点进行通信。
[0060] 在本说明书一个或多个实施例中,可以通过聚类算法对参与区块链网络连接的各节点进行聚类分簇,例如,k‑means算法,当然也可以使用其他聚类方法,具体可根据需要设
置,本说明书在此不做限制。根据参与区块链网络连接的节点总数确定网络簇的数量,确定
网络簇数量的公式如下:
[0061]
[0062] 其中,M表示待确定的网络簇的数量,N为参与区块链网络连接的节点总数,logN表示各网络簇中的节点期望数量。后续步骤中,以聚类得到的各网络簇中节点数量是logN为
目标进行聚类,当然最终聚类得到的各网络簇中的节点数量可以不等于logN。
[0063] 在本说明书一个或多个实施例中,在确定出网络簇数量之后,可确定各个网络簇的聚类中心节点,以便于在后续步骤中基于各聚类中心节点进行其他节点的分簇和聚类。
具体的,在确定各个网络簇的聚类中心节点时,首先可根据参与区块链网络连接的各节点
的网络位置特征,从各节点中选取出J个网络位置分散的节点,作为各网络簇的聚类中心节
点的候选节点,并且J>M,即候选节点的数量大于网络簇数量。通过路由追踪来确定各候选
节点间的路由跳数,以根据各候选节点的路由跳数,确定各聚类中心节点。
[0064] 其中,该网络位置特征为能够表示参与区块链网络连接的各节点间的相对位置或网络距离等节点关系的特征,从该网络位置特征中能够获取各节点的地理位置以及节点工
作量等信息。基于该网络位置特征中各节点的地理位置,可从各节点中选取地理位置较为
分散的节点作为聚类中心节点的候选节点,以使后续根据各聚类节点聚类得到的各网络簇
足够分散。具体怎样选取地理位置较为分散的节点作为聚类中心节点的候选节点,可根据
需要设置,本说明书在此不做限制。例如,可预设距离阈值,节点间距离大于该距离阈值的
节点可视为位置较为分散的节点。
[0065] 在本说明书一个或多个实施例中,在确定各聚类中心节点时,可根据各候选节点的路由跳数,从候选节点中选取一对距离最远的候选节点作为聚类中心节点,并从余下的
候选节点中继续选取一对距离最远的候选节点作为聚类中心节点,直到得到的聚类中心节
点的数量等于M为止,确定从各候选节点中选出各聚类中心节点。其中,最终确定出的各聚
类中心节点对应不同的网络簇。
[0066] 在本说明书一个或多个实施例中,可通过域名系统(Domain Name System,DNS)代理服务器存储该区块链网络中各节点的互联网协议地址(Internet Protocol Address,
IP),并通过ping命令确定各聚类中心节点间的网络延迟。在确定出各聚类中心节点后,可
根据各聚类中心节点的地理位置以及各聚类中心节点间的网络延迟,从各聚类中心节点中
确定网络中心节点,该网络中心节点为各聚类中心节点中最接近于该区块链网络的几何中
心的节点,即该网络中心节点在地理位置上更接近于该区块链网络的中心,且该网络中心
节点与其他聚类中心节点间的网络延迟不高于预设值。
[0067] 上述对节点进行聚类的过程,目的是使各网络簇内的节点在网络位置上不会过于分散影响通信效率,而以logN为网络簇中节点期望数量,并通过依次选择距离最远的候选
节点,作为聚类中心节点,目的是使各网络簇内的节点数量差异减少,避免某个网络簇中节
点数量较多,或某个网络簇中节点数据量较少的情况出现,使每个簇内节点之间相互通信
的成本(包括网络传输的时间成本、需要传输信息的节点数量导致的成本等)保持在可承受
的范围内。
[0068] S102:根据各非聚类中心节点与各聚类中心节点的距离、各非聚类中心节点与所述网络中心节点的距离以及各聚类中心节点与所述网络中心节点的距离,对各非聚类中心
节点进行聚类,确定各非聚类中心节点所属的簇。
[0069] 在本说明书一个或多个实施例中,在确定出各聚类中心节点以及该区块链网络的网络中心节点后,可根据参与区块链网络连接的所有节点中各非聚类中心节点与各聚类中
心节点的距离、各非聚类中心节点与该网络中心节点的距离以及各聚类中心节点与该网络
中心节点的距离,对各非聚类中心节点进行聚类,确定各非聚类中心节点所属的网络簇。
[0070] 在本说明书一个或多个实施例中,确定各非聚类中心节点所属的网络簇的公式具体如下:
[0071]
[0072] 其中,x表示非聚类中心节点,s表示聚类中心节点,c表示网络中心节点,D(x,s)表示该非聚类中心节点的聚簇值,ω1与ω2为预设的权重参数,d1(x,s)表示该非聚类中心节
点与该聚类中心节点的距离,d2(s,c)表示该聚类中心节点与该网络中心节点的距离,d3(x,
c)表示该非聚类中心节点与该网络中心节点的距离。
[0073] 在本说明书一个或多个实施例中,为了使各网络簇中的节点分散,在控制各网络簇中节点数量的前提下,对于每个非聚类中心节点,更倾向于聚类到离网络中心节点较远
的网络簇中。因此在得到该非聚类中心节点与各聚类中心节点的聚簇值D(x,s)后,最小的
聚簇值对应的聚类中心节点所属的网络簇即该非聚类中心节点所属的网络簇。
[0074] 图2为本说明书提供的一种节点分簇示意图,如图,图中第一个方框为选取出各聚类中心节点后该区块链网络中节点的分布情况,方框中各圆形表示各节点,其中,灰色节点
为聚类中心节点,白色节点为非聚类中心节点。图中第二个方框为从各聚类中心节点中选
取出网络中心节点后该区块链网络中节点的分布情况,其中,黑色节点即网络中心节点。图
中第三个方框为根据聚类中心节点、非聚类中心节点以及网络中心节点三种节点间的距离
对各非聚类中心节点进行聚类后,网络中的分簇情况,由同一个虚线框圈起的节点为同一
个簇中的节点。
[0075] S104:针对所述区块链网络中的每个节点,根据该节点与所属簇中各其他节点的历史通信数据,确定各其他节点对于该节点的传输稳定值,以对该节点与所属簇中的所述
其他节点进行网络连接。
[0076] 为了使该区块链网络中的节点在进行网络连接时,与状态较为稳定、能够长期处于正常状态的节点先进行网络连接,以加快整个区块链网络中节点的连接速度,并使连接
得到的区块链网络更加稳定、传输数据的成功率更高,在本说明书一个或多个实施例中,在
确定出各非聚类中心节点所属的网络簇之后,可针对每个节点,确定该节点所属簇中其他
节点对于该节点的直接稳定值,并确定其他节点对于该节点的传输稳定值,以根据其他节
点对于该节点的传输稳定值使该节点与其他节点进行网络连接。
[0077] 在本说明书一个或多个实施例中,针对区块链网络中的每个节点,可根据该节点所属簇中各其他节点的历史通信数据,确定该节点与该节点所属簇中各其他节点的传输参
数,并根据各其他节点的传输参数以及该节点所属簇中的认证节点存有的各其他节点的历
史稳定值,确定该节点所属簇中其他节点对于该节点的直接稳定值,并将其他节点对于该
节点的直接稳定值作为其他节点对于该节点的传输稳定值。
[0078] 其中,该节点自身所属簇中各其他节点是指与该节点进行过数据传输的节点。该历史通信数据包括各其他节点在预设时间内与该节点传输数据成功和传输数据失败的次
数。其他节点对于该节点的传输稳定值用于表示对该节点来说其他节点与该节点进行数据
传输的稳定程度。对于未与该节点进行过数据传输的节点,可将预设的初始值作为其对于
该节点自身的直接稳定值,例如,该初始值可以为零或其他数值,具体可根据需要设置,本
说明书在此不做限制。该历史稳定值是能够表示其他节点历史上传输数据的稳定程度的数
据,例如,其他节点的历史失常次数,或该其他节点历史上对于所属簇中各节点的传输稳定
值的均值、中位数等。
[0079] 在本说明书一个或多个实施例中,确定直接稳定值的公式具体如下:
[0080]
[0081] 其中,a表示该节点,b表示其他节点, 表示该节点与该节点自身所属簇中其他节点的传输参数,CAb表示该其他节点b的历史稳定值,DTrab表示该其他节点对于该节
点a的直接稳定值,λ与μ为预设的参数,且都为非负数。
[0082] 在本说明书一个或多个实施例中,还可以确定在该节点所属的簇中,与该节点以及与该节点所属簇中至少一个其他节点进行过数据传输的节点,作为中间节点。并确定各
中间节点的间接稳定值,以确定各其他节点对于该节点自身的间接稳定值。
[0083] 具体的,可根据各其他节点对于各中间节点的直接稳定值,以及各中间节点对于该节点的直接稳定值,确定各中间节点的间接稳定值。并根据各中间节点的间接稳定值,确
定各其他节点对于该节点的间接稳定值。
[0084] 确定其他节点对于该节点的间接稳定值的公式具体如下:
[0085]
[0086] 其中,a表示该节点,b表示该其他节点,m表示中间节点,A(b)表示由中间节点组成的集合,InDTrab表示其他节点b对于该节点a的间接稳定值,DTram表示中间节点m对于该节
点的直接稳定值,DTrmb表示其他节点b对于该中间节点m的直接稳定值,DTram×DTrmb即为中
间节点m的间接稳定值。
[0087] 在本说明书一个或多个实施例中,在确定出各其他节点对于该节点的间接稳定值后,可根据各其他节点对于该节点的间接稳定值以及各其他节点对于该节点的直接稳定
值,确定各其他节点对于该节点的传输稳定值。
[0088] 在本说明书一个或多个实施例中,确定传输稳定值的公式具体如下:
[0089] Trab=α×DTrab+(1‑α)×InDTrab
[0090] 其中a表示该节点,b表示其他节点,α为预设的参数,Trab表示其他节点b对于该节点a的传输稳定值,DTrab表示其他节点b对于该节点a的直接稳定值,InDTrab表示其他节点b
对于该节点a的间接稳定值。
[0091] 在本说明书一个或多个实施例中,在确定出该节点所属簇中各其他节点对于该节点的传输稳定值之后,可将该节点所属簇中各其他节点对于该节点的传输稳定值进行排
序,以根据排序结果,从对于该节点传输稳定值高的其他节点开始依次将该节点所属簇中
其他节点与该节点进行网络连接,需要说明的是,与该节点进行网络连接的节点数量不高
于预设的节点数量值,该节点数量值具体可根据需要设置。如此,可以使在预设的节点数量
值内,与该节点进行连接的节点皆为传输稳定值高的节点,使节点间的连接更稳定,传输数
据成功率更高。
[0092] S106:针对每个簇,确定该簇中的路由节点,并根据确定出的传输稳定值,确定所述路由节点的簇内稳定值。
[0093] 在本说明书一个或多个实施例中,对于区块链网络的每个网络簇,在固定周期内从该网络簇内的节点中选取路由节点,使不同网络簇间通过路由节点进行通信。对于每个
路由节点,当该路由节点故障或该路由节点对应的周期结束,则重新进行路由节点的选取。
具体怎样进行路由节点的选取可根据需要设置,本说明书在此不做限制。
[0094] 在本说明书一个或多个实施例中,可根据确定出的传输稳定值,确定各路由节点的簇内稳定值。具体的,可针对每个路由节点,确定该路由节点所属簇中的各其他节点为目
标节点,并针对每个目标节点,确定该路由节点对于该目标节点的直接稳定值,以及确定该
路由节点所属簇中除该目标节点外的其他节点对于该目标节点的直接稳定值。根据该路由
节点对于各目标节点的直接稳定值,以及除该目标节点外的各其他节点对于该目标节点的
直接稳定值,确定该路由节点的簇内稳定值。
[0095] 在本说明书一个或多个实施例中,确定路由节点簇内稳定值的公式具体如下:
[0096]
[0097] 其中,spi表示路由节点,I表示该路由节点所属簇中的节点组成的集合,p与q为集合I中的节点,节点p不等于节点q,且q为目标节点,DTrpq表示目标节点q对于p的直接稳定
值, 表示路由节点对于目标节点q的直接稳定值, 表示该路由节点的簇内稳定
值。
[0098] S108:根据各簇的路由节点的簇内稳定值,确定各路由节点之间的簇间稳定值,以进行路由节点间的网络连接,使所述区块链网络通过簇内节点的网络连接以及簇间路由节
点的网络连接进行通信。
[0099] 在本说明书一个或多个实施例中,在确定出各网络簇的路由节点的簇内稳定值后,可根据各簇的路由节点的簇内稳定值,确定各路由节点之间的簇间稳定值,以进行路由
节点间的网络连接,使该区块链网络通过簇内节点的网络连接以及簇间路由节点的网络连
接进行通信。
[0100] 在本说明书一个或多个实施例中,确定各路由节点之间的簇间稳定值的公式如下:
[0101]
[0102] 其中,spi与spj表示路由节点, 表示路由节点spi的簇内稳定值, 表示路由节点spj的簇内稳定值, 表示路由节点spi与spj间的簇间稳定值。
[0103] 基于图1所示的区块链网络连接方法,首先从参与区块链网络连接的节点中确定各聚类中心节点,并确定该区块链网络的网络中心节点。根据非聚类中心节点、聚类中心节
点以及网络中心节点三者间的距离,确定各非聚类中心节点所属的簇。针对每个节点,根据
该节点与所属簇中各其他节点的历史通信数据,确定各其他节点对于该节点的传输稳定
值,以对该节点与所属簇中其他节点进行网络连接。确定各簇中的路由节点,根据确定出的
传输稳定值,确定各路由节点的簇内稳定值,以及各路由节点间的簇间稳定值,以进行路由
节点间的网络连接,使该区块链网络通过簇内节点的网络连接以及路由节点间的网络连接
进行通信。
[0104] 从上述方法中可以看出,本方法可通过预设各簇中节点的期望数量,确定网络簇的数量,并选取位置分散的聚类中心节点以及从中选取网络中心节点,以基于各节点、各聚
类中心节点、网络中心节点间的距离,对参与区块链网络连接的各节点进行聚类分簇,以尽
可能远离网络中心节点为目标,将不同节点聚类到不同聚类中心节点对应的簇中。如此,能
够在使每个簇中的节点数量尽可能接近期望数量的同时,让各网络簇分布均匀,并通过在
各簇中选取路由节点,使不同网络簇通过路由节点进行通信,降低了网络传输压力和通信
成本。另外,本方法通过确定各节点对于其他节点的传输稳定值,使各节点按照传输稳定值
从高到低的排序依次与对应的节点进行连接,能够加快整个区块链网络的连接速度,在使
连接得到的区块链网络足够稳定的同时,尽快达到可以使整个区块链网络进行广播的连接
状况,并能够提高节点间传输数据的成功率以及数据传输效率,减少网络资源的浪费。
[0105] 在本说明书提供的一个或多个实施例中,上述方法可用于节点数量固定的区块链网络中,例如联盟链或私有链。上述区块链网络连接的过程可由联盟链或私有链的服务器
执行,且该服务器仅用于确定各聚类中心节点、各路由节点、网络中心节点,以及进行聚类
分簇。在路由节点故障或周期结束后,新的路由节点可由该服务器选取也可由该路由节点
所属簇内的节点进行选取,具体可根据需要设置,本说明书在此不做限制。本说明书步骤
S104中的认证节点,是用于存储该区块链网络中各节点间的通信记录但不执行其他业务的
节点,也可以为执行该区块链网络连接过程的服务器,本说明书在此不做限制,该认证节点
可以有一个也可以有多个,具体可根据需要设置。另外,本说明书中参与区块链网络连接的
各节点为参与共识的节点,对于客户端节点即不参与共识但可以发起业务请求的节点,不
进行聚类分簇。
[0106] 在本说明书提供的一个或多个实施例中,该区块链网络中各节点间的连接具有周期性,当周期结束或网络不稳定时,可通过上述区块链网络连接方法重新进行区块链网络
的连接,以使区块链网络更加稳定。该区块链网络在最初进行连接时,由于节点间未进行过
数据传输,传输稳定值为零,则可随机进行网络连接,待连接一段时间后,再基于在该段时
间内节点间的历史通信数据确定传输稳定值,基于确定出的传输稳定值进行区块链网络的
连接。
[0107] 在现有的区块链网络连接方法中,通常是通过计算所有节点间的传输稳定值,以根据传输稳定值确定可信的节点,并随机从可信的节点中选取若干个节点作为中继节点,
之后,各节点与不同的中继节点进行网络连接,通过中继节点进行通信。可见,在确定可信
节点时,需要进行大量的计算,对网络资源的消耗较高,且中继节点的选取具有随机性,不
够可靠,使通过中继节点进行通信也不够可靠。另外,在计算两个节点间的传输稳定值时,
未考虑从第三节点(与该两个节点皆有连接的节点)角度确定该两个节点与该第三节点的
直接稳定值以综合确定该两个节点间的传输稳定值,使得到的传输稳定值较为片面,可靠
性较低。
[0108] 在本说明书提供的一个或多个实施例中,针对参与该区块链网络连接的每个节点,该节点可在通过上述方法进行了网络连接之后,从与该节点进行了连接的节点中确定
探测节点,以通过该探测节点与其他节点进行通信。具体的,针对每个簇中的每个节点,该
节点可以向自身所属簇中各其他节点广播在线探测信息,并接收各其他节点发送的在线探
测信息。该在线探测信息可视为一种心跳信号,用于探测节点是否失常。然后,该节点可按
照接收在线探测信息的顺序,从发送在线探测信息的节点中,确定该节点对应的探测节点。
例如,该节点可将接收到的首个在线探测信息对应的节点作为该节点对应的探测节点,并
将其他发送在线探测信息的节点作为订阅节点。在确定了探测节点之后,该节点可向该探
测节点返回包含各订阅节点标识的探测反馈信息,使该探测节点继续向该节点发送在线探
测信息,以及向各订阅节点返回包含该节点与该探测节点对应关系的订阅反馈信息,使各
订阅节点停止向该节点发送在线探测信息。
[0109] 或者,在本说明书提供的一个或多个实施例中,该节点可将接收到的前N个(N的数量可根据需要设置)在线探测信息对应的节点作为该节点对应的探测节点,将其他发送在
线探测信息的节点作为订阅节点。并针对每个探测节点,向该探测节点返回包含各订阅节
点标识以及其他探测节点标识的探测反馈信息,使各探测节点继续向该节点发送在线探测
信息。当然,具体怎样根据接收到的在线探测信息的顺序确定探测节点,可根据需要设置,
本说明书在此不做限制。
[0110] 图3a为本说明书提供的一种节点探测示意图,如图,A、B、C、D、E为该区块链网络中的节点。由双向箭头连接的两个节点表示进行了网络连接并进行了数据传输的节点,箭头
指向的节点为“在线探测信息”、“探测反馈信息”或“订阅反馈信息”的接收方。节点A为被节
点B、C、D探测是否失常的对象,节点E为被节点A探测是否失常的对象。可见,节点A向其他节
点广播在线探测信息的同时,接收其他节点发送的在线探测信息。节点D为节点A对应的探
测节点。节点A在根据接收到的在线探测信息的顺序,确定节点D为探测节点后,向探测节点
D发送探测反馈信息,并向订阅节点B、C发送订阅反馈信息。
[0111] 图3b为本说明书提供的一种节点探测示意图,如图,在节点A向探测节点返回探测反馈信息,并向订阅节点返回订阅反馈信息之后,仅由探测节点D继续向节点A发送在线探
测信息,以探测节点A是否处于正常状态。
[0112] 在本说明书提供的一个或多个实施例中,探测节点可以一定时间间隔,根据各订阅节点的标识,向各订阅节点发送该节点的状态反馈信息,以通知各订阅节点该节点处于
正常状态。当探测节点在预设时间内未收到该节点的探测反馈信息时,则探测节点可确定
该节点失常,并根据各订阅节点的标识,向各订阅节点发送该节点的状态反馈信息,通知各
订阅节点该节点处于失常状态。
[0113] 图3c为本说明书提供的一种节点探测示意图,如图,虚线箭头表示在预设时间内探测节点D在向节点A发送了在线探测信息之后,未收到节点A返回的探测反馈信息,探测节
点D则根据节点A的各订阅节点的标识,向订阅节点B、C发送节点A的状态反馈信息,通知订
阅节点B、C节点A处于失常状态。
[0114] 在本说明书提供的一个或多个实施例中,若在预设时间内该节点未收到探测节点发送的在线探测信息,则该节点可根据各订阅节点的标识,以及接收到的各节点发送的在
线探测信息的顺序,从各订阅节点中重新确定探测节点,并向新的探测节点发送包含新的
订阅节点的标识的探测反馈信息,使新的探测节点继续向该节点发送在线探测信息,并向
各订阅节点发送包含该节点与新的探测节点对应关系的订阅反馈信息。
[0115] 图3d为本说明书提供的一种节点探测示意图,如图,若在预设时间内节点A未收到探测节点D发送的在线探测信息,则节点A则确定节点D失常,并根据接收到的订阅节点B、C
发送的在线探测信息的顺序,重新确定探测节点。并向新的探测节点发送包含新的订阅节
点标识的探测反馈信息。如图可见,节点B为新的探测节点。
[0116] 由于在本说明书步骤S104中是针对每个节点,基于该节点所属簇中其他节点对于该节点的直接稳定值,对传输稳定值高的节点先进行网络连接,因此,在进行节点的状态探
测时,传输稳定值高的节点更容易成为该节点的探测节点,使得节点间的状态探测更加可
靠,也更利于节点间维持稳定的网络连接。
[0117] 需要说明的是,在本说明书中,针对该区块链网络中的每个节点,该节点可以在与其他节点进行了网络连接后便向该其他节点发送在线探测信息,也可以在参与区块链网络
连接的所有节点都连接完毕后或满足预设数量的节点连接完毕后,再向该其他节点发送在
线探测信息进行节点状态的探测,该节点可以是路由节点,可也以是其他节点,该区块链网
络可以通过确定探测节点进行簇内节点的状态探测,也可以进行簇间的路由节点的状态探
测,具体可根据需要设置,本说明书在此不做限制。
[0118] 进一步地,该节点还可以在执行其他业务时,通过探测节点进行通信,例如,在确定了探测节点之后,该节点可通过该探测节点向其他节点(如路由节点)转发数据(由于在
本说明书中,对传输稳定值较高的其他节点先进行连接,则对于该节点传输稳定值高的其
他节点先与该节点进行网络连接,且较容易成为该节点的探测节点,因此,通过探测节点传
输数据具有较高的传输稳定性和可靠性)。
[0119] 基于此,该区块链网络中的节点在通过上述区块链网络连接方法进行网络连接后,通过探测节点以更稳定的网络连接进行通信,进一步降低整个区块链网络的通信成本,
并使该区块链网络中节点状态探测和节点间维持网络连接的效率得到保障。
[0120] 另外,上述区块链网络连接方法与上述通过探测节点进行通信的方式的结合,能够在降低网络通信成本,构建稳定可靠的区块链网络连接的同时,提高节点间传输数据的
成功率,降低网络传输压力,使整个区块链网络的传输效率更高,减少网络资源的浪费。
[0121] 在本说明书提供的一个或多个实施例中,该区块链网络中的节点可根据客户端调用的远程过程调用协议(Remote Procedure Call Protocol,RPC)接口,采用非阻塞异步网
络I/O通信处理客户端发送的请求。该区块链网络可通过I/O多路复用技术将多个客户端请
求复用到同一个select函数中,能够使得区块链网络在单线程情况下实现多个客户端的访
问。
[0122] 在本说明书提供的一个或多个实施例中,该区块链网络可采取线程池技术,线程池中的每个线程能够在不会导致区块链网络访问请求阻塞的情况下,独立处理相关的I/O
操作,以提高区块链网络的性能。
[0123] 本说明书还提供了RPC接口及接口含义对照表,如表1:
[0124]
[0125] 表1
[0126] 表1为本说明书提供的接口及接口含义对照表,由表1可见,该RPC接口包括getnetworkhashps接口(用于获取节点工作量)、getmininginfo接口(用于获取节点算力)、
getblocktemplate接口(用于获取完整区块数据)、prioritisetransaction接口(用于获取
完整的交易数据)以及submitblock接口(用于提交待共识的区块),当然也可以包含其他接
口,具体可根据需要设置。在本说明书中,通过提供上述RPC接口,可以使区块链应用程序开
发人员根据上述RPC接口改善区块链应用的性能,提升区块链应用程序的开发速度,并在提
升区块链网络传输可靠性的同时,在基础的P2P网络通信上提供功能更丰富的RPC调用。
[0127] 在本说明书提供的一个或多个实施例中,该区块链网络可根据预设的二进制序列化协议处理客户端发送的调用RPC接口的请求。该二进制序列化协议可以是使用二分查找
算法模型对对象进行结构化编组的协议。被编组后的数据具有特殊的元数据信息,根据这
些元数据信息可以高效地仅读取和更改对象中的某个元素,可以减少区块链网络的传输开
销,并且可以保持数据的完整性。
[0128] 以上为本说明书的一个或多个实施例提供的区块链网络连接方法,基于同样的思路,本说明书还提供了相应的区块链网络连接装置,如图4所示。
[0129] 图4为本说明书提供的一种区块链网络连接装置的示意图,该装置包括:
[0130] 确定模块200,用于根据参与区块链网络连接的各节点的网络位置特征,确定各聚类中心节点,并从各聚类中心节点中确定所述区块链网络的网络中心节点;
[0131] 聚簇模块201,用于根据各非聚类中心节点与各聚类中心节点的距离、各非聚类中心节点与所述网络中心节点的距离以及各聚类中心节点与所述网络中心节点的距离,对各
非聚类中心节点进行聚类,确定各非聚类中心节点所属的簇;
[0132] 簇内连接模块202,用于针对所述区块链网络中的每个节点,根据该节点与所属簇中各其他节点的历史通信数据,确定各其他节点对于该节点的传输稳定值,以对该节点与
所属簇中的所述其他节点进行网络连接;
[0133] 路由确定模块203,用于针对每个簇,确定该簇中的路由节点,并根据确定出的传输稳定值,确定所述路由节点的簇内稳定值;
[0134] 簇间连接模块204,用于根据各簇的路由节点的簇内稳定值,确定各路由节点之间的簇间稳定值,以进行路由节点间的网络连接,使所述区块链网络通过簇内节点的网络连
接以及簇间路由节点的网络连接进行通信。
[0135] 可选地,所述簇内连接模块202,用于针对每个簇中的每个节点,控制该节点向所属簇中各其他节点广播在线探测信息,并接收各其他节点发送的在线探测信息,按照接收
在线探测信息的顺序,从发送在线探测信息的节点中,确定该节点对应的探测节点,并将其
他发送在线探测信息的节点作为订阅节点,向所述探测节点返回包含各订阅节点标识的探
测反馈信息,使所述探测节点继续向该节点发送在线探测信息,以及向各订阅节点返回该
节点的订阅反馈信息。
[0136] 可选地,所述簇内连接模块202,用于控制所述探测节点当在预设时间内未收到该节点的探测反馈信息时,确定该节点失常,根据各订阅节点的标识,向各订阅节点发送该节
点的状态反馈信息。
[0137] 可选地,所述簇内连接模块202,用于根据该节点与所属簇中各其他节点在预设时间内传输数据成功的次数以及传输数据失败的次数,确定该节点与所属簇中各其他节点的
传输参数,其中,该节点所属簇中各其他节点为与该节点进行过数据传输的节点,根据该节
点所属簇中的认证节点,获取该节点所属簇中各其他节点的历史稳定值,根据确定出的传
输参数以及历史稳定值,确定各其他节点对于该节点自身的直接稳定值,分别作为各其他
节点对于该节点的传输稳定值。
[0138] 可选地,所述簇内连接模块202,用于在该节点所属的簇中,确定与该节点以及至少一个其他节点进行过数据传输的节点,作为中间节点,根据各其他节点对于各中间节点
的直接稳定值,以及各中间节点对于该节点的直接稳定值,确定各中间节点的间接稳定值,
根据各中间节点的间接稳定值,确定各其他节点对于该节点的间接稳定值,根据各其他节
点对于该节点的直接稳定值以及各其他节点对于该节点的间接稳定值,确定各其他节点对
于该节点的传输稳定值。
[0139] 可选地,所述路由确定模块203,用于针对每个路由节点,确定该路由节点所属簇中的各其他节点为目标节点,针对每个目标节点,确定该路由节点对于该目标节点的直接
稳定值,并确定该路由节点所属簇中除该目标节点外的其他节点对于该目标节点的直接稳
定值,根据该路由节点对于各目标节点的直接稳定值,以及除该目标节点外的各其他节点
对于该目标节点的直接稳定值,确定该路由节点的簇内稳定值。
[0140] 可选地,所述簇内连接模块202,用于将该节点所属簇中其他节点对于该节点的传输稳定值进行排序,根据排序结果依次使该节点所属簇中其他节点与该节点进行网络连
接。
[0141] 本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的区块链网络连接方法。
[0142] 本说明书还提供了图5所示的电子设备的示意结构图。如图5所示,在硬件层面,该电子设备包括处理器、内部总线、内存以及非易失性存储器,当然还可能包括其他业务所需
要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现
上述图1提供的区块链网络连接方法。
[0143] 当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,
也可以是硬件或逻辑器件。
[0144] 在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然
而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。
设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因
此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件
(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate 
Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员
自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作
专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻
辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,
而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言
(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL
(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description 
Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL
(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby 
Hardware Description Language)等,目前最普遍使用的是VHDL(Very‑High‑Speed 
Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应
该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,
就可以很容易得到实现该逻辑方法流程的硬件电路。
[0145] 控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可
读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,
ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制
器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存
储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以
纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使
得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实
现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种
功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视
为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0146] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可
以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放
器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何
设备的组合。
[0147] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0148] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。
[0149] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0150] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
[0151] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
[0152] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0153] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的
示例。
[0154] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动
态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除
可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、
数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备
或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算
机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0155] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包
括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要
素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要
素的过程、方法、商品或者设备中还存在另外的相同要素。
[0156] 本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施
例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。
[0157] 本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、
组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境
中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块
可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0158] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实
施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例
的部分说明即可。
[0159] 以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何
修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。