CN117883772A - 一种数据处理方法、装置及设备 - Google Patents

一种数据处理方法、装置及设备 Download PDF

Info

Publication number
CN117883772A
CN117883772A CN202311865123.7A CN202311865123A CN117883772A CN 117883772 A CN117883772 A CN 117883772A CN 202311865123 A CN202311865123 A CN 202311865123A CN 117883772 A CN117883772 A CN 117883772A
Authority
CN
China
Prior art keywords
data
target
calculation
request
computing
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
CN202311865123.7A
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.)
Tsinghua University
MIGU Interactive Entertainment Co Ltd
Original Assignee
Tsinghua University
MIGU Interactive Entertainment 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 Tsinghua University, MIGU Interactive Entertainment Co Ltd filed Critical Tsinghua University
Priority to CN202311865123.7A priority Critical patent/CN117883772A/zh
Publication of CN117883772A publication Critical patent/CN117883772A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种数据处理方法、装置及设备,通过对接收的用户发起的计算请求进行分析,在计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据并发送至区块链,以调用分布式系统中的计算节点对计算请求进行处理,最后将所述数据处理结果反馈给所述用户。本发明实施例通过将接收的用户发起的请求分发给分布式系统中的计算节点进行数据处理,无需设置中心节点,降低了各个节点运行负担过重的风险,进而提高了数据处理效率,缓解了延迟问题。

Description

一种数据处理方法、装置及设备
技术领域
本发明涉及计算机技术领域,具体的说,涉及的是一种数据处理方法、装置及设备。
背景技术
现有的游戏网络大多存在中心节点,由中心节点负责处理各个用户的请求,中心节点在处理大量请求数据时会出现服务器运行负担过重的现象,从而无法及时响应用户请求,出现较为严重的延迟问题。
发明内容
基于此,本发明提供了一种数据处理方法、装置及设备,其能够通过将用户发起的请求分发给分布式系统中的计算节点进行数据处理,无需设置中心节点,降低了各个节点运行负担过重的风险,进而提高了数据处理效率,缓解了延迟问题。
为实现上述目的,本发明实施例提供了一种数据处理方法,所述方法包括:
接收用户发起的计算请求;
当所述计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据以发送至区块链;
接收所述区块链返回的数据处理结果;其中,所述数据处理结果由所述区块链将所述批处理数据中的计算请求分发给分布式系统中的计算节点处理得到的结果;
将所述数据处理结果反馈给所述用户。
作为上述方案的改进,所述方法还包括:
当所述计算请求为单人活动的计算请求时,利用代理计算节点的本地资源对所述计算请求进行处理,得到单点数据处理结果;
所述当所述计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据以发送至区块链,包括:
当所述计算请求为多人互动活动的计算请求时,调用代理计算节点上运行的中间服务获取区块链中若干目标计算节点的标识信息;
调用所述中间服务,根据接收到的多个计算请求和所述目标计算节点的标识信息生成批处理数据;
将所述批处理数据发送至区块链,以使所述区块链调用链上分发服务将所述批处理数据中的计算请求分发给所述分布式系统中的目标计算节点处理得到数据处理结果。
作为上述方案的改进,所述调用所述中间服务,根据接收到的多个计算请求和所述目标计算节点的标识信息生成批处理数据,包括:
调用所述中间服务,将接收到的计算请求存入缓冲池;
选择批处理时间窗口内存入所述缓冲池的计算请求,得到目标计算请求;
根据所述目标计算请求和所述目标计算节点的标识信息生成批处理数据;其中,所述目标计算节点为所述区块链中设置有内存池的计算节点,每一个所述目标计算请求对应有一个所述目标计算节点的标识信息,所述目标计算节点用于处理对应的目标计算请求。
作为上述方案的改进,所述目标计算节点的标识信息通过以下方式获取:
确定各个所述目标计算请求的计算成本;
获取所述区块链中设置有内存池的若干计算节点以作为候选计算节点;
将各个所述目标计算请求分别与各个所述候选计算节点中的其他处理的计算成本进行比较,得到各个所述目标计算请求在各个所述候选计算节点中的排名;
分别为各个所述目标计算请求选取最高排名所在的候选计算节点以作为对应的目标计算节点;
获取各个所述目标计算节点对应的目标计算节点的标识信息。
作为上述方案的改进,所述目标计算请求通过以下方式确定:
选择批处理时间窗口内发起计算请求最多的用户作为目标用户;
当所述批处理时间窗口内的目标用户发起的计算请求达到预设发送次数时,以所述批处理时间窗口内的目标用户发起的计算请求作为目标计算请求;
当所述批处理时间窗口内的目标用户发起的计算请求没有达到所述预设发送次数时,将所述批处理时间窗口内的所有计算请求作为目标计算请求。
作为上述方案的改进,所述目标计算节点的标识信息包括被调用方智能合约地址、被调用方函数名和函数参数列表,其中,所述目标计算节点作为对应的目标计算请求的被调用方;
所述根据所述目标计算请求和所述目标计算节点的标识信息生成批处理数据,包括:
根据所述被调用方智能合约地址、所述被调用方函数名和所述函数参数列表对对应的目标计算请求进行更新,其中,更新后的目标计算请求携带有用户的账户标识、被调用方智能合约地址、被调用方函数名和函数参数列表;
获取各个所述用户关于对应的目标计算请求的随机数;
将各个所述目标计算请求、各个所述用户关于对应的目标计算请求的随机数和当前批处理交易的随机数组成所述当前批处理交易的批处理消息,并反馈给各个所述用户;
在各个所述用户确定所述批处理消息中不存在相同的随机数后,将所述批处理消息中的所述目标计算请求的随机数删除,得到待签名数据;
调用各个所述用户对所述待签名数据进行签名,得到签名数据;
将所述签名数据、所述待签名数据和获取的链上分发服务的函数名组成待处理数据;
将所述中间服务的标识、所述当前批处理交易的随机数、获取的所述链上分发服务的智能合约地址、所述中间服务的签名,获取的合约地址值和所述待处理数据组成批处理数据。
作为上述方案的改进,所述数据处理结果通过以下方式得到:所述区块链调用链上分发服务,利用所述链上分发服务的智能合约对所述批处理数据中的所有签名进行验证,在验证成功后,将所述批处理数据中的各个所述目标计算请求分别发送至对应的目标计算节点计算,得到各个所述目标计算请求的数据处理结果。
作为上述方案的改进,所述将所述数据处理结果反馈给所述用户,包括:将所述数据处理结果通过星际文件系统反馈给所述用户,并基于ERC-1155标准,对所述代理计算节点进行奖励。
为实现上述目的,本发明实施例还提供了一种数据处理装置,包括:
数据接收模块,用于接收用户发起的计算请求;
数据处理模块,用于当所述计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据以发送至区块链;
结果接收模块,用于接收所述区块链返回的数据处理结果;其中,所述数据处理结果由所述区块链将所述批处理数据中的计算请求分发给分布式系统中的计算节点处理得到的结果;
数据反馈模块,用于将所述数据处理结果反馈给所述用户。
为实现上述目的,本发明实施例还提供了一种数据处理设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一实施例所述的数据处理方法。
与现有技术相比,本发明实施例公开的数据处理方法、装置及设备,通过对接收的用户发起的计算请求进行分析,在计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据并发送至区块链,以调用分布式系统中的计算节点对计算请求进行处理,最后将所述数据处理结果反馈给所述用户。由此可见,本发明实施例通过将接收的用户发起的请求分发给分布式系统中的计算节点进行数据处理,无需设置中心节点,降低了各个节点运行负担过重的风险,进而提高了数据处理效率,缓解了延迟问题。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种数据处理方法的流程示意图;
图2是本发明一实施例提供的又一种数据处理方法的流程示意图;
图3是本发明一实施例提供的一种中间服务和链上分发服务的数据交互示意图;
图4是本发明一实施例提供的一种安全协议处理流程示意图;
图5是本发明一实施例提供的一种数据处理装置的结构示意图;
图6是本发明一实施例提供的一种数据处理设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明一实施例提供的一种数据处理方法的流程示意图。具体地,所述数据处理方法,包括步骤S1~S4:
S1、接收用户发起的计算请求;
S2、当所述计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据以发送至区块链;
S3、接收所述区块链返回的数据处理结果;其中,所述数据处理结果由所述区块链将所述批处理数据中的计算请求分发给分布式系统中的计算节点处理得到的结果;
S4、将所述数据处理结果反馈给所述用户。
具体地,参见图2,图2是本发明实施例提供的一种数据处理方法的流程示意图,该方法应用于数据处理系统,数据处理系统包括应用程序Application、游戏开发者服务器Game Developer Server、代理计算节点Proxy、星际文件系统(InterPlanetary FileSystem,IPFS)和以太坊Ethereum network,其中,应用程序Application和游戏开发者服务器Game Developer Server,都属于用户,应用程序Application为游戏玩家的应用程序,以太坊中包括分布式系统的多个计算节点,分布式系统中的每一计算节点都可以作为代理计算节点来接收用户发起的计算请求,以太坊为区块链的一种,在本发明实施例中以以太坊为例,可以理解的是,区块链的类型并不局限于以太坊。具体的方法流程为:在步骤S1中,用户作为调用方,通过RPC(Remote Procedure Call,远程过程调用协议)发起计算请求,由代理计算节点接收,在步骤S2中,代理计算节点对计算请求进行分析,以在计算请求为多人互动活动的计算请求时,将接收到的多个计算请求生成批处理数据以发送至区块链,以将各个计算请求分发到分布式系统的多个计算节点处,以使接收到计算请求的计算节点作为被调用方,对计算请求进行处理,得到数据处理结果,在步骤S3和S4中,代理计算节点接收步骤S2得到的结果并反馈给对应用户。
与现有技术相比,本发明实施例采用分布式系统中的节点作为代理计算节点来接收用户发起的请求,并分发给分布式系统中的计算节点进行数据处理,无需设置中心节点,通过去中心化的计算对计算请求进行处理,降低了各个节点运行负担过重的风险,进而提高了数据处理效率,缓解了延迟问题。
在一种实施方式中,步骤S2中的所述当所述计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据以发送至区块链,包括:
当所述计算请求为多人互动活动的计算请求时,调用所述代理计算节点上运行的中间服务Batcher,根据接收到的多个计算请求生成批处理数据;
将所述批处理数据发送至区块链;
接收所述区块链返回的数据处理结果,其中,所述数据处理结果由所述区块链调用链上分发服务Dispatcher将所述批处理数据中的计算请求分发给所述分布式系统中的计算节点处理得到的结果。
进一步地,所述方法还包括:当所述计算请求为单人活动的计算请求时,利用代理计算节点的本地资源对所述计算请求进行处理,得到单点数据处理结果,并将单点数据处理结果反馈给所述用户。
具体地,假设单人活动为单人游戏,多人互动活动为多人游戏,在单人游戏的情况下,代理计算节点通过替代缓慢低效的云游戏服务器来充当分布式渲染节点,对计算请求进行数据处理并反馈相应的处理结果给用户。在多人游戏的情况下,为了提高系统的实时性,代理计算节点可以对收集到的各个计算请求进行批处理,计算分布在网络中的几个节点中,而不依赖于一个集中式的游戏服务器,这可以完全消除游戏网络中对中央服务器的需要。另外,由于区块链本身并不支持批处理,所以本方法提供了两个接口:中间服务Batcher和链上分发服务Dispatcher,代理计算节点通过调用中间服务Batcher,使用中间服务处理器(Batcher handler)将接收到的多个计算请求组成单个批处理事务,将单个事务发送到区块链的链上分发服务Dispatcher的服务器(Dispatcher handler),调用链上分发服务Dispatcher对事务分解得到原始的计算请求,并将他们单独转发到预定的计算节点(被调用方),被调用方对将接收到的计算请求进行数据处理,得到对应的数据处理结果,并将其反馈给对应用户。示例性的,参见图3所示,用户作为机构呼叫者(Institutionalcallers),采用基于web3架构的分布式应用程序(decentralized application,DApp),利用JavaScript(JS)这一种具有函数优先的轻量级、解释型或即时编译型的编程语言生成计算请求并通过RPC方式向代理计算节点发送,其中,用户作为签名人Signer,还具备了为发起的计算请求进行签名的功能,代理计算节点作为以太坊的轻节点(Geth node),由代理计算节点上运行的中间服务Batcher根据接收到的计算请求生成单个批处理事务后发给以太坊的全节点(Full node),其中,全节点记录了区块链的所有信息,利用链上分发服务将各个计算请求分发给各个预定的计算节点,以使预定的计算节点作为被调用方,利用被调用方的智能合约(callee contracts)执行对应的计算请求,得到数据处理结果。
值得说明的是,单人活动并不局限于单人游戏,多人互动活动并不局限于多人游戏,可根据实际情况进行设定,在此不作限定。
进一步地,所述当所述计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据以发送至区块链,包括:
当所述计算请求为多人互动活动的计算请求时,调用所述代理计算节点上运行的中间服务,获取区块链中若干目标计算节点的标识信息;
调用所述中间服务,根据接收到的多个计算请求和所述目标计算节点的标识信息生成批处理数据;
将所述批处理数据发送至区块链,以使所述区块链调用链上分发服务将所述批处理数据中的计算请求分发给所述分布式系统中的目标计算节点处理得到数据处理结果。
可以理解的是,在本实施方式中,批处理数据除了包括计算请求之外,还携带了用于处理计算请求的计算节点的标识信息。通过调用代理计算节点上运行的中间服务Batcher来获取区块链中若干目标计算节点的标识信息,结合计算请求生成批处理数据,以便于区块链通过解析接收到的批处理数据,将计算请求快速分发给对应的计算节点进行数据处理。
在一种实施方式中,所述调用所述中间服务,根据接收到的多个计算请求和所述目标计算节点的标识信息生成批处理数据,包括:
调用所述代理计算节点上运行的中间服务,将接收到的计算请求存入缓冲池;
选择批处理时间窗口内存入所述缓冲池的计算请求,得到目标计算请求;
根据所述目标计算请求和所述目标计算节点的标识信息生成批处理数据;其中,所述目标计算节点为所述区块链中设置有内存池的计算节点,每一所述目标计算请求对应有一个所述目标计算节点的标识信息,所述目标计算节点用于处理对应的目标计算请求;
其中,所述数据处理结果由所述区块链在调用链上分发服务Dispatcher解析所述批处理数据得到若干所述目标计算请求及与各个所述目标计算请求对应的目标计算节点的标识信息后,根据各个所述目标计算请求对应的目标计算节点的标识信息将各个所述目标计算请求分发至对应的目标计算节点处理得到。
具体地,运行有中间服务Batcher的代理计算节点作为以太坊的客户端,被扩展了一个额外的内存,即缓冲池bpool,代理计算节点持续接收计算请求,并将其存入bpool,周期性地执行bpool Evict过程,生成一单要送往以太坊的批处理事务。另外,以太坊的内存池txpool是动态内存中的区域,在那有待处理的交易驻留在其中,之后它们会被静态地包含在一个块中,在本实施例方式中,选用设置有txpool的计算节点作为被调用方,以对批处理时间窗口内的目标计算请求进行处理。
在一种实施方式中,所述目标计算节点的标识信息通过以下方式获取:
确定各个所述目标计算请求的计算成本;
获取所述区块链中设置有内存池的若干计算节点以作为候选计算节点;
将各个所述目标计算请求分别与各个所述候选计算节点中的其他处理的计算成本进行比较,得到各个所述目标计算请求在各个所述候选计算节点中的排名;
分别为各个所述目标计算请求选取最高排名所在的候选计算节点以作为对应的目标计算节点;
获取各个所述目标计算节点对应的所述目标计算节点的标识信息。
值得说明的是,区块链上的全局txpool是由各个独立节点的txpool组成,在各个txpool中,优先根据计算成本(gas费用)来对数据进行排序打包,一般情况下,优先处理计算成本较高的数据,因此,在本实施方式中,为游戏应用开发层提供高效、可靠、可信的计算,设置了相应的批处理策略:采用无延迟的策略(1block策略),通过txpoolEvict操作,将各个目标计算请求与txpool中的其他处理的计算成本进行了比较后,选择了能够使得目标计算请求在某个候选计算节点中排名较高的计算节点以作为该目标计算请求的目标计算节点,以使得批处理事务中的各个目标计算请求能够较快被处理,降低处理延迟。其中,txpool中存在很多需要计算节点进行处理的数据,txpool中的其他处理指的就是除本实施方式中提及的计算请求之外的其他需要计算节点处理的数据。
在一种实施方式中,所述目标计算请求通过以下方式确定:
选择批处理时间窗口内发起计算请求最多的用户作为目标用户;
当所述批处理时间窗口内的目标用户发起的计算请求达到预设发送次数时,以所述批处理时间窗口内的目标用户发起的计算请求作为目标计算请求;
当所述批处理时间窗口内的目标用户发起的计算请求没有达到所述预设发送次数时,将所述批处理时间窗口内的所有计算请求作为目标计算请求。
具体地,在实施方式中,为游戏应用开发层提供高效、可靠、可信的计算,本实施方式的批处理策略除了上述的1block策略外,还包括:策略Wsec、策略MinX和策略TOP1。
1、策略Wsec。假设所有批处理在时间窗口Wsec内到达。在实践中,W越大,批处理中计算请求就越多,每个处理摊销到的计算成本就越低。然而,较大的W值意味着批处理程序需要等待更长的时间,这可能会导致调用执行的不一致性和延迟。因此,通过设置合理的批处理时间窗口来兼顾计算成本、调用执行的一致性和实时性。
2、策略MinX。仅在批处理时间窗口内有超过X个候选计算请求时进行批处理。如果调用太少,成本摊销程度可能太低。通过处理操作进行了成本分析,得出X的最小值应该是5。也就是说,一个批处理事务大小batch size只有在至少有5次调用的情况下才是有益的。可以理解的是,可根据实际情况设置预设发送次数。
3、策略TOP1。只对从一个账户发送的计算请求进行批处理,比如发送最密集的账户。如果所有需要批处理的调用都来自一个发送者帐户,批处理事务只需要一次验证,这样可以消除在智能合约中验证签名的需求,降低计算开销。
在实践中,策略TOP1可以在策略Wsec上进行切换。例如,Wsec-Top1意味着只批处理在W秒中到达,并且来自该窗口中发送最密集的账户的调用。Top1批处理策略的存在是否真的可以带来积极的计算成本节省,与工作负载密切相关。如果有一个账户比其他账户发送更密集的调用,应用策略Top1的批量调用会有积极的计算成本节约。但如果工作负载没有包含足够的此类调用,可能会比没有策略Top1更加限制成本摊销。
在一种实施方式中,所述目标计算节点作为对应的所述目标计算请求的被调用方,所述目标计算节点的标识信息包括被调用方智能合约地址、被调用方函数名和函数参数列表;
所述根据目标计算请求和所述目标计算节点的标识信息生成批处理数据,包括:
根据所述被调用方智能合约地址、所述被调用方函数名和所述函数参数列表对对应的所述目标计算请求进行更新,其中,更新后的目标计算请求携带有对应用户的账户标识、被调用方智能合约地址、被调用方函数名和函数参数列表;
获取各个所述用户关于对应的目标计算请求的随机数;
将各个所述目标计算请求、各个所述用户关于对应的目标计算请求的随机数和当前批处理交易的随机数组成所述当前批处理交易的批处理消息,并反馈给各个所述用户;
在各个所述用户确定所述批处理消息中不存在相同的随机数后,将所述批处理消息中的所述目标计算请求的随机数删除,得到待签名数据;
调用各个所述用户对所述待签名数据进行签名,得到签名数据;
将所述签名数据、所述待签名数据和获取的链上分发服务的函数名组成待处理数据;
将所述中间服务的标识、所述当前批处理交易的随机数、获取的所述链上分发服务的智能合约地址、所述中间服务的签名,获取的合约地址值和所述待处理数据组成批处理数据。
在一种实施方式中,所述数据处理结果通过以下方式得到:所述区块链调用链上分发服务,利用所述链上分发服务的智能合约对所述批处理数据中的所有签名进行验证,在验证成功后,将所述批处理数据中的各个所述目标计算请求分别发送至对应的目标计算节点计算,得到各个所述目标计算请求的数据处理结果。
具体地,为防止Batcher在批处理事务中伪造或重放一般用户的调用请求,通过设计安全协议,其关键思想是使用交易目标随机值来防止恶意Batcher在批处理事务中的多次调用重放。
示例性的,参见图4,假设在一个批处理时间窗口中,有来自不同调用者(用户),安全协议处理包括四个步骤:
1、在批处理时间窗口中,用户将第i次调用请求(计算请求)(由calli表示)提交给代理计算节点的中间服务Batcher。
其中,calli=<accounti,cntri,funci,argsi>。
accounti表示发起该计算请求的用户的账户标识,cntri表示被调用方智能合约地址,funci表示被调用方函数名,argsi表示函数参数列表。
2、在批处理时间窗口结束时,Batcher准备批处理消息bmsg并将其发送给调用者(用户)进行验证和签名。
bmsg是N个请求calli的串联,也包括了各调用者Caller的随机数noncei和Batcher帐户的随机数nonceB。每个调用者检查在bmsg中是否含有相同的随机数,来确定是否存在一个且只有一个调用副本。
其中,bmsg=call1‖nonce1‖call2‖nonce2‖…‖callN‖nonceN‖nonceB
3、成功检查后,调用者对去除调用者的随机数的bmsg消息(待签名数据)进行签名得到bmsg_sign。每个Caller将他的签名sigi发送Batcher。Batcher将签名消息bmsg_sign包含在处理的数据字段中,并发送处理,称为批处理tx,由Dispatcher智能合约接收。
其中,tx=<accountB,nonceB,CAD,sigB,value,data>;
data=<dispatch_func,bmsg_sign‖bsig>;
bsig=sig1‖sig2‖…‖sigN
accountB表示账户B的唯一标识(中间服务Batcher的标识),CAD表示Dispatcher智能合约地址,sigB表示B的签名(中间服务Batcher的签名),value则为合约地址值,dispatch_func表示Dispatcher函数名。
4、在函数调度中,智能合约Dispatcher解析处理并提取原始调用calli,然后将它们转发给被调用者。智能合约Dispatcher在内部根据调用者的公钥验证每个提取调用的签名,这通过使用Solidity函数来完成。如果验证成功,链上分发服务Dispatcher内部调用Callee智能合约,使用各个预定的计算节点来处理对应的调用请求。示例性的,上述的安全协议的流程可参见图4,图4为在一个批处理时间窗口中,有来自第一调用者Caller1和第二调用者Caller2的调用,第一调用者和第二调用者为两个不同的用户。
在一种实施方式中,所述将所述数据处理结果反馈给所述用户,包括:将所述数据处理结果通过星际文件系统反馈给所述用户。
具体地,通过IPFS进行永久化存储,提供分布式存储能力。在本实施方式中,设置数据传输协议。具体地,在游戏网络中,共识是一个重要方面,对于游戏的状态,所有玩家都应该有一个共识。所述方法利用IPFS来传输与网络中节点状态相关的数据。IPFS消除了对任何集中式游戏服务器的需要,因为节点可以直接彼此通信。与节点状态相关的数据通过Bitswap协议进行交换。IPFS支持广泛的网络协议,如QUIC和UDP,这些协议正在现有的游戏网络中积极使用。其中QUIC的全称是Quick UDP Internet Connections,是一种基于UDP的传输层协议,UDP是User Datagram Protocol的简称,中文名是用户数据报协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
可以理解的是,在整个系统中,各个节点之间的数据传输包括:1、游戏网络维护一个玩家池,并生成与玩家状态相关的数据。在多人游戏中,这些状态必须在链下相互同步,而在单人游戏中,游戏渲染必须在链下执行。因此,玩家直接通过IPFS将与自己状态相关的数据发送到IPFS的代理池中。2、代理计算节点接收与状态相关的数据,并可以与网络中的其他代理计算节点通信,同步所有玩家的状态。在单人游戏的情况下,代理计算节点接收与状态相关的数据,并在自己的机器上渲染游戏内容。3、代理计算节点可以使用IPFS将同步和渲染的数据传回给玩家。4、玩家之间也可以进行游戏内的交流,因为他们是直接连接的。5、节点之间的所有交易都经过游戏验证后记录在区块链上。
在一种实施方式中,所述将所述数据处理结果反馈给所述用户之后,还包括:基于ERC-1155标准,对所述代理计算节点进行奖励。
具体地,代理计算节点是指任何愿意利用其本地计算资源参与游戏网络的节点,即分布式系统中的所有节点都可以是代理计算节点。作为对执行的计算工作的回报,代理计算节点收到基于区块链的奖励,这激励更多的计算节点参与到网络中。其中,使用ERC-1155作为通用令牌标准。每个代币都基于ERC-1155,这将在所有玩家和游戏中提供一致性,由此去除系统对于底层区块链的依赖,防止代理计算节点成为实际意义上的中心节点,且便于接入其他的区块链系统。关于ERC-1155标准,以下以该标准在游戏物品渲染及转移中的应用进行简单介绍。
1、游戏的创作者将制定与游戏相关的ERC-1155合同,并使用元数据将其附加到游戏中呈现的游戏对象上。2、根据游戏智能合约中设定的规则,在游戏中渲染对象。3、玩家在游戏中接收物品,并基于区块链钱包将物品添加到自己的库存中。4、玩家收到的代币可以通过交换与其他玩家交换其他物品,因为ERC-1155支持NFT转账。附加在NFT上的游戏对象也会随着元数据的附加而转移。5、玩家通过移除附在token上的元数据来制造NFT,并将与另一个游戏对象相关的元数据附加到它上。6、玩家直接将他们的NFT转换为加密货币,而不需要依赖任何第三方市场。
为使得所述方法的执行过程更加清楚,以下结合图2进行简单介绍。第一种情况,计算请求由玩家发起,首先,玩家用户的应用程序通过API接口向游戏开发者服务器发送计算请求的任务,由游戏开发者服务器利用RPC方式向代理计算节点转发玩家用户的ID信息和关于计算请求的计算任务,代理计算节点采用中间服务的服务器(Batcher handler)产生批处理数据并发送给以太坊,然后由以太坊调用链上分发服务的服务器(Dispatcherhander)将批处理数据中的各个计算请求分发给以太坊中各个计算节点,各个计算节点执行自身的智能合约,对接收到的计算请求进行处理,得到对应的数据处理结果,然后由以太坊将各个数据处理结果反馈给代理计算节点,代理计算节点对接收到的数据处理结果进行安全检查,安全检查通过后将数据处理结果存储在星际文件系统(IPFS)中,由星际文件系统将各个数据处理结果通过游戏开发者服务器反馈给相应用户,然后结束本次任务。第二种情况,计算请求由游戏开发者服务器发起,其处理过程与第一种情况相似,在此不作赘述。
与现有技术相比,本发明实施例通过对接收的用户发起的计算请求进行分析,在计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据并发送至区块链,以调用分布式系统中的计算节点对计算请求进行处理,最后将所述数据处理结果反馈给所述用户。由此可见,本发明实施例通过将接收的用户发起的请求分发给分布式系统中的计算节点进行数据处理,无需设置中心节点,降低了各个节点运行负担过重的风险,进而提高了数据处理效率,缓解了延迟问题。
参见图5,图5是本发明实施例提供的一种数据处理装置的结构示意图,所述数据处理装置20,包括:
数据接收模块21,用于接收用户发起的计算请求;
数据处理模块22,用于当所述计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据以发送至区块链;
结果接收模块23,用于接收所述区块链返回的数据处理结果;其中,所述数据处理结果由所述区块链将所述批处理数据中的计算请求分发给分布式系统中的计算节点处理得到的结果;
数据反馈模块24,用于将所述数据处理结果反馈给所述用户。
在一种实施方式中,所述数据处理模块22,包括:
标识获取单元,用于当所述计算请求为多人互动活动的计算请求时,调用所述代理计算节点上运行的中间服务,获取区块链中若干目标计算节点的标识信息;
数据生成单元,用于调用所述中间服务,根据接收到的多个计算请求和所述目标计算节点的标识信息生成批处理数据;
数据发送单元,用于将所述批处理数据发送至区块链,以使所述区块链调用链上分发服务将所述批处理数据中的计算请求分发给所述分布式系统中的目标计算节点处理得到数据处理结果;
进一步地,所述数据处理模块22,还包括:数据处理单元,用于当所述计算请求为单人活动的计算请求时,利用所述代理计算节点的本地资源对所述计算请求进行处理,得到单点数据处理结果。
在一种实施方式中,所述数据生成单元,具体用于:
调用所述代理计算节点上运行的中间服务,将接收到的计算请求存入缓冲池;
选择批处理时间窗口内存入所述缓冲池的计算请求,得到目标计算请求;
根据所述目标计算请求和所述目标计算节点的标识信息生成批处理数据;其中,所述目标计算节点为所述区块链中设置有内存池的计算节点,每一所述目标计算请求对应有一个所述目标计算节点的标识信息,所述目标计算节点用于处理对应的目标计算请求;
进一步地,所述数据处理结果由所述区块链在调用链上分发服务解析所述批处理数据得到若干所述目标计算请求及与各个所述目标计算请求对应的目标计算节点的标识信息后,根据各个所述目标计算请求对应的目标计算节点的标识信息将各个所述目标计算请求分发至对应的目标计算节点处理得到的结果。
在一种实施方式中,所述目标计算节点的标识信息通过以下方式获取:
确定各个所述目标计算请求的计算成本;
获取所述区块链中设置有内存池的若干计算节点以作为候选计算节点;
将各个所述目标计算请求分别与各个所述候选计算节点中的其他处理的计算成本进行比较,得到各个所述目标计算请求在各个所述候选计算节点中的排名;
分别为各个所述目标计算请求选取最高排名所在的候选计算节点以作为对应的目标计算节点;
获取各个所述目标计算节点对应的所述目标计算节点的标识信息。
在一种实施方式中,所述目标计算请求通过以下方式确定:
当所述批处理时间窗口内的目标用户发起的计算请求达到预设发送次数时,以所述批处理时间窗口内的目标用户发起的计算请求作为目标计算请求,其中,所述目标用户为所述批处理时间窗口内发起计算请求最多的用户;
当所述批处理时间窗口内的目标用户发起的计算请求没有达到所述预设发送次数时,将所述批处理时间窗口内的所有计算请求作为目标计算请求。
在一种实施方式中,所述目标计算节点作为对应的所述目标计算请求的被调用方,所述目标计算节点的标识信息包括被调用方智能合约地址、被调用方函数名和函数参数列表;
所述数据生成单元,具体用于通过以下方式生成批处理数据:
根据所述被调用方智能合约地址、所述被调用方函数名和所述函数参数列表对对应的所述目标计算请求进行更新,其中,更新后的目标计算请求携带有对应用户的账户标识、被调用方智能合约地址、被调用方函数名和函数参数列表;
获取各个所述用户关于对应的目标计算请求的随机数;
将各个所述目标计算请求、各个所述用户关于对应的目标计算请求的随机数和当前批处理交易的随机数组成所述当前批处理交易的批处理消息,并反馈给各个所述用户;
在各个所述用户确定所述批处理消息中不存在相同的随机数后,
将所述批处理消息中的所述目标计算请求的随机数删除,得到待签名数据;
调用各个所述用户对所述待签名数据进行签名,得到签名数据;
将所述签名数据、所述待签名数据和获取的链上分发服务Dispatcher的函数名组成待处理数据;
将所述中间服务的标识、所述当前批处理交易的随机数、获取的所述链上分发服务的智能合约地址、所述中间服务的签名,获取的合约地址值和所述待处理数据组成批处理数据。
在一种实施方式中,所述数据处理结果通过以下方式得到:所述区块链调用链上分发服务,利用所述链上分发服务的智能合约对所述批处理数据中的所有签名进行验证,在验证成功后,将所述批处理数据中的各个所述目标计算请求分别发送至对应的目标计算节点计算,得到各个所述目标计算请求的数据处理结果。
在一种实施方式中,所述将所述数据处理结果反馈给所述用户,包括:将所述数据处理结果通过星际文件系统反馈给所述用户,并基于ERC-1155标准,对所述代理计算节点进行奖励。
值得说明的是,具体的所述数据处理装置的工作过程可参考上述实施例中所述数据处理方法的工作过程,在此不再赘述。
与现有技术相比,本发明实施例公开的数据处理装置通过对接收的用户发起的计算请求进行分析,在计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据并发送至区块链,以调用分布式系统中的计算节点对计算请求进行处理,最后将所述数据处理结果反馈给所述用户。由此可见,本发明实施例通过将接收的用户发起的请求分发给分布式系统中的计算节点进行数据处理,无需设置中心节点,降低了各个节点运行负担过重的风险,进而提高了数据处理效率,缓解了延迟问题。
参见图6,本发明实施例还提供一种数据处理设备30,包括处理器31、存储器32以及存储在所述存储器32中且被配置为由所述处理器31执行的计算机程序,所述处理器31执行所述计算机程序时实现如上述数据处理方法实施例中的步骤,例如图1中所述的步骤S1~S4;或者,所述处理器31执行所述计算机程序时实现上述各装置实施例中各模块的功能,例如登录模块。
示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器32中,并由所述处理器31执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述数据处理设备中的执行过程。例如,所述计算机程序可以被分割成多个模块,各模块具体功能如下:
数据接收模块21,用于接收用户发起的计算请求;
数据处理模块22,用于当所述计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据以发送至区块链;
结果接收模块23,用于接收所述区块链返回的数据处理结果;其中,所述数据处理结果由所述区块链将所述批处理数据中的计算请求分发给分布式系统中的计算节点处理得到的结果;
数据反馈模块24,用于将所述数据处理结果反馈给所述用户。
各个模块具体的工作过程可参考上述实施例所述的数据处理装置的工作过程,在此不再赘述。
所述数据处理设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述数据处理设备可包括,但不仅限于,处理器31、存储器32。本领域技术人员可以理解,所述数据处理设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器31可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器31也可以是任何常规的处理器等,所述处理器31是所述数据处理设备的控制中心,利用各种接口和线路连接整个数据处理设备的各个部分。
所述存储器32可用于存储所述计算机程序和/或模块,所述处理器31通过运行或执行存储在所述存储器32内的计算机程序和/或模块,以及调用存储在存储器32内的数据,实现所述数据处理设备的各种功能。所述存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述数据处理设备集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器31执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (10)

1.一种数据处理方法,其特征在于,所述方法包括:
接收用户发起的计算请求;
当所述计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据以发送至区块链;
接收所述区块链返回的数据处理结果;其中,所述数据处理结果由所述区块链将所述批处理数据中的计算请求分发给分布式系统中的计算节点处理得到的结果;
将所述数据处理结果反馈给所述用户。
2.如权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
当所述计算请求为单人活动的计算请求时,利用代理计算节点的本地资源对所述计算请求进行处理,得到单点数据处理结果;
所述当所述计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据以发送至区块链,包括:
调用代理计算节点上运行的中间服务获取区块链中若干目标计算节点的标识信息;
调用所述中间服务,根据接收到的多个计算请求和所述目标计算节点的标识信息生成批处理数据;
将所述批处理数据发送至区块链,以使所述区块链调用链上分发服务将所述批处理数据中的计算请求分发给所述分布式系统中的目标计算节点处理得到数据处理结果。
3.如权利要求2所述的数据处理方法,其特征在于,所述调用所述中间服务,根据接收到的多个计算请求和所述目标计算节点的标识信息生成批处理数据,包括:
调用所述中间服务,将接收到的计算请求存入缓冲池;
选择批处理时间窗口内存入所述缓冲池的计算请求,得到目标计算请求;
根据所述目标计算请求和所述目标计算节点的标识信息生成批处理数据;其中,所述目标计算节点为所述区块链中设置有内存池的计算节点,每一个所述目标计算请求对应有一个所述目标计算节点的标识信息,所述目标计算节点用于处理对应的目标计算请求。
4.如权利要求3所述的数据处理方法,其特征在于,所述目标计算节点的标识信息通过以下方式获取:
确定各个所述目标计算请求的计算成本;
获取所述区块链中设置有内存池的若干计算节点以作为候选计算节点;
将各个所述目标计算请求分别与各个所述候选计算节点中的其他处理的计算成本进行比较,得到各个所述目标计算请求在各个所述候选计算节点中的排名;
分别为各个所述目标计算请求选取最高排名所在的候选计算节点以作为对应的目标计算节点;
获取各个所述目标计算节点对应的目标计算节点的标识信息。
5.如权利要求3所述的数据处理方法,其特征在于,所述目标计算请求通过以下方式确定:
选择批处理时间窗口内发起计算请求最多的用户作为目标用户;
当所述批处理时间窗口内的目标用户发起的计算请求达到预设发送次数时,以所述批处理时间窗口内的目标用户发起的计算请求作为目标计算请求;
当所述批处理时间窗口内的目标用户发起的计算请求没有达到所述预设发送次数时,将所述批处理时间窗口内的所有计算请求作为目标计算请求。
6.如权利要求3所述的数据处理方法,其特征在于,所述目标计算节点的标识信息包括被调用方智能合约地址、被调用方函数名和函数参数列表,其中,所述目标计算节点作为对应的目标计算请求的被调用方;
所述根据所述目标计算请求和所述目标计算节点的标识信息生成批处理数据,包括:
根据所述被调用方智能合约地址、所述被调用方函数名和所述函数参数列表对对应的目标计算请求进行更新,其中,更新后的目标计算请求携带有用户的账户标识、被调用方智能合约地址、被调用方函数名和函数参数列表;
获取各个所述用户关于对应的目标计算请求的随机数;
将各个所述目标计算请求、各个所述用户关于对应的目标计算请求的随机数和当前批处理交易的随机数组成所述当前批处理交易的批处理消息,并反馈给各个所述用户;
在各个所述用户确定所述批处理消息中不存在相同的随机数后,将所述批处理消息中的所述目标计算请求的随机数删除,得到待签名数据;
调用各个所述用户对所述待签名数据进行签名,得到签名数据;
将所述签名数据、所述待签名数据和获取的链上分发服务的函数名组成待处理数据;
将所述中间服务的标识、所述当前批处理交易的随机数、获取的所述链上分发服务的智能合约地址、所述中间服务的签名,获取的合约地址值和所述待处理数据组成批处理数据。
7.如权利要求6所述的数据处理方法,其特征在于,所述数据处理结果通过以下方式得到:所述区块链调用链上分发服务,利用所述链上分发服务的智能合约对所述批处理数据中的所有签名进行验证,在验证成功后,将所述批处理数据中的各个所述目标计算请求分别发送至对应的目标计算节点计算,得到各个所述目标计算请求的数据处理结果。
8.如权利要求1~7任一所述的数据处理方法,其特征在于,所述将所述数据处理结果反馈给所述用户,包括:将所述数据处理结果通过星际文件系统反馈给所述用户,并基于ERC-1155标准,对所述代理计算节点进行奖励。
9.一种数据处理装置,其特征在于,包括:
数据接收模块,用于接收用户发起的计算请求;
数据处理模块,用于当所述计算请求为多人互动活动的计算请求时,根据接收到的多个计算请求生成批处理数据以发送至区块链;
结果接收模块,用于接收所述区块链返回的数据处理结果;其中,所述数据处理结果由所述区块链将所述批处理数据中的计算请求分发给分布式系统中的计算节点处理得到的结果;
数据反馈模块,用于将所述数据处理结果反馈给所述用户。
10.一种数据处理设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至8中任意一项所述的数据处理方法。
CN202311865123.7A 2023-12-29 2023-12-29 一种数据处理方法、装置及设备 Pending CN117883772A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311865123.7A CN117883772A (zh) 2023-12-29 2023-12-29 一种数据处理方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311865123.7A CN117883772A (zh) 2023-12-29 2023-12-29 一种数据处理方法、装置及设备

Publications (1)

Publication Number Publication Date
CN117883772A true CN117883772A (zh) 2024-04-16

Family

ID=90646794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311865123.7A Pending CN117883772A (zh) 2023-12-29 2023-12-29 一种数据处理方法、装置及设备

Country Status (1)

Country Link
CN (1) CN117883772A (zh)

Similar Documents

Publication Publication Date Title
US8527590B2 (en) Solving mixed integer programs with peer-to-peer applications
CN112784989B (zh) 推理系统、推理方法、电子设备及计算机存储介质
CN107659547A (zh) 一种基于事件的流程处理方法及装置和服务器
US7090749B2 (en) Method and apparatus for simulating application workloads on an e-business application server
CN111163130B (zh) 一种网络服务系统及其数据传输方法
US8037153B2 (en) Dynamic partitioning of messaging system topics
CN114024972B (zh) 一种长连接通信方法、系统、装置、设备及存储介质
CN111290965B (zh) 一种测试方法、装置、计算机设备和存储介质
CA2446933A1 (en) Method and apparatus to encourage client into a distributed peer to peer sharing technology
CN111510493B (zh) 分布式数据传输方法及装置
CN115955590A (zh) 视频处理方法、装置、计算机设备、介质
CN111835809B (zh) 工单消息分配方法、装置、服务器及存储介质
CN117883772A (zh) 一种数据处理方法、装置及设备
US20230291656A1 (en) Operation of a distributed deterministic network
CN114710485B (zh) 处理方法和处理装置
CN114385351A (zh) 云管理平台负载均衡性能优化方法、装置、设备、介质
Dias et al. BrowserCloud. js: A distributed computing fabric powered by a P2P overlay network on top of the web platform
CN113347208B (zh) 用于确定网络节点的方法和装置
Krajecki et al. Focus on the communication scheme in the middleware CONFIIT using XML-RPC
CN115002219B (zh) 服务调用方法、装置、设备、系统、存储介质及产品
Dantas et al. Green LAC: Resource-Aware Dynamic Load Balancer for Serverless Edge Computing Platforms.
CN114827065B (zh) 基于统一通信信道的实时通信方法及相关设备
Wenzel MetaEdge: an interoperable framework for the integration of edge computing platforms
CN117931425A (zh) 一种提高智算中心gpu利用率的框架及方法
CN118304653A (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