CN108650333A - 区块链***的分散节点负荷方法、介质、装置和区块链*** - Google Patents
区块链***的分散节点负荷方法、介质、装置和区块链*** Download PDFInfo
- Publication number
- CN108650333A CN108650333A CN201810857274.0A CN201810857274A CN108650333A CN 108650333 A CN108650333 A CN 108650333A CN 201810857274 A CN201810857274 A CN 201810857274A CN 108650333 A CN108650333 A CN 108650333A
- Authority
- CN
- China
- Prior art keywords
- node
- block
- logical
- network
- nodes
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种区块链***的分散节点负荷方法,包括以下步骤:配置至少两个功能节点,并将功能节点组合成一个在区块链网络中具有唯一的标识信息的逻辑节点;当逻辑节点处于活跃状态时,控制逻辑节点中具备网络连接功能的节点等待其他具备网络连接功能的节点进行连接,并基于配置的节点列表控制网络连接节点尝试与其他网络连接节点建立连接,以及基于初始区块生产者列表控制逻辑节点中的数据存储运算节点开始区块生产,并控制逻辑节点中的用户请求节点开放端口以等待用户任务请求数据包的传入;相应地,本发明还公开了一种介质、装置及区块链***;能够实现将单一节点的功能进行分化,以减轻单一节点的运作负荷,进而提高区块链***的稳定性。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种区块链***的分散节点负荷方法、介质、装置和区块链***。
背景技术
区块链是通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。在现有的区块链***中,单一节点需要处理的事务往往有多种(例如,用户的任务请求、网络数据的发送接收、数据的运算存储等);导致单一节点的负荷较大,容易使得负荷超过节点可接受范围时造成节点崩溃,从而影响到区块链***的正常运作。
发明内容
本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的一个目的在于提出一种区块链***的分散节点负荷方法,能够实现将单一节点的功能进行分化,以减轻单一节点的运作负荷,从而提高区块链***的稳定性。
本发明的第二个目的在于提出一种计算机可读存储介质。
本发明的第三个目的在于提出一种区块链***的分散节点负荷装置。
本发明的第四个目的在于提出一种区块链***。
为达到上述目的,本发明第一方面实施例提出了一种区块链***的分散节点负荷方法,包括以下步骤:配置至少两个功能节点,并将至少两个功能节点组合成一个逻辑节点,其中,至少两个功能节点具备数据存储运算功能、网络连接功能和用户请求功能,所述逻辑节点在区块链网络中具有唯一的标识信息;当所述逻辑节点处于活跃状态时,控制所述逻辑节点中具备网络连接功能的节点开放端口以等待其他具备网络连接功能的节点进行连接,并基于配置的逻辑节点列表控制所述逻辑节点中具备网络连接功能的节点尝试与其他逻辑节点中具备网络连接功能的节点建立连接关系,以及基于初始区块生产者列表控制所述逻辑节点中具备数据存储运算功能的节点开始区块生产,并控制所述逻辑节点中具备用户请求功能的节点开放端口以等待用户任务请求数据包的传入。
根据本发明实施例的区块链***的分散节点负荷方法,首先,配置至少两个功能节点,并将至少两个功能节点组合成一个逻辑节点,其中,至少两个功能节点具备数据存储运算功能、网络连接功能和用户请求功能,逻辑节点在区块链网络中具有唯一的标识信息;然后,当逻辑节点处于活跃状态时,控制逻辑节点中具备网络连接功能的节点开放端口以等待其他具备网络连接功能的节点进行连接,并基于配置的逻辑节点列表控制逻辑节点中具备网络连接功能的节点尝试与其他逻辑节点中具备网络连接功能的节点建立连接关系,以及基于初始区块生产者列表控制逻辑节点中具备数据存储运算功能的节点开始区块生产,并控制逻辑节点中具备用户请求功能的节点开放端口以等待用户任务请求数据包的传入;从而实现将单一节点的功能进行分化,以减轻单一节点的运作负荷,进而提高区块链***的稳定性。
另外,根据本发明上述实施例提出的区块链***的分散节点负荷方法还可以具有如下附加的技术特征:
可选地,至少两个功能节点为三个,三个功能节点分别为数据存储运算节点、网络连接节点和用户请求节点,所述数据存储运算节点、网络连接节点和用户请求节点之间两两进行交互,其中,所述数据存储运算节点、网络连接节点和用户请求节点中的任意一个节点定期向另外两个节点发送问询数据包,以问询相互之间的连接是否正常;如果该任意一个节点接收到两条回应正常的信息,则判断所述逻辑节点处于活跃状态;如果该任意一个节点接收到至少一条回应异常的信息或者无法与其他节点连接,则判断所述逻辑节点处于休眠状态。
可选地,当存在新逻辑节点需接入区块链网络时,在所述新逻辑节点中的网络连接节点上配置网络连接节点地址集,并在所述新逻辑节点中的全部功能节点启动后根据配置的网络连接节点地址集将所述新逻辑节点中的网络连接节点连接到所述区块链网络中相应逻辑节点的网络连接节点,以将所述新逻辑节点连入所述区块链网络。
可选地,在将所述用户任务请求数据包传入时,获取待传入的用户请求节点,并将任务请求打包签名后发送给所述待传入的用户请求节点,其中,所述待传入的用户请求节点基于用户公钥对所述用户任务请求数据包进行解析以获得任务请求,并将任务请求转发给对应逻辑节点中的数据存储运算节点,同时将任务请求转发给对应逻辑节点中的网络连接节点,以通过对应逻辑节点中的网络连接节点将任务请求在所述区块链网络中进行广播;当对应逻辑节点具有记账权时,对应逻辑节点中的数据存储运算节点存储任务请求并进行运算。
可选地,当所述区块链网络中的任意一个逻辑节点中的网络连接节点接收到广播数据包时,该逻辑节点中的网络连接节点将所述广播数据包转发给该逻辑节点中的数据存储运算节点,其中,当所述广播数据包为区块同步包时,该逻辑节点中的数据存储运算节点直接进行存储;当所述广播数据包为任务请求包且该逻辑节点具有区块生产权时,该逻辑节点中的数据存储运算节点根据所述任务请求包中的任务请求进行区块生产。
可选地,当所述区块链网络触发dpos区块生产者投票事件时,所述区块链网络中的每个逻辑节点作为一个整体参与投票以竞选区块生产权,其中,在区块生产条件被触发时,具有区块生产权的逻辑节点中的数据存储运算节点进行任务记录和区块生产以生成同步区块,并将同步区块转发给具有区块生产权的逻辑节点中的网络连接节点,以便具有区块生产权的逻辑节点中的网络连接节点将同步区块打包成区块同步包后在所述区块链网络中进行广播。
为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有区块链***的分散节点负荷程序,该区块链***的分散节点负荷程序被处理器执行时实现如上述的区块链***的分散节点负荷方法。
为达到上述目的,本发明第三方面实施例提出了一种区块链***的分散节点负荷装置,包括:配置模块和负荷分散模块,其中,所述配置模块用于,配置至少两个功能节点,并将至少两个功能节点组合成一个逻辑节点,其中,至少两个功能节点具备数据存储运算功能、网络连接功能和用户请求功能,所述逻辑节点在区块链网络中具有唯一的标识信息;所述负荷分散模块用于,当所述逻辑节点处于活跃状态时,控制所述逻辑节点中具备网络连接功能的节点开放端口以等待其他具备网络连接功能的节点进行连接,并基于配置的逻辑节点列表控制所述逻辑节点中具备网络连接功能的节点尝试与其他逻辑节点中具备网络连接功能的节点建立连接关系,以及基于初始区块生产者列表控制所述逻辑节点中具备数据存储运算功能的节点开始区块生产,并控制所述逻辑节点中具备用户请求功能的节点开放端口以等待用户任务请求数据包的传入。
根据本发明实施例的区块链***的分散节点负荷装置,配置模块用于配置至少两个功能节点,并将至少两个功能节点组合成一个逻辑节点,其中,至少两个功能节点具备数据存储运算功能、网络连接功能和用户请求功能,逻辑节点在区块链网络中具有唯一的标识信息;负荷分散模块用于当逻辑节点处于活跃状态时,控制逻辑节点中具备网络连接功能的节点开放端口以等待其他具备网络连接功能的节点进行连接,并基于配置的逻辑节点列表控制逻辑节点中具备网络连接功能的节点尝试与其他逻辑节点中具备网络连接功能的节点建立连接关系,以及基于初始区块生产者列表控制逻辑节点中具备数据存储运算功能的节点开始区块生产,并控制逻辑节点中具备用户请求功能的节点开放端口以等待用户任务请求数据包的传入;从而实现将单一节点的功能进行分化,以减轻单一节点的运作负荷,进而提高区块链***的稳定性。
另外,根据本发明上述实施例提出的区块链***的分散节点负荷装置还可以具有如下附加的技术特征:
可选地,至少两个功能节点为三个,三个功能节点分别为数据存储运算节点、网络连接节点和用户请求节点,所述数据存储运算节点、网络连接节点和用户请求节点之间两两进行交互,所述数据存储运算节点、网络连接节点和用户请求节点中的任意一个节点定期向另外两个节点发送问询数据包,以问询相互之间的连接是否正常,其中,所述分散节点负荷装置还包括判断模块,所述判断模块用于,如果该任意一个节点接收到两条回应正常的信息,则判断所述逻辑节点处于活跃状态;如果该任意一个节点接收到至少一条回应异常的信息,则判断所述逻辑节点处于休眠状态。
为达到上述目的,本发明第四方面提出了一种区块链***,包括上述的区块链***的分散节点负荷装置。
附图说明
图1为根据本发明实施例的区块链***的分散节点负荷方法的流程示意图;
图2为根据本发明实施例的判断逻辑节点活跃状态的方式的流程示意图;
图3为根据本发明实施例的逻辑节点接入区块链网络的流程示意图;
图4为根据本发明实施例的用户提交任务请求的流程示意图;
图5为根据本发明实施例的广播数据包处理流程示意图;
图6为根据本发明实施例的区块生产流程示意图;
图7为根据本发明实施例的区块链***的分散节点负荷装置的方框示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在现有的区块链***中,单一节点所需处理的事项多而繁杂,容易造成节点负荷过大而崩溃,从而影响区块链***的正常运行;本发明实施例提出的区块链***的分散节点负荷方法,首先,配置至少两个功能节点组合成一个逻辑节点,至少两个功能节点具备数据存储云端功能、网络连接功能和用户请求功能;然后,控制逻辑节点中具备网络连接功能的节点开放端口以等待其他具备网络连接功能的节点进行连接,并基于配置的逻辑节点列表控制逻辑节点中具备网络连接功能的节点尝试与其他逻辑节点中具备网络连接功能的节点建立连接关系,以及基于初始区块生产者列表控制逻辑节点中具备数据存储运算功能的节点开始区块生产,并控制逻辑节点中具备用户请求功能的节点开放端口以等待用户任务请求数据包的传入;从而实现将单一节点的功能进行分化,以减轻单一节点的运作负荷,进而提高区块链***的稳定性。
为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
图1为根据本发明实施例提出的区块链***的分散节点负荷方法的流程示意图,如图1所示,该区块链***的分散节点负荷方法包括以下步骤:
S101,配置至少两个功能节点,并将至少两个功能节点组合成一个逻辑节点,其中,至少两个功能节点具备数据存储运算功能、网络连接功能和用户请求功能,逻辑节点在区块链网络中具有唯一的标识信息。
也就是说,功能节点的数量至少需要两个,由至少两个功能节点组合成一个逻辑节点,并且,该逻辑节点在区块链网络中具有唯一的标识信息;其中,至少两个功能节点能够实现对数据存储运算、与其他节点建立网络连接和接收用户请求信息。
作为一种示例,功能节点的数量为两个,建立功能节点之间的连接,以将两个功能节点组合成一个逻辑节点,其中,一个功能节点设置为具有数据存储运算功能的数据存储运算节点,另一个功能节点设置为具有网络连接功能和用户请求功能的网络连接节点,以对原本需要单一节点进行处理的事务通过两个功能节点进行职能分化处理,减轻单一节点负荷。
作为另一种示例,功能节点的数量为三个,三个功能节点组合成一个逻辑节点;其中,三个功能节点分别为具有数据存储预算功能的数据存储运算节点、具有网络连接功能的网络连接节点和具有接收用户请求功能的用户请求节点;如此,通过设置三个功能节点组合成为一个逻辑节点,并对三个功能节点进行职能分化,以减轻单一节点运作负荷。
S102,当逻辑节点处于活跃状态时,控制逻辑节点中具备网络连接功能的节点开放端口以等待其他具备网络连接功能的节点进行连接,并基于配置的逻辑节点列表控制逻辑节点中具备网络连接功能的节点尝试与其他逻辑节点中具备网络连接功能的节点建立连接关系,以及基于初始区块生产者列表控制逻辑节点中具备数据存储运算功能的节点开始区块生产,并控制逻辑节点中具备用户请求功能的节点开放端口以等待用户任务请求数据包的传入。
也就是说,当逻辑节点的状态为活跃状态时,控制逻辑节点中具备网络连接功能的节点开放端口,以便其他具备网络连接功能的节点通过该开放端口与逻辑节点建立连接;并且,基于配置的逻辑节点列表控制逻辑节点中具备网络连接功能的节点尝试与其他逻辑节点中具备网络连接功能的节点建立连接关系,以根据逻辑节点列表通过具备网络连接功能的节点建立与列表中各逻辑节点之间的连接;然后,根据初始区块生产者列表控制逻辑节点中具备数据存储运算功能的节点开始区块生产,并控制逻辑节点中具备用户请求功能的节点开放端口,以使得用户可通过开放的端口进行任务的传入。
其中,判断逻辑节点是否处于活跃状态的方式有多种,例如:当功能节点的数量为两个时,两个功能节点每隔预设时间向对方发送问询数据包,以问询相互之间的连接是否正常,并在其中任意一个功能节点接收到回应异常的信息或者另一节点无法连接时,则判断逻辑节点处于休眠状态;或者,仅通过一个功能节点按照预设时间进行问询数据包的发送,并在该功能节点接收到回应异常的信息或者另一节点在预设时间未接收到问询数据包时,判断逻辑节点处于休眠状态。
综上所述,根据本发明实施例的区块链***的分散节点负荷方法,首先,配置至少两个功能节点,并将至少两个功能节点组合成一个逻辑节点,其中,至少两个功能节点具备数据存储运算功能、网络连接功能和用户请求功能,逻辑节点在区块链网络中具有唯一的标识信息;然后,当逻辑节点处于活跃状态时,控制逻辑节点中具备网络连接功能的节点开放端口以等待其他具备网络连接功能的节点进行连接,并基于配置的逻辑节点列表控制逻辑节点中具备网络连接功能的节点尝试与其他逻辑节点中具备网络连接功能的节点建立连接关系,以及基于初始区块生产者列表控制逻辑节点中具备数据存储运算功能的节点开始区块生产,并控制逻辑节点中具备用户请求功能的节点开放端口以等待用户任务请求数据包的传入;从而实现将单一节点的功能进行分化,以减轻单一节点的运作负荷,进而提高区块链***的稳定性。
如图2所示,在一些实施例中,本发明实施例提出的区块链***的分散节点负荷方法中,当至少两个功能节点为三个时,三个功能节点分别为数据存储运算节点、网络连接节点和用户请求节点,数据存储运算节点、网络连接节点和用户请求节点之间两两进行交互;其中,判断逻辑节点是否处于活跃状态的方式具体为:
S201,数据存储运算节点、网络连接节点和用户请求节点中的任意一个节点定期向另外两个节点发送问询数据包,以问询相互之间的连接是否正常;如果该任意一个节点接收到两条回应正常的信息,则判断逻辑节点处于活跃状态;如果该任意一个节点接收到至少一条回应异常的信息或者无法与其他节点连接,则判断逻辑节点处于休眠状态。
也就是说,当功能节点的数量为三个时,三个功能节点分别为数据存储运算节点、网络连接节点和用户请求节点;数据存储运算节点、网络连接节点和用户请求节点之间两两进行交互;其中,数据存储运算节点、网络连接节点和用户请求节点中的任意一个节点会定期向另外两个功能节点发送问询数据包,以问询相互之间的连接是否正常;当另外两个功能节点接收到问询数据包时,判断与除自身外的其他功能节点的连接是否正常,如果判断结果为是,则回应正常的信息,如果判断结果为否,则回应异常的信息;然后,如果任意一个节点接收到两条回应正常的信息,则判断逻辑节点处于活跃状态;如果任意一个节点接收到至少一条回应异常的信息或者无法与其他节点连接,则判断逻辑节点处于休眠状态。从而在逻辑节点中各功能节点之间出现连接异常时对逻辑节点进行关闭,保证区块链***的正常运行。
综上所述,根据本发明实施例的区块链***的分散负荷方法,数据存储运算节点、网络连接节点和用户请求节点中的任意一个节点定期向另外两个节点发送问询数据包,以问询相互之间的连接是否正常;如果该任意一个节点接收到两条回应正常的信息,则判断逻辑节点处于活跃状态;如果该任意一个节点接收到至少一条回应异常的信息或者无法与其他节点连接,则判断逻辑节点处于休眠状态;从而在逻辑节点中各功能节点之间出现连接异常时对逻辑节点进行关闭,保证区块链***的正常运行。
如图3所示,在一些实施例中,本发明实施例提出的区块链***的分散负荷方法中,当存在新逻辑节点需接入区块链网络时,该区块链***的分散负荷方法还包括以下步骤:
S301,在新逻辑节点中的网络连接节点上配置网络连接节点地址集,并在新逻辑节点中的全部功能节点启动后根据配置的网络连接节点地址集将新逻辑节点中的网络连接节点连接到区块链网络中相应逻辑节点的网络连接节点,以将新逻辑节点连入区块链网络。
也就是说,当存在新逻辑节点需要接入区块链网络时,在新逻辑节点中具备网络连接功能的节点上配置新逻辑节点待连接的区块链网络中具备网络连接节点功能的节点地址集,以便新逻辑节点根据配置的节点地址集建立自身具备网络连接功能的节点与节点地址集中节点的连接;其中,当新逻辑节点的全部功能节点启动后,才根据配置的节点地址集建立自身具备网络连接功能的节点与节点地址集中节点的连接;以将新逻辑节点连入区块链网络。
如图4所示,在一些实施例中,本发明实施例提出的区块链***的分散节点负荷方法中,当用户需要将任务请求提交到区块链网络时,该区块链***的分散节点负荷方法还包括以下步骤:
S401,获取待传入的用户请求节点,并将任务请求打包签名后发送给待传入的用户请求节点。
也就是说,在用户需要将任务请求传入区块链***时,首先获取待传入的用户请求节点,然后将任务请求打包签名后发送给待传入的用户请求节点。
其中,获取待传入的用户请求节点的方式有多种。
作为一种示例,用户根据区块链***官网发布的用户请求节点地址集进行待传入的用户请求节点的选择,需要说明的是,可在***官网发布的用户请求节点地址集中示出各用户请求节点的状态(例如,用户节点与各用户请求节点之间的连接信号强度、各用户请求节点的运算能力、空闲状态等),以便用户根据各用户请求节点的状态进行待传入的用户请求节点的选择。
需要说明的是,将任务请求打包签名指的是用户通过区块链***对待传入的任务请求进行打包并通过自身拥有的私钥对打包之后的任务请求进行签名,以保证任务请求传输的安全性。
S402,待传入的用户请求节点基于用户公钥对用户任务请求数据包进行解析以获得任务请求。
也就是说,在待传入的用户请求节点接收到打包签名的任务请求数据包之后,使用对应用户私钥的公钥对该任务请求数据包进行解析,以获得任务请求。
S403,将任务请求转发给对应逻辑节点中的数据存储运算节点,同时将任务请求转发给对应逻辑节点中的网络连接节点,以通过对应逻辑节点中的网络连接节点将任务请求在区块链网络中进行广播。
也就是说,用户请求节点在对任务请求数据包进行解析并获得任务请求之后,将任务请求转发给对应逻辑节点中的数据存储运算节点,以便逻辑节点在拥有记账权时对该任务请求进行处理;同时,用户请求节点还将任务请求转发给对应逻辑节点中的网络连接节点,以将任务请求在区块链网络中进行广播。
S404,当对应逻辑节点具有记账权时,对应逻辑节点中的数据存储运算节点存储任务请求并进行运算。
也就是说,数据存储运算节点在接收到用户请求节点转发的任务请求之后,判断自身所在逻辑节点是否拥有记账权,并在判断结果为是时,数据存储运算节点对任务请求进行存储并运算。
如图5所示,在一些实施例中,本发明实施例提出的区块链***的分散节点负荷方法中,当区块链网络中的任意一个逻辑节点中的网络连接节点接收到广播数据包时,其中,广播数据包包括区块同步包和任务请求包;该区块链***的分散节点负荷方法还包括以下步骤:
S501,逻辑节点中的网络连接节点将广播数据包转发给逻辑节点中的数据存储运算节点。
S502,数据存储运算节点判断该广播数据包为区块同步包时,执行步骤S503,判断该广播数据包为任务请求包时,执行步骤S504。
也就是说,数据存储运算节点在接收到广播数据包时,对广播数据包的类别进行判断,判断该广播数据包为区块同步包或是任务请求包,以对不同的广播数据包进行不同的处理。
S503,逻辑节点中的数据存储运算节点直接对区块同步包进行存储。
即言,当广播数据包为区块同步包时,数据存储运算节点直接对区块同步包进行存储,以便各逻辑节点对区块链文件进行同步更新。
S504,判断该逻辑节点是否具有区块生产权,并在判断结果为是时,该逻辑节点中的数据存储运算节点根据任务请求包中的任务请求进行区块生产。
也就是说,当广播数据包为任务请求包时,判断该逻辑节点是否具有区块生产权,当判断结果为是时,该逻辑节点中的数据存储运算节点根据任务请求包中的任务请求进行区块生产。
其中,判断逻辑节点是否具有区块生产权的方式有多种。
作为一种示例,通过分配区块生产权标识的方式,为拥有区块生产权的逻辑节点分配区块生产权标识,并通过数据存储运算节点对该区块生产权标识进行存储;当数据存储运算节点接收到网络连接节点转发的任务请求 包时,判断自身是否存储有区块生产权标识,若是,则判断该数据存储运算节点对应的逻辑节点具有区块生产权。
其中,数据存储运算节点根据任务请求包中的任务请求进行区块生产指的是,数据存储运算节点根据任务请求包中的任务请求,对任务请求进行存储并运算,以及在达到预设条件之后进行区块的生成。
如图6所示,在一些实施例中,本发明提出的区块链***的分散节点负荷方法中,区块生产者通过区块链网络触发dpos区块生产者投票事件产生,区块链网络中的每个逻辑节点作为一个整体参与投票以竞选区块生产权,其中,当区块生产条件被触发时,该区块链***的分散节点负荷方法还包括以下步骤:
S601,具有区块生产权的逻辑节点中的数据存储运算节点进行任务记录和区块生产以生成同步区块。
也就是说,当区块生产条件被触发时,具有区块生产权的逻辑节点中的数据存储运算节点对任务进行记录,并对上一区块时间线之后的任务进行打包以生成同步区块。
其中,区块生产条件的触发方式有多种,例如;通过预设区块生产时间,当上一区块时间线与当前时间的间隔达到预设区块生产时间时,则触发区块生产事件;或者,预设每一区块的任务存储数量,当区块链***中上一区块时间线之后的任务数量达到预设的每一区块的任务存储数量之后,触发区块生产事件。
S602,将同步区块转发给具有区块生产权的逻辑节点中的网络连接节点。
也就是说,具有区块生产权的逻辑节点中的数据存储运算节点在对任务进行打包并生成同步区块之后,将同步区块转发给对应逻辑节点中的网络连接节点。
S603,具有区块生产权的逻辑节点中的网络连接节点将同步区块打包成区块同步包后在区块链网络中进行广播。
也就是说,具有区块生产权的逻辑节点中的网络连接节点在接收到数据存储运算节点发送的同步区块之后,将同步区块打包为区块同步包,并将区块同步包广播至区块链网络中,以便其他逻辑节点根据区块同步包进行区块链同步。
为实现上述实施例,本发明实施例提出了一种计算机可读存储介质,其上存储有区块链***的分散节点负荷程序,该区块链***的分散节点负荷程序被处理器执行时实现上述的区块链***的分散节点负荷方法。
为实现上述实施例,本发明提出了一种区块链***的分散节点负荷装置,如图7所示,该区块链***的分散节点负荷装置包括:配置模块10和负荷分散模块20。
其中,配置模块10用于配置至少两个功能节点,并将至少两个功能节点组合成一个逻辑节点,其中,至少两个功能节点具备数据存储运算功能、网络连接功能和用户请求功能,逻辑节点在区块链网络中具有唯一的标识信息
负荷分散模块20用于当逻辑节点处于活跃状态时,控制逻辑节点中具备网络连接功能的节点开放端口以等待其他具备网络连接功能的节点进行连接,并基于配置的逻辑节点列表控制逻辑节点中具备网络连接功能的节点尝试与其他逻辑节点中具备网络连接功能的节点建立连接关系,以及基于初始区块生产者列表控制逻辑节点中具备数据存储运算功能的节点开始区块生产,并控制逻辑节点中具备用户请求功能的节点开放端口以等待用户任务请求数据包的传入。
根据本发明实施例的区块链***的分散节点负荷装置,配置模块用于配置至少两个功能节点,并将至少两个功能节点组合成一个逻辑节点,其中,至少两个功能节点具备数据存储运算功能、网络连接功能和用户请求功能,逻辑节点在区块链网络中具有唯一的标识信息;负荷分散模块用于当逻辑节点处于活跃状态时,控制逻辑节点中具备网络连接功能的节点开放端口以等待其他具备网络连接功能的节点进行连接,并基于配置的逻辑节点列表控制逻辑节点中具备网络连接功能的节点尝试与其他逻辑节点中具备网络连接功能的节点建立连接关系,以及基于初始区块生产者列表控制逻辑节点中具备数据存储运算功能的节点开始区块生产,并控制逻辑节点中具备用户请求功能的节点开放端口以等待用户任务请求数据包的传入;从而实现将单一节点的功能进行分化,以减轻单一节点的运作负荷,进而提高区块链***的稳定性。
在一些实施例中,本发明实施例提出的区块链***的分散节点负荷装置中,至少两个功能节点为三个,三个功能节点分别为数据存储运算节点、网络连接节点和用户请求节点,数据存储运算节点、网络连接节点和用户请求节点之间两两进行交互,数据存储运算节点、网络连接节点和用户请求节点中的任意一个节点定期向另外两个节点发送问询数据包,以问询相互之间的连接是否正常,其中,分散节点负荷装置还包括判断模块,判断模块用于,如果该任意一个节点接收到两条回应正常的信息,则判断逻辑节点处于活跃状态;如果该任意一个节点接收到至少一条回应异常的信息,则判断逻辑节点处于休眠状态。
为了实现上述实施例,本发明实施例提出了一种区块链***,该区块链***包括上述的区块链***的分散节点负荷装置。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征 “上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种区块链***的分散节点负荷方法,其特征在于,包括以下步骤:
配置至少两个功能节点,并将至少两个功能节点组合成一个逻辑节点,其中,至少两个功能节点具备数据存储运算功能、网络连接功能和用户请求功能,所述逻辑节点在区块链网络中具有唯一的标识信息;
当所述逻辑节点处于活跃状态时,控制所述逻辑节点中具备网络连接功能的节点开放端口以等待其他具备网络连接功能的节点进行连接,并基于配置的逻辑节点列表控制所述逻辑节点中具备网络连接功能的节点尝试与其他逻辑节点中具备网络连接功能的节点建立连接关系,以及基于初始区块生产者列表控制所述逻辑节点中具备数据存储运算功能的节点开始区块生产,并控制所述逻辑节点中具备用户请求功能的节点开放端口以等待用户任务请求数据包的传入。
2.如权利要求1所述的区块链***的分散节点负荷方法,其特征在于,至少两个功能节点为三个,三个功能节点分别为数据存储运算节点、网络连接节点和用户请求节点,所述数据存储运算节点、网络连接节点和用户请求节点之间两两进行交互,其中,
所述数据存储运算节点、网络连接节点和用户请求节点中的任意一个节点定期向另外两个节点发送问询数据包,以问询相互之间的连接是否正常;
如果该任意一个节点接收到两条回应正常的信息,则判断所述逻辑节点处于活跃状态;
如果该任意一个节点接收到至少一条回应异常的信息或者无法与其他节点连接,则判断所述逻辑节点处于休眠状态。
3.如权利要求1或2所述的区块链***的分散节点负荷方法,其特征在于,当存在新逻辑节点需接入区块链网络时,在所述新逻辑节点中的网络连接节点上配置网络连接节点地址集,并在所述新逻辑节点中的全部功能节点启动后根据配置的网络连接节点地址集将所述新逻辑节点中的网络连接节点连接到所述区块链网络中相应逻辑节点的网络连接节点,以将所述新逻辑节点连入所述区块链网络。
4.如权利要求1或2所述的区块链***的分散节点负荷方法,其特征在于,在将所述用户任务请求数据包传入时,获取待传入的用户请求节点,并将任务请求打包签名后发送给所述待传入的用户请求节点,其中,
所述待传入的用户请求节点基于用户公钥对所述用户任务请求数据包进行解析以获得任务请求,并将任务请求转发给对应逻辑节点中的数据存储运算节点,同时将任务请求转发给对应逻辑节点中的网络连接节点,以通过对应逻辑节点中的网络连接节点将任务请求在所述区块链网络中进行广播;
当对应逻辑节点具有记账权时,对应逻辑节点中的数据存储运算节点存储任务请求并进行运算。
5.如权利要求4所述的区块链***的分散节点负荷方法,其特征在于,当所述区块链网络中的任意一个逻辑节点中的网络连接节点接收到广播数据包时,该逻辑节点中的网络连接节点将所述广播数据包转发给该逻辑节点中的数据存储运算节点,其中,
当所述广播数据包为区块同步包时,该逻辑节点中的数据存储运算节点直接进行存储;
当所述广播数据包为任务请求包且该逻辑节点具有区块生产权时,该逻辑节点中的数据存储运算节点根据所述任务请求包中的任务请求进行区块生产。
6.如权利要求1-5中任一项所述的区块链***的分散节点负荷方法,其特征在于,当所述区块链网络触发dpos区块生产者投票事件时,所述区块链网络中的每个逻辑节点作为一个整体参与投票以竞选区块生产权,其中,
在区块生产条件被触发时,具有区块生产权的逻辑节点中的数据存储运算节点进行任务记录和区块生产以生成同步区块,并将同步区块转发给具有区块生产权的逻辑节点中的网络连接节点,以便具有区块生产权的逻辑节点中的网络连接节点将同步区块打包成区块同步包后在所述区块链网络中进行广播。
7.一种计算机可读存储介质,其特征在于,其上存储有区块链***的分散节点负荷程序,该区块链***的分散节点负荷程序被处理器执行时实现如权利要求1-6中任一项所述的区块链***的分散节点负荷方法。
8.一种区块链***的分散节点负荷装置,其特征在于,包括配置模块和负荷分散模块,其中,
所述配置模块用于,配置至少两个功能节点,并将至少两个功能节点组合成一个逻辑节点,其中,至少两个功能节点具备数据存储运算功能、网络连接功能和用户请求功能,所述逻辑节点在区块链网络中具有唯一的标识信息;
所述负荷分散模块用于,当所述逻辑节点处于活跃状态时,控制所述逻辑节点中具备网络连接功能的节点开放端口以等待其他具备网络连接功能的节点进行连接,并基于配置的逻辑节点列表控制所述逻辑节点中具备网络连接功能的节点尝试与其他逻辑节点中具备网络连接功能的节点建立连接关系,以及基于初始区块生产者列表控制所述逻辑节点中具备数据存储运算功能的节点开始区块生产,并控制所述逻辑节点中具备用户请求功能的节点开放端口以等待用户任务请求数据包的传入。
9.如权利要求8所述的区块链***的分散节点负荷装置,其特征在于,至少两个功能节点为三个,三个功能节点分别为数据存储运算节点、网络连接节点和用户请求节点,所述数据存储运算节点、网络连接节点和用户请求节点之间两两进行交互,所述数据存储运算节点、网络连接节点和用户请求节点中的任意一个节点定期向另外两个节点发送问询数据包,以问询相互之间的连接是否正常,其中,所述分散节点负荷装置还包括判断模块,所述判断模块用于,
如果该任意一个节点接收到两条回应正常的信息,则判断所述逻辑节点处于活跃状态;
如果该任意一个节点接收到至少一条回应异常的信息,则判断所述逻辑节点处于休眠状态。
10.一种区块链***,其特征在于,包括如权利要求8或9所述的区块链***的分散节点负荷装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810857274.0A CN108650333B (zh) | 2018-07-31 | 2018-07-31 | 区块链***的分散节点负荷方法、介质、装置和区块链*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810857274.0A CN108650333B (zh) | 2018-07-31 | 2018-07-31 | 区块链***的分散节点负荷方法、介质、装置和区块链*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108650333A true CN108650333A (zh) | 2018-10-12 |
CN108650333B CN108650333B (zh) | 2021-02-02 |
Family
ID=63760461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810857274.0A Active CN108650333B (zh) | 2018-07-31 | 2018-07-31 | 区块链***的分散节点负荷方法、介质、装置和区块链*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108650333B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240826A (zh) * | 2018-08-15 | 2019-01-18 | 泰链(厦门)科技有限公司 | 多区块链网络中节点共用计算设备时的计算资源分配方法 |
CN109525678A (zh) * | 2018-12-25 | 2019-03-26 | 众安信息技术服务有限公司 | 区块链网络***以及相应的节点设备发现方法 |
CN111563129A (zh) * | 2020-07-15 | 2020-08-21 | 江苏荣泽信息科技股份有限公司 | 一种分布式存储区块链账本的方法 |
CN114978619A (zh) * | 2022-05-07 | 2022-08-30 | 国电南瑞科技股份有限公司 | 用于多元负荷调控***跨安全区数据集成监视方法和***、介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101364996A (zh) * | 2008-07-23 | 2009-02-11 | 西安电子科技大学 | 混合层次化p2p静态网络 |
CN103348638A (zh) * | 2011-02-07 | 2013-10-09 | 日本电气株式会社 | 通信***、控制装置、通信节点以及通信方法 |
WO2016205748A1 (en) * | 2015-06-18 | 2016-12-22 | Jie Diao | Conveying attention information in virtual conference |
CN106530083A (zh) * | 2016-10-27 | 2017-03-22 | 上海亿账通区块链科技有限公司 | 基于区块链的多链管理方法及*** |
CN106790513A (zh) * | 2016-12-19 | 2017-05-31 | 杜伯仁 | 基于区块链实现网络共享服务的方法 |
CN107079059A (zh) * | 2016-12-21 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 区块链存储方法、装置及节点设备 |
CN108012582A (zh) * | 2017-08-18 | 2018-05-08 | 达闼科技成都有限公司 | 区块链***及其权限管理方法 |
KR20180075450A (ko) * | 2018-06-15 | 2018-07-04 | 정기영 | 블록체인 기반의 암호화폐 결제 기능을 포함한 p2p 전송 기반의 데이터 마켓 플레이스의 구성 및 그 방법 |
US20180197155A1 (en) * | 2016-12-12 | 2018-07-12 | Topl, Llc | Method and Apparatus for Processing Mobile Payment Using Blockchain Techniques |
-
2018
- 2018-07-31 CN CN201810857274.0A patent/CN108650333B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101364996A (zh) * | 2008-07-23 | 2009-02-11 | 西安电子科技大学 | 混合层次化p2p静态网络 |
CN103348638A (zh) * | 2011-02-07 | 2013-10-09 | 日本电气株式会社 | 通信***、控制装置、通信节点以及通信方法 |
WO2016205748A1 (en) * | 2015-06-18 | 2016-12-22 | Jie Diao | Conveying attention information in virtual conference |
CN106530083A (zh) * | 2016-10-27 | 2017-03-22 | 上海亿账通区块链科技有限公司 | 基于区块链的多链管理方法及*** |
US20180197155A1 (en) * | 2016-12-12 | 2018-07-12 | Topl, Llc | Method and Apparatus for Processing Mobile Payment Using Blockchain Techniques |
CN106790513A (zh) * | 2016-12-19 | 2017-05-31 | 杜伯仁 | 基于区块链实现网络共享服务的方法 |
CN107079059A (zh) * | 2016-12-21 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 区块链存储方法、装置及节点设备 |
CN108012582A (zh) * | 2017-08-18 | 2018-05-08 | 达闼科技成都有限公司 | 区块链***及其权限管理方法 |
KR20180075450A (ko) * | 2018-06-15 | 2018-07-04 | 정기영 | 블록체인 기반의 암호화폐 결제 기능을 포함한 p2p 전송 기반의 데이터 마켓 플레이스의 구성 및 그 방법 |
Non-Patent Citations (2)
Title |
---|
SEYED IMAN MIRREZAEI等: ""A topology-aware load balancing algorithm for P2P systems"", 《2009 FOURTH INTERNATIONAL CONFERENCE ON DIGITAL INFORMATION MANAGEMENT》 * |
申新鹏: ""多节点集群P2P***研究"", 《计算机科学》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240826A (zh) * | 2018-08-15 | 2019-01-18 | 泰链(厦门)科技有限公司 | 多区块链网络中节点共用计算设备时的计算资源分配方法 |
CN109240826B (zh) * | 2018-08-15 | 2020-10-23 | 泰链(厦门)科技有限公司 | 多区块链网络中节点共用计算设备时的计算资源分配方法 |
CN109525678A (zh) * | 2018-12-25 | 2019-03-26 | 众安信息技术服务有限公司 | 区块链网络***以及相应的节点设备发现方法 |
CN111563129A (zh) * | 2020-07-15 | 2020-08-21 | 江苏荣泽信息科技股份有限公司 | 一种分布式存储区块链账本的方法 |
CN114978619A (zh) * | 2022-05-07 | 2022-08-30 | 国电南瑞科技股份有限公司 | 用于多元负荷调控***跨安全区数据集成监视方法和***、介质 |
CN114978619B (zh) * | 2022-05-07 | 2023-08-04 | 国电南瑞科技股份有限公司 | 用于多元负荷调控***跨安全区数据集成监视方法和***、介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108650333B (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108650333A (zh) | 区块链***的分散节点负荷方法、介质、装置和区块链*** | |
US10547693B2 (en) | Security device capability discovery and device selection | |
TWI687073B (zh) | 區域互聯控制器、區域互聯控制方法以及電腦儲存媒體 | |
CN110933187B (zh) | 基于区块链共识加密机制的物联网数据传输*** | |
CN107911463B (zh) | 一种业务跨云架构及其创建方法、管理方法 | |
CN102473114B (zh) | 动态迁移计算机网络 | |
US8200789B2 (en) | Method, system and program product for automated topology formation in dynamic distributed environments | |
CN110262902B (zh) | 信息处理方法及***、介质和计算设备 | |
CN111612466B (zh) | 一种共识和资源传输方法、设备及存储介质 | |
Ramesh et al. | The Smart Network Management Automation Algorithm for Administration of Reliable 5G Communication Networks | |
CN103703738A (zh) | 用于使用avb网络中的应用层结构管理音频/视频流的*** | |
CN106162639B (zh) | 基于Floodlight的SDN无线网络管理平台及认证方法 | |
CN104092774A (zh) | 软件定义网络连接建立控制方法及装置 | |
CN103117876B (zh) | 用户状态信息的同步方法及装置 | |
Ganz et al. | Context-aware management for sensor networks | |
CN105429938B (zh) | 一种资源配置方法及装置 | |
CN112134866B (zh) | 业务访问控制方法、装置、***及计算机可读存储介质 | |
CN104104572A (zh) | 一种sdn网络中的交换机自动部署方法及装置 | |
CN102045337A (zh) | 用于管理网络资源的装置和方法 | |
Ja’afreh et al. | Toward integrating software defined networks with the Internet of Things: a review | |
CN101375272A (zh) | 工业自动化环境中的透明桥接和路由选择 | |
CN110301104A (zh) | 一种光线路终端olt设备虚拟方法及相关设备 | |
CN104092746B (zh) | 一种运维审计***及用在其***中的网络负载均衡方法 | |
CN115086330B (zh) | 跨集群负载均衡*** | |
CN110532101A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 361000 B1F-065, Zone A, Huaxun Building, Software Park, Xiamen Torch Hi-tech Zone, Huli District, Xiamen City, Fujian Province Patentee after: Ke'an (Xiamen) Technology Co.,Ltd. Address before: B1f-065, zone a, Huaxun building, software park, torch hi tech Zone, Xiamen City, Fujian Province, 361000 Patentee before: TAILIAN (XIAMEN) TECHNOLOGY Co.,Ltd. |