CN114500553A - 一种区块链网络的处理方法、系统、电子设备及存储介质 - Google Patents

一种区块链网络的处理方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN114500553A
CN114500553A CN202011149099.3A CN202011149099A CN114500553A CN 114500553 A CN114500553 A CN 114500553A CN 202011149099 A CN202011149099 A CN 202011149099A CN 114500553 A CN114500553 A CN 114500553A
Authority
CN
China
Prior art keywords
block chain
capacity
chain network
monitoring
information
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
Application number
CN202011149099.3A
Other languages
English (en)
Inventor
段朦
钱宝健
吴迎俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Suzhou Software Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202011149099.3A priority Critical patent/CN114500553A/zh
Publication of CN114500553A publication Critical patent/CN114500553A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请的技术方案提供了一种区块链网络的处理方法,包括:监控区块链网络得到监控信息,其中,所述监控信息包括:资源状况信息和/或业务状况信息;根据所述监控信息,确定所述区块链网络是否满足容量调整条件;在确定出所述区块链网络满足容量调整条件时,根据满足的所述容量调整条件进行所述区块链网络的扩容操作或所述区块链网络的缩容操作。本方案可以根据监控的资源状况信息和/或业务状况信息,在区块链的应用过程中对区块链网络进行扩容操作或者缩容操作,从而减小了区块链的资源浪费情况的发生。

Description

一种区块链网络的处理方法、系统、电子设备及存储介质
技术领域
本发明实施例涉及区块链领域,尤其涉及一种区块链网络的处理方法、系统、电子设备及存储介质。
背景技术
随着区块链技术的发展,基于区块链的平台应用而生,即区块链即服务平台(Blockchain-as-a-Service,BaaS)。区块链具有去中心化以及不可篡改的特性,开发一个区块链应用通常需要以下步骤:选定底层区块链框架、部署底层区块链环境、开发基于区块链的智能合约、开发上层应用以及对区块链的部署和运维等操作。区块链即服务平台的出现为区块链网络的部署提供了条件,通过区块链即服务平台可以构建高可用的区块链网络。
区块链即服务平台是基于公有云、私有云或者混合云提供的多种模式的服务,用户可以根据实际的业务需求订购区块链服务。区块链即服务平台通常构建于物理机、虚拟机或者容器之上,具有较高的可靠性和扩展性。在区块链网络中通常具有多个组织,组织中的用户可以对区块链网络中的应用进行访问。
发明内容
本发明实施例提供一种区块链网络的处理方法、系统、电子设备及存储介质。
本公开实施例第一方面提供一种区块链网络的处理方法,包括:
监控区块链网络得到监控信息,其中,所述监控信息包括:资源状况信息和/或业务状况信息;根据所述监控信息,确定所述区块链网络是否满足容量调整条件;在确定出所述区块链网络满足容量调整条件时,根据满足的所述容量调整条件进行所述区块链网络的扩容操作或所述区块链网络的缩容操作。
在一个实施例中,所述监控区块链网络得到监控信息包括:监控调用所述区块链网络进行记录请求处理的调用信息;根据所述调用信息,确定所述区块链网络中记录请求响应频次和/或记录请求响应速率。
在一个实施例中,所述区块链网络所包含的节点包括:排序服务节点和对等节点;所述监控区块链网络得到监控信息,包括:监控所述排序服务节点在单位时间内接收到的所述记录请求的条数和/或广播所述记录请求的广播次数;
和/或,
监控所述对等节点在单位时间内在对所述记录请求对应的业务进行背书签名的背书次数、背书成功次数、记录请求的接收次数和记录的区块链的块数的至少其中之一。
在一个实施例中,所述监控区块链网络得到监控信息,包括以下至少之一:监控所述区块链网络内节点的节点资源状况,得到节点资源状况信息;监控所述区块链网络中节点内所设置容器的容器资源状况,得到容器资源状况信息;监控所述区块链网络所包含不同各类型资源的资源状况,得到网络资源状况信息。
在一个实施例中,所述根据所述监控信息,确定所述区块链网络是否满足容量调整条件,包括:根据所述监控信息,确定出所述区块链网络的负载率;根据所述负载率,确定区块链网络是否满足容量调整条件。
在一个实施例中,所述根据所述监控信息,确定出所述区块链网络的负载率,包括:根据所述区块链网络的业务请求信息量和/或所述区块链网络的广播信息量,确定所述区块链网的负载率。
在一个实施例中,所述根据所述负载率,确定区块链网络是否满足容量调整条件,包括:根据所述负载率,确定区块链网络是否满足第一容量调整条件,其中,在所述第一容量调整条件下,通过所述区块链网络所包含节点数的调整进行扩容操作或缩容操作。
在一个实施例中,所述通过所述区块链网络所包含节点数的调整进行扩容操作或缩容操作,包括:通过所述区块链网络所包含排序节点的数量调整,进行节点资源的扩容操作或缩容操作;和/或,通过所述区块链网络所包含对等节点的数量调整,进行节点资源的扩容操作或缩容操作。
在一个实施例中,根据所述负载率,确定区块链网络是否满足容量调整条件,包括:根据所述负载率,确定区块链网络是否满足第二容量调整条件,其中,在所述第二容量调整条件下,通过所述区块链网络所包含节点内的资源数调整,进行扩容操作或缩容操作。
在一个实施例中,所述通过所述区块链网络所包含节点内的资源数调整,进行扩容操作或缩容操作,包括:通过所述区块链网络所包含节点内的处理器的个数调整,进行处理资源的扩容操作或缩容操作;和/或,通过所述区块链网络所包含节点内的存储资源的数量调整,进行存储资源的扩容操作或缩容操作。
在一个实施例中,所述根据所述负载率,确定区块链网络是否满足容量调整条件,包括:在所述区块链网络的负载率超标时,确定区块链网络是否满足容量调整条件;根据所述节点资源状况信息及业务状况信息,确定所述区块链网络满足扩容调整条件;所述在确定出所述区块链网络满足容量调整条件时,根据满足的所述容量调整条件进行所述区块链网络的扩容操作或所述区块链网络的缩容操作,包括:在所述区块链网络满足扩容调整条件时,进行所述区块链网络的扩容。
在一个实施例中,所述根据所述负载率,确定区块链网络是否满足容量调整条件,包括:根据所述监控信息,确定出所述区块链网络的闲置率超标时,确定所述区块链网络满足缩容调整条件;所述在确定出所述区块链网络满足容量调整条件时,根据满足的所述容量调整条件进行所述区块链网络的扩容操作或所述区块链网络的缩容操作,包括:在所述区块链网络满足缩容调整条件,进行所述区块链网络的缩容。
本公开实施例第二方面提供一种区块链的处理系统,包括:
监控模块,用于监控区块链网络得到监控信息,其中,所述监控信息包括:资源状况信息和/或业务状况信息;
确定模块,用于根据所述监控信息,确定所述区块链网络是否满足容量调整条件;
扩缩容模块,用于在确定出所述区块链网络满足容量调整条件时,根据满足的所述容量调整条件进行所述区块链网络的扩容操作或所述区块链网络的缩容操作。
本公开实施例第三方面提供一种电子设备,包括:
处理器;
存储器,其存储有程序指令,当所述程序指令被所述处理器执行时,使得所述电子设备执行上述任一项所述的方法。
一种存储介质,其存储有程序,当所述程序由处理器运行时,执行上述任一项所述的方法。
本公开实施例的技术方案通过监控区块链网络得到监控信息,该监控信息包括资源状况信息和/或业务状况信息。然后根据该监控信息,确定区块链网络是否满足容量调整条件。在确定出区块链网络满足容量调整条件时,根据满足的容量调整条件进行区块链网络的扩容操作或区块链网络的缩容操作。本方案可以根据监控的资源状况信息和/或业务状况信息,在区块链的应用过程中对区块链网络自动进行扩容操作或者缩容操作,从而减小了区块链的资源浪费情况的发生,及在没有及时扩容时的容量不够的现象。
附图说明
图1为本公开实施例提供的一种现有技术中的区块链即服务平台的结构示意图;
图2为本公开实施例提供的一种区块链网络的处理方法流程示意图;
图3为本公开实施例提供的另一种区块链网络的处理方法流程示意图;
图4为本公开实施例提供的一种区块链网络的处理系统的结构示意图;
图5为本公开实施例提供的一种区块链即服务平台的结构示意图;
图6为本公开实施例提供的一种监控中心、调度中心和区块链即服务平台的关系示意图;
图7为本公开实施例提供的另一种区块链的处理方法的流程示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
近年来,区块链即服务平台(Blockchain-as-a-Service,BaaS)技术不断发展,国内外区块链即服务平台平台不断涌现,区块链即服务平台的发展方便了区块链网络的部署。区块链即服务平台基于公有云,私有云或者混合云提供了多种模式的服务,用户可以根据实际的业务需求订购区块链服务。
区块链即服务平台通常构建于物理机、虚拟机、容器(docker)或开源容器集群管理系统(kubernetes)之上,其自身具备较高的可靠性和扩展性,底层框架通常为超级账本(Hyperledger Fabric)框架。
在一个区块链的联盟链网络中,通常具有至少一个组织,每个组织中有各自的节点,例如对等节点(peer节点)和排序服务节点(orderer节点)。组织根据自己在联盟链中的权限,可以通过编写智能合约并实例化的方式进行应用的发布及参与其他组织发布的应用。组织里的用户后续可以通过超级账本(Hyperledger Fabric)底层框架提供的软件开发工具包(Fabric-SDK)封装的API网关进行区块链网络中应用的访问。
如图1所示,为一种区块链即服务平台的架构图。联盟链网络中包括组织一、组织二和组织三,组织一位建立在公有云基础上的组织,组织二为建立在私有云基础上的组织,组织三为建立在混合云上的组织。每个组织中都包括各自的节点,例如对等节点和排序服务节点,图中所示的orderers即表示排序服务节点,peers即表示对等节点。这些节点可以通过Fabric-SDK封装的API网关访问联盟链网络中的应用。区块链即服务平台还包括上层业务系统,通过上层业务系统进行业务的操作。区块链云服务可以对联盟链进行开发、管理、运维以及监控等操作。
进一步地,通常的区块链即服务平台架构主要包括资源层、调度层、区块链层、服务层、接口层和应用层。其中,资源层为在公有云、私有云或者混合云的基础上的的物理机、虚拟机或者容器资源。除了一些区块链即服务平台直接采用容器(docker)或者虚拟机部署,没有调度层之外,通常大多都采用开源容器集群管理系统(kubernetes或k8s)进行底层资源的调度。在k8s中,可以创建多个容器,每个容器中运行一个排序服务节点或者对等节点或者客户端节点或者链码节点的应用实例。然后通过内置的负载均衡策略,实现对应用实例的管理和访问等,这些操作不需要人为地手动配置和处理。
区块链层通常采用的是超级账本(Hyperledger Fabric)框架实现的,在该框架中的区块链节点都以容器的方式运行在k8s中。k8s通过其可移植、可扩展以及自动化的特性,可以实现区块链即服务平台的物理扩容或者缩容。由于k8s的自动扩容或缩容的特点(Horizontal Pod Autoscaler,HPA),用户在区块链即服务平台中购买的区块链网络中的节点占用的物理资源,如处理器(CPU)和内存等,会随着区块链网络的使用而自动变化。
但是,在超级账本(Hyperledger Fabric)框架基础上构建的联盟链中,联盟链中的组织的数量和组织中节点的数量是固定的,不会随着联盟链中用户的使用而变化,这样可能会造成不必要的浪费。例如:
硬件资源的浪费:
通常的区块链即服务平台采用二进制文件或容器进行区块链网络的部署,这两种方式虽然部署方式简单,但是每个节点的部署都需要在公有云或私有云上申请新的物理机或虚拟机。由于区块链网络节点的实际资源使用量(如CPU,内存,磁盘使用量等)可能远远小于虚拟机或物理机的容量,从而造成物理资源的浪费。
区块链网络运行成本的浪费:
区块链即服务平台在用户创建区块链网络时就必须指定区块链节点的个数以及区块链节点的相应配置的大小。在用户后续的使用过程中,如果之前申请的虚拟机或物理机的资源配置不满足当前用户对区块链网络的使用要求,用户也无法准确确定区块链网络的使用状况,导致用户需要花费一定的费用进行区块链网络中配置的升级,例如增加区块链节点数量。还可能会由于购买的虚拟机或物理机的配置已经确定,无法进行节点配置的升级,即由于前期节点机器的性能规格已经确定,后续无法对机器的性能规格做升级。
资源浪费造成的价格劣势:
由于用户在区块链即服务平台上申请购买的区块链网络的价格由申请购买的配置大小决定,用户很可能因为所申请购买的节点配置超出实际的区块链网络使用量而承担额外的费用,造成该区块链即服务平台的价格竞争失去优势,从而减小其在区块链即服务平台市场的竞争力。
参考图2,本方案提供了一种区块链网络的处理方法,该方法主要包括:
步骤S100,监控区块链网络得到监控信息,其中,监控信息包括:资源状况信息和/或业务状况信息。该实施例中,在对区块链网络进行处理之前,需要对区块链网络进行监控,根据对区块链的监控得到的信息,进一步对区块链网络进行处理。
该步骤中,通过监控区块链网络得到区块链网络的监控信息,该监控信息包括区块链网络的资源状况信息和/或业务状况信息。该资源状况信息可以包括区块链网络中多种资源的使用状况信息,例如,区块链网络中节点的资源状况信息,和/或区块链网络中节点内所设置容器的容器资源状况信息等等。业务状况信息可以包括区块链网络中节点之间的业务请求信息和广播信息等表征业务繁忙度的信息。
对于该步骤中的监控方式,区块链即服务平台中包括有监控中心,可以通过区块链即服务平台中的监控中心进行监控等。
步骤S200,根据监控信息,确定区块链网络是否满足容量调整条件。在得到监控信息之后,根据监控信息确定区块链网络是否满足容量调整条件,该容量调整条件可以是根据实际业务需求预先设定的。该步骤中,可以根据监控信息确定区块链网络的状况,根据区块链网络的工作状况确定区块链网络是否满足容量调整条件。
其中,该容量调整条件,可分为:扩容条件和缩容条件。当满足扩容条件时,对区块链网络进行扩容操作,当满足缩容条件时,对区块链网络进行缩容操作。
步骤S300,在确定出区块链网络满足容量调整条件时,根据满足的容量调整条件进行区块链网络的扩容操作或区块链网络的缩容操作,根据该容量调整条件对区块链网络进行操作。具体地,可以是对区块链网络中的节点资源进行扩容操作或者缩容操作,还可以是对区块链网络中的节点内的资源进行扩容操作或者缩容操作,还可以是对区块链网络进行扩容操作或者缩容操作。
本申请的技术方案可以根据区块链网络的监控信息以及容量调整条件,对区块链网络进行扩容操作或者缩容操作。在对区块链网络进行扩容操作或者缩容操作后,可以减少区块链网络中资源浪费的情况,及在没有及时扩容时的容量不够的现象。
在另一实施例中,步骤S100,监控区块链网络得到监控信息,该监控信息中的业务状况信息包括:
监控调用区块链网络进行记录请求处理的调用信息。
例如,当客户端发送调用信息,请求进行区块链网络进行业务记录时,则会收到调用信息。当有业务请求处理时,区块链网络可以对业务请求处理进行记录,在区块链网络对业务请求处理进行记录之前,还需要调用区块链网络,在调用区块链网络之后,区块链网络记录请求处理的信息,该信息即为调用区块网络进行记录请求处理的调用信息。每次请求处理都会调用区块链网络对该请求处理进行记录,具体可以通过API网关进行调用。在监控时,可以通过区块链即服务平台中的监控中心,监控该调用信息。区块链即服务平台中部署有API网关,客户端可以通过该API网关发生调用区块链网络的调用信息,请求区块链网络进行业务记录。
监控调用信息后,根据该调用信息,确定区块链网络中记录请求响应频次和/或记录请求响应速率。通过调用信息可以确定区块链网络中记录请求的响应频次,还可以确定记录请求的响应速率。记录请求的响应频率为单位时间内记录的请求处理的次数,例如,每秒记录的请求处理的次数。记录请求的响应速率为每次记录请求处理的所需的时间,例如,记录一次请求处理的所需的时间为0.01秒。根据业务需求,根据该调用信息可以同时确定区块链网络中记录请求响应频次和记录请求响应速率,也可以确定其中之一。
该实施例中,将区块链网络中记录请求响应频次和/或记录请求响应速率确定为监控信息,根据该监控信息可以进一步确定是否对区块链网络进行扩容或者缩容操作。
在另一实施例中,区块链网络所包含的节点包括排序服务节点和对等节点。步骤S100,监控区块链网络得到监控信息,包括:
针对排序服务节点,监控该排序服务节点在单位时间内接收到的记录请求的条数和/或广播记录请求的广播次数。还可以监控账本的数据信息,例如数据大小等。
排序服务节点接收记录请求处理和广播记录请求处理,排序服务节点在接收到记录请求处理后,向对等节点广播记录的请求处理。可以理解为,排序服务节点接收到一次记录请求处理的消息,就向对等节点广播一次此次接收到的记录请求处理的消息。排序服务节点在单位时间内接收到的记录请求处理的条数和/或广播记录请求的广播次数,反应了排序服务节点的业务状况信息,同样也从排序服务节点的角度反应了区块链的业务状况信息。
和/或,
监控调用区块链网络进行记录请求处理的调用信息,包括:
针对对等节点,监控对等节点在单位时间内在对记录请求对应的业务进行背书签名的背书次数、背书成功次数、记录请求的接收次数和记录的区块链的块数的至少其中之一。还可以监控对等节点记录区块的处理时间。
对等节点可以用于接收记录请求处理的消息、记录区块链的块数、对记录请求处理对应的业务进行配属签名的背书次数,和/或背书成功次数,这些信息从对等节点的业务状况反映了区块链网络的业务状况信息。
通过该实施例中监控得到的信息,反映了区块链网络的业务状况,从业务状况这一层次对区块链网络进行监控,并且区块链网络的业务状况信息反映了区块链网络的使用状况。所以可以根据监控的区块链网络的业务状况信息,对区块链网络进行进一步的容量调整。
在另一实施例中,从区块链网络的资源这一层面对区块链网络进行监控,得到区块链网络的资源状况信息,资源状况信息为区块链网络中多种资源的信息,包括节点资源、容器资源、网络资源等。监控区块链网络的不同资源状况信息,可以根据这些信息从不同的资源调整区块链网络的容量。
步骤S100,监控区块链网络得到监控信息,包括以下至少之一:
A:监控区块链网络内节点的节点资源状况,得到节点资源状况信息。从区块链网络中包括的节点的节点资源状况信息这一角度监控区块链网络,根据节点资源状况信息调整区块链网络的容量。节点资源状况信息可以包括单个节点的负载率、单个节点的已用资源状况和/或单个节点的剩余资源状况,一方面,根据区块链网络中每一个节点的单个节点的资源状况信息,确定出整个区块链网络的资源状况信息;另一方面,单个节点的资源状况信息,在可进行调整容量时,确定具体调整哪一个区块链网络中哪一个节点的容量。
B:监控区块链网络中节点内所设置容器的容器资源状况,得到容器资源状信息。从区块链网络包括的节点中设置的容器的容器资源状况信息这一角度监控区块链网络,根据容器资源状况信息调整区块链网络的容量。容器资源状况信息可以为容器的存储资源使用状况信息等。一方面,以容器为统计单元统计的容器资源状况信息,可用于确定容器组的资源状况信息,而根据一个或多个容器组的资源状况信息,可确定出包含这些容器组的节点资源状况信息;另一方面,在对区块链网络扩缩容时,为了实现简便扩缩容,可以根据容器资源状况,进行以容器为粒度的扩容和缩容。
C:监控区块链网络所包含不同各类型资源的资源状况,得到网络资源状况信息,根据网络资源状况信息,可以对区块链网络进行容量的扩容或者缩容。结合区块链网络所包含的不同的各类型资源状况信息,对区块链网络进行扩容或者缩容。例如,此处的网络资源状况信息可包括:区块链网络的存储资源状况信息,在整个区块链网络的底层,通过监控引擎,整体行监控网络资源状况系信息,从而可以快速确定出是否需要对整个区块链网络进行扩缩容;然后根据节点资源状况信息和/或节点内容器资源状况信息和/或节点内容器组的资源状况信息,确定出在扩容时是否需要增加容器,或者需要增加容器组,还是直接增加节点;在缩容时,具体删除哪一个容器,或删除哪一个容器组,甚至删除节点。
例如,在扩容时,在负载率最高的容器组内增加容器,在负载率最高的节点内增加容器组或容器;在各节点的负载率都很高的情况下,可增加节点。
再例如,在缩容时,在负载率最低的容器组内删除负载率最低的容器或者存储信息最少的容器,在负载率最地的节点删除存储信息最少的容器组或容器;在各节点的负载低都比较低的情况下,在选择存储信息最少的节点,进行信息迁移后,删除对应的节点。
参考图3,在另一实施例中,步骤S200,根据监控信息,确定区块链网络是否满足容量调整条件,包括:
步骤S201,根据监控信息,确定出区块链网络的负载率。通过监控区块链得到区块链网络的监控信息后,根据该监控信息确定区块链网络的负载率,该负载率反映了区块链网络的负载状况。
确定负载率,可以根据区块链网络的资源状况信息和业务状况信息确定。例如,根据区块链网络的业务状况信息中的业务处理情况,以及区块链网络已用资源状况信息和剩余资源状况信息,可以确定区块链网络的负载率。还可以根据资源状况信息和业务状况信息。根据实际业务需求确定区块链网络的负载率等。
具体地,可以是根据区块链网络的业务请求信息量和/或区块链网络的广播信息量,确定区块链网的负载率。
区块链网络的业务请求信息量可以包括:区块链网络中记录请求响应频次和/或记录请求响应速率对等节点的块处理时间、以及对等节点的块处理时间。区块链网络的广播信息量可以包括:排序服务节点在单位时间内接收到的记录请求的条数和/或广播记录请求的广播次数等。
区块链网络的业务请求信息量还可以包括:对等节点在单位时间内在对记录请求对应的业务进行背书签名的背书次数、背书成功次数、记录请求的接收次数和记录的区块链的块数的至少其中之一。
还可以根据区块链网络中的资源状况信息,确定区块链网的负载率。区块链网络中的资源状况信息可以包括:排序服务节点的账本数据的大小,以及对等服务节点的账本数据的大小等。
步骤S202,根据负载率,确定区块链网络是否满足容量调整条件。在得到区块链网络的负载率后,根据该负载率确定区块链网络是否满足容量调整条件,进而进行区块链网络的容量调整。该容量调整条件可以是根据实际的业务需求预先设定的。
在另一实施例中,步骤S202,根据负载率,确定区块链网络是否满足容量调整条件,包括:
根据负载率,确定区块链网络是否满足第一容量调整条件,其中,在第一容量调整条件下,通过区块链网络所包含节点数的调整进行扩容操作或缩容操作。第一容量调整条件同样可以为根据实际的业务需求预先设定的,在负载率满足第一容量调整条件时,对区块链网络所包含的节点数进行调整从而实现对区块链网络的扩容操作或者缩容操作。
其中,第一容量调整条件可以包括排序服务节点的第一容量调整条件和对等节点的第一容量调整条件,具体请参考该实施例的以下内容。
增加区块链网络所包含的节点数后,即可实现对区块链网络的扩容。减少区块链网络所包含的节点数后,即可实现对区块链网络的缩容。这里的区块链网络所包含的节点包括区块链网络中的排序服务节点和对等节点,对排序服务节点的数量和对等节点的数量进行调整,从而完成对区块链网络的扩容操作或者缩容操作。
具体地,通过区块链网络所包含节点数的调整进行扩容操作或缩容操作,包括:通过区块链网络所包含排序节点的数量调整,进行节点资源的扩容操作或缩容操作。
例如,监控区块链网络得到的监控信息包括区块链网络中记录请求响应频次和记录请求响应速率,以及排序服务节点在单位时间内接收到的记录请求的条数和广播记录请求的广播次数,根据这些监控信息确定区块链网络的负载率。
在该实施例中,区块链网络中记录请求响应频次用TPS表示,记录请求响应速率用RT表示,排序服务节点在单位时间内接收到的记录请求的条数用OBTC表示,广播记录请求的广播次数用OBBC表示,则区块链网络的负载率通过以下公式表示:
δ1=OBTC*OBBC*TPS*RT/100000000 (1)
将区块链网络的负载率δ1和第一预设值的比较值作为第一容量调整条件1,在区块链网络的负载率大于第一预设值或者小于第一预设值,对排序服务节点资源进行调整,即增加或者减少排序服务节点的数量。例如,第一预设值为50等。
当区块链网络的负载率δ1高于该第一预设值时,说明区块链网络中的排序服务节点的节点资源不够,则需要增加排序服务节点的数量以对区块链进行扩容。可以理解为通过排序服务节点的节点资源的扩容,实现对区块链网络的扩容。若δ1为200,则需要增加排序服务节点的数量。
当区块链网络的负载率δ1低于该第一预设值时,说明区块链网络中的排序服务节点的节点资源有存在空闲状态,部分节点资源并未被利用,其中的一部分节点资源即可满足业务需求。所以为了不必要的节点资源的浪费,需要减少排序服务节点的数量以对区块链进行缩容。若确定δ1为20,说明需要减少排序服务节点的数量。
值得说明的是,排序服务节点的增加数量或者减少数量这里不进行限定,可以按照区间段的方式增加,例如,δ1在[50,100]区间时,增加一个排序服务节点,δ1在[100,150]区间时,增加两个排序服务节点,δ1在[20,50]区间时,减少一个排序服务节点等。
该实施例可以理解为通过排序服务节点的节点资源的扩容或者缩容,实现对区块链网络的扩容或者缩容。
通过区块链网络所包含节点数的调整进行扩容操作或缩容操作,还可以包括:通过区块链网络所包含对等节点的数量调整,进行节点资源的扩容操作或缩容操作。
例如,监控区块链网络得到的监控信息包括区块链网络中记录请求响应频次和记录请求响应速率,以及对等节点的块处理时间,根据这些监控信息确定区块链网络的负载率。
在该实施例中,区块链网络中记录请求响应频次用TPS表示,记录请求响应速率用RT表示,对等节点的块处理时间用PBCT表示,则区块链网络的负载率通过以下公式表示:
δ2=PBCT*TPS*RT/1000 (2)
将区块链网络的负载率δ2和第二预设值的比较值作为第一容量调整条件2,在区块链网络的负载率大于第二预设值或者小于第二预设值,对对等节点资源进行调整,即增加或者减少对等节点的数量。例如,第二预设值为50等。
当区块链网络的负载率δ2高于该第二预设值时,说明区块链网络中的对等节点的节点资源不够,则需要增加对等节点的数量以对区块链进行扩容。可以理解为通过对等节点的节点资源的扩容,实现对区块链网络的扩容。若δ2为200,则需要增加对等节点的数量。
当区块链网络的负载率δ2低于该第二预设值时,说明区块链网络中的对等节点的节点资源有存在空闲状态,部分节点资源并未被利用,其中的一部分节点资源即可满足业务需求。所以为了不必要的节点资源的浪费,需要减少对等节点的数量以对区块链进行缩容。若确定δ2为20,说明需要减少对等节点的数量。
值得说明的是,对等节点的增加数量或者减少数量这里不进行限定,可以按照区间段的方式增加,例如,δ2在[50,100]区间时,增加一个对等节点,δ2在[100,150]区间时,增加两个对等节点,δ2在[20,50]区间时,减少一个对等节点等。
该实施例可以理解为通过排序服务节点的节点资源的扩容或者缩容,实现对区块链网络的扩容或者缩容。
在另一实施例中,步骤S202,根据所负载率,确定区块链网络是否满足容量调整条件,包括:
根据负载率,确定区块链网络是否满足第二容量调整条件,其中,在第二容量调整条件下,通过区块链网络所包含节点内的资源数调整,进行扩容操作或缩容操作。第二容量调整条件同样可以为根据实际的业务需求预先设定的,在负载率满足第二容量调整条件时,对区块链网络所包含的节点内的资源数进行调整,从而实现对区块链网络的扩容操作或者缩容操作。
第二容量调整条件可以包括排序服务节点内的资源数调整的第二容量调整条件,还可以包括对等节点内资源数调整的第二容量调整条件。排序服务节点内的资源数调整的第二容量调整条件可以包括排序服务节点内所包含的处理器个数的调整条件和存储资源的数量的调整条件。对等节点内的资源数调整的第二容量调整条件可以包括对等节点内所包含的处理器个数的调整条件和存储资源的数量的调整条件。具体请参考该实施例的以下内容。
增加区块链网络所包含的节点内的资源数后,即可实现对区块链网络的扩容。减少区块链网络所包含的节点内的资源数后,即可实现对区块链网络的缩容。
具体地,通过区块链网络所包含节点内的资源数调整,进行扩容操作或缩容操作,包括:通过区块链网络所包含节点内的处理器的个数调整,进行处理资源的扩容操作或缩容操作。该步骤包括对区块链网络所包含的排序服务节点内的资源数的调整,即对区块链网络所包含的排序服务节点内的处理器的个数的调整。还包括对区块链网络所包含的对等节点内的资源数的调整,即对区块链网络所包含的对等节点内的处理器个数的调整。
其中,对区块链网络所包含的排序服务节点内的处理器的个数的调整。
例如,监控区块链网络得到的监控信息包括区块链网络中记录请求响应频次和记录请求响应速率,以及排序服务节点在单位时间内接收到的记录请求的条数和广播记录请求的广播次数,根据这些监控信息确定区块链网络的负载率。
在该实施例中,区块链网络中记录请求响应频次用TPS表示,记录请求响应速率用RT表示,排序服务节点在单位时间内接收到的记录请求的条数用OBTC表示,广播记录请求的广播次数用OBBC表示,则区块链网络的负载率通过以下公式表示:
δ3=OBTC*OBBC*TPS*RT/100000000 (3)
将区块链网络的负载率δ3和第三预设值的比较值作为第二容量调整条件1,在区块链网络的负载率大于第三预设值或者小于第三预设值,对排序服务节点所包含的处理资源进行调整,即增加或者减少排序服务节点所包含的处理器的的数量。例如,第三预设值为50等。
当区块链网络的负载率δ3高于该第三预设值时,说明区块链网络中的排序服务节点内处理器的个数不够,则需要增加排序服务节点内处理器的个数以对区块链进行扩容。可以理解为通过排序服务节点内包含的处理器的个数的扩容,实现对区块链网络的扩容。若δ3为200,则需要增加排序服务节点内包含的处理器的数量。
当区块链网络的负载率δ3低于该第三预设值时,说明区块链网络中的排序服务节点包含的处理器的个数充足,部分处理器资源并未被利用,其中的一部分处理器资源即可满足业务需求。所以为了不必要的处理资源的浪费,需要减少排序服务节点包含的处理器的个数以对区块链进行缩容。若确定δ3为20,说明需要减少排序服务节点包含的处理器的个数。
值得说明的是,排序服务节点所包含的处理器的个数的增加数量或者减少数量这里不进行限定,可以按照区间段的方式增加,例如,δ3在[50,100]区间时,增加一个排序服务节点内包含的处理器的个数,δ3在[100,150]区间时,增加两个排序服务节点包含的处理器的个数,δ3在[20,50]区间时,减少一个排序服务节点包含的处理器的个数等。
对区块链网络所包含的对等节点内的处理器个数的调整。
例如,监控区块链网络得到的监控信息包括区块链网络中记录请求响应频次和记录请求响应速率,以及对等节点的块处理时间,根据这些监控信息确定区块链网络的负载率。
在该实施例中,区块链网络中记录请求响应频次用TPS表示,记录请求响应速率用RT表示,对等节点的块处理时间用PBCT表示,则区块链网络的负载率通过以下公式表示:
δ4=PBCT*TPS*RT/1000 (4)
将区块链网络的负载率δ4和第四预设值的比较值作为第二容量调整条件2,在区块链网络的负载率大于第四预设值或者小于第四预设值,对对等节点所包含的处理资源进行调整,即增加或者减少对等节点所包含的处理器的数量。例如,第四预设值为50等。
当区块链网络的负载率δ4高于该第四预设值时,说明区块链网络中的对等节点内处理器的个数不够,则需要增加对等节点所包含的处理器的数量以对区块链进行扩容。可以理解为通过对等节点内所包含的处理资源的扩容,实现对区块链网络的扩容。若δ4为200,则需要增加对等节点所包含的处理器的数量。
当区块链网络的负载率δ4低于该第四预设值时,说明区块链网络中的对等节点所包含的处理器的个数比较充足,部分处理资源并未被利用,其中的一部分处理资源即可满足业务需求。所以为了不必要的处理资源的浪费,需要减少对等节点所包含的处理器的数量以对区块链进行缩容。若确定δ4为20,说明需要减少对等节点所包含的处理器的数量。
值得说明的是,对等节点所包含的处理器的个数的增加数量或者减少数量这里不进行限定,可以按照区间段的方式增加,例如,δ4在[50,100]区间时,增加一个对等节点所包含的处理器,δ4在[100,150]区间时,增加两个对等节点所包含的处理器,δ4在[20,50]区间时,减少一个对等节点所包含的处理器等。
通过区块链网络所包含节点内的资源数调整,进行扩容操作或缩容操作,还包括:通过区块链网络所包含节点内的存储资源的数量调整,进行存储资源的扩容操作或缩容操作。该步骤包括对排序服务节点内的存储资源的数量调整和对对等节点内的存储资源的数量调整。
其中,对排序服务节点内的存储资源的数量调整。
例如,监控区块链网络得到的监控信息包括排序服务节点的账本数据的大小,根据该信息确定区块链网络的负载率。
在该实施例中,排序服务节点的账本数据的大小用OLS表示,区块链网络的负载率通过以下公式表示:
δ5=OLS (5)
将区块链网络的负载率δ5和第五预设值的比较值作为第二容量调整条件3,在区块链网络的负载率大于第五预设值或者小于第五预设值,对排序服务节点内的存储资源进行调整,即增加或者减少排序服务节点内的存储容量。例如,第五预设值为50等。
当区块链网络的负载率δ5高于该第五预设值时,说明区块链网络中的排序服务节点内存储资源不足,则需要增加排序服务节点内的存储容量以对区块链进行扩容。可以理解为通过排序服务节点内存储容量的扩容,实现对区块链网络的扩容。若δ5为200,则需要增加排序服务节点内存储资源的容量。
当区块链网络的负载率δ5低于该第五预设值时,说明区块链网络中的排序服务节点内的存储资源充足,部分存储资源并未被利用,其中的一部分存储资源即可满足业务需求。所以为了不必要的存储资源的浪费,需要减少排序服务节点内存储资源的容量以对区块链进行缩容。若确定δ5为20,说明需要减少排序服务节点内存储资源的容量。
值得说明的是,排序服务节点内存储容量的增加数量或者减少数量这里不进行限定,可以按照区间段的方式增加,例如,δ5在[50,100]区间时,增加一倍排序服务节点内存储资源的存储容量,δ5在[100,150]区间时,增加两倍排序服务节点内存储资源的存储容量,δ5在[20,50]区间时,减少一倍排序服务节点内存储资源的存储容量等。
对对等节点内的存储资源的数量调整。
例如,监控区块链网络得到的监控信息包括对等节点的节点存储的大小,根据该信息确定区块链网络的负载率。
在该实施例中,对等服务节点的账本数据的大小用PTSS表示,区块链网络的负载率通过以下公式表示:
δ6=PTSS (6)
将区块链网络的负载率δ6和第六预设值的比较值作为第二容量调整条件4,在区块链网络的负载率大于第六预设值或者小于第六预设值,对对等节点内的存储资源进行调整,即增加或者减少对等节点内的存储容量。例如,第六预设值为50等。
当区块链网络的负载率δ6高于该第六预设值时,说明区块链网络中的对等节点内存储资源不足,则需要增加对等节点内的存储容量以对区块链进行扩容。可以理解为通过对等节点内存储容量的扩容,实现对区块链网络的扩容。若δ6为200,则需要增加对等节点内存储资源的容量。
当区块链网络的负载率δ6低于该第六预设值时,说明区块链网络中的对等节点内的存储资源充足,部分存储资源并未被利用,其中的一部分存储资源即可满足业务需求。所以为了不必要的存储资源的浪费,需要减少对等节点内存储资源的容量以对区块链进行缩容。若确定δ6为20,说明需要减少对等节点内存储资源的容量。
值得说明的是,对等节点内存储容量的增加数量或者减少数量这里不进行限定,可以按照区间段的方式增加,例如,δ6在[50,100]区间时,增加一倍对等节点内存储资源的存储容量,δ6在[100,150]区间时,增加两倍对等节点内存储资源的存储容量,δ6在[20,50]区间时,减少一倍对等节点内存储资源的存储容量等。
在另一实施例中,根据负载率,确定区块链网络是否满足容量调整条件,包括:在区块链网络的负载率超标时,确定区块链网络是否满足容量调整条件。当根据区块链网络所包含的不同的各类型资源状况信息,确定区块链的负载率超标时,即超过一定的标准值后,确定区块链网络是否满足容量调整条件。具体地,可以根据节点资源状况信息及业务状况信息,确定区块链网络满足扩容调整条件,在区块链网络满足扩容调整条件时,进行区块链网络的扩容。
根据负载率,确定区块链网络是否满足容量调整条件,还包括:根据监控信息,确定出区块链网络的闲置率超标时,确定区块链网络满足缩容调整条件,在区块链网络满足缩容调整条件,进行区块链网络的缩容。即当根据区块链网络所包含的不同的各类型资源状况信息,确定区块链网络的闲置率超过一定的标准值后,确定区块链网络需要缩容,根据缩容条件对区块链网络进行缩容。
参考图4,在另一实施例中,还提供了一种区块链的处理系统,该系统包括:
监控模块,用于监控区块链网络得到监控信息,其中,监控信息包括:资源状况信息和/或业务状况信息。
确定模块,用于根据监控信息,确定区块链网络是否满足容量调整条件。
扩缩容模块,用于在确定出区块链网络满足容量调整条件时,根据满足的容量调整条件进行区块链网络的扩容操作或区块链网络的缩容操作。
上述三种模块还包括以下子模块或者单元或者子单元等,在图中未示出。
监控模块包括:
第一监控子模块,用于监控调用区块链网络进行记录请求处理的调用信息。
确定子模块,用于根据调用信息,确定区块链网络中记录请求响应频次和/或记录请求响应速率。
区块链网络所包含的节点包括:排序服务节点和对等节点。
监控模块还包括:
第二监控子模块,用于监控所述排序服务节点在单位时间内接收到的所述记录请求的条数和/或广播所述记录请求的广播次数。
和/或,
第三监控子模块,用于监控所述对等节点在单位时间内在对所述记录请求对应的业务进行背书签名的背书次数、背书成功次数、记录请求的接收次数和记录的区块链的块数的至少其中之一。
监控模块还包括:
第四监控子模块,用于监控所述区块链网络内节点的节点资源状况,得到节点资源状况信息。
第五监控子模块,用于监控所述区块链网络中节点内所设置容器的容器资源状况,得到容器资源状信息。
第六监控子模块,用于监控所述区块链网络所包含不同各类型资源的资源状况,得到网络资源状况信息。
确定模块包括:
第一确定单元,用于根据所述监控信息,确定出所述区块链网络的负载率。具体用于:根据区块链网络的业务请求信息量和/或区块链网络的广播信息量,确定区块链网的负载率。
第二确定单元,用于根据所述负载率,确定区块链网络是否满足容量调整条件。
第二确定单元,具体用于根据负载率,确定区块链网络是否满足第一容量调整条件,其中,在第一容量调整条件下,通过区块链网络所包含节点数的调整进行扩容操作或缩容操作。
通过区块链网络所包含节点数的调整进行扩容操作或缩容操作,包括:
通过区块链网络所包含排序节点的数量调整,进行节点资源的扩容操作或缩容操作。
通过区块链网络所包含对等节点的数量调整,进行节点资源的扩容操作或缩容操作。
第二确定单元,还用于:
根据负载率,确定区块链网络是否满足第二容量调整条件,其中,在第二容量调整条件下,通过所区块链网络所包含节点内的资源数调整,进行扩容操作或缩容操作。通过区块链网络所包含节点内的资源数调整,进行扩容操作或缩容操作,包括:
通过区块链网络所包含节点内的处理器的个数调整,进行处理资源的扩容操作或缩容操作。
通过区块链网络所包含节点内的存储资源的数量调整,进行存储资源的扩容操作或缩容操作。
第二确定单元,还用于:
在区块链网络的负载率超标时,确定区块链网络是否满足容量调整条件。
根据节点资源状况信息及业务状况信息,确定区块链网络满足扩容调整条件。在区块链网络满足扩容调整条件时,进行区块链网络的扩容。
第二确定单元,还用于:
根据监控信息,确定出区块链网络的闲置率超标时,确定区块链网络满足缩容调整条件。在区块链网络满足缩容调整条件,进行区块链网络的缩容。
本申请的技术方案还提供了一种电子设备,包括:
处理器;
存储器,其存储有程序指令,当程序指令被处理器执行时,使得电子设备执行上述任一项实施例中的方法。
本申请的技术方案还提供了一种存储介质,其存储有程序,当程序由处理器运行时,执行上述任一项实施例中的方法。该存储介质包括非瞬间存储介质。
参考图5,为另一实施例提供的一种区块链即服务平台的结构示意图。该区块链即服务平台包括有资源层、调度层、区块链层、服务层、接口层和应用层。其中,每层中还包括有不同的功能模块,参考图5所示,这里不再进行说明。
除此之外,区块链即服务平台中还部署有监控中心,该监控中心可以监控区块链即服务平台中的各种信息,包括监控资源状况信息和业务状态信息。其中,资源状况信息包括资源层的物理资源的使用状况信息,还包括区块链网络中的节点和交易状态,区块链中的块信息。业务状态信息包括通过API网关的监控的调用信息等。
区块链即服务平台还部署有调度中心,调度中心部署在调度层。该调度中心可以从监控中心获取监控信息,主要包括资源状况信息和业务状况信息,例如,用户申请的联盟链的网络信息和交易信息,以及联盟链下不同组织的API网关的相应的调用信息。调度中心根据这些信息,调用K8s引擎和Fabric引擎对用户申请的联盟链网络进行动态扩缩容,同时监控中心将调度中心的本次调度进行存储并记录,并将扩缩容之后的区块链网络的使用账单发给区块链即服务平台的计费模块。区块链即服务平台的使用用户可以在无感知的情况下使用区块链网络,并在一定时间之后获取到区块链网络的使用账单并付费。
进一步地,
监控中心监控的内容包括第一部分监控信息:
基于普罗米修斯(Promethus)监控平台对Kubernetes集群的监控,包括资源状况信息的监控,例如节点(node),容器(pod),以及k8s的资源对象的监控信息,监控对象信息如下表所示:
Figure BDA0002740607040000231
Figure BDA0002740607040000241
还包括第二部分监控信息:
对基于Hyperledger Fabric框架的区块链网络信息监控,对用户申请的区块链网络进行监控。对区块链网络的监控主要包含区块链的总体性概述(ChainInfo)、区块链网络的区块维度信息(BlockInfo),以及交易信息(TransactionInfo)。通过ChainInfo可以确定区块链的总体运行情况,通过BlockInfo可以确定区块包含的区块头(Block Header)、区块体(Block Data)和区块元数据(Block MetaData)等。通过TransactionInfo可以确定最新交易列表页,某一区块交易列表页,交易详情页等。
调度中心可以包括:数据收集模块、数据处理模块和消息发送模块。
其中,数据收集模块,用于定时从监控中心获取数据,发送给数据处理模块。
数据处理模块,用于根据数据收集模块发送的数据进行区块链网络扩缩容的处理,主要包括资源状况信息和业务状况信息,例如获取的数据为区块链网络的信息数据、处理规则根据区块链的交易信息、区块链网络的块信息、区块链联盟链中的排序服务节点的容量及存储,联盟链中组织的对等节点的决定。
消息发送模块,用于向移动云平台的计费模块和用户客户端发送处理后的消息,计费模块根据处理后的区块链网络的使用信息进行重新计费,并将账单信息发给用户客户端。
参考图6,为另一实施例中提供的一种监控中心、调度中心以及区块链即服务平台的关系示意图。
从该图中可以看出,区块链即服务平台中包括多个联盟,每个联盟中有多个智能合约。监控中心监控区块链网络的资源状况信息和业务状况信息,资源状况信息可以包括区块链网络的状况信息、以及k8s中的如表1所示的信息。监控中心通过API网关监控区块链网络的业务状况信息。根据监控中心的监控信息对区块链网络进行扩容操作或者缩容操作。
参考图7,为另一实施例提供的一种区块链处理方法的流程示意图。
第一步,用户购买联盟链,联盟链初始化。
该实施例中的区块链即服务平台采用后付费的形式,用户不需要提前指定创建联盟链所需要的配置,只需要指定创建联盟链所需要的组织,区块链即服务平台默认给每个组织添加一个对等节点,以及给每一个联盟链默认一个排序服务节点。
具体地,确定创建联盟链所需的组织个数、组织内节点的证书认证方式、加密算法、状态数据库类型等。
本方法构建的联盟链依托于Hyperledger Fabric,根据确定的创建联盟链的信息,区块链即服务平台向K8s引擎发送创建联盟链的请求。K8s执行请求后,区块链即服务平台调用K8s创建用户证书的文件(yaml),通过调用k8s创建yaml文件创建证书,然后调用创建对等节点的文件(yaml)给每一个组织创建一个对等节点的容器(Pod),以及调用创建排序服务节点的文件(yaml)给用户所购买的联盟链创建排序服务节点。
第二步,通过联盟链进行业务的处理,例如用户使用联盟链
当用户购买联盟链之后,用户可以在购买的联盟链上添加信道并在信道上安装自己开发的智能合约,将开发的智能合约发布到通道上去,用户所申请的联盟链里的其他组织的用户可以申请加入该通道,从而通过API网关调用智能合约应用的接口。
第三步,监控中心监控区块链网络,得到监控信息
该监控信息包括资源状况信息和业务状况信息,其中,资源状况信息包括监控K8s底层状态,监控用户所申请联盟链的物理使用状态。
其中K8s的底层监控在K8s中已有相关的实现方法,可以通过cAdvisor监控K8s中的Pod的Cpu利用率,内存利用率等,通过node-exporter监控K8s节点的节点Cpu利用率,节点内存使用率,通过Kube-state-metrics监控K8s的资源对象如Deployment,Service等。
联盟链的监控中心通过调用Fabric的引擎实现对联盟链的物理使用状况信息的监控,主要提供两种维度的监控信息:联盟实例的Ordererer节点;组织实例的Peer节点。
排序服务节点(Orderer)节点的监控信息包括:排序服务节点节点的占用存储(Orderer Storage Size,OSS),排序服务节点节点的账本数据大小(Orderer LedgerSize,OLS),排序服务节点节点的广播块计数(Ordererer Broadcast Block Counter,OBBC),排序服务节点节点的广播交易计数(Ordererer Broadcast Transaction Counter,OBTC)。
对等节点的监控信息包括:对等节点的存储大小(Peer Total Storage Size,PTSS),对等节点的背书计数(Peer Endorsement Counter,PEC),对等节点的背书成功计数(Peer Endorsement Successful Counter,PESC),对等节点接收交易计数(Peer RecvTransaction Counter,PRTC),对等节点接收的块计数(Peer Recv Block Counter,PRBC),对等节点的块处理时间(Peer Block Commit Time,PBCT)。调度中心会定时的获取每个联盟链的监控信息并存储。
业务状况信息的监控信息通过普罗米修斯监控平台(Promethus)中的监控工具(metrics)实现,主要包括监控调用所述区块链网络进行记录请求处理的调用信息;根据所述调用信息,确定所述区块链网络中记录请求响应频次和/或记录请求响应速率,例如,根据API网关的调用情况监控单位时间内(如每秒)发生的交易数(TPS)和响应时间(RT)等。
第四部,调度中心根据监控信息,确定区块链网络是否满足容量调整条件,进而对区块链网络进行容量的调整,例如定时收集监控数据并计算扩缩容负载值等。
调度中心可以每隔固定时间从监控中心获取监控信息,并计算用户购买的联盟链是否需要扩缩容,用户初始申请的联盟链除了组织数为自己选择的外,组织内对等节点的个数和联盟链所拥有的排序服务节点的个数都为一个。
根据监控信息,确定区块链网络是否满足容量调整条件,包括:
排序服务节点(Orderer)的节点资源和排序服务节点包含的处理资源的容量调整条件,如下:
排序服务节点的广播交易计数(OBTC)、排序服务节点的广播块计数(OBBC)、TPS及RT的乘积大于预设值时,进行排序服务节点个数的扩容和排序服务节点的容器(Pod)的处理器最大核数量的扩容,否则,缩容。后续扩容按线性计算。即排序服务节点的个数和处理器的扩缩容实时负载值如下公式所示:
δOrderCpu=OBTC*OBBC*TPS*RT/100000000
δOrderCpu表示排序服务节点的个数增加或者减少的参考值,还表示排序服务节点内处理器核的个数,该实施例中的δOrderCpu预设负载阈值为50。
排序服务节点内存储资源的调整条件:
排序服务节点的账本数据大小(Orderer Ledger Size),单位可以为GB,排序服务节点的账本数据大小大于设置的扩容值时,按线性进行排序服务节点的物理存储扩容,增加排序服务节点包含的容器的存储容量,例如内存和存储卷的容量最大值。排序服务节点的内存和存储的扩缩容实时负载值如下公式所示:
δMemoryVolume=OLS
其中,预设δMemoryVolume的负载阈值为100。
对等节点的节点资源和对等节点包含的处理资源的调整条件如下:
对等节点的块处理时间(Peer Block Commit Time)和TPS及RT的乘积大于设置的扩容值时,进行对等节点的个数和对等节点内包含的处理器的个数的扩容。即增加对等节点内包含的处理器核的最大值。后续扩容按线性计算,即对等节点的个数和对等节点包含的处理器核数的扩缩容实时负载值如下公式所示:
δPeerCpu=PBCT*TPS*RT/1000
其中,PBCT为对等节点的块处理时间,单位秒,预设δPeerCpu负载阈值为1。
对等节点内存储资源的调整条件:
对等节点的存储大小,单位为GB。当对等节点的存储大小大于预设阈值时(预设的扩容值)时,进行对等节点的物理存储扩容,即增加对等节点包含的存储资源的存储容量,包括内存和存储卷的容量最大值。否则,减小对等节点包含的存储资源的存储容量。后续扩容按线性计算,对等节点的存储资源的扩缩容实时负载值如下公式所示:
δPeerVolume=PTSS
其中,预设的负载阈值值δPeerVolume为50。
图7中的δ为该实施例中各个调整条件中预设的负载阈值或扩容值,如50或100等。
第五步,对区块链网络进行扩容或缩容。
调度中心根据以上规则对区块链网络进行自动扩缩容,并同步到云平台的计费中心和邮件发送账单给用户。上述已经给出负载值δOrderCpu,δMemoryVolume,δOrderCpu,δPeerVolume分别为50,100,1,50。当调度中心定时收集监控数据并计算相应的δ的当前值并与我们给定的负载值比较,当大于相应的负载值时,调度中心底层调用Fabric和K8s的引擎进行联盟链的扩容,并发送账单给用户。
除了上述规则外,还有一些内置的固定规则:如,当调度中心获取到用户购买的联盟链长时间只有一条交易后,会认定该区块链为死亡区块链,并发送消息给用户告知是否需要继续使用该联盟链,从而减少用户成本。
本方法采用实时监控,自动扩缩容的方法保证用户所使用的区块链网络的配置正好适合用户所申请购买的配置,减小了用户的使用成本和平台的运营成本。通过自动扩缩容的方式,省去了用户手动的配置升级,提升了区块链即服务平台创建的区块链网络的便捷性。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
在一些情况下,上述任一两个技术特征不冲突的情况下,可以组合成新的方法技术方案。
在一些情况下,上述任一两个技术特征不冲突的情况下,可以组合成新的设备技术方案。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种区块链网络的处理方法,其特征在于,包括:
监控区块链网络得到监控信息,其中,所述监控信息包括:资源状况信息和/或业务状况信息;
根据所述监控信息,确定所述区块链网络是否满足容量调整条件;
在确定出所述区块链网络满足容量调整条件时,根据满足的所述容量调整条件进行所述区块链网络的扩容操作或所述区块链网络的缩容操作。
2.根据权利要求1所述的处理方法,其特征在于,所述监控区块链网络得到监控信息包括:
监控调用所述区块链网络进行记录请求处理的调用信息;
根据所述调用信息,确定所述区块链网络中记录请求响应频次和/或记录请求响应速率。
3.根据权利要求1或2所述的处理方法,其特征在于,所述区块链网络所包含的节点包括:排序服务节点和对等节点;
所述监控区块链网络得到监控信息,包括:
监控所述排序服务节点在单位时间内接收到的所述记录请求的条数和/或广播所述记录请求的广播次数;
和/或,
监控所述对等节点在单位时间内在对所述记录请求对应的业务进行背书签名的背书次数、背书成功次数、记录请求的接收次数和记录的区块链的块数的至少其中之一。
4.根据权利要求1或2所述的处理方法,其特征在于,所述监控区块链网络得到监控信息,包括以下至少之一:
监控所述区块链网络内节点的节点资源状况,得到节点资源状况信息;
监控所述区块链网络中节点内所设置容器的容器资源状况,得到容器资源状况信息;
监控所述区块链网络所包含不同各类型资源的资源状况,得到网络资源状况信息。
5.根据权利要求1所述的处理方法,其特征在于,所述根据所述监控信息,确定所述区块链网络是否满足容量调整条件,包括:
根据所述监控信息,确定出所述区块链网络的负载率;
根据所述负载率,确定所述区块链网络是否满足容量调整条件。
6.根据权利要求5所述的处理方法,其特征在于,所述根据所述监控信息,确定出所述区块链网络的负载率,包括:
根据所述区块链网络的业务请求信息量和/或所述区块链网络的广播信息量,确定所述区块链网的负载率。
7.根据权利要求5或6所述的处理方法,其特征在于,所述根据所述负载率,确定区块链网络是否满足容量调整条件,包括:
根据所述负载率,确定区块链网络是否满足第一容量调整条件,其中,在所述第一容量调整条件下,通过所述区块链网络所包含节点数的调整进行扩容操作或缩容操作。
8.根据权利要求7所述的处理方法,其特征在于,所述通过所述区块链网络所包含节点数的调整进行扩容操作或缩容操作,包括:
通过所述区块链网络所包含排序节点的数量调整,进行节点资源的扩容操作或缩容操作;
和/或,
通过所述区块链网络所包含对等节点的数量调整,进行节点资源的扩容操作或缩容操作。
9.根据权利要求5或6所述的处理方法,其特征在于,根据所述负载率,确定区块链网络是否满足容量调整条件,包括:
根据所述负载率,确定区块链网络是否满足第二容量调整条件,其中,在所述第二容量调整条件下,通过所述区块链网络所包含节点内的资源数调整,进行扩容操作或缩容操作。
10.根据权利要求9所述的处理方法,其特征在于,所述通过所述区块链网络所包含节点内的资源数调整,进行扩容操作或缩容操作,包括:
通过所述区块链网络所包含节点内的处理器的个数调整,进行处理资源的扩容操作或缩容操作;
和/或,
通过所述区块链网络所包含节点内的存储资源的数量调整,进行存储资源的扩容操作或缩容操作。
11.根据权利要求5或6所述的处理方法,其特征在于,所述根据所述负载率,确定区块链网络是否满足容量调整条件,包括:
在所述区块链网络的负载率超标时,确定区块链网络是否满足容量调整条件;
根据所述节点资源状况信息及业务状况信息,确定所述区块链网络满足扩容调整条件;
所述在确定出所述区块链网络满足容量调整条件时,根据满足的所述容量调整条件进行所述区块链网络的扩容操作或所述区块链网络的缩容操作,包括:
在所述区块链网络满足扩容调整条件时,进行所述区块链网络的扩容。
12.根据权利要求5或6所述的处理方法,其特征在于,所述根据所述负载率,确定区块链网络是否满足容量调整条件,包括:
根据所述监控信息,确定出所述区块链网络的闲置率超标时,确定所述区块链网络满足缩容调整条件;
所述在确定出所述区块链网络满足容量调整条件时,根据满足的所述容量调整条件进行所述区块链网络的扩容操作或所述区块链网络的缩容操作,包括:
在所述区块链网络满足缩容调整条件,进行所述区块链网络的缩容。
13.一种区块链的处理系统,其特征在于,包括:
监控模块,用于监控区块链网络得到监控信息,其中,所述监控信息包括:资源状况信息和/或业务状况信息;
确定模块,用于根据所述监控信息,确定所述区块链网络是否满足容量调整条件;
扩缩容模块,用于在确定出所述区块链网络满足容量调整条件时,根据满足的所述容量调整条件进行所述区块链网络的扩容操作或所述区块链网络的缩容操作。
14.一种电子设备,包括:
处理器;
存储器,其存储有程序指令,当所述程序指令被所述处理器执行时,使得所述电子设备执行如权利要求1~12任一项所述的方法。
15.一种存储介质,其存储有程序,当所述程序由处理器运行时,执行如权利要求1~12任一项所述的方法。
CN202011149099.3A 2020-10-23 2020-10-23 一种区块链网络的处理方法、系统、电子设备及存储介质 Pending CN114500553A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011149099.3A CN114500553A (zh) 2020-10-23 2020-10-23 一种区块链网络的处理方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011149099.3A CN114500553A (zh) 2020-10-23 2020-10-23 一种区块链网络的处理方法、系统、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114500553A true CN114500553A (zh) 2022-05-13

Family

ID=81470556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011149099.3A Pending CN114500553A (zh) 2020-10-23 2020-10-23 一种区块链网络的处理方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114500553A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109189334A (zh) * 2018-08-16 2019-01-11 北京京东尚科信息技术有限公司 一种区块链网络服务平台及其扩容方法、存储介质
US20190036778A1 (en) * 2017-07-26 2019-01-31 International Business Machines Corporation Using blockchain smart contracts to manage dynamic data usage requirements
CN109995666A (zh) * 2019-04-12 2019-07-09 深圳市元征科技股份有限公司 一种消息传输方法及相关装置
CN110083661A (zh) * 2019-04-30 2019-08-02 翟红鹰 一种区块链系统的扩容方法、区块链系统、终端设备及存储介质
EP3540662A1 (en) * 2018-03-15 2019-09-18 Deutsche Telekom AG Computer implemented method for supply chain management and provenance in a data processing network
CN110321226A (zh) * 2019-07-09 2019-10-11 西安点告网络科技有限公司 主机的自动扩缩容方法、装置、主机及存储介质
CN110442644A (zh) * 2019-07-08 2019-11-12 深圳壹账通智能科技有限公司 区块链数据归档存储方法、装置、计算机设备和存储介质
CN111769946A (zh) * 2020-05-08 2020-10-13 贵阳信息技术研究院(中科院软件所贵阳分部) 一种面向联盟链的大规模节点扩容方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190036778A1 (en) * 2017-07-26 2019-01-31 International Business Machines Corporation Using blockchain smart contracts to manage dynamic data usage requirements
EP3540662A1 (en) * 2018-03-15 2019-09-18 Deutsche Telekom AG Computer implemented method for supply chain management and provenance in a data processing network
CN109189334A (zh) * 2018-08-16 2019-01-11 北京京东尚科信息技术有限公司 一种区块链网络服务平台及其扩容方法、存储介质
CN109995666A (zh) * 2019-04-12 2019-07-09 深圳市元征科技股份有限公司 一种消息传输方法及相关装置
CN110083661A (zh) * 2019-04-30 2019-08-02 翟红鹰 一种区块链系统的扩容方法、区块链系统、终端设备及存储介质
CN110442644A (zh) * 2019-07-08 2019-11-12 深圳壹账通智能科技有限公司 区块链数据归档存储方法、装置、计算机设备和存储介质
CN110321226A (zh) * 2019-07-09 2019-10-11 西安点告网络科技有限公司 主机的自动扩缩容方法、装置、主机及存储介质
CN111769946A (zh) * 2020-05-08 2020-10-13 贵阳信息技术研究院(中科院软件所贵阳分部) 一种面向联盟链的大规模节点扩容方法

Similar Documents

Publication Publication Date Title
CN106330576B (zh) 容器化微服务自动伸缩及迁移调度的方法、系统和设备
CN109618002B (zh) 一种微服务网关优化方法、装置及存储介质
CN106201661B (zh) 用于弹性伸缩虚拟机集群的方法和装置
US20180375957A1 (en) Access scheduling method and apparatus for terminal, and computer storage medium
CN110519711A (zh) 一种消息推送方法、装置、存储介质和服务器
CN112764920B (zh) 一种边缘应用部署方法、装置、设备和存储介质
CN106534318A (zh) 一种基于流量亲和性的OpenStack云平台资源动态调度系统和方法
CN103561078A (zh) 电信运营系统及业务服务方法
CN112333835B (zh) 一种载波资源调度方法和装置
CN110795217B (zh) 一种基于资源管理平台的任务分配方法及系统
CN109818809A (zh) 交互式语音应答系统及其数据处理方法和电话客服系统
CN110430590A (zh) 网络切片匹配方法及装置
CN103001892A (zh) 基于云计算的网络资源分配方法及系统
CN106156209A (zh) 数据处理方法及装置
CN113099410A (zh) 一种5g电力边缘数据传输处理方法、装置、终端及介质
CN113132437B (zh) Cdn调度方法、系统、设备和存储介质
CN103258389B (zh) 自助终端上传文件的方法、系统和自助终端
CN109474902A (zh) 消息计费装置、方法、终端及系统
CN109062683A (zh) 主机资源分配的方法、装置及计算机可读存储介质
CN106982126A (zh) 一种资源共享计费方法及计费装置、内存库
CN110213450B (zh) 基于多中心的手语在线客服分配管理方法、装置及系统
CN114500553A (zh) 一种区块链网络的处理方法、系统、电子设备及存储介质
CN111988388A (zh) 流量分配的方法、装置、电子设备及存储介质
CN108667920B (zh) 一种雾计算环境业务流量加速系统及其业务流量加速方法
CN113315719A (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