CN116975158A - 请求处理方法、装置、计算机设备和存储介质 - Google Patents

请求处理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN116975158A
CN116975158A CN202311236394.6A CN202311236394A CN116975158A CN 116975158 A CN116975158 A CN 116975158A CN 202311236394 A CN202311236394 A CN 202311236394A CN 116975158 A CN116975158 A CN 116975158A
Authority
CN
China
Prior art keywords
request
resource transfer
contract
target
data
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
Application number
CN202311236394.6A
Other languages
English (en)
Other versions
CN116975158B (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311236394.6A priority Critical patent/CN116975158B/zh
Publication of CN116975158A publication Critical patent/CN116975158A/zh
Application granted granted Critical
Publication of CN116975158B publication Critical patent/CN116975158B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Accounting & Taxation (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种请求处理方法、装置、计算机设备和存储介质。本申请实施例可应用于车载领域,方法包括:遍历已接收到的资源转移请求,识别资源转移请求中执行目标智能合约的目标资源转移请求;提交目标资源转移请求至区块链的跨节点合约虚拟机服务,调用跨节点合约虚拟机服务对目标资源转移请求进行负载均衡的分配处理,以将目标资源转移请求分配至目标智能合约对应的容器单元;通过容器单元执行目标资源转移请求;获取针对目标资源转移请求反馈的资源转移结果。本申请的方案中,区块链的合约计算资源在多个区块链节点进行共享,节省各个节点的计算资源消耗,避免区块链节点的计算资源出现木桶效应,能够有效提高区块链整体计算效率。

Description

请求处理方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种请求处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术和网络技术的发展,出现了区块链技术,区块链是一种分布式账本技术,一般由共识、交易区块和状态数据存储、密码学身份安全等内容构成。由于账本是分布式存储的,而且区块是经过共识的,所以具有不可篡改、可追溯、共同维护等特征。区块链所要共识的内容为区块,而区块是由一个个资源转移和元数据组成的。这些资源转移的执行依赖智能合约及其方法的执行。
智能合约的执行往往需要依赖虚拟机或者合约引擎来支撑,然而目前常见的共识算法,比如实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)、基站拜占庭容错算法(Tower Byzantine Fault Tolerance,TBFT),通常是主节点先执行区块中的资源转移,之后将区块发送给从节点进行再次执行并验证执行结果是否与主节点发过来的一致。因此主节点执行阶段无法利用其他节点的计算资源,其他节点验证时也无法利用主节点的计算资源。同时在某个节点计算资源不够时,也无法利用其他节点的资源进行计算。从而导致每个节点的计算资源要求都很高,整链的计算效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高区块链整体计算效率的请求处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种请求处理方法,包括:
遍历已接收到的资源转移请求,识别所述资源转移请求中执行目标智能合约的目标资源转移请求;
提交所述目标资源转移请求至区块链的跨节点合约虚拟机服务,调用所述跨节点合约虚拟机服务对所述目标资源转移请求进行负载均衡的分配处理,以将所述目标资源转移请求分配至所述目标智能合约对应的容器单元,所述容器单元部署于所述区块链的不同节点;
通过所述容器单元执行所述目标资源转移请求;
获取所述跨节点合约虚拟机服务针对所述目标资源转移请求反馈的资源转移结果。
第二方面,本申请还提供了一种请求处理装置,包括:
请求识别模块,用于遍历已接收到的资源转移请求,识别所述资源转移请求中执行目标智能合约的目标资源转移请求;
请求分配模块,用于提交所述目标资源转移请求至区块链的跨节点合约虚拟机服务,调用所述跨节点合约虚拟机服务对所述目标资源转移请求进行负载均衡的分配处理,以将所述目标资源转移请求分配至所述目标智能合约对应的容器单元,所述容器单元部署于所述区块链的不同节点;
请求执行模块,用于通过所述容器单元执行所述目标资源转移请求;
结果接收模块,用于获取所述跨节点合约虚拟机服务针对所述目标资源转移请求反馈的资源转移结果。
第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
遍历已接收到的资源转移请求,识别所述资源转移请求中执行目标智能合约的目标资源转移请求;
提交所述目标资源转移请求至区块链的跨节点合约虚拟机服务,调用所述跨节点合约虚拟机服务对所述目标资源转移请求进行负载均衡的分配处理,以将所述目标资源转移请求分配至所述目标智能合约对应的容器单元,所述容器单元部署于所述区块链的不同节点;
通过所述容器单元执行所述目标资源转移请求;
获取所述跨节点合约虚拟机服务针对所述目标资源转移请求反馈的资源转移结果。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
遍历已接收到的资源转移请求,识别所述资源转移请求中执行目标智能合约的目标资源转移请求;
提交所述目标资源转移请求至区块链的跨节点合约虚拟机服务,调用所述跨节点合约虚拟机服务对所述目标资源转移请求进行负载均衡的分配处理,以将所述目标资源转移请求分配至所述目标智能合约对应的容器单元,所述容器单元部署于所述区块链的不同节点;
通过所述容器单元执行所述目标资源转移请求;
获取所述跨节点合约虚拟机服务针对所述目标资源转移请求反馈的资源转移结果。
第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
遍历已接收到的资源转移请求,识别所述资源转移请求中执行目标智能合约的目标资源转移请求;
提交所述目标资源转移请求至区块链的跨节点合约虚拟机服务,调用所述跨节点合约虚拟机服务对所述目标资源转移请求进行负载均衡的分配处理,以将所述目标资源转移请求分配至所述目标智能合约对应的容器单元,所述容器单元部署于所述区块链的不同节点;
通过所述容器单元执行所述目标资源转移请求;
获取所述跨节点合约虚拟机服务针对所述目标资源转移请求反馈的资源转移结果。
上述请求处理方法、装置、计算机设备、存储介质和计算机程序产品,通过遍历已接收到的资源转移请求,识别资源转移请求中执行目标智能合约的目标资源转移请求。从而可以在请求处理阶段先对资源转移请求进行分类,确定各个智能合约所对应的资源转移请求。而后提交目标资源转移请求至区块链的跨节点合约虚拟机服务,调用跨节点合约虚拟机服务对目标资源转移请求进行负载均衡的分配处理,以将目标资源转移请求分配至目标智能合约对应的容器单元,并通过容器单元执行目标资源转移请求。即针对目标智能合约的目标资源转移请求,通过跨节点合约虚拟机服务,来将这些目标资源转移请求以负载均衡的方式分配到各个容器单元上进行执行,而容器单元部署在区块链的不同节点上,因此区块链的合约计算资源可以在多个区块链节点进行共享,节省各个节点的计算资源消耗,避免区块链节点的计算资源出现木桶效应,提高区块链的整体计算效率。最后即可得到跨节点合约虚拟机服务针对目标资源转移请求反馈的资源转移结果。本申请的方案在执行智能合约的资源转移请求时,通过基于容器的跨节点合约虚拟机服务,将资源转移请求的智能合约计算任务通过容器单元的形式,以负载均衡的策略自动调度到合适的区块链节点执行,不需要只在某一个节点执行,使得区块链的合约计算资源在多个区块链节点进行共享,节省各个节点的计算资源消耗,避免区块链节点的计算资源出现木桶效应,能够有效提高区块链整体计算效率。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中分布式系统应用于区块链系统的结构示意图;
图2为一个实施例中区块结构的示意图;
图3为一个实施例中请求处理方法的流程示意图;
图4为一个实施例中跨节点合约虚拟机服务的结构示意图;
图5为一个实施例中区块链节点的结构示意图;
图6为一个实施例中智能合约安装的流程示意图;
图7为另一个实施例中请求处理方法的流程示意图;
图8为一个实施例中智能合约请求预测与动态调度的流程示意图;
图9为一个实施例中请求处理装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络资源转移的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括对象管理、基础服务、智能合约以及运营监测等处理模块。其中,对象管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及对象真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的资源转移情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监测模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监测网络情况、监测节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
本申请实施例涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、对象终端)通过网络通信的形式连接形成的分布式系统其中,对象终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。
以分布式系统为区块链系统为例,参见图1,图1是本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、对象终端)和客户端形成,节点之间形成组成的点对点网络,点对点协议是一个运行在传输控制协议(TCP,Transmission Control Protocol )协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的转移的功能,包括发起转移请求(即,将当前转移请求的资源转移记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认资源转移有效的响应,将资源转移的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的资源转移,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于资源转移请求的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块 (Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图2,图2是本申请实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储转移请求记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
在本文中,需要理解的是,所涉及的术语:
区块链:信息技术领域的一种分布式账本技术,一般由共识、交易区块和状态数据存储、密码学身份安全等内容构成,由于账本是分布式存储的,而且区块是经过共识的,所以具有不可篡改、可追溯、共同维护等特征
智能合约:智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信的资源转移,这些资源转移可追寻且不可逆转。
Kubernetes:Kubernetes 是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了一个可移植的、可扩展的、自我修复的运行环境,可以在公共云、私有云和混合云中运行。Kubernetes 可以管理多个容器化应用程序,提供负载平衡、自动伸缩、自动恢复等功能,使得容器化应用程序的部署和管理更加简单高效。
容器单元(Pod):Kubernetes 的容器单元是容器中最小的可部署单元,它是一个或多个容器的集合,它们共享网络和存储资源,并且在同一节点上运行。容器单元是容器中应用程序的基本构建块,可以包含一个或多个容器,这些容器可以协作运行应用程序或服务。容器单元中的容器可以共享同一个网络命名空间,从而可以使用本地服务器通信,也可以共享同一个存储卷,从而共享数据。容器单元也可以被视为一个逻辑主机,它可以拥有自己的 IP 地址和端口,可以在内部进行容器间通信,也可以通过容器服务器 暴露给外部访问。容器单元是容器中的一个重要概念,它提供了一种灵活的方式来组织和部署容器化应用程序,同时也允许对容器进行资源限制和隔离,从而提高了应用程序的可靠性和安全性。
容器:容器是一个独立的运行环境,可以在其中运行应用程序。容器是基于镜像创建的,它包含了镜像中的所有内容,并且可以在其中运行应用程序。容器是轻量级的,可以快速启动和停止,而且可以在不同的环境中运行,例如在开发、测试和生产环境中。容器技术可以帮助开发人员更快速地构建、测试和部署应用程序。
请求池:区块链的请求池(Transaction Pool,也称为Mempool)是指未被打包到区块中的、等待被写入区块的资源转移请求集合。在区块链网络中,每个节点都会维护一个资源转移请求的请求池,用来存放由对象生成新的资源转移请求。当一个对象发起一个资源转移请求时,该资源转移请求将会被广播到整个网络中。如果资源转移请求符合区块链网络的资源转移规则和验证规则,则会被加入到节点的请求池中。请求池中的资源转移请求在等待打包进区块之前,需要等待被验证和确认请求池是区块链网络中重要的组成部分之一,在保证资源转移请求顺利被处理的同时,也可以提高区块链的效率和性能。
负载均衡:负载均衡是一种在多个计算资源(如服务器、网络连接或其他设备)之间分配工作负载的方法,以便在不同资源上平衡处理任务。负载均衡的主要目的是优化资源利用率、最大化吞吐量、最小化响应时间、避免资源过载并确保系统的可用性和可靠性。负载均衡可以应用于不同的系统和场景,例如网络负载均衡、服务器负载均衡和数据库负载均衡。负载均衡可以通过硬件设备(负载均衡器)或软件解决方案(如代理服务器或应用程序)实现。
本申请实施例提供的请求处理方法,可以应用于如图1所示的应用环境中。其中,分布式系统100包含多个区块链节点(简称节点)200,这些节点之间相互形成点对点通信,任意一个与对象对应的节点都可以响应对象的操作,执行本申请的请求处理方法。请求处理方法的流程可以参照图3所示,具体包括:
步骤302,遍历已接收到的资源转移请求,识别资源转移请求中执行目标智能合约的目标资源转移请求。
其中,资源转移请求用于实现区块链内对象间资源转移处理的请求,资源转移请求中包含请求所使用智能合约的信息,还包含了资源转移过程中双方的账户名和转移的资源量。区块链中区块链节点200所接受到的资源转移请求可以存储在请求池内,当到达定时点或者请求池内的请求量已经达到阈值时,可以针对请求池中的请求进行处理,来生成区块链的新区块。智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信的资源转移,这些资源转移可追寻且不可逆转。每个资源转移请求都携带了智能合约信息,而不同的资源转移请求分别对应了不同的智能合约。
示例性地,当对象希望资源转移的处理被合约执行,被新区块打包,并存储到区块链账本和数据库中,从而实现在区块链上实现资源的转移处理时,可以根据资源转移处理过程所涉及的智能合约、双方的账户名和转移的资源量来生成相应的资源转移请求,而后将资源转移请求提交至区块链的区块链节点200来进行资源转移的处理,区块链节点200在接收到资源转移请求时,会对接收到的资源转移请求进行一系列的验证处理,当验证处理完成后,会将通过验证的资源转移请求保存至请求池,当触发生成新区块的动作时,区块链节点200会遍历请求池中已接收到的资源转移请求,从而进行请求处理,来生成新的区块。而不同的资源转移请求分别对应了不同的智能合约,因此针对这些已接收到的资源转移请求,可以先识别出资源转移请求中所携带智能合约信息,而后基于资源转移请求中所携带智能合约信息对资源转移请求进行分类,针对每个智能合约,都可以确定需要执行该智能合约的资源转移请求。
步骤304,提交目标资源转移请求至区块链的跨节点合约虚拟机服务,调用跨节点合约虚拟机服务对目标资源转移请求进行负载均衡的分配处理,以将目标资源转移请求分配至目标智能合约对应的容器单元,容器单元部署于区块链的不同节点。
步骤306,通过容器单元执行目标资源转移请求。
其中,跨节点合约虚拟机服务是本申请请求处理方法为实现负载均衡处理所加载的区块链服务程序,跨节点合约虚拟机服务可以通过容器的方式来在区块链中的各个区块链节点创建容器单元,从而执行资源转移请求。所创建容器单元具体可以与区块链中的智能合约,跨节点合约虚拟机服务可以为智能合约分配容器单元,例如为智能合约A分配3个容器单元,同时为智能合约B分配4个容器单元。而负载均衡的分配处理,则是指跨节点合约虚拟机服务在接收到任务后,会根据当前目标智能合约所对应容器单元的负载情况,转发到合适的容器单元上执行任务。容器单元部署于区块链的不同节点,因此可以区块链的合约计算资源在多个区块链节点进行共享,节省各个节点的计算资源消耗,避免区块链节点的计算资源出现木桶效应。
在其中一个具体的实施例中,跨节点合约虚拟机服务具体可以通过Kubernetes实现,是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了一个可移植的、可扩展的、自我修复的运行环境,可以在公共云、私有云和混合云中运行。Kubernetes 可以管理多个容器化应用程序,提供负载平衡、自动伸缩、自动恢复等功能,使得容器化应用程序的部署和管理更加简单高效。而相应的容器单元则可以通过Pod实现,Pod是Kubernetes中最小的可部署单元,它是一个或多个容器的集合,它们共享网络和存储资源,并且在同一节点上运行。Pod是Kubernetes中应用程序的基本构建块,可以包含一个或多个容器,这些容器可以协作运行应用程序或服务。Pod中的容器可以共享同一个网络命名空间,从而可以使用本地主机(localhost)通信,也可以共享同一个存储卷,从而共享数据。Pod也可以被视为一个逻辑主机,它可以拥有自己的IP地址和端口,可以在内部进行容器间通信,也可以通过Kubernetes Service暴露给外部访问。Pod是Kubernetes中的一个重要概念,它提供了一种灵活的方式来组织和部署容器化应用程序,同时也允许对容器进行资源限制和隔离,从而提高了应用程序的可靠性和安全性。对于容器单元,每个智能合约都可能有多个容器单元能够进行计算,他们组成一个集群共同支撑该合约的计算。每个容器单元实例,都包含有合约主项目、合约软件开发工具包(Software Development Kit,SDK)和日志模块等组件,合约主项目为用户编写的智能合约代码的运行时。合约SDK为给智能合约调用的SDK。日志模块则是供容器单元打印日志的模块。
示例性地,在得到区块链节点200确认需要生成新的区块时,并对请求池内的资源转移请求进行分类处理之后,得到需要执行目标智能合约的目标资源转移请求。即可将这些目标资源转移请求分配到目标智能合约所对应的容器单元上进行执行处理。因此,区块链节点200可以将目标资源转移请求至区块链的跨节点合约虚拟机服务。跨节点合约虚拟机服务则会在接收到目标资源转移请求,先确定目标资源转移请求的目标智能合约对应了哪些容器单元,并查询这些容器单元当前的负载情况,而后根据容器单元当前的负载情况,将所有的目标资源转移请求以负载均衡的方式,分配到部署在区块链上不同节点的容器单元上,由目标智能合约的容器单元执行目标资源转移请求。而容器单元会在得到相应的执行资源转移结果后,会通过跨节点合约虚拟机服务将这些资源转移结果返回到区块链节点200。
步骤308,获取跨节点合约虚拟机服务针对目标资源转移请求反馈的资源转移结果。
具体地,跨节点合约虚拟机服务会在目标资源转移请求执行完成后,将请求执行的资源转移结果反馈至区块链节点200,区块链节点200则会接收这些资源转移请求的资源转移结果。此外,区块链节点200在接收到所有资源转移请求的资源转移结果后,还可根据资源转移结果生成下一区块,并在区块链对生成的下一区块进行广播,并进行共识校验,当共识校验通过后则会保存该区块完成请求处理的全过程。
上述请求处理方法,通过遍历已接收到的资源转移请求,识别资源转移请求中执行目标智能合约的目标资源转移请求。从而可以在请求处理阶段先对资源转移请求进行分类,确定各个智能合约所对应的资源转移请求。而后提交目标资源转移请求至区块链的跨节点合约虚拟机服务,调用跨节点合约虚拟机服务对目标资源转移请求进行负载均衡的分配处理,以将目标资源转移请求分配至目标智能合约对应的容器单元,并通过容器单元执行目标资源转移请求。即针对目标智能合约的目标资源转移请求,通过跨节点合约虚拟机服务,来将这些目标资源转移请求以负载均衡的方式分配到各个容器单元上进行执行,而容器单元部署在区块链的不同节点上,区块链的合约计算资源在多个区块链节点进行共享,节省各个节点的计算资源消耗,避免区块链节点的计算资源出现木桶效应。最后即可得到跨节点合约虚拟机服务针对目标资源转移请求反馈的资源转移结果。本申请的方案在执行智能合约的资源转移请求时,通过基于容器的跨节点合约虚拟机服务,将资源转移请求的智能合约计算任务通过容器单元的形式,以负载均衡的策略自动调度到合适的区块链节点执行,不需要只在某一个节点执行,使得区块链的合约计算资源在多个区块链节点进行共享,节省各个节点的计算资源消耗,避免区块链节点的计算资源出现木桶效应,能够有效提高区块链整体计算效率。
在一个示例性的实施例中,方法还包括:获取智能合约数据;基于智能合约数据创建智能合约镜像文件;基于智能合约镜像文件创建跨节点合约虚拟机服务。
其中,智能合约数据是指由用户编写提交的智能合约相关的代码数据,而对于智能合约镜像文件,镜像是一个包含了OS文件系统和应用的对象,类似虚拟机的模板,容器和镜像几乎一模一样,唯一的区别是镜像是只读的,而容器上面有一个可读写层。所以容器=镜像+读写层。镜像文件可以是由智能合约数据和模板所创建的DockerFile文件,而后则可根据镜像文件和模板创建一个跨节点合约虚拟机服务,这个合约服务可以执行智能合约数据所对应智能合约的负载均衡处理。
示例性地,在进行目标智能合约的请求处理之前,还需要将智能合约安装到区块链中,并创建该智能合约相应的跨节点合约虚拟机服务。首先,用户提交智能合约相关数据至区块链,区块链获取智能合约数据后,基于容器的模板和智能合约数据创建智能合约镜像文件,例如基于Kubernetes的容器技术来实现本申请的请求处理方法时,创建跨节点合约虚拟机服务的区块链节点可以先根据模板创建一个DockerFile文件,将智能合约创建请求中携带的合约数据放入上述DockerFile文件的对应位置,再执行DockerFile文件编译出DockerFile镜像,进而根据模板创建一个与智能合约数据对应的跨节点合约虚拟机服务。而后即可通过该跨节点合约虚拟机服务来选择合约Pod中的合约Pod实例执行相应的资源转移处理。本实施例中,通过智能合约数据来完成跨节点合约虚拟机服务的创建,从而可以通过该跨节点合约虚拟机服务来实现对资源转移请求的均衡化处理,提高请求处理效率。
在其中一个实施例中,获取智能合约数据包括:获取智能合约创建请求;提取智能合约创建请求中的签名数据;基于签名数据对智能合约创建请求进行签名验证处理;对通过签名验证处理的智能合约创建请求进行权限验证处理;当智能合约创建请求通过权限验证时,将智能合约创建请求保存至请求池。当满足请求处理条件时,从请求池获取智能合约创建请求,得到智能合约创建请求中的智能合约数据。
其中,签名数据即区块链的数字签名,具体是指一段用于签名的字符,在区块链网络中,每个节点都拥有一份公私钥对,节点发送请求时,先利用自己的私钥对请求内容进行签名,并将签名附加在请求中。其他节点收到广播消息后,首先对请求中附加的数字签名进行验证,完成消息完整性校验和消息发送者身份合法性校验后,请求才会触发后面的处理流程。而对于权限验证,不同的对象对应了区块链的不同权限,例如只有不在黑名单的对象才可以调用创建合约的方法。因此,可以通过权限验证对接收到的智能合约创建请求进行验证,确定发送请求的用户是否在区块链黑名单上。处理条件则是指从请求池中获取请求开始处理的条件,包括定时处理请求和请求池中请求到达阈值后,开始处理请求。
示例性地,智能合约的创建过程也可以通过请求来进行触发,当对象需要将新的智能合约发布到区块链上时,可以向区块链节点提交智能合约创建请求,并在请求中附带智能合约数据和当前对象的签名数据。区块链节点在接收到智能合约创建请求时,会先提取出其中包含的签名数据,而后基于签名数据对智能合约创建请求进行签名验证处理,确定提交请求的对象是否存在。当签名验证通过时,确定对象存在后,再对通过签名验证处理的智能合约创建请求进行权限验证处理,确定该对象是否在区块链的黑名单上,当智能合约创建请求通过权限验证时,将智能合约创建请求保存至请求池。而针对请求池中的请求数据,区块链节点会一次性地读取出池内的所有请求,针对其中的资源转移请求进行资源转移的处理,而对于其中的智能合约创建请求,则创建相应的跨节点合约虚拟机服务。本实施例中,通过签名验证和权限验证来对智能合约创建请求进行验证,从而保证智能合约和跨节点合约虚拟机服务的合法性,保证请求处理的有效性。
在一个实施例中,步骤203包括:调用跨节点合约虚拟机服务获取目标智能合约的容器单元负载数据;基于容器单元负载数据确定执行目标资源转移请求的容器单元;转发目标资源转移请求至确定的容器单元。
其中,容器单元负载数据具体是指容器单元的CPU和内存的占用情况,
示例性地,跨节点合约虚拟机服务可以创建、执行或者销毁容器单元,而在创建容器时,可以为容器分配对应的CPU和内存,同时区块链中的跨节点合约虚拟机服务还可以对容器单元的使用状态进行监测,从而得到容器单元负载数据。在得到容器单元负载数据后,为了实现负载均衡的分配处理,可以基于容器单元负载数据确定执行目标资源转移请求的容器单元,即从当前智能合约所对应的容器单元中,挑选出负载较低的容器单元,再转发目标资源转移请求至确定的容器单元,从而通过容器单元执行目标资源转移请求,得到相应的资源转移结果。本实施例中,通过容器单元负载数据来对目标资源转移请求进行负载均衡的分配处理,可以有效保证负载均衡的有效性,从而保证请求处理的效率。
在一个实施例中,方法还包括:查找目标智能合约的扩缩容配置数据;基于目标智能合约的容器单元负载数据和扩缩容配置数据,对目标智能合约的容器单元进行扩缩容处理。
其中,扩缩容配置数据指代扩缩容的阈值、扩缩容的大小和限制等。
示例性地,由于不同的智能合约所需要的计算资源各不相同,而同一个智能合约在不同时段所需要的计算资源也各不相同,因此定时进行容器单元的扩缩容处理,调整不同智能合约的计算资源分配,具体可以查找目标智能合约的扩缩容配置数据;基于目标智能合约的容器单元负载数据和扩缩容配置数据,对目标智能合约的容器单元进行扩缩容处理。根据容器单元负载数据和扩缩容配置数据来对目标智能合约进行扩缩容处理,在目标智能合约需要更多计算资源的时候,为其分配更多的容器单元,而在目标智能合约的计算资源过剩的时候,减少其容器单元的数量。而对于扩缩容处理的具体过程,可以直接基于目标智能合约的容器单元负载数据和扩缩容配置数据,确定目标智能合约的容器单元调整数量,即确定容器单元增加或者减少的数量;而后再基于目标智能合约的容器单元调整数量对目标智能合约的容器单元进行扩缩容处理。
在一个实施例中,方法还包括:基于资源转移结果生成区块链的下一区块,将下一区块发送至区块链的各区块节点进行共识处理,得到共识结果;基于共识结果进行共识校验处理;当共识校验处理通过时,对下一区块进行存储处理。
其中,共识处理即通过共识机制来对新生成区块进行处理的方式,区块链作为一种按时间顺序存储数据的数据结构,可支持不同的共识机制。共识机制是区块链技术的重要组件。区块链共识机制的目标是使所有的诚实节点保存一致的区块链视图,同时满足两个性质:一致性。所有诚实节点保存的区块链的前缀部分完全相同。有效性。由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块链中。
具体地,当请求处理完毕,生成下一区块后,为了将新生成的区块存储在区块链中,需要区块链上的节点来完成对该新生成区块的共识处理,此时将下一区块发送至区块链的各区块节点进行共识处理,得到各区块节点对新生成的下一区块的共识结果。而在得到各区块节点反馈的共识结果后,可以基于共识结果进行共识校验处理;如果共识校验处理通过,则可以对下一区块进行存储处理,从而更新区块链。若共识校验未通过,则直接反馈共识校验失败的信息。本实施例中,通过共识校验来对生成的下一区块进行校验处理,从而可以将生成的区块保存到区块链中,完成请求处理的全流程。
在其中一个实施例中,本申请中的跨节点合约虚拟机服务基于Kubernetes实现,此时,其详细结构可以参照图4所示,包括:
网络模块,即跨节点合约虚拟机与区块链节点进行交互的模块;其可以实现服务发现和负载均衡的处理,服务发现即对外暴露统一端口,提供访问的方式;负载均衡即接收到任务后,根据合约Pod不同的负载转发到合适的Pod上执行任务。
自动扩缩容模块,跨节点合约虚拟机服务根据Pod的CPU、内存等占用情况进行自动的扩缩容。具体包括水平自动扩缩容和扩缩容配置等功能,水平自动扩缩容为对Pod数量进行扩容(垂直是指Pod的资源大小);扩缩容配置则指代扩缩容的阈值,扩缩容的大小和限制等。
合约Pod集群,每个合约都可能有多个Pod能够进行计算,他们组成一个集群共同支撑该合约的计算;对于合约Pod实例,其中一个Pod可以包括合约主项目、合约SDK和日志模块,其中合约主项目为用户编写的智能合约代码的运行时,合约SDK为给智能合约调用的SDK,日志模块为合约Pod打印日志的模块。
监测模块,对合约Pod的CPU、内存、存储等资源进行监测的模块,其主要用于指标收集和监测展示的处理。指标收集负责定时收集合约Pod的各项指标,而监测展示,则用于对收集到的指标进行展示。
在其中一个实施例中,本申请中的跨节点合约虚拟机服务基于Kubernetes实现,此时区块链节点的结构可以参照图5所示,其包括:
网络模块,即区块链节点对外进行网络交互的模块;其可以实现请求上链,对象发送资源转移请求后,希望这个资源转移请求被智能合约执行,被新区块打包,并存储到区块链账本和数据库中;数据查询,用户发送查询语句,希望能直接查询区块链中的数据。
鉴权模块,区块链节点对请求进行权限验证的模块。其包括签名验证模块,即区块链节点对请求的签名进行验证的模块。还包括权限验证模块,即区块链节点对请求者身份的权限进行判断,即是否有权限进行请求操作的模块。
请求池模块,用于缓存各类请求并执行的模块。
区块调度模块,调度区块中的资源转移请求并生成新区块的模块。包括请求分发调度模块,将当前区块待执行的资源转移请求进行调度和分发到对应合约的跨节点合约虚拟机服务进行执行;区块生成模块,用于执行完当前区块中的所有请求后生成新区块的模块。
共识模块,区块链节点进行共识投票的模块。
存储模块,区块链节点存储区块链数据的模块。其包括状态数据库,存储最新变量状态的数据库。还包括区块账本,用于存储区块的文本文件。
在一个示例性的实施例中,方法还包括:调用跨节点合约虚拟机服务获取目标智能合约的容器单元负载数据;基于当前时间和容器单元负载数据,通过请求量预测模型对目标智能合约进行请求量预测处理,得到请求量预测数据;基于目标智能合约的扩缩容配置数据和请求量预测数据,对目标智能合约的容器单元进行扩缩容处理。
其中,请求量预测模型是指用于对当前智能合约的请求数量进行预测的机器学习模型。请求量预测模型具体可以是基于当前智能合约的历史请求数据进行模型训练得到。请求量预测模型具体可以为时间序列分析模型,循环神经网络或其他机器学习模型。
具体地,不同的智能合约的任务数可能不一样,某一个时间点,某些合约任务数会偏高,此时该合约需要更多的容器单元来支撑其计算,因此本申请使用动态水平扩展来解决这个问题,即根据智能合约的请求量对容器单元的数量进行动态调整,而在实际使用时,某些智能合约任务数可能会突然达到峰值,此时,如果等到资源占用过高再进行水平扩展,很有可能会因为新增容器单元较慢导致扩展不及时,从而让任务执行的耗时都用来新增容器单元。因此,本申请还可以结合智能合约请求预测的方案来实现对容器单元的数量的调整,具体可以采用机器学习的方式提前预测任务数并提前处理,降低临时调整容器单元调整所带来的临时耗时。而为了预测接下来时段的请求量,可以将当前智能合约的容器单元负载数据和当前时间作为输入数据,通过请求量预测模型对目标智能合约进行请求量预测处理,得到请求量预测数据。在得到请求量预测数据后,则需要对比预测的请求量所需要的容器单元数量和当前正在运行的容器单元数量,再结合目标智能合约的扩缩容配置数据,来判断是否需要增加或者减少容器单元,从而对目标智能合约的容器单元进行扩缩容处理。其中对于调整的具体过程,可以基于目标智能合约的扩缩容配置数据和请求量预测数据,确定目标智能合约的容器单元配置需求;基于各时段的容器单元配置需求生成目标智能合约的容器单元配置策略;基于容器单元配置策略对目标智能合约的容器单元进行扩缩容处理。例如在一个具体的实施例中,智能合约在下一时段的请求量为90个,目标智能合约的扩缩容配置数据显示每个容器单元在时段内能处理5个请求。此时,可以确定需要18个容器单元,若当前智能合约的容器单元数目少于18,则需要生成增加容器单元的容器单元配置策略,若当前智能合约的容器单元数目多于18,则需要生成减少容器单元的容器单元配置策略,在生成策略后,再通过将生成的策略提交到跨节点合约虚拟机服务中,由跨节点合约虚拟机服务通过水平扩缩容的方式来实现策略。本实施例中,通过请求量预测模型来对智能合约的请求量进行预测,从而提前实现对智能合约容器单元数的动态调整,降低临时调整容器单元带来的临时耗时,从而提高请求处理的效率。
在一个示例性的实施例中,方法还包括:获取目标智能合约的历史请求数据,历史请求数据包括请求量和请求时间;基于目标智能合约的历史数据构建模型训练数据;通过模型训练数据对初始请求量预测模型进行训练,得到请求量预测模型。
具体地,在通过请求量预测模型进行预测前,还需要完成对请求量预测模型的训练。训练过程具体可以先收集目标智能合约的历史请求数据,历史请求数据包括请求量和请求时间。而后对这些历史请求数据进行预处理,包括数据清洗,特征提取和数据标准化等,预处理后的数据将作为模型训练数据,用于训练和验证预测模型。首先可以将模型训练数据划分为训练集和验证集,通过将预处理后的数据划分为训练集和验证集,以便在训练过程中验证模型的性能,而后选取合适的初始请求量预测模型,并使用训练集数据训练预测模型,输入特征可以包括合约的请求量,请求时间,节点资源使用情况等,模型的输出为每个合约在未来一段时间内的预期请求量。并使用验证集数据验证预测模型的性能,根据验证结果,可以对模型进行调整和优化,以提高预测准确性。最后得到可用的请求量预测模型,此外,由于区块链网络和智能合约会不断发生变化,在得到请求量预测模型,还可以获取目标智能合约的请求量数据;对比请求量预测数据和请求量数据,得到模型误差;当模型误差大于误差阈值时,对请求量预测模型进行更新处理。通过定期对比智能合约的请求量预测值和实际值,来确定请求量预测模型的误差,当模型误差过大时,再更新预测模型,从而可以有效地适应区块链网络和智能合约服务的变化,根据新的预测结果,来调整动态调度策略,实现更优的负载均衡。本实施例中,通过请求量预测模型的构建和更新,可以有效地保证请求量预测模型的预测效果,从而保证容器单元动态配置的准确性,保证请求处理的效果。
本申请还提供一种应用场景,该应用场景应用上述的请求处理方法。具体地,该请求处理方法在该应用场景的应用如下:
当用户希望通过区块链来实现资源转移过程的结算处理时,可以通过本申请的方法借助Kubernetes容器技术来实现跨节点合约虚拟机服务,从而通过跨节点合约虚拟机服务来实现对资源转移请求的负载均衡化处理,提高处理效率。
对于具体的处理过程,首先需要实现基于Kubernetes的合约安装,用户先编写智能合约并编译为二进制发送到区块链节点,区块链节点打包成镜像,在Kubernetes中启动跨节点合约虚拟机服务,之后执行合约初始化方法的过程。其具体过程可以参照图6所示,包括:步骤602,用户在将本地的智能合约编译为二进制文件并启动访问区块链的客户端。步骤603,用户定义合约初始化方法的参数,例如合约中的账户名和资源余额。步骤604,用户将上述请求及其签名并发送到区块链节点上。步骤605,区块链节点鉴权模块进行签名验证。步骤606,签名验证是否通过?是则转到步骤608,否则转到步骤607。步骤607,区块链节点返回签名验证失败的错误。转到步骤633。步骤608,区块链节点鉴权模块进行权限验证,例如该用户是否在黑名单内,是否有权限调用创建合约的方法。步骤609,权限验证是否通过?是则转到步骤611,否则转到步骤610。步骤610,区块链节点返回权限验证失败的错误。转到步骤633。步骤611,请求池模块接收资源转移请求并放入请求池中。步骤612,区块调度模块准备产生新的区块,从请求池获取一批资源转移。步骤613,区块调度模块依次遍历请求池的请求。步骤614,区块调度模块检测到当前请求为安装合约的资源转移。步骤615,区块调度模块检测该合约二进制文件是否不能正常启动,以及是否存在漏洞和安全性问题?是则转到步骤616,否则转到步骤617。步骤616,区块调度模块返回合约检查失败的消息,转到步骤627。步骤617,区块调度模块根据模板创建一个DockerFile文件。步骤618,区块调度模块将合约二进制文件放入上述DockerFile文件的对应位置。步骤619,区块调度模块执行DockerFile文件编译出DockerFile镜像。步骤620,区块调度模块根据模板创建一个跨节点合约虚拟机服务。步骤621,区块调度模块的资源转移分发调度模块将资源转移请求发送给上述跨节点合约虚拟机服务。步骤622,跨节点合约虚拟机服务中的网络模块接收资源转移请求。步骤623,跨节点合约虚拟机服务中的负载均衡模块选择合约Pod中的合约Pod实例并发送任务。步骤624,上述资源转移执行请求结果是否正确?是则转到25,否则转到26。步骤625,返回资源转移请求执行成功的结果。转到步骤627。步骤626,返回资源转移请求执行失败的结果。步骤627,区块调度模块接收到所有资源转移结果后开始生成区块。步骤628,生成完成后该节点将区块发送给其他区块链节点进行共识。步骤629,所有区块链节点进行共识。步骤630,共识是否通过?是则转到步骤632,否则转到步骤631。步骤631,返回共识校验失败的结果。转到步骤633。步骤632,存储该区块并更新状态数据库的数据。
在安装完成后,还需要进行资源转移请求的处理,用户发送资源转移请求到区块链节点,区块链节点将资源转移请求发送给跨节点合约虚拟机服务执行任务的过程可以参照图7所示,包括:
步骤702,用户启动访问区块链的客户端。步骤703,用户定义调用的合约,方法以及参数,例如智能合约,双方账户名和资源转移的量。步骤704,用户将上述请求,及其签名并发送到区块链节点上。步骤705,区块链节点鉴权模块进行签名验证。步骤706,签名验证是否通过?是则转到步骤708,否则转到步骤707。步骤707,区块链节点返回签名验证失败的错误。转到步骤727。步骤708,区块链节点鉴权模块进行权限验证,例如该用户是否在黑名单内,是否有权限调用请求执行的方法。步骤709,权限验证是否通过?是则转到步骤711,否则转到步骤710。步骤710,区块链节点返回权限验证失败的错误。转到步骤727。步骤711,请求池模块接收资源转移请求并放入请求池中。步骤712,区块调度模块准备产生新的区块,从请求池获取一批资源转移请求。步骤713,区块调度模块依次遍历这些资源转移请求。步骤714,区块调度模块检测到当前资源转移请求为执行合约的资源转移请求。步骤715,区块调度模块的分发调度模块将资源转移请求发送给上述跨节点合约虚拟机服务。步骤716,跨节点合约虚拟机服务中的网络模块接收资源转移请求。步骤717,跨节点合约虚拟机服务中的负载均衡模块选择合约Pod中的合约Pod实例并发送任务。步骤718,上述资源转移请求执行结果是否正确?是则转到步骤719,否则转到步骤720。步骤719,返回请求执行成功的结果。转到步骤721。步骤720,返回请求执行失败的结果。步骤721,区块调度模块接收到所有请求结果后开始生成区块。步骤722,生成完成后该节点将区块发送给其他区块链节点进行共识。步骤723,所有区块链节点进行共识。步骤724,共识是否通过?是则转到步骤726,否则转到步骤725。步骤725,返回共识校验失败的结果。转到步骤727。步骤726,存储该区块并更新状态数据库的数据。
此外,本申请的方案还包含智能合约请求预测与动态调度方案,主要可以加载在跨节点合约虚拟机服务中,从而通过机器学习来对跨节点合约虚拟机服务的Pod数量进行提前规划和调整,其流程可以参照图8所示,包括:
步骤802,设计动态调度策略,该策略可以根据节点的实际负载情况和合约的预期请求量,动态调整合约服务在各个节点上的分布,这可以实现更优的负载均衡和资源利用。步骤803,集成到Kubernetes,将动态调度策略集成到Kubernetes集群中,可以通过编写自定义的Kubernetes调度器或使用现有的调度插件Kube-batch实现动态调度步骤804,智能合约服务中的监测模块不断收集历史请求数据,包括每个合约的请求量,请求时间等信息,这些数据将用于训练预测模型。步骤805,数据预处理,对收集到的历史请求数据进行预处理,包括数据清洗,特征提取和数据标准化等,预处理后的数据将用于训练和验证预测模型。步骤806,划分训练集和验证集,将预处理后的数据划分为训练集和验证集,以便在训练过程中验证模型的性能。步骤807,选择预测模型,根据问题的特点和数据的特性,选择合适的预测模型,如时间序列分析模型,循环神经网络或其他机器学习模型。步骤808,训练预测模型,使用训练集数据训练预测模型,输入特征可以包括智能合约的请求量,请求时间,节点资源使用情况等,模型的输出为每个合约在未来一段时间内的预期请求量。步骤809,验证预测模型,使用验证集数据验证预测模型的性能,根据验证结果,可以对模型进行调整和优化,以提高预测准确性。步骤810,预测合约请求,使用训练好的预测模型预测每个合约在未来一段时间内的请求量,根据预测结果,可以提前调整容器实例的数量,以应对突发流量。步骤811,模型更新与维护,定期更新预测模型,以适应区块链网络和智能合约服务的变化,根据新的预测结果,可以调整动态调度策略,以实现更优的负载均衡。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的请求处理方法的请求处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个请求处理装置实施例中的具体限定可以参见上文中对于请求处理方法的限定,在此不再赘述。
在一个示例性的实施例中,如图9所示,提供了一种请求处理装置,包括:
请求识别模块902,用于遍历已接收到的资源转移请求,识别资源转移请求中执行目标智能合约的目标资源转移请求。
请求分配模块904,用于提交目标资源转移请求至区块链的跨节点合约虚拟机服务,调用跨节点合约虚拟机服务对目标资源转移请求进行负载均衡的分配处理,以将目标资源转移请求分配至目标智能合约对应的容器单元,容器单元部署于区块链的不同节点。
请求执行模块906,用于通过容器单元执行目标资源转移请求。
结果接收模块908,用于获取跨节点合约虚拟机服务针对目标资源转移请求反馈的资源转移结果。
在一个实施例中,还包括服务创建模块,用于:获取智能合约数据;基于智能合约数据创建智能合约镜像文件;基于智能合约镜像文件创建跨节点合约虚拟机服务。
在一个实施例中,服务创建模块具体用于:获取智能合约创建请求;提取智能合约创建请求中的签名数据;基于签名数据对智能合约创建请求进行签名验证处理;对通过签名验证处理的智能合约创建请求进行权限验证处理;当智能合约创建请求通过权限验证时,将智能合约创建请求保存至请求池,当满足请求处理条件时,从请求池获取智能合约创建请求,得到智能合约创建请求中的智能合约数据。
在一个实施例中,请求分配模块906具体用于:调用跨节点合约虚拟机服务获取目标智能合约的容器单元负载数据;基于容器单元负载数据确定执行目标资源转移请求的容器单元;转发目标资源转移请求至确定的容器单元。
在一个实施例中,还包括扩缩容处理模块,用于:查找目标智能合约的扩缩容配置数据;基于目标智能合约的容器单元负载数据和扩缩容配置数据,对目标智能合约的容器单元进行扩缩容处理。
在一个实施例中,扩缩容处理模块还用于:基于目标智能合约的容器单元负载数据和扩缩容配置数据,确定目标智能合约的容器单元调整数量;基于目标智能合约的容器单元调整数量对目标智能合约的容器单元进行扩缩容处理。
在一个实施例中,扩缩容处理模块还用于:调用跨节点合约虚拟机服务获取目标智能合约的容器单元负载数据;基于当前时间和容器单元负载数据,通过请求量预测模型对目标智能合约进行请求量预测处理,得到请求量预测数据;基于目标智能合约的扩缩容配置数据和请求量预测数据,对目标智能合约的容器单元进行扩缩容处理。
在一个实施例中,扩缩容处理模块还用于:基于目标智能合约的扩缩容配置数据和请求量预测数据,确定目标智能合约的容器单元配置需求;基于各时段的容器单元配置需求生成目标智能合约的容器单元配置策略;基于容器单元配置策略对目标智能合约的容器单元进行扩缩容处理。
在一个实施例中,还包括模型训练模块,用于:获取目标智能合约的历史请求数据,历史请求数据包括请求量和请求时间;基于目标智能合约的历史数据构建模型训练数据;通过模型训练数据对初始请求量预测模型进行训练,得到请求量预测模型。
在一个实施例中,还包括模型更新模块,用于:基于资源转移结果生成区块链的下一区块,获取目标智能合约的请求量数据;对比请求量预测数据和请求量数据,得到模型误差;当模型误差大于误差阈值时,对请求量预测模型进行更新处理。
在一个实施例中,还包括共识校验模块,用于:将下一区块发送至区块链的各区块节点进行共识处理,得到共识结果;基于共识结果进行共识校验处理;当共识校验处理通过时,对下一区块进行存储处理。
上述请求处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储请求处理相关的数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种请求处理方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (14)

1.一种请求处理方法,其特征在于,所述方法包括:
遍历已接收到的资源转移请求,识别所述资源转移请求中执行目标智能合约的目标资源转移请求;
提交所述目标资源转移请求至区块链的跨节点合约虚拟机服务,调用所述跨节点合约虚拟机服务对所述目标资源转移请求进行负载均衡的分配处理,以将所述目标资源转移请求分配至所述目标智能合约对应的容器单元,所述容器单元部署于所述区块链的不同节点;
通过所述容器单元执行所述目标资源转移请求;
获取所述跨节点合约虚拟机服务针对所述目标资源转移请求反馈的资源转移结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取智能合约数据;
基于所述智能合约数据创建智能合约镜像文件;
基于所述智能合约镜像文件创建跨节点合约虚拟机服务。
3.根据权利要求2所述的方法,其特征在于,所述获取智能合约数据包括:
获取智能合约创建请求;
提取所述智能合约创建请求中的签名数据;
基于所述签名数据对所述智能合约创建请求进行签名验证处理;
对通过签名验证处理的智能合约创建请求进行权限验证处理;
当所述智能合约创建请求通过权限验证时,将所述智能合约创建请求保存至请求池;
当满足请求处理条件时,从所述请求池获取智能合约创建请求,得到所述智能合约创建请求中的智能合约数据。
4.根据权利要求1所述的方法,其特征在于,所述调用所述跨节点合约虚拟机服务对所述目标资源转移请求进行负载均衡的分配处理,以将所述目标资源转移请求分配至所述目标智能合约对应的容器单元包括:
调用所述跨节点合约虚拟机服务获取所述目标智能合约的容器单元负载数据;
基于所述容器单元负载数据确定执行所述目标资源转移请求的容器单元;
转发所述目标资源转移请求至确定的所述容器单元。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
查找所述目标智能合约的扩缩容配置数据;
基于所述目标智能合约的容器单元负载数据和所述扩缩容配置数据,对所述目标智能合约的容器单元进行扩缩容处理。
6.根据权利要求5所述的方法,其特征在于,所述基于所述目标智能合约的容器单元负载数据和所述扩缩容配置数据,对所述目标智能合约的容器单元进行扩缩容处理包括:
基于所述目标智能合约的容器单元负载数据和所述扩缩容配置数据,确定所述目标智能合约的容器单元调整数量;
基于所述目标智能合约的容器单元调整数量对所述目标智能合约的容器单元进行扩缩容处理。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
调用所述跨节点合约虚拟机服务获取所述目标智能合约的容器单元负载数据;
基于当前时间和所述容器单元负载数据,通过请求量预测模型对所述目标智能合约进行请求量预测处理,得到请求量预测数据;
基于所述目标智能合约的扩缩容配置数据和所述请求量预测数据,对所述目标智能合约的容器单元进行扩缩容处理。
8.根据权利要求7所述的方法,其特征在于,所述基于所述目标智能合约的扩缩容配置数据和所述请求量预测数据,对所述目标智能合约的容器单元进行扩缩容处理包括:
基于所述目标智能合约的扩缩容配置数据和所述请求量预测数据,确定所述目标智能合约的容器单元配置需求;
基于各时段的容器单元配置需求生成所述目标智能合约的容器单元配置策略;
基于所述容器单元配置策略对所述目标智能合约的容器单元进行扩缩容处理。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取所述目标智能合约的历史请求数据,所述历史请求数据包括请求量和请求时间;
基于所述目标智能合约的历史数据构建模型训练数据;
通过所述模型训练数据对初始请求量预测模型进行训练,得到请求量预测模型。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取所述目标智能合约的请求量数据;
对比所述请求量预测数据和所述请求量数据,得到模型误差;
当所述模型误差大于误差阈值时,对所述请求量预测模型进行更新处理。
11.根据权利要求1至10任意一项所述的方法,其特征在于,所述方法还包括:
基于所述资源转移结果生成所述区块链的下一区块;
将所述下一区块发送至所述区块链的各区块节点进行共识处理,得到共识结果;
基于所述共识结果进行共识校验处理;
当所述共识校验处理通过时,对所述下一区块进行存储处理。
12.一种请求处理装置,其特征在于,所述装置包括:
请求识别模块,用于遍历已接收到的资源转移请求,识别所述资源转移请求中执行目标智能合约的目标资源转移请求;
请求分配模块,用于提交所述目标资源转移请求至区块链的跨节点合约虚拟机服务,调用所述跨节点合约虚拟机服务对所述目标资源转移请求进行负载均衡的分配处理,以将所述目标资源转移请求分配至所述目标智能合约对应的容器单元,所述容器单元部署于所述区块链的不同节点;
请求执行模块,用于通过所述容器单元执行所述目标资源转移请求;
结果接收模块,用于获取所述跨节点合约虚拟机服务针对所述目标资源转移请求反馈的资源转移结果。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
CN202311236394.6A 2023-09-25 2023-09-25 请求处理方法、装置、计算机设备和存储介质 Active CN116975158B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311236394.6A CN116975158B (zh) 2023-09-25 2023-09-25 请求处理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311236394.6A CN116975158B (zh) 2023-09-25 2023-09-25 请求处理方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN116975158A true CN116975158A (zh) 2023-10-31
CN116975158B CN116975158B (zh) 2024-01-26

Family

ID=88479981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311236394.6A Active CN116975158B (zh) 2023-09-25 2023-09-25 请求处理方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN116975158B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190325044A1 (en) * 2018-04-24 2019-10-24 Microsoft Technology Licensing, Llc Relational distributed ledger for smart contracts
CN110392052A (zh) * 2019-07-22 2019-10-29 中国工商银行股份有限公司 一种区块链智能合约处理系统及方法
CN110706113A (zh) * 2019-12-13 2020-01-17 腾讯科技(深圳)有限公司 一种跨区块链的数据处理方法、装置、设备及介质
CN111222865A (zh) * 2019-09-19 2020-06-02 腾讯科技(深圳)有限公司 资源数据转移方法、装置、存储介质和计算机设备
CN111311209A (zh) * 2020-02-03 2020-06-19 腾讯科技(深圳)有限公司 跨区块链的数据处理方法、装置、设备及计算机存储介质
US20200344290A1 (en) * 2019-03-18 2020-10-29 Reliance Jio Infocomm Limited Systems and methods for microservice execution load balancing in virtual distributed ledger networks
CN111932233A (zh) * 2020-08-13 2020-11-13 工银科技有限公司 资源转移方法、装置和设备
CN112907353A (zh) * 2020-09-03 2021-06-04 浙江网商银行股份有限公司 基于区块链的业务处理方法以及装置
US20210342329A1 (en) * 2020-05-04 2021-11-04 Salesforce.Com, Inc. System or method to run distributed validation of workflows across a network in a shared distributed ledger in multi-tenant cloud environment
CN115115360A (zh) * 2021-03-17 2022-09-27 腾讯科技(深圳)有限公司 跨链资源转移方法、装置、介质及电子设备
CN115250354A (zh) * 2021-04-27 2022-10-28 腾讯科技(深圳)有限公司 基于区块链网络的资源分配方法、装置、设备及存储介质
CN115509744A (zh) * 2022-09-19 2022-12-23 中国电信股份有限公司 容器分配方法、系统、装置、设备及存储介质
CN116633934A (zh) * 2022-02-10 2023-08-22 华为云计算技术有限公司 负载均衡方法、装置、节点及存储介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190325044A1 (en) * 2018-04-24 2019-10-24 Microsoft Technology Licensing, Llc Relational distributed ledger for smart contracts
US20200344290A1 (en) * 2019-03-18 2020-10-29 Reliance Jio Infocomm Limited Systems and methods for microservice execution load balancing in virtual distributed ledger networks
CN110392052A (zh) * 2019-07-22 2019-10-29 中国工商银行股份有限公司 一种区块链智能合约处理系统及方法
CN111222865A (zh) * 2019-09-19 2020-06-02 腾讯科技(深圳)有限公司 资源数据转移方法、装置、存储介质和计算机设备
CN110706113A (zh) * 2019-12-13 2020-01-17 腾讯科技(深圳)有限公司 一种跨区块链的数据处理方法、装置、设备及介质
CN111311209A (zh) * 2020-02-03 2020-06-19 腾讯科技(深圳)有限公司 跨区块链的数据处理方法、装置、设备及计算机存储介质
US20210342329A1 (en) * 2020-05-04 2021-11-04 Salesforce.Com, Inc. System or method to run distributed validation of workflows across a network in a shared distributed ledger in multi-tenant cloud environment
CN111932233A (zh) * 2020-08-13 2020-11-13 工银科技有限公司 资源转移方法、装置和设备
CN112907353A (zh) * 2020-09-03 2021-06-04 浙江网商银行股份有限公司 基于区块链的业务处理方法以及装置
CN115115360A (zh) * 2021-03-17 2022-09-27 腾讯科技(深圳)有限公司 跨链资源转移方法、装置、介质及电子设备
CN115250354A (zh) * 2021-04-27 2022-10-28 腾讯科技(深圳)有限公司 基于区块链网络的资源分配方法、装置、设备及存储介质
CN116633934A (zh) * 2022-02-10 2023-08-22 华为云计算技术有限公司 负载均衡方法、装置、节点及存储介质
CN115509744A (zh) * 2022-09-19 2022-12-23 中国电信股份有限公司 容器分配方法、系统、装置、设备及存储介质

Also Published As

Publication number Publication date
CN116975158B (zh) 2024-01-26

Similar Documents

Publication Publication Date Title
CN108965468B (zh) 区块链网络服务平台及其链码安装方法、存储介质
EP4047487B1 (en) File storage method, terminal, and storage medium
US11700296B2 (en) Client-directed placement of remotely-configured service instances
Bozic et al. Securing virtual machine orchestration with blockchains
KR20180085570A (ko) 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
CN110838065A (zh) 一种交易数据处理方法及装置
CN104011701A (zh) 内容传送网络
CN114065283A (zh) 一种轻量级可循环再生的区块链存储方法及装置
EP4195624A1 (en) Data synchronization method and system based on blockchain, and related device
CN111294379B (zh) 区块链网络服务平台及其权限托管方法、存储介质
US9270703B1 (en) Enhanced control-plane security for network-accessible services
CN102170440A (zh) 适用于存储云间数据安全迁移的方法
CN114363352B (zh) 基于区块链的物联网系统跨链交互方法
CN111737104A (zh) 区块链网络服务平台及其测试用例共享方法、存储介质
CN112486933A (zh) 一种基于联盟链的遥感数据共享交换方法
CN109493051B (zh) 可动态进行账户分配及迁移的主链加并行多子链系统架构
CN112527912A (zh) 基于区块链网络的数据处理方法、装置及计算机设备
CN110955724A (zh) 基于区块链的数据处理方法、装置、节点设备及存储介质
CN110213290A (zh) 数据获取方法、api网关以及存储介质
CN113505260A (zh) 人脸识别方法、装置、计算机可读介质及电子设备
CN116975158B (zh) 请求处理方法、装置、计算机设备和存储介质
KR102221925B1 (ko) 블록체인에 기반한 분산형 컴퓨팅 자원 공유 시스템 상에서, 머신러닝과 병행하여 채굴을 수행하는 방법 및 그러한 채굴을 지원하는 방법
CN112988852B (zh) 基于区块链的数据管理方法、设备以及介质
CN115842866A (zh) 数据处理方法、装置、计算机可读介质及电子设备
Dorri et al. Blockchain for Cyberphysical Systems

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