700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 投票数据的更新系统 方法 装置 设备及可读存储介质与流程

投票数据的更新系统 方法 装置 设备及可读存储介质与流程

时间:2018-06-08 19:14:25

相关推荐

投票数据的更新系统 方法 装置 设备及可读存储介质与流程

本申请涉及计算机网络领域,特别涉及一种投票数据的更新方法、装置、设备及可读存储介质。

背景技术:

投票机制是一种在至少两个候选帐号之间通过累计票数进行选择的机制,通常,在投票机制中存在候选帐号和投票帐号两种参与方,其中,投票帐号拥有预设次数以内的投票机会,投票帐号每次投票机会可以向候选帐号增加一次票数的累计。

相关技术中,通过设置投票服务器对投票数据进行统计,该投票服务器中存储有每个候选帐号被投票的次数,并当该投票服务器接收到投票帐号发送的向目标候选帐号投票的请求时,根据该请求增加目标候选帐号的票数。

然而,通过上述方式进行票数统计的过程中,无法避免投票服务器被攻击而造成的投票结果被恶意篡改的情况。

技术实现要素:

本申请实施例提供了一种投票数据的更新方法、装置、设备及可读存储介质,可以解决相关技术中无法避免投票服务器被攻击而造成的投票结果被恶意篡改的情况的问题。所述技术方案如下:

一方面,提供了一种投票数据的更新系统,所述系统包括第一客户端和区块链系统;

所述第一客户端,用于向所述区块链系统发送投票数据更新请求,所述第一客户端中登录有第一帐号;

所述区块链系统,用于接收所述第一客户端发送的投票数据更新请求,所述投票数据更新请求中包括目标候选帐号的帐号标识,所述目标候选帐号为所述第一帐号的投票对象;根据所述投票数据更新请求生成目标区块;通过至少两个区块链节点对所述目标区块进行验证;当所述区块链系统中对所述目标区块认同的区块链节点数大于要求节点数时,对所述目标候选帐号的投票数据进行对应的计数增加;生成更新完成信号,并根据所述更新完成信号向所述第一客户端反馈投票成功消息;

所述第一客户端,用于接收所述投票成功消息。

另一方面,提供了一种投票数据的更新方法,应用于区块链系统中的任一节点,所述方法包括:

接收第一帐号发送的投票数据更新请求,所述投票数据更新请求中包括目标候选帐号的帐号标识,所述目标候选帐号为所述第一帐号的投票对象;

根据所述投票数据更新请求生成目标区块;

通过至少两个区块链节点对所述目标区块进行验证;

当所述至少两个区块链节点中对所述目标区块认同的区块链节点数大于要求节点数时,对所述目标候选帐号的投票数据进行对应的计数增加;

生成更新完成信号,所述更新完成信号用于指示向所述第一帐号反馈投票成功消息。

另一方面,提供了一种投票数据的更新装置,应用于区块链系统中的任一节点,所述装置包括:

接收模块,用于接收第一帐号发送的投票数据更新请求,所述投票数据更新请求中包括目标候选帐号的帐号标识,所述目标候选帐号为所述第一帐号的投票对象;

生成模块,用于根据所述投票数据更新请求生成目标区块;

验证模块,用于通过至少两个区块链节点对所述目标区块进行验证;

计数模块,用于当所述至少两个区块链节点中对所述目标区块认同的区块链节点数大于要求节点数时,对所述目标候选帐号的投票数据进行对应的计数增加;

所述生成模块,还用于生成更新完成信号,所述更新完成信号用于指示向所述第一帐号反馈投票成功消息。

另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一端程序、所述代码集或所述指令集由所述处理器加载并执行以实现如上所述的投票数据的更新方法。

另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行,以实现如上所述的投票数据的更新方法。

另一方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行如上述本申请实施例中提供的投票数据的更新方法。

本申请实施例提供的技术方案带来的有益效果至少包括:

通过区块链系统对该投票数据更新请求对应的目标候选帐号进行投票数据的计数增加,由于投票数据存储在区块链上,使得在投票的过程中,信息公开化且不易被篡改,避免投票数据存储在服务器上,而服务器易被攻击,投票数据易被篡改的问题。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个示例性实施例提供的分布式系统应用于区块链系统的结构框图;

图2是本申请一个示例性实施例提供的区块结构的示意图;

图3是本申请一个示例性实施例提供的实施环境框图;

图4是本申请一个示例性实施例提供的相关技术中提供投票服务的投票系统的结构框图;

图5是本申请一个示例性实施例提供的提供投票服务的投票系统的结构框图;

图6是本申请一个示例性实施例提供的投票数据的更新方法的流程图;

图7是本申请另一个示例性实施例提供的投票数据的更新方法的流程图;

图8是基于图7示出的实施例提供的投票功能区域的界面示意图;

图9是本申请另一个示例性实施例提供的投票数据的更新方法的流程图;

图10是基于图9示出的实施例提供的投票结果展示界面的示意图;

图11是本申请另一个示例性实施例提供的投票数据的更新方法的流程图;

图12是本申请一个示例性实施例提供的投票数据的更新装置的结构框图;

图13是本申请另一个示例性实施例提供的投票数据的更新装置的结构框图;

图14是本申请一个示例性实施例提供的服务器的结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

首先,对本申请实施例中涉及的名词进行介绍:

区块链(blockchain):是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。

区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。

平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。

区块链可以分为私有链、联盟链和公有链;其中,联盟链也称共同体区块链(consortiumblockchains),是指其共识过程受到预选节点控制的区块链。在联盟链中,只针对链内的节点成员开放全部或部分功能,联盟链中的各个区块链节点可以基于需要定制读写权限、查询权限等。

共识机制(consensusmechanism):是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。在区块链系统中,通过特殊节点的投票,可以在很短的时间内完成对交易的验证和确认,对一笔交易,如果利益不相干的若干个节点能够达成共识,就可以认为系统中的全部节点对此也能够达成共识。

智能合约:是指根据特定条件自动执行的合约程序,是用户与区块链进行交互,利用区块链实现业务逻辑的重要途径。智能合约的基本思想是各种各样的合约条款可以嵌入到我们使用的硬件和软件中,从而使得攻击者需要很大的代价去攻击,智能合约通过多方用户共同参与定制利用对等型网络(peertopeer,p2p)扩散并存入区块链,区块链构建的智能合约在触发条件下自动执行。例如,各家机构可以通过服务器中部署的区块链上的智能合约接入该数据存储系统,来使用该数据存储系统提供的数据存储以及数据查询等功能。智能合约本质是一套以数字形式定义、传播、验证或执行的约定,包括合约参与方可以在智能合约中执行约定,智能合约还允许在没有第三方的情况下进行可信交易,并且该交易可追踪不可逆转。比如,本申请提供的投票数据的更新方法是按照投票智能合约执行的,按照投票智能合约向被投票的对象进行票数的计数增加,被投票的对象根据投票智能合约获取相应的票数。

本申请实施例涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。

以分布式系统为区块链系统为例,参见图1,图1是本申请一个示例性实施例提供的分布式系统100应用于区块链系统的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端形成,节点之间形成组成的点对点(p2p)网络,p2p协议是一个运行在传输控制协议(tcp,transmissioncontrolprotocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。

参见图1示出的区块链系统中各节点的功能,涉及的功能包括:

1)路由,节点具有的基本功能,用于支持节点之间的通信。

节点除具有路由功能外,还可以具有以下功能:

2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。

例如,应用实现的业务包括:

2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易,即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;钱包还支持查询电子货币地址中剩余的电子货币。比如,将要增加的激励对象的信息发送至区块链系统中,区块链系统中其他节点对该起交易(即在区块链中增加激励对象的信息)进行验证,其他节点验证成功后,该起交易才能被存储至区块链中。

2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。

2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。比如,激励对象在满足特定的条件时,将触发智能合约按照合约的规定执行激励机制,如向激励对象发放相应的收益或分红等。

3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。本申请中的区块链是投票区块链,比如,投票过程中,每个投票对象的投票数据记录在区块链中。

参见图2,图2是本申请一个示例性实施例提供的区块结构(blockstructure)的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。

图3示出了本申请一个示例性实施例提供的区块链系统的结构示意图。该系统包括多个服务器101、多个存储设备102,其中,多个服务器101可以配置有同一条区块链,也即该多个服务器101可以组成区块链系统,各个服务器101分别为该区块链系统中的节点。可选地,区块链系统中的节点包括主记账节点和其他节点,区块链系统中的任一节点都可成为主记账节点。该多个服务器101可以是同一机构的多个服务器,还可以是属于不同机构的多个服务器,例如,该区块链系统内可以包括医院的各个科室的服务器;该区块链系统内可以包括公司的各个部门的服务器,当然,该区块链系统内还可以包括证券交易所的服务器、银行的服务器等等。各个机构的用户可以通过终端1011来访问机构的服务器,该多个终端设备1011可以为能够访问该多个服务器101的电子设备,该电子设备可以为电脑、智能手机、平板电脑或者其他电子设备。

当然,为了进行安全验证、权限管理等服务,区块链系统中配置有ca中心(certificateauthority,证书授权中心)103,用于存储各个机构的密钥,区块链系统中的各个服务器可以从ca中心中获取各个机构的密钥,如任一节点的公钥,以进行数据的加密和解密等过程。多个存储设备102用于为该多个服务器101提供存储服务,需要说明的是,该多个存储设备102可以组成分布式存储系统,用于采用分布式的形式来对提供存储数据。

相关技术中,在进行在线投票的过程中,以玩家在游戏客户端中通过游戏服务器进行投票为例进行说明,请参考图4,投票过程中,客户端411向游戏服务器421发送投票请求后,游戏服务器421将投票数据写入投票服务器430,而客户端412和客户端413在查看投票结果的过程中,向游戏服务器422发送查询请求,游戏服务器422从投票服务器430中拉取投票数据,并根据投票数据生成投票结果发送至客户端412和客户端413。

通过上述方式进行投票的过程中,投票结果由投票服务器430单方面进行控制,当投票服务器430被攻击时,无法确保投票结果不被篡改,导致投票结果的真实性较低。

本申请实施例中,如图5所示,在进行在线投票的过程中,客户端511向游戏服务器521发送投票请求后,游戏服务器521将投票数据写入区块链系统530,而客户端512和客户端513在查看投票结果的过程中,向游戏服务器522发送查询请求,游戏服务器522从区块链系统530中拉取投票数据,并根据投票数据生成投票结果发送至客户端512和客户端513。

由区块链系统530保证投票数据不被篡改,保障了投票结果的真实性。

结合上述说明,图6是本申请一个示例性实施例提供的投票数据的更新方法的流程图,以该方法应用于包括第一客户端和区块链系统的投票数据的更新系统中为例进行说明,如图6所示,该方法包括:

步骤601,第一客户端向区块链系统发送投票数据更新请求,该第一客户端中登录有第一帐号。

可选地,第一客户端的客户端界面中包括投票功能区域,当接收在该投票功能区域中的投票操作时,该第一客户端向区块链系统发送投票数据更新请求。

可选地,该第一客户端中登录有第一帐号,该第一客户端接收到的投票操作为该第一帐号向目标候选帐号进行投票的操作,可选地,该投票操作可以是该第一帐号向目标候选帐号进行单票投票的操作,也可以是第一帐号向目标候选帐号进行多票投票的操作。

可选地,当该投票功能区域单次仅能进行单票投票时,该投票数据更新请求可以默认为对目标候选帐号进行单票投票的请求;当该投票功能区域单次可以对至少一票进行投票时,该投票数据更新请求中还包括该第一帐号的投票次数。

示意性的,该投票数据更新请求中包括“00001,00002,01”,其中,00001为第一帐号的帐号标识,00002为目标候选帐号的帐号表示,01为第一帐号向目标候选帐号投票的投票次数。

步骤602,区块链系统接收第一客户端发送的投票数据更新请求,该投票数据更新请求中包括目标候选帐号的帐号标识,该目标候选帐号为第一帐号的投票对象。

可选地,该投票数据更新请求用于指示区块链系统对该目标候选帐号的投票数据进行更新。

可选地,以该第一客户端为游戏客户端为例进行说明,该游戏客户端中包括多个游戏分区,多个游戏分区之间的游戏独立进行,也即多个游戏分区通过不同的服务器进行控制,可选地,该区块链系统中包括与该多个游戏分区分别对应的节点,则该参与该投票的候选帐号可以是多个游戏分区中的帐号,且不同游戏分区中的帐号所进行的投票是同一个投票事件中的投票。

步骤603,区块链系统根据投票数据更新请求通过共识机制,对目标候选帐号的投票数据进行对应的计数增加。

可选地,区块链系统根据投票数据更新请求生成目标区块,并通过至少两个区块链节点对目标区块进行验证,当区块链系统中对目标区块认同的区块链节点数大于要求节点数时,对目标候选帐号的投票数据进行对应的计数增加。

可选地,区块链系统获取目标候选帐号在区块链系统中对应存储的历史区块,该历史区块中包括目标候选帐号的已有票数,根据投票数据更新请求和已有票数生成更新后票数,根据更新后票数生成上述目标区块,通过至少两个区块链节点对目标区块进行验证,当区块链系统中对目标区块认同的区块链节点数大于要求节点数时,将该目标区块存储至区块链系统中的区块链节点上。

可选地,该区块链系统通过其中一个节点接收投票数据更新请求后,将该投票数据更新请求发送至至少两个区块链节点中,并通过该至少两个区块链节点对该目标区块进行验证。

可选地,该至少两个区块链节点的每个区块链节点中存储有智能合约,在对目标区块进行验证时,通过该至少两个区块链节点中每个区块链节点中的智能合约对该目标区块进行验证。

区块链系统中的任一节点接收该投票数据更新请求,向其他节点广播,广播内容为将该投票数据更新请求对应的投票数据存储至区块链中,其他节点对该投票数据更新请求进行验证,验证该信息的真实性和合法性,在其他节点验证通过时,区块链系统将该投票数据更新请求对应的投票数据存储至区块链中。

区块链在接收到投票数据更新请求时,对投票数据进行校验,完成校验后,将投票数据存储至内存池中,并更新其用于记录投票数据的哈希树;然后将更新时间戳更新为接收到投票数据更新请求的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足以下公式:

sha256(sha256(version+prev_hash+merkle_root+ntime+nbits+x))<target

其中,sha256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前区块的计算难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;target为特征值阈值,该特征值阈值可以根据nbits确定得到。

当计算得到满足上述公式的随机数时,便可将投票数据对应存储,生成区块头和区块主题,得到当前区块,随后,区块链系统中的其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。

步骤604,区块链系统生成更新完成信号,并根据更新完成信号向第一客户端反馈投票成功消息。

可选地,区块链系统中的每个节点对该目标候选帐号的投票数据进行对应的计数更新后,生成更新完成信号,并根据该更新完成信号向第一客户端发送投票成功消息。

综上所述,本实施例提供的投票数据的更新方法,通过区块链系统对该投票数据更新请求对应的目标候选帐号进行投票数据的计数增加,由于投票数据存储在区块链上,使得在投票的过程中,信息公开化且不易被篡改,避免投票数据存储在服务器上,而服务器易被攻击,投票数据易被篡改的问题。

在一个可选的实施例中,上述投票系统中还包括投票服务器,上述投票数据更新请求为投票服务器根据接收到的投票请求向区块链系统发送的,图7是本申请另一个示例性实施例提供的投票数据的更新方法的流程图,以该方法应用于投票系统中为例进行说明,如图7所示,该方法包括:

步骤701,第一客户端向投票服务器发送投票请求,该投票请求中包括第一帐号的帐号标识、目标候选帐号的帐号标识以及第一帐号对目标候选帐号进行投票的投票次数。

可选地,该投票服务器可以实现为区块链系统中的一个节点,也可以实现为一个单独的服务器。

可选地,第一客户端的客户端界面中包括投票功能区域,当接收在该投票功能区域中的投票操作时,该第一客户端向投票服务器发送投票请求。

可选地,该第一客户端中登录有第一帐号,该第一客户端接收到的投票操作为该第一帐号向目标候选帐号进行投票的操作,可选地,该投票操作可以是该第一帐号向目标候选帐号进行单票投票的操作,也可以是第一帐号向目标候选帐号进行多票投票的操作。可选地,该投票请求中包括第一帐号对目标候选帐号进行投票的投票次数。

可选地,上述目标候选帐号可以是参与投票的一个候选帐号,也可以是参与投票的多个候选帐号,本申请实施例对此不加以限定。

可选地,当上述目标候选帐号为参与投票的多个候选帐号时,该第一帐号单次对多个候选帐号进行投票。

示意性的,第一帐号在投票功能区域中对目标候选帐号进行投票时,该投票功能区域中显示有投票次数选择区域,用户在该投票次数选择区域中对投票次数进行选择,请参考图8,在第一客户端的客户端界面800中包括投票功能区域810,该投票功能区域810用于对候选帐号进行投票,其中包括候选帐号821、候选帐号822以及候选帐号823,以候选帐号821为例进行说明,在该候选帐号821对应的投票项中还显示有投票次数选择区域830,该投票次数选择区域830用于对向候选帐号821进行投票的票数进行设置,如图8所示,向候选帐号821进行投票的票数当前设置为3票,当接收到在确认控件840上的选择操作时,第一客户端向投票服务器发送投票请求,该投票请求中包括第一帐号对候选帐号821进行投票的投票次数3。

步骤702,当第一帐号的投票剩余次数达到投票次数时,投票服务器根据投票请求向区块链系统发送投票数据更新请求。

可选地,该投票服务器中存储有第一帐号的剩余投票次数,该投票剩余次数用于对第一帐号向目标候选帐号进行投票的投票次数进行验证,当剩余投票次数达到第一帐号向目标候选帐号进行投票的投票次数时,则验证通过,该第一帐号能够向目标候选帐号进行投票,当剩余投票次数小于第一帐号向目标候选帐号进行投票的投票次数时,则表示该第一帐号的投票道具不足,无法向目标候选帐号进行上述投票次数的投票。

可选地,当投票服务器对第一帐号的投票次数验证通过时,根据该投票请求向区块链系统发送投票数据更新请求,该投票数据更新请求用于对目标候选帐号的投票数据进行更新。

步骤703,区块链系统接收投票数据更新请求。

可选地,该投票数据更新请求中包括目标候选帐号的帐号标识,以及对目标候选帐号的投票数据进行更新的投票次数。

步骤704,区块链系统根据投票数据更新请求对目标候选帐号的投票数据进行对应的计数增加。

可选地,该区块链系统根据投票数据更新请求通过共识机制,对目标候选帐号的投票数据对应增加与投票次数对应的数量。

示意性的,目标候选帐号0002在区块链系统中存储的投票数据为25,当区块链系统接收到投票数据更新请求“0002,15”时,则表示该投票数据更新请求用于对目标候选帐号0002的投票数据增加15,则区块链系统接收到该投票数据更新请求,并对该投票数据更新请求进行验证通过后,将目标候选帐号0002的投票数据更新为40。

可选地,该投票数据的更新过程请参考如上步骤603,此处不再赘述。

步骤705,区块链系统生成更新完成信号,并根据更新完成信号向第一客户端反馈投票成功消息。

可选地,区块链系统中的每个节点对该目标候选帐号的投票数据进行对应的计数更新后,生成更新完成信号,并根据该更新完成信号向第一客户端发送投票成功消息。

可选地,区块链系统生成更新完成信号后,将该更新完成信号发送至投票服务器,该投票服务器根据该更新完成信号向第一客户端发送投票成功消息。

综上所述,本实施例提供的投票数据的更新方法,通过区块链系统对该投票数据更新请求对应的目标候选帐号进行投票数据的计数增加,由于投票数据存储在区块链上,使得在投票的过程中,信息公开化且不易被篡改,避免投票数据存储在服务器上,而服务器易被攻击,投票数据易被篡改的问题。

本实施例提供的方法,通过投票服务器对该第一帐号向目标候选帐号进行投票的投票次数进行验证,并当第一帐号的剩余投票次数达到向目标候选帐号进行投票的投票次数时验证通过,避免投票过程中剩余投票次数不足而能够实现投票的问题。

在一个可选的实施例中,上述投票系统中还包括第二客户端,该第二客户端用于对投票结果进行查看,可选地,该第二客户端和第一客户端可以实现为同一个客户端,也可以实现为两个不同的客户端。图9是本申请另一个示例性实施例提供的投票数据的更新方法的流程图,以该方法应用于投票系统中为例进行说明,如图9所示,该方法包括:

步骤901,第二客户端向投票服务器发送查询请求,该查询请求用于请求对投票结果进行查看。

可选地,该投票服务器可以实现为上述图7示出的实施例中的投票服务器,也可以实现为一个单独的服务器,可选地,该投票服务器实现为一个独立于区块链系统的服务器。

可选地,该查询请求可以是针对单个候选帐号的投票结果进行查看的请求,也可以是针对多个候选帐号的投票结果进行查看的请求,还可以是针对参与投票的所有候选帐号的投票结果进行查看的请求,本申请实施例对此不加以限定。

可选地,该查询请求可以是用于对当前投票结果进行查看的请求,也可以是用于对历史投票结果进行查看的请求,如:当前时间为10月10日,该查询请求用于对截止至10月8日为止的投票结果进行查看。

步骤902,投票服务器根据查询请求向区块链系统发送投票结果查看请求。

可选地,当该投票结果查看请求用与请求对指定候选帐号的投票结果进行查看时,该投票结果查看请求中包括该指定候选帐号的帐号标识;当该投票结果查看请求中未包括指定候选帐号的帐号标识时,该投票结果查看请求默认对所有候选帐号的投票结果进行查看。

可选地,当该投票结果查看请求用于请求对历史投票结果进行查看时,该投票结果查看请求中包括投票结果截选时刻;当该投票结果查看请求中未包括该投票结果截选时刻时,该投票结果查看请求默认对当前投票结果进行查看。

可选地,当该投票结果查看请求中包括投票结果截选时刻时,区块链系统中的节点根据该投票结果截选时刻以及已存储的区块的时间戳,选取在该投票结果截选时刻之前的时间戳对应区块的投票数据。

步骤903,区块链系统根据投票结果查看请求,向投票服务器反馈投票数据。

可选地,当该投票结果查看请求用于请求对指定候选帐号的投票结果进行查看时,区块链系统向投票服务器反馈该指定候选帐号的投票数据;当该投票结果查看请求用于请求对所有候选帐号的投票结果进行查看时,区块链系统向投票服务器反馈所有候选帐号的投票数据。

可选地,当该投票结果查看请求中包括投票结果截选时刻时,区块链系统中的节点根据该投票结果截选时刻以及已存储的区块的时间戳,选取在该投票结果截选时刻之前的时间戳对应区块的投票数据并发送至投票服务器;当该投票结果查看请求中不包括投票结果截选时刻时,区块链系统中的节点将当前投票数据发送至投票服务器。

步骤904,投票服务器根据投票数据生成投票结果发送至第二客户端。

可选地,第二客户端对该投票结果进行展示。示意性的,请参考图10,区块链系统将玩家a、玩家b、玩家c以及玩家d的投票数据发送至投票服务器,投票服务器根据投票数据将上述四个玩家的投票结果发送至第二客户端展示,在第二客户端的客户端界面1010中显示有投票结果展示区域1020,该投票结果展示区域1020中展示有玩家a获得的票数666票、玩家b获得的票数99票、玩家c获得的票数50票以及玩家d获得的票数1票,可选地,投票服务器根据候选帐号的投票数据对候选帐号按照投票数据的进行按序排列,并将排列后的投票结果发送至第二客户端进行展示。

综上所述,本实施例提供的投票数据的更新方法,通过区块链系统对该投票数据更新请求对应的目标候选帐号进行投票数据的计数增加,由于投票数据存储在区块链上,使得在投票的过程中,信息公开化且不易被篡改,避免投票数据存储在服务器上,而服务器易被攻击,投票数据易被篡改的问题。

本实施例提供的方法,当投票结果查看请求中包括投票结果截选时刻时,根据区块链系统中存储的区块的时间戳对该投票结果截止时刻之前的投票数据进行获取,并将投票数据发送至投票服务器生成投票结果,从而实现了对历史投票结果进行查询的功能。

图11是本申请另一个示例性实施例提供的投票数据的更新方法的流程图,以该方法应用于游戏投票系统中为例进行说明,如图11所示,该方法包括:

步骤1101,第一客户端向第一游戏服务器发送投票请求。

可选地,该第一客户端中登录有第一帐号,该投票请求为第一帐号向目标候选帐号进行投票时生成的投票请求,该投票请求中还包括第一帐号向目标候选帐号进行投票的投票次数。

步骤1102,第一游戏服务器扣除第一帐号使用的投票道具。

可选地,第一服务器根据上述投票请求中第一帐号向目标候选帐号进行投票的投票次数对应扣除第一帐号与该投票次数一致的投票道具。

可选地,该第一游戏服务器中存储有第一帐号的剩余道具数量,当该剩余道具数量达到投票次数,也即该剩余道具数量能够实现扣除时,则第一游戏服务器扣除第一帐号的投票道具,否则,第一游戏服务器向第一客户端反馈投票失败消息。

步骤1103,第一游戏服务器向区块链系统发送投票结果更新请求。

可选地,该投票结果更新请求用于请求在区块链系统中更新目标候选帐号的投票数据。

步骤1104,区块链系统更新投票结果。

可选地,区块链系统接收到投票结果更新请求后,生成区块并将该区块在区块链系统中进行验证,当验证通过时,根据该投票结果更新请求更新投票结果。

步骤1105,区块链系统向第一游戏服务器发送更新完成消息。

步骤1106,第一游戏服务器根据更新完成消息向第一客户端发送投票成功通知。

步骤1107,第二客户端向第二游戏服务器发送查询请求。

可选地,该查询请求用于对投票结果进行查询。可选地,该查询请求用于对指定候选帐号的投票结果进行查询,或,该查询请求用于对所有候选帐号的投票结果进行查询。

可选地,该查询请求用于对当前投票结果进行查询,或,该查询请求用于对历史投票结果进行查询。

步骤1108,第二游戏服务器从区块链系统拉取投票数据。

步骤1109,区块链系统向第二游戏服务器反馈投票数据。

步骤1110,第二游戏服务器向第二客户端反馈投票结果。

综上所述,本实施例提供的投票数据的更新方法,通过区块链系统对该投票数据更新请求对应的目标候选帐号进行投票数据的计数增加,由于投票数据存储在区块链上,使得在投票的过程中,信息公开化且不易被篡改,避免投票数据存储在服务器上,而服务器易被攻击,投票数据易被篡改的问题。

图12是本申请一个示例性实施例提供的投票数据的更新装置的结构框图,该装置可以应用于区块链系统中的任一节点内,如图12所示,该装置包括:

接收模块1210,用于接收第一帐号发送的投票数据更新请求,所述投票数据更新请求中包括目标候选帐号的帐号标识,所述目标候选帐号为所述第一帐号的投票对象;

生成模块1220,用于根据所述投票数据更新请求生成目标区块;

验证模块1230,用于通过至少两个区块链节点对所述目标区块进行验证;

计数模块1240,用于当所述至少两个区块链节点中对所述目标区块认同的区块链节点数大于要求节点数时,对所述目标候选帐号的投票数据进行对应的计数增加;

所述生成模块1220,还用于生成更新完成信号,所述更新完成信号用于指示向所述第一帐号反馈投票成功消息。

在一个可选的实施例中,生成模块1220,还用于获取所述目标候选帐号在所述区块链系统中对应存储的历史区块,所述历史区块中包括所述目标候选帐号的已有票数;根据所述投票数据更新请求和所述已有票数生成更新后票数;根据所述更新后票数生成所述目标区块。

在一个可选的实施例中,所述至少两个区块链节点的每个区块连接点中存储有智能合约;

所述验证模块1230,还用于通过所述至少两个区块链节点中每个区块链节点中的所述智能合约对所述目标区块进行验证。

在一个可选的实施例中,所述接收模块1210,还用于接收投票服务器发送的所述投票数据更新请求,所述投票数据更新请求是所述投票服务器根据接收到的所述第一帐号发送的投票请求生成的,所述投票请求中包括所述第一帐号对所述目标候选帐号进行投票的投票次数,所述投票服务器中存储有所述第一帐号的剩余投票次数,所述投票服务器用于根据所述剩余投票次数对所述投票次数进行验证。

在一个可选的实施例中,所述计数模块1240,还用于根据所述投票数据更新请求通过所述共识机制,对所述目标候选帐号的所述投票数据对应增加与所述投票次数对应的数量。

在一个可选的实施例中,所述接收模块1210,还用于接收所述投票服务器发送的投票结果查看请求,所述投票结果查看请求为所述投票服务器根据接收到的第二客户端发送的查询请求生成的;

如图13所示,所述装置还包括:

发送模块1250,用于根据所述投票结果查看请求向所述投票服务器反馈投票数据,所述投票服务器用于根据所述投票数据生成投票结果并将所述投票结果反馈至所述第二客户端。

在一个可选的实施例中,所述投票结果查看请求中包括投票结果截选时刻;

所述生成模块1220,还用于根据所述投票结果查看请求中的所述投票结果截选时刻,选取时间戳在所述投票结果截选时刻之前的区块的投票数据;

所述发送模块1250,还用于将所述投票数据反馈至所述投票服务器。

综上所述,本实施例提供的投票数据的更新装置,通过区块链系统对该投票数据更新请求对应的目标候选帐号进行投票数据的计数增加,由于投票数据存储在区块链上,使得在投票的过程中,信息公开化且不易被篡改,避免投票数据存储在服务器上,而服务器易被攻击,投票数据易被篡改的问题。

需要说明的是:上述实施例提供的投票数据的更新装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的投票数据的更新装置与投票数据的更新方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图14示出了本申请一个示例性实施例提供的服务器的结构示意图。该服务器可以是图3示出的服务器。具体来讲:

服务器1400包括中央处理单元(cpu,centralprocessingunit)1401、包括随机存取存储器(ram,randomaccessmemory)1402和只读存储器(rom,readonlymemory)1403的系统存储器1404,以及连接系统存储器1404和中央处理单元1401的系统总线1405。服务器1400还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(i/o系统,inputoutputsystem)1406,和用于存储操作系统1413、应用程序1414和其他程序模块1415的大容量存储设备1407。

基本输入/输出系统1406包括有用于显示信息的显示器1408和用于用户输入信息的诸如鼠标、键盘之类的输入设备1409。其中显示器1408和输入设备1409都通过连接到系统总线1405的输入输出控制器1410连接到中央处理单元1401。基本输入/输出系统1406还可以包括输入输出控制器1410以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1410还提供输出到显示屏、打印机或其他类型的输出设备。

大容量存储设备1407通过连接到系统总线1405的大容量存储控制器(未示出)连接到中央处理单元1401。大容量存储设备1407及其相关联的计算机可读介质为服务器1400提供非易失性存储。也就是说,大容量存储设备1407可以包括诸如硬盘或者紧凑型光盘只读存储器(cd-rom,compactdiscreadonlymemory)驱动器之类的计算机可读介质(未示出)。

不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、可擦除可编程只读存储器(eprom,erasableprogrammablereadonlymemory)、带电可擦可编程只读存储器(eeprom,electricallyerasableprogrammablereadonlymemory)、闪存或其他固态存储其技术,cd-rom、数字通用光盘(dvd,digitalversatiledisc)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1404和大容量存储设备1407可以统称为存储器。

根据本申请的各种实施例,服务器1400还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1400可以通过连接在系统总线1405上的网络接口单元1411连接到网络1412,或者说,也可以使用网络接口单元1411来连接到其他类型的网络或远程计算机系统(未示出)。

上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由cpu执行。

本申请的实施例还提供了一种计算机设备,该计算手机设备包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的投票数据的更新方法。

本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行,以实现上述各方法实施例提供的投票数据的更新方法。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

技术特征:

1.一种投票数据的更新系统,其特征在于,所述系统包括第一客户端和区块链系统;

所述第一客户端,用于向所述区块链系统发送投票数据更新请求,所述第一客户端中登录有第一帐号;

所述区块链系统,用于接收所述第一客户端发送的投票数据更新请求,所述投票数据更新请求中包括目标候选帐号的帐号标识,所述目标候选帐号为所述第一帐号的投票对象;根据所述投票数据更新请求生成目标区块;通过至少两个区块链节点对所述目标区块进行验证;当所述区块链系统中对所述目标区块认同的区块链节点数大于要求节点数时,对所述目标候选帐号的投票数据进行对应的计数增加;生成更新完成信号,并根据所述更新完成信号向所述第一客户端反馈投票成功消息;

所述第一客户端,用于接收所述投票成功消息。

2.根据权利要求1所述的系统,其特征在于,

所述区块链系统,用于获取所述目标候选帐号在所述区块链系统中对应存储的历史区块,所述历史区块中包括所述目标候选帐号的已有票数;根据所述投票数据更新请求和所述已有票数生成更新后票数;根据所述更新后票数生成所述目标区块;通过至少两个区块链节点对所述目标区块进行验证;当所述区块链系统中对所述目标区块认同的区块链节点数大于要求节点数时,将所述目标区块存储至所述区块链系统中的所述区块链节点上。

3.根据权利要求2所述的系统,其特征在于,所述至少两个区块链节点的每个区块链节点中存储有智能合约;

所述区块链系统,用于通过所述至少两个区块链节点中每个区块链节点中的所述智能合约对所述目标区块进行验证。

4.根据权利要求1至3任一所述的系统,其特征在于,所述投票数据的更新系统中还包括:投票服务器;

所述第一客户端,用于向所述投票服务器发送投票请求,所述投票请求中包括所述第一帐号的帐号标识、所述目标候选帐号的帐号标识和所述第一帐号对所述目标候选帐号进行投票的投票次数,所述投票服务器中存储有所述第一帐号的剩余投票次数;

当所述第一帐号的所述投票剩余次数达到所述投票次数时,所述投票服务器根据所述投票请求向所述区块链系统发送所述投票数据更新请求。

5.根据权利要求4所述的系统,其特征在于,

所述区块链系统,用于根据所述投票数据更新请求通过所述共识机制,对所述目标候选帐号的所述投票数据对应增加与所述投票次数对应的数量。

6.根据权利要求4所述的系统,其特征在于,所述投票系统中还包括:第二客户端;

所述第二客户端,用于向所述投票服务器发送查询请求,所述查询请求用于请求对投票结果进行查看;

所述投票服务器,用于根据所述查询请求向所述区块链系统发送投票结果查看请求;

所述区块链系统,用于根据所述投票结果查看请求,向所述投票服务器反馈投票数据;

所述投票服务器,用于根据所述投票数据生成所述投票结果发送至所述第二客户端。

7.根据权利要求6所述的系统,其特征在于,所述投票结果查看请求中包括投票结果截选时刻;

所述区块链系统,用于根据所述投票结果查看请求中的所述投票结果截选时刻,选取时间戳在所述投票结果截选时刻之前的区块的投票数据;将所述投票数据反馈至所述投票服务器。

8.一种投票数据的更新方法,其特征在于,应用于区块链系统中的任一节点,所述方法包括:

接收第一帐号发送的投票数据更新请求,所述投票数据更新请求中包括目标候选帐号的帐号标识,所述目标候选帐号为所述第一帐号的投票对象;

根据所述投票数据更新请求生成目标区块;

通过至少两个区块链节点对所述目标区块进行验证;

当所述至少两个区块链节点中对所述目标区块认同的区块链节点数大于要求节点数时,对所述目标候选帐号的投票数据进行对应的计数增加;

生成更新完成信号,所述更新完成信号用于指示向所述第一帐号反馈投票成功消息。

9.根据权利要求8所述的方法,其特征在于,所述根据所述投票数据更新请求生成目标区块,包括:

获取所述目标候选帐号在所述区块链系统中对应存储的历史区块,所述历史区块中包括所述目标候选帐号的已有票数;

根据所述投票数据更新请求和所述已有票数生成更新后票数;

根据所述更新后票数生成所述目标区块。

10.根据权利要求9所述的方法,其特征在于,所述至少两个区块链节点的每个区块连接点中存储有智能合约;

所述通过至少两个区块链节点对所述目标区块进行验证,包括:

通过所述至少两个区块链节点中每个区块链节点中的所述智能合约对所述目标区块进行验证。

11.一种投票数据的更新装置,其特征在于,应用于区块链系统中的任一节点,所述装置包括:

接收模块,用于接收第一帐号发送的投票数据更新请求,所述投票数据更新请求中包括目标候选帐号的帐号标识,所述目标候选帐号为所述第一帐号的投票对象;

生成模块,用于根据所述投票数据更新请求生成目标区块;

验证模块,用于通过至少两个区块链节点对所述目标区块进行验证;

计数模块,用于当所述至少两个区块链节点中对所述目标区块认同的区块链节点数大于要求节点数时,对所述目标候选帐号的投票数据进行对应的计数增加;

所述生成模块,还用于生成更新完成信号,所述更新完成信号用于指示向所述第一帐号反馈投票成功消息。

12.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一端程序、所述代码集或所述指令集由所述处理器加载并执行以实现如权利要求8至10任一项所述的投票数据的更新方法。

13.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行,以实现如权利要求8至10任一项所述的投票数据的更新方法。

技术总结

本申请公开了一种投票数据的更新系统、方法、装置、设备及可读存储介质,涉及计算机网络领域。该系统包括第一客户端和区块链系统;第一客户端,用于向区块链系统发送投票数据更新请求;区块链系统,用于接收投票数据更新请求,投票数据更新请求中包括目标候选帐号的帐号标识,目标候选帐号为第一帐号的投票对象;根据投票数据更新请求通过共识机制对目标候选帐号的投票数据进行对应的计数增加。通过区块链系统对该投票数据更新请求对应的目标候选帐号进行投票数据的计数增加,由于投票数据存储在区块链上,使得在投票的过程中,信息公开化且不易被篡改,避免投票数据存储在服务器上,而服务器易被攻击,投票数据易被篡改的问题。

技术研发人员:钟绍威

受保护的技术使用者:腾讯科技(深圳)有限公司

技术研发日:.10.15

技术公布日:.01.31

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。