CN110598481B - 数据存储方法、装置、设备及存储介质 - Google Patents
数据存储方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110598481B CN110598481B CN201910934209.8A CN201910934209A CN110598481B CN 110598481 B CN110598481 B CN 110598481B CN 201910934209 A CN201910934209 A CN 201910934209A CN 110598481 B CN110598481 B CN 110598481B
- Authority
- CN
- China
- Prior art keywords
- game
- list
- data
- blockchain network
- updated
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000013500 data storage Methods 0.000 title claims abstract description 36
- 230000015654 memory Effects 0.000 claims description 31
- 230000002860 competitive effect Effects 0.000 claims description 5
- 230000003042 antagnostic effect Effects 0.000 claims 4
- 238000010586 diagram Methods 0.000 description 13
- 238000012986 modification Methods 0.000 description 13
- 230000004048 modification Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 12
- 238000012795 verification Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000013475 authorization Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000036963 noncompetitive effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
本发明提供了一种数据存储方法、装置、设备及存储介质;所述方法包括:获取游戏客户端产生的游戏数据;确定所述游戏数据中包含的目标参数;其中,所述目标参数能够调整用户在游戏中所得分数;根据所述目标参数,对区块链网络中当前存储的游戏榜单进行更新。通过本发明,将游戏榜单存储在区块链网络中,在需要更新的时候,对区块链网络中的游戏榜单进行更新,保证了游戏榜单的安全、真实性以及不被篡改。
Description
技术领域
本发明涉及区块链技术,尤其涉及一种数据存储方法、装置、设备及存储介质。
背景技术
大部分游戏的榜单数据是由开发商的服务器进行储存的,由于开发商本身研发实力的限制,导致某些游戏的榜单数据丢失以及被玩家发掘漏洞导致游戏榜单被篡改;这样,以游戏开发商设计的服务器对游戏榜单进行存储,无法保证游戏榜单的安全、真实性以及不被篡改。一旦出现游戏榜单数据被篡改的情况,则会导致游戏的口碑败坏,直接影响到游戏生命期。
发明内容
本发明实施例提供一种数据存储方法、装置、设备及存储介质,能够提高游戏榜单的安全、真实性以及不被篡改性。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种数据存储方法,包括:
获取游戏客户端产生的游戏数据;
确定所述游戏数据中包含的目标参数;其中,所述目标参数能够调整用户在游戏中所得分数;
根据所述目标参数,对区块链网络中当前存储的游戏榜单进行更新。
第二方面,本发明实施例提供一种数据存储装置,包括:
第一获取模块,用于获取游戏客户端产生的游戏数据;
第一确定模块,用于确定所述游戏数据中包含的目标参数;其中,所述目标参数能够调整用户在游戏中所得分数;
第一更新模块,用于根据所述目标参数,对区块链网络中当前存储的游戏榜单进行更新。
第三方面,本发明实施例提供一种数据存储的设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的方法。
第四方面,本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的方法。
本发明实施例具有以下有益效果:游戏服务器获取到能够调整用户在游戏中所得分数的目标参数之后,基于该目标参数对区块链网络中当前存储的游戏榜单进行更新;这样,将游戏榜单存储在区块链网络中,在需要更新的时候,对区块链网络中的游戏榜单进行更新,保证了游戏榜单的安全、真实性以及不被篡改。
附图说明
图1是本发明实施例提供的数据存储***的架构示意图;
图2A是本发明实施例提供的区块链网络200的功能架构示意图;
图2B是本发明实施例提供的数据存储的***的结构示意图;
图3是本发明实施例提供的数据存储方法的一个可选的流程示意图;
图4A是本发明实施例数据存储方法的另一实现流程示意图;
图4B是本发明实施例数据存储方法的又一实现流程示意图;
图4C是本发明实施例数据存储方法的再一实现流程示意图;
图5是本发明实施例数据存储方法的另一实现流程示意图;
图6是本发明实施例存储游戏榜单的结构示意图;
图7是本发明实施例数据存储方法的实现框架示意图;
图8是本发明实施例数据存储方法的应用场景示意图;
图9是本发明实施例数据存储方法的实现流程交互图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解, “一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
如果申请文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)交易(Transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
例如,部署(Deploy)交易用于向区块链网络中的节点安装指定的智能合约并准备好被调用;调用(Invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值对)和查询操作(即查询状态数据库中的键值对)。
2)区块链(Block chain),是由区块(Block)形成的加密的、链式的交易的存储结构。
例如,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,从而基于哈希值实现区块中交易的防篡改和防伪造;新产生的交易被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长。
3)区块链网络(Block chain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
4)账本(Ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。
其中,区块链是以文件***中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持对区块链中交易的快速查询。
5)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对账本数据库的键值对数据进行更新或查询的操作。
6)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
7)游戏榜单,游戏中一般会设置榜单,用于展示游戏玩家某一方面的能力在游戏服务器中的排名,游戏玩家会为了展示自己的游戏能力会刻意追求游戏榜单中的高排名,所以会不惜花时间或购买游戏道具来提升榜单排名。
下面说明本发明实施例提供的区块链网络的示例性应用,参见图1,图1是本发明实施例提供的数据存储***的架构示意图,包括区块链网络200(示例性示出了包括节点210-1至节点210-3)、区块链管理平台300、游戏***400(示例性示出归属于游戏***400的游戏服务器600-2、游戏客户端600-1及其图形界面610-1),下面分别进行说明。
区块链网络200的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户客户端和服务器,都可以在不需要授权的情况下接入区块链网络200;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如客户端/服务器)可以接入区块链网络200,此时,成为区块链网络200中的一类特殊的节点即客户端节点。
需要指出地,客户端节点可以只提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络200的常规(原生)节点210的功能,例如下文所述的排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实现。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络200中,通过区块链网络200实现数据和业务处理过程的可信和可追溯。
区块链网络200接收来自不同业务主体(例如图1中示出的游戏***400)的客户端节点(例如,图1中示出的归属于游戏***400的游戏客户端600-1和游戏客户端600-2)提交的交易,执行交易以更新账本或者查询账本,并在客户端的用户界面(例如,游戏客户端600-1的图形界面610-1)显示执行交易的各种中间结果或最终结果。可以理解地,上文中接收交易并执行交易的区块链网络200而言,具体是指区块链网络200中的原生的节点210,当然,在业务主体的客户端节点具有区块链网络200中原生节点210的功能(例如共识功能、账本功能)时,也可以包括相应的客户端节点。
下面说明将游戏的游戏榜单存储在区块链网络以提高榜单数据安全性为例说明区块链网络的示例性应用。
参见图1,游戏***中涉及的多个业务主体,如游戏客户端600-1和游戏服务器600-2,在获得区块链管理平台300的授权后,游戏客户端600-1和游戏服务器600-2都可以接入区块链网络200。
游戏***400的游戏玩家在客户端600-1的图形界面610-1中登录该游戏***400,产生游戏数据,并将该游戏数据发送给该游戏服务器600-2,游戏服务器600-2确定该游戏数据中包含目标参数的情况下,生成更新游戏榜单的更新请求,将该目标参数携带于该更新请求发送到区块链管理平台300,由区块链管理平台300根据更新请求和目标参数生成对应更新游戏榜单的交易,在交易中指定了实现更新游戏榜单需要调用的智能合约、以及向智能合约传递的参数,交易还携带了游戏***400签署的数字签名(例如,使用游戏***400的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络200。
区块链网络200中的节点210中接收到交易时,对交易携带的数字签名进行验证,数字签名验证成功后,根据交易中携带的游戏***400的身份,确认游戏***400是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署节点210自己的数字签名(例如,使用节点210-1的私钥对交易的摘要进行加密得到),并继续在区块链网络200中广播。
区块链网络200中具有排序功能的节点210接收到验证成功的交易后,将交易填充到新的区块中,并广播到区块链网络200中提供共识服务的节点。
区块链网络200中的提供共识服务的节点210对新区块进行共识过程以达成一致,提供账本功能的节点210将新区块追加到区块链的尾部,并执行新区块中的交易:对于提交更新当前存储的游戏榜单的交易,更新账本数据库中当前存储的游戏榜单中每一用户的分数,并返回更新结果,即返回更新后的游戏榜单。
可以理解地,业务主体(比如,游戏玩家)在区块链网络200中能够查询更新后的游戏榜单的类型,可以通过约束业务主体能够发起的交易的权限来实现,例如,当游戏***400具有发起查询更新后的游戏榜单的交易的权限时,游戏***400的游戏玩家可以在客户端600-1的图形界面610-1中输入榜单获取请求,并由区块链管理平台300生成用于查询更新后的游戏榜单的交易广播到区块链网络200中,以从区块链网络200中获取更新后的游戏榜单。
下面说明本发明实施例提供的区块链网络的示例性的功能架构,参见图2A,图2A是本发明实施例提供的区块链网络200的功能架构示意图,包括应用层201、共识层202、网络层203、数据层204和资源层205,下面分别进行说明。
资源层205封装了实现区块链网络200中的各个节点210的计算资源、存储资源和通信资源,例如计算机、服务器/集群和云中的计算资源、存储资源和通信资源,进行抽象并向数据层204提供统一的接口以屏蔽实现资源层205的底层硬件的差异性。
计算资源包括各种形式的处理器,例如中央处理器(CPU)、应用专用集成电路(ASIC,Application Specific Integrated Circuit)、专用集成电路和现场可编程门阵列(FPGA,Field-Programmable Gate Array)的各种形式的处理器。
存储资源包括各种易失性存储器和非易失性存储器等各种类型的存储介质。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。
通信资源包括用于供区块链网络的节点210之间、区块链网络200与业务主体之间通信的各种链路。
数据层204封装了实现账本的各种数据结构,包括以文件***中的文件实现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
网络层203封装了点对点(P2P,Point to Point)网络协议、数据传播机制和数据验证机制、接入认证机制和业务主体身份管理的功能。
其中,P2P网络协议实现区块链网络200中节点210之间的通信,数据传播机制保证了交易在区块链网络200中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点210之间传输数据的可靠性;接入认证机制用于根据实际的业务场景对加入区块链网络200的业务主体的身份进行认证,并在认证通过时赋予业务主体接入区块链网络200的权限;业务主体身份管理用于存储允许接入区块链网络200的业务主体的身份、以及权限(例如能够发起的交易的类型)。
共识层202封装了区块链网络200中的节点210对区块达成一致性的机制(即共识机制)、交易管理和账本管理的功能。
共识机制包括POS、POW和DPOS等共识算法,支持共识算法的可插拔。
交易管理用于验证节点210接收到的交易中携带的数字签名,验证业务主体的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主体身份管理读取相关信息);对于获得接入区块链网络200的授权的业务主体而言,均拥有认证中心颁发的数字证书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法身份。
账本管理:用于维护区块链和账本数据库。对于取得共识的区块,追加到区块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态数据库中的键值对,当交易包括查询操作时查询账本数据库中的键值对并向业务主体返回查询结果。支持对账本数据库的多种维度的查询操作,包括:根据区块序列号(例如交易的哈希值)查询区块;根据区块哈希值查询区块;根据交易序列号查询区块;根据交易序列号查询交易;根据业务主体的账号(序列号)查询业务主体的账号数据;根据通道名称查询通道中的区块链。
应用层201 封装了区块链网络能够实现的各种业务,包括交易的溯源、存证和验证等。
参见图2B,图2B是本发明实施例提供的数据存储的***的结构示意图,图2B所示的游戏***400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。游戏***400中的各个组件通过总线***440耦合在一起。可理解,总线***440用于实现这些组件之间的连接通信。总线***440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2B中将各种总线都标为总线***440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,在一些示例中键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件终端包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储终端。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(Read Only Memory,ROM),易失性存储器可以是随机存取存储器(Random Access Memory,RAM)。本发明实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作***451,包括用于处理各种基本***服务和执行硬件相关任务的***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算终端,示例性的网络接口420包括:蓝牙、无线相容性认证、和通用串行总线(UniversalSerial Bus,USB)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作***设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的装置可以采用软件方式实现,图2B示出了存储在存储器450中的视图更新的数据存储装置455,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块4551、第一确定模块4552和第一更新模块4553;这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的装置可以采用硬件方式实现,作为示例,本发明实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的视图更新方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(Application Specific Integrated Circuit,ASIC)、DSP、可编程逻辑器件(Programmable Logic Device,PLD)、复杂可编程逻辑器件(ComplexProgrammable Logic Device,CPLD)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或其他电子元件。
下面说明本发明实施例提供的数据存储的设备的示例性应用,本发明实施例提供的设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的客户端,也可以实施为服务器。下面,将说明设备实施为服务器时示例性应用。
将结合本发明实施例提供的数据存储的设备的示例性应用和实施,说明本发明实施例提供的数据存储方法。
参见图3,图3是本发明实施例提供的数据存储方法的一个可选的流程示意图,应用于游戏服务器,将结合图3示出的步骤进行说明。
步骤S301,获取游戏客户端产生的游戏数据。
在一些实施例中,所述步骤S301是由游戏服务器实现的,即游戏服务器获取游戏客户端产生的游戏数据。所述游戏数据为玩家在游戏过程中的任意数据,比如,账号信息、游戏角色的等级信息、装备信息、装备交易数据信息以及游戏用户在游戏过程中产生的行为数据、游戏玩家在游戏过程中的对抗数据或者交互数据等。所述游戏客户端为任意游戏的客户端,包括:对抗类游戏的游戏客户端,或非对抗类游戏。
步骤S302,确定所述游戏数据中包含的目标参数。
在一些实施例中,所述目标参数能够调整用户在游戏中所得分数。如果所述游戏为对抗类游戏,那么目标参数可以是调整用户对应的游戏角色的战斗力值的对抗参数。如果所述游戏类型为非对抗性游戏,所述目标参数为调整用户在所述游戏中的当前级别的过关参数。
步骤S303,根据所述目标参数,对区块链网络中当前存储的游戏榜单进行更新。
在一些实施例中,对于区块链网络中当前存储的游戏榜单的更新可以有游戏服务器实现,还可以由区块链网络对该游戏榜单进行更新。
在本发明实施例中,:游戏服务器获取到能够调整用户在游戏中所得分数的目标参数之后,基于该目标参数对区块链网络中当前存储的游戏榜单进行更新;这样,将游戏榜单存储在区块链网络中,在需要更新的时候,对区块链网络中的游戏榜单进行更新,保证了游戏榜单的安全、真实性以及不被篡改。
在一些实施例中,为了准确的判断游戏数据中是否包含目标参数,所述步骤S302可以通过以下步骤实现,参见图4A,图4A是本发明实施例数据存储方法的另一实现流程示意图,结合图3,进行以下说明:
步骤S401,确定所述游戏数据所属的游戏类型。
在一个具体例子中,所述游戏类型包括对抗类游戏,比如,杀人游戏等;或者非对抗类游戏,比如,棋牌类游戏或过关类游戏等。
步骤S402,如果所述游戏数据中包含与所述游戏类型相匹配的目标数据,确定所述游戏数据中包含所述目标参数。
在一些实施例中,如果所述游戏类型为对抗性游戏,所述确定所述游戏数据中包含所述目标参数,包括:确定所述目标参数为所述对抗性游戏中游戏角色的战斗力值,从所述游戏数据中提取所述战斗力值;比如,表征用户对应的游戏角色的血量、魔法力或力量值等。如果所述游戏类型为非对抗性游戏,所述确定所述游戏数据中包含所述目标参数,包括:确定所述目标参数为调整用户在所述非对抗性游戏中的当前级别的过关值,从所述游戏数据中提取所述过关值。比如,过关值包括:玩家自身能力提升的数据(比如,过关类游戏中,在游戏中的跳跃行为或完成游戏中设定的关卡等)或者两个用户之间的交互数据等。
在一些实施例中,对于游戏榜单的更新可以通过两种方式实现:
方式一:可以采用游戏服务器对于存储在区块链中的游戏榜单的直接进行更新,所述步骤S303可以通过以下步骤实现,参见图4B,图4B是本发明实施例数据存储方法的又一实现流程示意图,结合图3,进行以下说明:
步骤S421,向所述区块链网络请求当前存储的游戏榜单。
在一些实施例中,由于游戏榜单存储在区块链网络中,当需要对游戏榜单进行更新时,游戏服务器向所述区块链网络请求当前存储的游戏榜单,以获取当前存储的游戏榜单。
步骤S422,确定所述当前存储的游戏榜单中每一游戏账号的榜单数据。
在一些实施例中,所述榜单数据包括每一玩家的排名和每一玩家在游戏中所得的分数。举例来说,对抗类游戏的榜单数据包括每一玩家的排名和每一玩家在游戏中对应角色的战斗力值;棋牌类游戏的榜单数据包括:每一玩家的排名和每一玩家的当前得分。
步骤S423,基于所述目标参数和所述每一游戏账号的榜单数据,确定更新后的游戏榜单。
在一些实施例中,基于所述目标参数和所述每一游戏账号的榜单数据,重新调整当前存储的游戏榜单中每一玩家的排名,或者仅调整当前存储的游戏榜单中每一玩家的分数;因此,得到的更新后的游戏榜单中玩家的排名可以是与当前存储的游戏榜单中玩家的排名相同或不同。
步骤S424,向所述区块链网络发送所述更新后的游戏榜单,以实现更新所述当前存储的游戏榜单。
在一些实施例中,更新后的游戏榜单形成之后,存储在区块链网络中,以保证游戏榜单的安全性。以对抗类游戏,举例来说,目标参数为能够提升表征玩家的游戏角色的战斗力值的参数,基于此,对当前存储的游戏榜单中该玩家的游戏账号对应的游戏角色的战斗力值进行更新,并调整当前存储的游戏榜单中每一游戏账号的排名。
方式二,为了更进一步的提高游戏榜单的安全性和不被篡改,采用区块链网络对游戏榜单进行更新,所述步骤S303可以通过以下步骤实现,参见图4C,图4C是本发明实施例数据存储方法的再一实现流程示意图,结合图3,进行以下说明:
步骤S431,生成携带有所述目标参数的更新请求。
在一些实施例中,游戏服务器判断游戏数据中是否包含目标参数,如果游戏数据中包含目标参数,则生成请求更新游戏榜单的更新请求。
如果所述游戏数据不包含所述目标参数,将所述游戏数据保存在所述游戏的服务器中,或者将所述游戏数据保存在所述区块链网络中未存储用户在所述游戏中所得分数的节点中。
步骤S432,将所述更新请求,发送给区块链网络,以使所述区块链网络根据所述目标参数更新当前存储的游戏榜单。
在一些实施例中,游戏服务器向区块链网络发送携带该目标参数的更新请求;区块链网络接收到更新请求之后,根据该目标参数,对当前存储的游戏榜单进行更新;这样,采用区块链网络对游戏榜单进行更新,能够避免对于游戏榜单的恶意篡改,提高了游戏榜单的安全性,给玩家带来更好的游戏体验。
在一些实施例中,为了实现当玩家想要在游戏客户端查看游戏榜单时,从区块链中获取游戏榜单,使得任一客户端得到的游戏榜单相同,在步骤S432之后,所述方法还包括以下步骤,参见图5,图5是本发明实施例数据存储方法的另一实现流程示意图,结合图4C,进行以下说明:
步骤S501,接收游戏客户端发送的榜单获取请求。
在一些实施例中,服务器接收游戏客户端发送的榜单获取请求,并将该榜单获取请求发送给区块链网络。
步骤S502,响应于所述榜单获取请求,从所述区块链网络中获取更新后的游戏榜单。
在一些实施例中,区块链网络接收到榜单获取请求之后,向游戏服务器反馈当前存储的最新的游戏榜单,这样,将更新后的游戏榜单反馈给游戏服务器。
步骤S503,将所述更新后的游戏榜单反馈给所述游戏客户端,以使任一游戏客户端获取的游戏榜单相同。
在一些实施例中,游戏服务器将接收到的更新后的游戏榜单反馈给所述游戏客户端,这样任一游戏客户端需要获取游戏榜单时,均从区块链网络中获取,从而使得任一游戏客户端获取的游戏榜单相同,即各个客户端从区块链中拉取的游戏榜单是一致的。
在其他实施例中,对游戏榜单进行更新之后,将所述更新后的游戏榜单,保存在所述区块链网络中存储所述当前游戏榜单的节点中,并将所述更新后的游戏榜单共享给所述区块链中的其他节点,以使客户端从任意一个节点中查到的游戏榜单都相同。这样,当接收到游戏客户端发送的修改游戏榜单的修改请求时,响应于所述修改请求,采用所述区块链中的每一节点对所述修改请求进行验证;如果所述修改请求通过至少M个节点的验证,根据所述修改请求,修改所述区块链中当前存储的游戏榜单;其中,M为大于等于数量阈值的整数;比如,基于游戏榜单中的榜单数据的标识信息进行验证,若该榜单数据携带了特定的标识信息,则确定通过验证,若未携带特定的标识信息,则验证不通过。如此,区块链网络中的榜单数据任何修改都会在各个区块链节点中可查询验证,保证了游戏榜单数据的安全性,不被篡改。
下面,将说明本发明实施例在一个实际的应用场景中的示例性应用。
在一些实施例中,大部分游戏的榜单数据都是由开发商的服务器储存,参见图6,图6是本发明实施例存储游戏榜单的结构示意图,游戏客户端61通过游戏服务器62,将游戏客户端61产生的游戏数据中的榜单数据写入游戏榜单服务器601(即游戏开发商自主研发的服务器);游戏客户端61还可以从游戏榜单服务器601中读取游戏榜单数据;游戏客户端63和64通过游戏服务器65,将游戏客户端63和64产生的游戏数据中的榜单数据写入游戏榜单服务器601(即游戏开发商自主研发的服务器);游戏客户端63和64还可以从游戏榜单服务器601中读取游戏榜单数据。但是开发商本身的研发实力决定榜单数据的安全程度,游戏开发商自主研发的游戏榜单服务器601中偶尔也会出现某些游戏的榜单数据丢失以及被玩家发掘漏洞导致游戏榜单被篡改,这样以游戏榜单服务器601存储游戏榜单数据,不能很好的保证游戏榜单的安全、真实性以及不被篡改。一旦出现游戏榜单数据被篡改的情况,则会导致游戏的口碑败坏,直接影响到游戏生命期。而且游戏一旦火爆后势必会带来大批玩家的涌入,一些游戏工作室以及游戏公会的玩家也会加入进来,游戏榜单的价值对于玩家来说就会被不断放大,一旦有漏洞被游戏外挂工作者发现,就有可能导致游戏榜单数据被篡改,那么游戏榜单的不可篡改性就被打破了。另外随着游戏玩家的不断增多,会导致游戏服务器部署不断扩大。当单台游戏榜单服务器不能承载所有玩家的榜单需求时,增加游戏榜单服务器会降低各个服务器上榜单数据的一致性。
为解决上述问题,本发明实施例提供一种数据存储方法,将游戏玩家的某方面的能力数值写入区块链,由区块链来保证游戏榜单的真实性以及不可篡改性。
本发明实施例在游戏中发生有榜单数据写入时,将榜单数据写入到区块链中,然后当各个游戏服务器需要拉取榜单数据展示的时,统一从区块链网络中拉取。如图7所示,将游戏玩家71至77对应的游戏客户端产生的能够提升游戏能力值的榜单数据写入区块链中,最终为游戏玩家提供如图7所示的每一游戏玩家的战斗力值,即展示各个游戏玩家战斗力值的游戏榜单701。在游戏榜单701中,游戏玩家71的战斗力值为19000;游戏玩家72的战斗力值为18000;游戏玩家73的战斗力值为17000;游戏玩家74的战斗力值为16000;游戏玩家75的战斗力值为15000;游戏玩家76的战斗力值为14000和游戏玩家77的战斗力值为13000;这样既保证了游戏榜单数据的写入安全性,同时从区块链拉取榜单数据也会保证所有玩家看到的游戏榜单是一致的,同时区块链的去中心化特性又能保证游戏榜单的不可篡改性。同时有了基于区块链的游戏榜单设计方案,对游戏口碑有非常大的助力,延长游戏的生命期。
图8是本发明实施例数据存储方法的应用场景示意图,结合图8进行以下说明:
首先,游戏客户端81登录到游戏服务器82后,如果游戏客户端81需要更新榜单数据,则发起请求写入榜单数据的请求到区块链网络83中。游戏客户端84和85登录到游戏服务器86后,如果游戏客户端84和85需要更新榜单数据,则发起请求写入榜单数据的请求到区块链网络83中。
然后,在区块链网络83中的榜单数据任何修改都会在各个区块链节点中可查询验证,保证游戏榜单数据的安全性,不被篡改。
最后,当游戏客户端81、84或85需要展示游戏榜单数据时,向区块链网络83中发送拉取请求,各个游戏客户端从区块链网络83中拉取榜单数据;这样保证了各个游戏客户端从区块链网络中拉取的榜单数据的一致性。
图9是本发明实施例数据存储方法的实现流程示意图,结合图9进行以下说明:
步骤S901,游戏客户端A将在游戏界面上的任意操作产生的游戏数据,上报给游戏服务器A。
在一些实施例中,将游戏客户端A产生的游戏数据上报给游戏服务器A。游戏数据为游戏玩家在游戏客户端操控游戏的过程中产生的任一游戏数据。
步骤S902,游戏服务器A判断该游戏数据是否包含目标参数,以实现对该游戏数据的合法性的验证。
在一些实施例中,所述步骤S902可以理解为,游戏服务器A对游戏客户端A上报的游戏数据进行合法性的校验,如果该游戏数据通过游戏服务器A的校验后,更新游戏玩家A的对应于该游戏数据的数值。以对抗类游戏为例,游戏服务器A判断该游戏数据是否能够提升玩家战斗力。如果游戏服务器A确定该游戏数据能够提升玩家战斗力,向区块链网络发送用于更新游戏榜单的更新请求;并且将游戏客户端A产生的提升玩家战斗力的游戏数据,共享给该游戏的另一个游戏服务器B,以使游戏服务器B向游戏客户端B发送通知消息,以通知客户端B该游戏产生了新的交易。如果游戏服务器A确定该游戏数据不能够提升玩家战斗力,则自主保存该游戏数据。
步骤S903,响应于更新请求,区块链网络根据更新请求中携带的目标参数,更新游戏榜单,并向游戏服务器A返回已完成更新的信息。
在一些实施例中,区块链网络处理完游戏榜单更新数据后,各个区块链网络节点将游戏榜单同步更新为最新的游戏榜单。这样,各个区块链节点存储的游戏榜单保持一致,使得各个游戏玩家看到的游戏榜单是相同的。
步骤S904,游戏客户端B向游戏服务器B发送榜单获取请求。
步骤S905,响应于该榜单获取请求,游戏服务器B向区块链网络发送该榜单获取请求。
步骤S906,响应于该榜单获取请求,区块链网络向游戏服务器B返回更新后的游戏榜单。
步骤S907,游戏服务器B向游戏客户端B返回更新后的游戏榜单。
在一些实施例中,其他玩家的游戏客户端在各自服务器上均可以从区块链网络中拉取最新的游戏榜单。这样,所有的游戏榜单都能够被查看,并且不会被篡改,同时由于区块链的去中心化等特点,对游戏口碑有非常大的助益,对游戏发展起到正向反馈。
下面继续说明本发明实施例提供的数据存储装置455的实施为软件模块的示例性结构,在一些实施例中,如图2B所示,存储在存储器450的数据存储装置455中的软件模块可以包括:
第一获取模块4551,用于获取游戏客户端产生的游戏数据;
第一确定模块4552,用于确定所述游戏数据中包含的目标参数;其中,所述目标参数能够调整用户在游戏中所得分数;
第一更新模块4553,用于根据所述目标参数,对区块链网络中当前存储的游戏榜单进行更新。
在一些实施例中,第一确定模块4552,还用于:
确定所述游戏数据所属的游戏类型;
如果所述游戏数据中包含与所述游戏类型相匹配的目标数据,确定所述游戏数据中包含所述目标参数。
在一些实施例中,如果所述游戏类型为对抗性游戏,第一确定模块4552,还用于:确定所述目标参数为表征用户的游戏角色的战斗力值,从所述游戏数据中提取所述战斗力值;
如果所述游戏类型为非对抗性游戏,第一确定模块4552,还用于:确定所述目标参数为调整用户在所述游戏中的当前级别的过关值,从所述游戏数据中提取所述过关值。
在一些实施例中,第一更新模块4553,还用于:
向所述区块链网络请求当前存储的游戏榜单;
确定所述当前存储的游戏榜单中每一游戏账号的榜单数据;
基于所述目标参数和所述每一游戏账号的榜单数据,确定更新后的游戏榜单;
向所述区块链网络发送所述更新后的游戏榜单,以实现更新所述当前存储的游戏榜单。
在一些实施例中,第一更新模块4553,还用于:
生成携带有所述目标参数的更新请求;
将所述更新请求,发送给区块链网络,以使所述区块链网络根据所述目标参数更新当前存储的游戏榜单。
在一些实施例中,第一更新模块4553,还用于:
接收游戏客户端发送的榜单获取请求;
响应于所述榜单获取请求,从所述区块链网络中获取更新后的游戏榜单;
将所述更新后的游戏榜单反馈给所述游戏客户端,以使任一游戏客户端获取的游戏榜单相同。
在一些实施例中,第一更新模块4553,还用于:
将所述更新后的游戏榜单,保存在所述区块链网络中存储所述当前游戏榜单的节点中,并将所述更新后的游戏榜单共享给所述区块链中的其他节点。
在一些实施例中,第一更新模块4553,还用于:
接收游戏客户端发送的修改游戏榜单的修改请求;
响应于所述修改请求,采用所述区块链中的每一节点对所述修改请求进行验证;
如果所述修改请求通过至少M个节点的验证,根据所述修改请求,修改所述区块链中当前存储的游戏榜单;其中,M为大于等于数量阈值的整数。
本发明实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的方法,例如,如图3示出的方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件***中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本发明实施例对于存储在区块链网络中的游戏榜单进行更新的过程中,首先,获取游戏客户端产生的游戏数据;然后,确定所述游戏数据中包含的目标参数;其中,所述目标参数能够调整用户在游戏中所得分数;最后,根据所述目标参数,对区块链网络中当前存储的游戏榜单进行更新。这样,将游戏榜单存储在区块链网络中,在需要更新的时候,对区块链网络中的游戏榜单进行更新,保证了游戏榜单的安全、真实性以及不被篡改。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (7)
1.一种数据存储方法,其特征在于,包括:
获取游戏客户端产生的游戏数据;
确定所述游戏数据所属的游戏类型;
如果所述游戏数据中包含与所述游戏类型相匹配的目标数据,且所述游戏类型为对抗性游戏,则确定所述游戏数据中包含的目标参数为所述对抗性游戏中游戏角色的战斗力值,从所述游戏数据中提取所述战斗力值;
如果所述游戏数据中包含与所述游戏类型相匹配的目标数据,且所述游戏类型为非对抗性游戏,则确定所述目标参数为调整用户在所述非对抗性游戏中的当前级别的过关值,从所述游戏数据中提取所述过关值;其中,所述目标参数能够调整用户在游戏中所得分数;
向区块链网络请求当前存储的游戏榜单;确定所述当前存储的游戏榜单中每一游戏账号的榜单数据;基于所述目标参数和所述每一游戏账号的榜单数据,确定更新后的游戏榜单;向所述区块链网络发送所述更新后的游戏榜单,以实现更新所述当前存储的游戏榜单。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标参数,对区块链网络中当前存储的游戏榜单进行更新,包括:
生成携带有所述目标参数的更新请求;
将所述更新请求,发送给所述区块链网络,以使所述区块链网络根据所述目标参数更新当前存储的游戏榜单。
3.根据权利要求2所述的方法,其特征在于,在将所述更新请求,发送给所述区块链网络,以使所述区块链网络根据所述目标参数更新当前存储的游戏榜单之后,所述方法还包括:
接收游戏客户端发送的榜单获取请求;
响应于所述榜单获取请求,从所述区块链网络中获取更新后的游戏榜单;
将所述更新后的游戏榜单反馈给所述游戏客户端,以使任一游戏客户端获取的游戏榜单相同。
4.根据权利要求1所述的方法,其特征在于,在向所述区块链网络发送所述更新后的游戏榜单,以实现更新所述当前存储的游戏榜单之后,所述方法还包括:
将更新后的游戏榜单,保存在所述区块链网络中存储当前游戏榜单的节点中,并将所述更新后的游戏榜单共享给所述区块链中的其他节点。
5.一种数据存储装置,其特征在于,包括:
第一获取模块,用于获取游戏客户端产生的游戏数据;
第一确定模块,用于确定所述游戏数据所属的游戏类型;如果所述游戏数据中包含与所述游戏类型相匹配的目标数据,且所述游戏类型为对抗性游戏,则确定所述游戏数据中包含的目标参数为所述对抗性游戏中游戏角色的战斗力值,从所述游戏数据中提取所述战斗力值;如果所述游戏数据中包含与所述游戏类型相匹配的目标数据,且所述游戏类型为非对抗性游戏,则确定所述目标参数为调整用户在所述非对抗性游戏中的当前级别的过关值,从所述游戏数据中提取所述过关值;其中,所述目标参数能够调整用户在游戏中所得分数;
第一更新模块,用于向区块链网络请求当前存储的游戏榜单;确定所述当前存储的游戏榜单中每一游戏账号的榜单数据;基于所述目标参数和所述每一游戏账号的榜单数据,确定更新后的游戏榜单;向所述区块链网络发送所述更新后的游戏榜单,以实现更新所述当前存储的游戏榜单。
6.一种数据存储的设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至4任一项所述的方法。
7.一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910934209.8A CN110598481B (zh) | 2019-09-29 | 数据存储方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910934209.8A CN110598481B (zh) | 2019-09-29 | 数据存储方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110598481A CN110598481A (zh) | 2019-12-20 |
CN110598481B true CN110598481B (zh) | 2024-06-28 |
Family
ID=
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109481936A (zh) * | 2018-10-26 | 2019-03-19 | 咪咕文化科技有限公司 | 一种区块链记账节点选择方法、装置及计算机可读存储介质 |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109481936A (zh) * | 2018-10-26 | 2019-03-19 | 咪咕文化科技有限公司 | 一种区块链记账节点选择方法、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200259843A1 (en) | Verifiable outsourced ledgers | |
US10678597B2 (en) | Event-driven blockchain workflow processing | |
WO2018177124A1 (zh) | 业务处理方法、装置、数据共享***及存储介质 | |
JP7350845B2 (ja) | ブロックチェーン・リソースを格納するブロックチェーン通知ボード | |
US11693840B2 (en) | Database storing authenticated skill-based attributes | |
JP2022529967A (ja) | ブロックチェーン・ネットワークからのデータの抽出 | |
TWI706284B (zh) | 用於智慧合約的軟體介面 | |
US20230090296A1 (en) | Transaction verification of a transaction based on a blockchain network | |
CN111177246B (zh) | 一种业务数据的处理方法及装置 | |
CN112075062A (zh) | 区块链网络中的自动提交交易管理 | |
CN110544042B (zh) | 基于区块链网络的图书管理方法及装置 | |
CN110674128A (zh) | 区块链的链上治理 | |
CN111338608B (zh) | 分布式应用开发方法、装置、节点设备及可读存储介质 | |
US20170134364A1 (en) | Note update method and device | |
CN112714158A (zh) | 事务处理方法、中继网络、跨链网关、***、介质和设备 | |
JP2022539283A (ja) | ブロックチェーンとは異なる形式のストレージに格納されるブロックチェーンデータを検証する方法およびシステム | |
JP2023544518A (ja) | オペレーティングシステムを公開するためのブロックチェーンベースのシステムおよび方法 | |
CN115114372A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN111178896B (zh) | 乘车支付方法、装置及存储介质 | |
CN112925589B (zh) | 扩展接口的调用方法及装置 | |
CN111597537B (zh) | 基于区块链网络的证书签发方法、相关设备及介质 | |
CN112995014B (zh) | 消息群发的方法及装置 | |
CN110598481B (zh) | 数据存储方法、装置、设备及存储介质 | |
JP7327384B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN111937013A (zh) | 电子设备管理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |