CN110601819B - 一种对随机数的处理方法、区块链节点装置及存储介质 - Google Patents
一种对随机数的处理方法、区块链节点装置及存储介质 Download PDFInfo
- Publication number
- CN110601819B CN110601819B CN201910930049.XA CN201910930049A CN110601819B CN 110601819 B CN110601819 B CN 110601819B CN 201910930049 A CN201910930049 A CN 201910930049A CN 110601819 B CN110601819 B CN 110601819B
- Authority
- CN
- China
- Prior art keywords
- event
- block chain
- sequence
- random number
- value
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种对随机数的处理方法、区块链节点装置及存储介质,其中,所述方法包括:响应于客户端的事件获取请求,获取随机数,所述随机数是区块链节点装置所属区块链网络中的目标区块链节点装置生成的;对随机数进行哈希计算,获得随机数的哈希值;对哈希值进行转换,获得哈希值对应的目标数值和第一阈值;根据目标数值和第一阈值,确定随机数对应的事件获取结果;将事件获取结果发送至客户端。采用本发明实施例,可以使得根据随机数确定事件获取结果的过程公平公开,提高了事件获取结果的可信度。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种对随机数的处理方法、区块链节点装置及存储介质。
背景技术
在日常生活中,存在许多获取事件的场景,例如获取电子资源包或者获取物品等等,事件发放者检测到事件获取者的操作时生成事件获取结果,从而使得事件获取者获取事件获取结果对应的事件。
在事件发放者生成事件获取结果的过程中,事件获取者能否获取事件获取结果对应的事件是由事件发放者决定的,事件发放者生成事件获取结果的过程对于事件获取者而言是不透明的,使得事件发放者生成事件获取结果的过程随机性不够、欠缺公平,导致事件获取结果的可信度较低。
发明内容
本发明实施例提供了一种对随机数的处理方法、区块链节点装置及存储介质,可以使得根据随机数确定事件获取结果的过程公平公开,提高了事件获取结果的可信度。
第一方面,本发明实施例提供了一种对随机数的处理方法,所述方法应用于区块链节点装置,所述方法包括:
响应于客户端的事件获取请求,获取随机数,所述随机数是区块链节点装置所属区块链网络中的目标区块链节点装置生成的;对随机数进行哈希计算,获得随机数的哈希值;对哈希值进行转换,获得哈希值对应的目标数值和第一阈值;根据目标数值和第一阈值,确定随机数对应的事件获取结果;将事件获取结果发送至客户端。
在该技术方案中,区块链节点装置获取到随机数后,对随机数进行哈希计算得到随机数的哈希值,对哈希值进行转换获得哈希值对应的目标数值和第一阈值,根据目标数值和第一阈值确定随机数对应的事件获取结果。区块链节点装置根据获取到的随机数确定该随机数对应的事件获取结果的过程,以数字化的形式写入区块链网络中,被区块链网络永久储存且不可被篡改,使得区块链节点装置根据获取到的随机数确定事件获取结果的过程公开公正,提高了事件获取结果的可信度。
在一种实现方式中,根据目标数值和第一阈值,确定随机数对应的事件获取结果的具体实施方式可以为:根据第一阈值和待获取的事件集群中各个事件的权重,生成事件集群中各个事件对应的数值区间;在生成得到的数值区间中确定目标数值所属的目标数值区间;根据目标数值区间生成事件获取结果,事件获取结果用于指示客户端获得目标数值区间对应的事件。
在一种实现方式中,根据第一阈值和待获取的事件集群中各个事件的权重,生成事件集群中各个事件对应的数值区间的具体实施方式可以为:获取事件集群,事件集群中包括多个事件及各事件的权重;按照各事件的权重对第一阈值进行划分,得到事件集群中各个事件对应的数值区间;其中,一个事件对应一个数值区间,不同事件对应不同的数值区间,各个数值区间的最大值均小于或等于第一阈值。
在一种实现方式中,在生成得到的数值区间中确定目标数值所属的目标数值区间之前,获取更新后的事件集群,更新后的事件集群包括多个更新后的事件及各更新后的事件的权重;根据第一阈值和更新后的事件集群中各个事件的权重,生成更新后的事件集群中各个事件对应的数值区间;在更新后的数值区间中确定目标数值所属的目标数值区间。
在一种实现方式中,对哈希值进行转换,获得哈希值对应的目标数值和第一阈值的具体实施方式可以为:将哈希值转换为第一数字序列;根据第一数字序列的长度,得到第一阈值;根据二进制转换算法,将第一数字序列中的每一位数字进行进制转换,得到第二数字序列;根据十进制转换算法,将第二数字序列转换为所述目标数值。
在一种实现方式为,根据第一数字序列的长度,得到第一阈值的具体实施方式可以为:根据第一数字序列的长度,确定第三数字序列,第三数字序列的长度和第一数字序列的长度相同,且第三数字序列中的每一位数字均为预设阈值;根据二进制转换算法,将第三数字序列中的每一位数字进行进制转换,得到第四数字序列;根据十进制转换算法,将第四数字序列转换为第一阈值。
在一种实现方式中,对哈希值进行转换,获得哈希值对应的目标数值和第一阈值的具体实施方式可以为:将哈希值转换为第一数字序列;对第一数字序列包含的数字进行运算,得到目标数值;根据第一数字序列的长度,确定第三数字序列,第三数字序列的长度和第一数字序列的长度相同,且第三数字序列中的每一位数字均为预设阈值;对第三数字序列包含的数字进行运算,得到第一阈值。
第二方面,本发明实施例提供了一种区块链节点装置,该装置具有实现第一方面所述的对随机数的处理方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
在一种实现方式中,该区块链节点装置包括获取单元、计算单元、转换单元、确定单元、发送单元。其中,获取单元,用于响应于客户端的事件获取请求,获取随机数,所述随机数是区块链节点装置所属区块链网络中的目标区块链节点装置生成的;计算单元,用于对随机数进行哈希计算,获得随机数对应的哈希值;转换单元,用于对哈希值进行转换,获得哈希值对应的目标数值和第一阈值;确定单元,用于根据目标数值和第一阈值,确定随机数对应的事件获取结果;发送单元,用于将事件获取结果发送至客户端。
第三方面,本发明实施例提供了一种区块链节点装置,该区块链节点装置包括存储器和处理器,其中,存储器,用于存储计算机程序;处理器,调用所述存储器中存储的计算机程序,用于执行上述第一方面所述的对随机数的处理方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,用于存储为区块链节点装置所用的计算机程序,其包含用于执行上述第一方面所涉及的程序指令。
在本发明实施例中,区块链节点装置将对随机数的处理方法与基于区块链技术的智能合约技术结合起来,根据随机数确定事件获取结果的过程以数字化的形式写入区块链网络中,被区块链网络永久存储,区块链网络中的区块链节点装置每一次根据随机数确定事件获取结果的过程被区块链网络中的其他区块链节点装置共同见证,区块链节点装置每一次根据随机数确定事件获取结果的过程都是透明且不可被篡改的,区块链节点装置对每一个获取到的随机数的处理过程都是相同的,使得区块链节点装置根据获取到的随机数确定事件获取结果的过程公开公正,且事件获取结果具有较高的可信度。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种通信***的架构示意图;
图2为本发明实施例提供的一种对随机数的处理方法的流程示意图;
图3为本发明实施例提供的另一种对随机数的处理方法的流程示意图;
图4为本发明实施例提供的一种区块链节点装置的结构示意图;
图5为本发明实施例提供的一种区块链节点装置的结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。
在日常生活中,存在许多获取事件的场景,例如获取电子资源包或者获取物品等等,事件发放者检测到事件获取者的操作时生成事件获取结果,从而使得事件获取者获取事件获取结果对应的事件。以抽奖活动这一获取事件的场景为例,在抽奖活动中,主要涉及商家和顾客两个角色,商家作为事件发放者,顾客作为事件获取者,商家检测到顾客的抽奖操作时,生成事件获取结果,从而使得顾客获取事件获取结果对应的事件。
在事件发放者生成事件获取结果的过程中,事件获取者能否获取事件获取结果对应的事件是由事件发放者决定的,事件发放者生成事件获取结果的过程对于事件获取者而言是不透明的,例如,在抽奖活动中,顾客能否获奖,获得几等奖是由商家决定的,商家根据检测到的顾客的抽奖操作生成事件获取结果的过程对于顾客而言是不透明的,使得事件发放者生成事件获取结果的过程随机性不够、欠缺公平,导致事件获取结果的可信度较低。
为了解决上述问题,本发明实施例将基于区块链技术的智能合约技术引入获取事件的场景中,提出了一种对随机数的处理方法、区块链节点装置及存储介质。该对随机数的处理方法以智能合约的形式存储在区块链网络中,在达到触发条件的情况下,区块链网络中的区块链节点装置调用智能合约以使其自动执行该对随机数的处理方法。其中,智能合约(smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。将智能合约以数字化的形式写入区块链网络中,由于区块链的分布式存储和去中心化的特点,基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免故意篡改等恶意行为对智能合约正常执行的干扰。
通过实施本发明实施例,将对随机数的处理方法与基于区块链技术的智能合约的技术结合起来,基于区块链技术分布式存储和去中心化的特点,保证执行对随机数的处理方法的智能合约被区块链网络中的各个区块链节点装置存储、读取和执行的过程是公开透明且不可被篡改的,使得事件发放者根据检测到的事件获取者的操作生成事件获取结果的过程公正公开,提高了事件获取结果的可信度。
为了更好的理解本发明实施例公开的一种对随机数的处理方法、区块链节点装置及存储介质,下面首先对本发明实施例适用的通信***进行描述。
请参见图1,图1是本发明实施例提供的一种通信***的架构示意图。如图1所示,该通信***可以包括:区块链节点装置101、客户端102。该对随机数的处理方法可以为:区块链节点装置101响应于客户端的事件获取请求,获取随机数,所述随机数是区块链节点装置101所属区块链网络中的目标区块链节点装置生成的;区块链节点装置101对随机数进行哈希计算,获得随机数的哈希值;区块链节点装置101对哈希值进行转换,获得哈希值对应的目标数值和第一阈值;区块链节点装置101根据目标数值和第一阈值,确定随机数对应的事件获取结果;区块链节点装置101将事件获取结果发送至客户端102。其中,由于执行对随机数的处理方法的智能合约以数字化的形式写入区块链网络中,区块链网络中的任意一个区块链节点装置均可调用该智能合约执行对随机数的处理方法,从而区块链节点装置101可以是区块链网络中任意一个区块链节点装置。客户端102可以运行在终端设备中,用户可以通过终端设备与客户端102实现交互,其中,终端设备可以是移动终端、个人计算机(Personal Computer,PC)端、便携式电脑(Tablet Personal Computer,Tablet PC)端等。
其中,区块链节点装置使用哈希算法对随机数进行哈希计算,哈希算法又称散列算法,是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数,该固定长度的消息摘要就是哈希值。需要说明的是,哈希值是一个短的随机字母和数字组成的字符串。哈希算法包括但不限于:MD4算法、MD5算法、SHA-1算法、SHA-256算法,等等。以SHA-256算法的工作原理为例,将任何一串数据输入到SHA-256算法中将得到一个256位的哈希值。相同的数据输入将得到相同的结果,输入数据只要稍有变化,比如输入数据中的一个1变成了0,则将得到一个与原结果千差万别的新结果,且根据哈希算法计算得到的输入数据的哈希值无法事先预知,保证了根据随机数确定事件获取结果的过程具有随机性。哈希算法还具有一个特点,就是很难找到逆向规律,即根据哈希值计算出其对应的输入数据极其困难,在当前科技条件下被视为不可能。
通过这种方式,随机数是由区块链节点装置所属区块链网络中的目标区块链节点装置生成的,根据随机数确定事件获取结果的过程以数字化的形式写入区块链网络中,被区块链网络永久存储。区块链节点装置每一次根据随机数确定事件获取结果的过程都是透明且不可被篡改的,区块链网络中的其他区块链节点装置见证了区块链节点装置每一次根据随机数确定事件获取结果的过程,使得区块链节点装置根据获取到的随机数确定事件获取结果的过程公开公正,提高了事件获取结果的可信度。
在一种实现方式中,如图1所示的通信***的架构示意图,该对随机数的处理方法可以为:客户端向区块链节点装置发送事件获取请求,区块链节点装置响应于客户端的事件获取请求,生成随机数,即区块链节点装置具有目标区块链节点装置的生成随机数的功能;生成随机数后,区块链节点装置对随机数进行哈希计算,获得随机数的哈希值;获得随机数的哈希值后,区块链节点装置对哈希值进行转换,获得哈希值对应的目标数值和第一阈值;获得哈希值对应的目标数值和第一阈值后,区块链节点装置根据目标数值和第一阈值,确定随机数对应的事件获取结果;获得随机数对应的事件获取结果后,区块链节点装置将事件获取结果发送至客户端。
举例来说,在抽奖活动的应用场景下,区块链节点装置可以为商家对应的区块链节点装置,事件获取结果可以为顾客的获奖情况。客户端检测到顾客的抽奖操作后,根据抽奖操作生成事件获取请求,并将该事件获取请求发送至商家对应的区块链节点装置,商家对应的区块链节点装置响应于客户端的事件获取请求,生成随机数,智能合约被触发,商家对应的区块链节点装置自动执行对随机数的处理方法,商家对应的区块链节点装置对随机数进行哈希计算,得到随机数的哈希值,获得随机数的哈希值后,商家对应的区块链节点装置对哈希值进行转换,获得哈希值对应的目标数值和第一阈值,商家对应的区块链节点装置根据目标数值和第一阈值确定顾客参与抽奖活动的获奖情况,并将获奖情况发送至客户端,顾客通过客户端查看此次参与抽奖活动的获奖情况。
在一种实现方式中,如图1所示的通信***的架构示意图,该通信***中的区块链节点装置101可以包括第一区块链节点装置和第二区块链节点装置。在由客户端、第一区块链节点装置和第二区块链节点装置组成的通信***中,对随机数的处理方法可以为:客户端向第一区块链节点装置和第二区块链节点装置发送事件获取请求;第一区块链节点装置响应于客户端的事件获取请求,生成随机数,即第一区块链节点装置为生成随机数的目标区块链节点装置;第二区块链节点装置响应于客户端的事件获取请求,向第一区块链节点装置请求获取随机数;获取到随机数后,第二区块链节点装置对随机数进行哈希计算,获得随机数的哈希值;获得随机数的哈希值后,第二区块链节点装置对哈希值进行转换,获得哈希值对应的目标数值和第一阈值;获得哈希值对应的目标数值和第一阈值后,第二区块链节点装置根据目标数值和第一阈值,确定随机数对应的事件获取结果;获得随机数对应的事件获取结果后,第二区块链节点装置将事件获取结果发送至客户端。
举例来说,在抽奖活动的应用场景下,第二区块链节点装置可以为商家对应的区块链节点装置,第一区块链节点装置可以为区块链网络中用于生成随机数的目标区块链节点装置,事件获取结果可以为顾客的获奖情况。客户端检测到顾客的抽奖操作后,根据抽奖操作生成事件获取请求,并将该事件获取请求发送至第一区块链节点装置和商家对应的区块链节点装置;第一区块链节点装置响应于客户端的事件获取请求,生成随机数;商家对应的区块链节点装置响应于客户端的事件获取请求,向第一区块链节点装置请求获取随机数;商家对应的区块链节点装置获取到随机数后,智能合约被触发,商家对应的区块链节点装置自动执行对随机数的处理方法,商家对应的区块链节点装置对随机数进行哈希计算,得到随机数的哈希值,获得随机数的哈希值后,商家对应的区块链节点装置对哈希值进行转换,获得哈希值对应的目标数值和第一阈值,商家对应的区块链节点装置根据目标数值和第一阈值确定顾客参与抽奖活动的获奖情况,并将获奖情况发送至客户端,顾客通过客户端查看此次参与抽奖活动的获奖情况。
在一种实现方式中,在由客户端、第一区块链节点装置和第二区块链节点装置组成的通信***中,对随机数的处理方法还可以为:客户端向第一区块链节点装置发送事件获取请求,第一区块链节点装置响应于客户端的事件获取请求,生成随机数,即第一区块链节点装置为生成随机数的目标区块链节点装置;第一区块链节点装置将生成的随机数发送至客户端,客户端接收到来自第一区块链节点装置的随机数后,向第二区块链节点装置发送事件获取请求,该事件获取请求携带随机数;第二区块链节点响应于客户端的事件获取请求,获取该随机数,并对随机数进行哈希计算,获得随机数的哈希值;获得随机数的哈希值后,第二区块链节点对哈希值进行转换,获得哈希值对应的目标数值和第一阈值;获得哈希值对应的目标数值和第一阈值后,第二区块链节点装置根据目标数值和第一阈值,确定随机数对应的事件获取结果;获得随机数对应的事件获取结果后,第二区块链节点装置将事件获取结果发送至客户端。
举例来说,在抽奖活动的应用场景下,第二区块链节点装置可以为商家对应的区块链节点装置,第一区块链节点装置可以为区块链网络中用于生成随机数的目标区块链节点装置,事件获取结果可以为顾客的获奖情况。客户端检测到顾客的抽奖操作后,根据抽奖操作生成事件获取请求,并将该事件获取请求发送至第一区块链节点装置;第一区块链节点装置响应于客户端的事件获取请求,生成随机数,并将随机数发送至客户端;客户端接收到来自第一区块链节点装置的随机数后,向商家对应的区块链节点装置发送事件获取请求,该事件获取请求携带随机数;商家对应的区块链节点装置响应于客户端的事件获取请求,获取该随机数;商家对应的区块链节点装置获取到随机数后,智能合约被触发,商家对应的区块链节点装置自动执行对随机数的处理方法,商家对应的区块链节点装置对随机数进行哈希计算,得到随机数的哈希值,获得随机数的哈希值后,商家对应的区块链节点装置对哈希值进行转换,获得哈希值对应的目标数值和第一阈值,商家对应的区块链节点装置根据目标数值和第一阈值确定顾客参与抽奖活动的获奖情况,并将获奖情况发送至客户端,顾客通过客户端查看此次参与抽奖活动的获奖情况。
通过这种方式,区块链节点装置获取的随机数是区块链节点装置所属的区块链网络中的目标区块链节点装置生成的,提高了随机数的可信度,进而区块链节点装置根据该随机数确定的事件获取结果也具有较高的可信度。
可以理解的是,本发明实施例描述的通信***是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着***架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
基于图1所示的一种通信***的架构示意图,请参见图2,图2是本发明实施例提供的一种对随机数的处理方法的流程示意图,该方法包括但不限于如下步骤:
步骤S201:客户端向区块链节点装置发送事件获取请求。
具体的,客户端检测到用户操作时,客户端可以根据检测到的用户操作生成事件获取请求,并将事件获取请求发送至区块链节点装置,以使区块链节点装置响应于客户端的事件获取请求,获取随机数,并根据随机数确定对应的事件获取结果。例如,在抽奖活动中,当客户端检测到用户点击用户界面中“开始抽奖”按钮的操作时,客户端根据检测到的用户操作生成事件获取请求,并将事件获取请求发送至商家对应的区块链节点装置,以使商家对应的区块链节点装置响应于客户端的事件获取请求,获取随机数,并根据随机数确定对应的获奖情况。
步骤S202:区块链节点装置响应于客户端的事件获取请求,获取随机数。
具体的,区块链节点装置接收到来自客户端的事件获取请求后,响应于客户端的事件获取请求,获取随机数,所述随机数是区块链节点装置所属的区块链网络中的目标区块链节点装置生成的。
在一种实现方式中,在如图1所示的通信***中,通信***包括客户端和区块链节点装置,区块链节点装置获取随机数的方式可以为:区块链节点装置接收到来自客户端的事件获取请求后,区块链节点装置响应于客户端的事件获取请求并根据事件获取请求生成区块,获取区块的区块信息;获取到区块的区块信息后,区块链节点装置根据区块信息生成随机数,即区块链节点装置具有目标区块链节点装置的生成随机数的功能。需要说明的是,区块信息用于标识该区块,区块信息可以为区块头的哈希值、默克尔树哈希根,等等,本发明实施例对此不做限定。例如,在抽奖活动中,商家对应的区块链装置接收到来自客户端的事件获取请求后,响应于该事件获取请求,并根据事件获取请求生成区块,获取区块信息,根据区块信息生成随机数。
在一种实现方式中,在如图1所示的通信***中,通信***包括客户端和区块链节点装置,区块链节点装置获取随机数的方式还可以为:客户端根据检测到的用户操作生成事件获取请求后,将事件获取请求作为随机数生成器的输入数据,并将随机生成器的输出数据作为事件获取请求对应的随机数;生成随机数后,客户端向区块链节点装置发送事件获取请求,该事件获取请求携带随机数,区块链节点装置响应于该事件获取请求,获取该随机数。其中,随机数生成器可以执行线性同余法(Linear Congruential Generator,LCG)、梅森旋转法(Mersenne Twister,MT)等随机数生成算法,本发明实施例对此不做限定。
在一种实现方式中,如图1所示的通信***,该通信***中的区块链节点装置可以包括第一区块链节点装置和第二区块链节点装置。在由客户端、第一区块链节点装置和第二区块链节点装置组成的通信***中,区块链节点装置获取随机数的方式可以为:客户端检测到用户操作时,客户端根据检测到的用户操作生成事件获取请求,并将事件获取请求发送至第一区块链节点装置和第二区块链节点装置;第一区块链节点装置响应于客户端的事件获取请求,根据事件获取请求生成区块并获取区块的区块信息;获取到区块的区块信息后,第一区块链节点装置根据区块信息生成随机数,即第一区块链节点装置为生成随机数的目标区块链节点装置;第二区块链节点装置响应于客户端的事件获取请求,向第一区块链节点装置请求获取随机数。例如,在抽奖活动中,第二区块链节点装置为商家对应的区块链节点装置,第一区块链节点装置为商家对应的区块链节点装置所属区块链网络中的目标区块链节点装置,当客户端检测到用户点击用户界面中“开始抽奖”按钮的操作时,客户端根据检测到的用户操作生成事件获取请求,并将事件获取请求发送至第一区块链节点装置和商家对应的区块链节点装置,第一区块链节点装置接收到来自客户端的事件获取请求后,响应于客户端的事件获取请求,根据事件获取请求生成区块,获取区块信息,并根据区块信息生成随机数;商家对应的区块链节点装置响应于客户端的事件获取请求,向第一区块链节点装置请求获取随机数。
在一种实现方式中,在由客户端、第一区块链节点装置和第二区块链节点装置组成的通信***中,区块链节点装置获取随机数的方式还可以为:客户端检测到用户操作时,客户端根据检测到的用户操作生成事件获取请求,并将事件获取请求发送至第一区块链节点装置;第一区块链节点装置响应于客户端的事件获取请求,根据事件获取请求生成区块并获取区块的区块信息;获取到区块的区块信息后,第一区块链节点装置根据区块信息生成随机数,并将随机数发送至客户端,即第一区块链节点装置为生成随机数的目标区块链节点装置;客户端接收到来自第一区块链节点装置的随机数后,向第二区块链节点装置发送事件获取请求,该事件获取请求携带随机数;第二区块链节点响应于客户端的事件获取请求,获取该随机数。例如,在抽奖活动中,第二区块链节点装置为商家对应的区块链节点装置,第一区块链节点装置为商家对应的区块链节点装置所属区块链网络中的目标区块链节点装置,当客户端检测到用户点击用户界面中“开始抽奖”按钮的操作时,客户端根据检测到的用户操作生成事件获取请求,并将事件获取请求发送至第一区块链节点装置,第一区块链节点装置接收到来自客户端的事件获取请求后,响应于客户端的事件获取请求,根据事件获取请求生成区块,获取区块信息,根据区块信息生成随机数,并将随机数发送至客户端;客户端接收到来自第一区块链节点装置的随机数后,向商家对应的区块链节点装置发送事件获取请求,该事件获取请求携带随机数;商家对应的区块链节点响应于客户端的事件获取请求,获取该随机数。
步骤S203:区块链节点装置对随机数进行哈希计算,获得随机数的哈希值。
具体的,区块链节点装置通过执行本发明实施例中步骤S201所述的任意一种方法获取到随机数后,将获取到的随机数作为哈希算法的输入数据,根据哈希算法,对该随机数进行计算,可以获得该随机数的哈希值。例如,区块链节点装置获取到数值为“1346”的随机数,选取哈希算法中的MD5算法对该随机数进行计算,获得该随机数的哈希值为“82965d4ed8150294d4330ace00821d77”。又如,区块链节点装置获取到数值为“1346”的随机数,选取哈希算法中的SH A-256算法对该随机数进行计算,获得该随机数的哈希值为“5631e5efadc1db19f6b2453cc6a2d6b76a81682d8c8594680343794a2558a91e”。
步骤S204:区块链节点装置将哈希值转换为第一数字序列。
具体的,区块链节点装置将哈希值转换为第一数字序列的方法可以为:区块链节点装置将哈希值中的字母序列转换为美国信息交换标准代码(American Standard Codefor Information Interchange,ASCII)中对应的数值,得到该哈希值对应的第一数字序列。以哈希值为“3b”为例,在美国信息交换标准代码(American Standard Code forInformation Interchange,ASCII)中,字母“b”对应的数值为“98”,区块链节点装置将哈希值“3b”转换为该哈希值对应的第一数字序列为“3,9,8”。
步骤S205:区块链节点装置根据第一数字序列的长度,得到第一阈值。
具体的,区块链节点装置可以根据第一数字序列的长度,确定第三数字序列,第三数字序列的长度和第一数字序列的长度相同,且第三数字序列中的每一位数字均为预设阈值。区块链节点装置可以根据二进制转换算法,将第三数字序列中的每一位数字进行进制转换,得到第四数字序列;区块链节点装置可以根据十进制转换算法,从右往左,将长度为N的第四数字序列中的每一位数字记为第0位、第1位、…、第N-1位,区块链节点装置根据公式“第i位数字×2i”计算第四字数序列对应的结果,区块链节点装置将该结果作为第一阈值。
例如,区块链节点装置将哈希值转换为第一数字序列“3,9,8”,第一数字序列“3,9,8”的长度为3位,则根据第一数字序列确定的第三数字序列的长度也为3位,预设阈值可以为十进制中的数值最大的数字“9”,则区块链节点装置根据第一数字序列“3,9,8”确定的第三数字序列为“9,9,9”。区块链节点装置根据二进制转换算法,将第三数字序列为“9,9,9”中的每一位数字转换为对应的四位二进制序列,数字“9”对应的四位二进制序列为“1,0,0,1”,区块链节点装置根据二进制转换算法,将第三数字序列“9,9,9”转换为第四数字序列“1,0,0,1,1,0,0,1,1,0,0,1”。区块链节点装置根据公式“第i位数字×2i”计算第四数字序列对应的结果“1×20+0×21+0×22+1×23+1×24+0×25+0×26+1×27+1×28+0×29+0×210+1×211”,最终结果为“2457”,区块链节点装置根据十进制转换算法,将第四数字序列“1,0,0,1,1,0,0,1,1,0,0,1”转换为第一阈值“2457”。
在一种实现方式中,区块链节点装置可以建立记录第一数字序列长度、第一阈值的表格,长度不同的第一数字序列对应不同的第一阈值,长度相同的第一数字序列对应相同的第一阈值。区块链节点装置可以根据第一数字序列的长度,通过查询表格,确定与第一数字序列对应的第一阈值。例如,第一数字序列的长度为2位,区块链节点装置可以通过查询表格,确定与该第一数字序列对应的第一阈值为“153”。又如,第一数字序列的长度为3位,区块链节点装置可以通过查询表格,确定与该第一数字序列对应的第一阈值为“2457”。
步骤S206:区块链节点装置根据二进制转换算法,将第一数字序列中的每一位数字进行进制转换,得到第二数字序列。
具体的,区块链节点装置可以根据二进制转换算法,将第一数字序列中的每一位数字转换为对应的四位二进制序列,得到第二数字序列,第二数字系列由第一数字序列中每一位数字对应的四位二进制序列组成。以第一数字序列为“3,9,8”为例,数字“3”对应的四位二进制序列为“0,0,1,1”,数字“9”对应的四位二进制序列为“1,0,0,1”,数字“8”对应的四位二进制序列为“1,0,0,0”,区块链节点装置根据二进制转换算法,将第一数字序列“3,9,8”中的每一位数字进行转换,得到第二数字序列“0,0,1,1,1,0,0,1,1,0,0,0”。
步骤S207:区块链节点装置根据十进制转换算法,将第二数字序列转换为目标数值。
具体的,区块链节装置可以根据十进制转换算法,从右往左,将长度为N的第二数字序列中的每一位数字记为第0位、第1位、…、第N-1位,区块链节点装置根据公式“第i位数字×2i”计算第二字数序列对应的结果,区块链节点装置将该结果作为目标数值。以第二数字序列为“0,0,1,1,1,0,0,1,1,0,0,0”为例,区块链节点装置根据公式“第i位数字×2i”计算第二数字序列对应的结果“0×20+0×21+0×22+1×23+1×24+0×25+0×26+1×27+1×28+1×29+0×210+0×211”,最终结果为“920”,区块链节点装置根据十进制转换算法,将第二数字序列“0,0,1,1,1,0,0,1,1,0,0,0”转换为目标数值“920”。
通过这种方式,区块链节点装置每获取到一个随机数,都会根据哈希算法计算得到随机数的哈希值,根据美国信息交换标准代码(American Standard Code forInformation Interchange,ASCII)得到哈希值对应的第一数字序列,根据第一数字序列的长度确定第一阈值,根据二进制转换算法得到与第一数字序列对应的第二数字序列,根据十进制转换算法得到与第二数字序列对应的目标数值。区块链节点装置对每一个获取到的随机数的处理过程都是相同的,对每一个获取到的随机数的处理过程都是透明且不可篡改的,使得区块链节点装置获得与哈希值对应的目标数值和第一阈值的过程更加公平公开。
步骤S208:区块链节点装置根据目标数值和第一阈值,确定随机数对应的事件获取结果。
具体的,区块链节点装置可以获取事件集群,事件集群中包括多个事件及各事件的权重;获取事件集群后,区块链节点装置按照各事件的权重对第一阈值进行划分,得到事件集群中各个事件对应的数值区间,其中,一个事件对应一个数值区间,不同事件对应不同的数值区间,各个数值区间的最大值均小于或等于所述第一阈值;区块链节点装置可以在生成得到的区间中确定目标数值所属的目标数值区间,从而根据目标数值区间生成事件获取结果,该事件获取结果用于指示客户端获得目标数值区间对应的事件。
例如,在抽奖活动中,区块链节点装置可以为商家对应的区块链节点装置,商家对应的区块链节点装置获取到的事件集群为{获得一等奖,获得二等奖,获得三等奖},在事件集群中,事件“获得一等奖”对应的权重为“15%”,事件“获得二等奖”对应的权重为“25%”,事件“获得三等奖”对应的权重为“60%”。商家对应的区块链节点装置根据获取到的随机数获得该随机数对应的目标数值“30”和第一阈值“100”。商家对应的区块链节点装置按照各事件的权重对第一阈值“100”进行划分,得到事件集群中各个事件对应的数值区间,事件“获得一等奖”对应的数值区间为[0,15),事件“获得二等奖”对应的数值区间为[15,40),事件“获得三等奖”对应的数值区间为[40,100]。目标数值“30”属于数值区间[15,40),商家对应的区块链节点装置确定数值区间[15,40)为目标数值“30”所属的目标数值区间。商家对应的区块链节点装置根据目标数值“30”所属的目标数值区间[15,40)确定事件获取结果,该事件获取结果用于指示客户端获得目标数值区间对应的事件“获得二等奖”。商家对应的区块链节点装置根据获取到的随机数,确定该随机数在此次抽奖活动中获得二等奖。
又如,在抽奖活动中,区块链节点装置可以为商家对应的区块链节点装置,商家对应的区块链节点装置获取到的事件集群为{获得一等奖,获得二等奖,获得三等奖,未中奖},在事件集群中,事件“获得一等奖”对应的权重为“10%”,事件“获得二等奖”对应的权重为“15%”,事件“获得三等奖”对应的权重为“25%”,事件“未中奖”对应的权重为“50%”。商家对应的区块链节点装置根据获取到的随机数获得该随机数对应的目标数值“60”和第一阈值“100”。商家对应的区块链节点装置按照各事件的权重对第一阈值“100”进行划分,得到事件集群中各个事件对应的数值区间,事件“获得一等奖”对应的数值区间为[0,10),事件“获得二等奖”对应的数值区间为[10,25),事件“获得三等奖”对应的数值区间为[25,50),事件“未中奖”对应的数值区间为[50,100]。目标数值“60”属于数值区间[50,100],商家对应的区块链节点装置确定数值区间[50,100]为目标数值“60”所属的目标数值区间。商家对应的区块链节点装置根据目标数值“60”所属的目标数值区间[50,100]确定事件获取结果,该事件获取结果用于指示客户端获得目标数值区间对应的事件“未中奖”。商家对应的区块链节点装置根据获取到的随机数,确定该随机数在此次抽奖活动中未获奖。
通过这种方式,区块链节点装置每获取到一个随机数,都可以获得该随机数对应的目标数值和第一阈值,区块链节点装置可以根据该随机数对应的第一阈值和事件集群中各个事件对应的权重生成各个事件对应的区间,并根据目标数值在生成得到的区间中所属的目标数值区间确定事件获取结果。事件集群中各个事件对应的区间由第一阈值和事件集群中的各个事件对应的权重共同决定。例如,在抽奖活动中,事件集群中各个事件对应的权重由商家制定确定,第一阈值由顾客提供的随机数确定,顾客和商家共同参与事件获取结果的确定过程,使得根据随机数确定事件获取结果的过程更加公平,事件获取结果的可信度较高。
在一种实现方式中,区块链节点装置在生成得到的区间中确定目标数值所属的目标数值区间之前,区块链节点装置可以获取更新后的事件集群,更新后的事件集群包括多个更新后的事件及各更新后的事件的权重,获取到更新后的事件集群后,区块链节点装置可以根据第一阈值和更新后的事件集群中各个事件的权重,生成更新后的事件集群中各个事件对应的数值区间,并在更新后的数值区间中确定目标数值所属的目标数值区间,从而根据目标数值区间生成事件获取结果。举例来说,在抽奖活动的应用场景下,区块链节点装置可以为商家对应的区块链节点装置,商家对应的区块链节点装置获取到更新后的事件集群为{获得一等奖,获得二等奖,获得三等奖,获得四等奖,未获奖},在更新后的事件集群中,事件“获得一等奖”对应的权重为“5%”,事件“获得二等奖”对应的权重为“10%”,事件“获得三等奖”对应的权重为“15%”,事件“获得四等奖”对应的权重为“20%”,事件“未获奖”对应的权重为“50%”。商家对应的区块链节点装置根据获取到的随机数获得该随机数对应的目标数值“30”和第一阈值“100”。商家对应的区块链节点装置根据第一阈值“100”和更新后的事件集群中各个事件的权重,生成更新后的事件集群中各个事件对应的数值区间,事件“获得一等奖”对应的数值区间为[0,5),事件“获得二等奖”对应的数值区间为[5,15),事件“获得三等奖”对应的数值区间为[15,30),事件“获得四等奖”对应的数值区间为[30,50),事件“未中奖”对应的数值区间为[50,100]。目标数值“30”属于数值区间[30,50),商家对应的区块链节点装置确定数值区间[30,50)为目标数值“30”所属的目标数值区间。商家对应的区块链节点装置根据目标数值“30”所属的目标数值区间[30,50)确定事件获取结果,该事件获取结果用于指示客户端获得目标数值区间对应的事件“获得四等奖”。商家对应的区块链节点装置根据获取到的随机数,确定该随机数在此次抽奖活动中获得四等奖。
通过这种方式,在抽奖活动中,商家可以通过更新的事件集群中的各个事件或者更新的事件集群中各个事件的权重,更改抽奖规则,使得抽奖活动更加灵活多样。
步骤S209:区块链节点装置将事件获取结果发送至客户端。
具体的,区块链节点装置根据目标数值和第一阈值,确定随机数对应的事件获取结果后,可以将该事件获取结果发送至客户端。例如,在抽奖活动的应用场景下,区块链节点装置可以为商家对应的区块链节点装置,随机数可以为商家对应的区块链节点装置响应顾客的获奖请求生成的随机数,事件获取结果可以为顾客参与抽奖活动的获奖情况。顾客通过客户端与商家对应的区块链节点装置实现交互,商家对应的区块链节点装置接收到来自客户端的获奖请求后,响应于客户端的获奖请求,并根据获奖请求生成随机数,从而根据随机数确定顾客参与抽奖活动的获奖情况,并将该获奖情况发送至客户端。
可见,通过本发明实施例,区块链节点装置获取到随机数后,可以根据随机数确定事件获取结果,区块链节点装置根据随机数确定事件获取结果的过程是区块链节点装置和随机数共同参与的。并且在区块链网络中,区块链节点装置根据随机数确定事件获取结果的过程可被区块链网络中的其他区块链节点装置共同见证,使得区块链节点装置根据随机数确定事件获取结果的过程更加公平,事件获取结果的可信度较高。
基于图1所描述的内容,请参见图3,图3是本发明实施例提供的另一种对随机数的处理方法的流程示意图,该方法包括但不限于如下步骤:
步骤S301:客户端向区块链节点装置发送事件获取请求。
步骤S302:区块链节点装置响应事件获取请求,获取随机数。
步骤S303:区块链将节点装置对随机数进行哈希计算,获得随机数的哈希值。
步骤S304:区块链节点装置将哈希值转换为第一数字序列。
本发明实施例中步骤S301~S304的执行过程与图2所示实施例中步骤S201~S204相同,具体执行过程可参见图2中步骤S201~S204的具体描述,本发明实施例不再赘述。
步骤S305:区块链节点装置对第一数字序列包含的数字进行运算,得到目标数值。
具体的,区块链节点装置可以将第一数字序列包含的数字相加,得到目标数值。例如,第一数字序列为“3,9,8”,区块链节点装置将第一数字序列包含的数字相加,得到“3+9+8”,最终结果为“20”,区块链节点装置将第一数字序列“3,9,8”包含的数字相加,得到目标数值“20”。
在一种实现方式中,区块链节点装置还可以将第一数字序列包含的数字合并,得到目标数值。例如,第一数字序列为“3,8,7”,区块链节点装置将第一数字序列包含的数字合并,得到“3×100+8×10+7×1”,最终结果为“387”,区块链节点装置将第一数字序列“3,8,7”包含的数字合并,得到目标数值“387”。
步骤S306:区块链节点装置根据第一数字序列的长度,确定第三数字序列。
具体的,区块链节点装置可以根据第一数字序列的长度,确定第三数字序列,第三数字序列的长度和第一数字序列的长度相同,且第三数字序列中的每一位数字均为预设阈值。例如,在区块链节点装置将第一数字序列包含的数字相加或合并,得到目标数值的方案中,区块链节点装置将哈希值转换为第一数字序列“3,9,8”,第一数字序列“3,9,8”的长度为3位,则根据第一数字序列确定的第三数字序列的长度也为3位,预设阈值可以为十进制中的数值最大的数字“9”,则区块链节点装置根据第一数字序列“3,9,8”确定的第三数字序列为“9,9,9”。又如,在区块链节点装置将第一数字序列包含的数字相加或合并,得到目标数值的方案中,区块链节点装置将哈希值转换为第一数字序列“3,8,7”,第一数字序列“3,8,7”的长度为3位,则根据第一数字序列确定的第三数字序列的长度也为3位,预设阈值可以为第三数字序列中数值最大的数字“8”,则区块链节点装置根据第一数字序列“3,8,7”确定的第三数字序列为“8,8,8”。
步骤S307:区块链节点装置对第三数字序列包含的数字进行运算,得到第一阈值。
具体的,区块链节点装置将第三数字序列包含的数字进行运算,得到第一阈值的方法与区块链节点装置对第一数字序列包含的数字进行运算,得到目标数值的方法相同。例如,在区块链节点装置将第一数字序列包含的数字相加,得到目标数值的方案中,第一数字序列为“3,9,8”,目标数值为“20”,第三数字序列为“9,9,9”,区块链节点装置将第三数字序列包含的数字相加,得到“9+9+9”,最终结果为“27”,区块链节点装置将第三数字序列“9,9,9”包含的数字相加,得到第一阈值“27”。又如,在区块链节点装置将第一数字序列包含的数字合并,得到目标数值的方案中,第一数字序列为“3,8,7”,目标数值为“387”,第三数字序列为“8,8,8”,区块链节点装置将第三数字序列包含的数字合并,得到“8×100+8×10+8×1”,最终结果为“888”,区块链节点装置将第三数字序列“8,8,8”包含的数字合并,得到目标数值“888”。
通过这种方式,区块链节点装置每获取到一个随机数,都会根据哈希算法计算得到随机数的哈希值,根据美国信息交换标准代码(American Standard Code forInformation Interchange,ASCII)得到哈希值对应的第一数字序列,根据第一数字序列的长度确定第三数字序列,对第一数字序列和第三数字序列包含的数字进行运算,获得与第一数字序列对应的目标数值和与第三数字序列对应的第一阈值。区块链节点装置对每一个获取到的随机数的处理过程都是相同的,对每一个获取到的随机数的处理过程都是透明且不可篡改的,使得区块链节点装置获得与哈希值对应的目标数值和第一阈值的过程更加公平公开。
步骤S308:区块链节点装置根据目标数值和第一阈值,确定随机数对应的事件获取结果。
步骤S309:区块链节点装置将事件获取结果发送至客户端。
本发明实施例中步骤S308、S309的执行过程与图2所示实施例中步骤S208、S209相同,具体执行过程可参见图2中步骤S208、S209的具体描述,本发明实施例不再赘述。
基于上述对随机数的处理方法实施例的描述,请参见图4,图4是本发明实施例提供的一种区块链节点装置的结构示意图,该区块链节点装置40可用于执行图2、图3对应的方法实施例中区块链节点装置所执行的步骤,该区块链节点装置40可包括:
获取单元401,用于响应于客户端的事件获取请求,获取随机数,所述随机数是区块链节点装置所属区块链网络中的目标区块链节点装置生成的;
计算单元402,用于对随机数进行哈希计算,获得随机数对应的哈希值;
转换单元403,用于对哈希值进行转换,获得哈希值对应的目标数值和第一阈值;
确定单元404,用于根据目标数值和第一阈值,确定随机数对应的事件获取结果;
发送单元405,用于将事件获取结果发送至客户端。
在一种实现方式中,该区块链节点装置40还可以包括:
获取单元401,还用于获取事件集群;
获取单元401,还用于获取更新后的事件集群;
生成单元406,用于根据第一阈值和事件集群中各个事件的权重,生成事件集群中各个事件对应的数值区间;
生成单元406,还用于根据第一阈值和更新后的事件集群中各个事件的权重,生成更新后的事件集群中各个事件对应的数值区间。
在一种实现方式中,该区块链节点装置40还可以包括:
接收单元407,用于接收来自客户端的事件获取请求;
生成单元406,还用于根据事件获取请求生成随机数。
需要说明的是,图4对应的实施例中未提及的内容以及各个单元执行步骤的具体实现方式可参见图2、图3所示实施例以及前述内容,这里不再赘述。
在一种实现方式中,图4中的各个单元所实现的相关功能可以结合处理器与通信接口来实现。参见图5,图5是本发明实施例提供的一种区块链节点装置的结构示意图,该区块链节点装置50包括处理器501、存储器502、通信接口503,所述处理器501、所述存储器502、所述通信接口503通过一条或多条通信总线连接。
处理器501被配置为支持区块链节点装置执行如图2、图3所述的对随机数的处理方法中区块链节点装置相应的功能,该处理器501可以是中央处理器(Central ProcessingUnit,CPU),网络处理器(Network Processor,NP),硬件芯片或者其任意组合。
存储器502用于存储程序代码等。存储器502可以包括易失性存储器(volatilememory),例如随机存取存储器(Random Access Memory,RAM);存储器502也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器502还可以包括上述种类的存储器的组合。
通信接口503用于接收和发送数据,例如,通信接口503用于接收来自客户端的事件获取请求,或者通信接口503用将事件获取结果发送至客户端等。
在本发明实施例中,该信息管理装置50包括多个通信接口,其中,用于发送数据的通信接口和用于接收数据的通信接口可以不为同一个通信接口。
处理器501可以调用存储器502中存储的程序代码以执行以下操作:
响应于客户端的事件获取请求,获取随机数,所述随机数是区块链节点装置所属区块链网络中的目标区块链节点装置生成的;
对随机数进行哈希计算,获得随机数的哈希值;
对哈希值进行转换,获得哈希值对应的目标数值和第一阈值;
根据目标数值和第一阈值,确定随机数对应的事件获取结果;
通过通信接口503将事件获取结果发送至客户端。
进一步地,处理器501还可以与通信接口503相配合,执行图2、图3所示实施例中区块链节点装置对应的操作,具体可参见方法实施例中的描述,在此不再赘述。
在本发明实施例中还提供一种芯片,包括处理器和存储器,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,该计算机程序用于实现上述方法实施例中的方法。
本领域普通技术人员可以意识到,结合本申请中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
以上所揭露的仅为本发明的部分实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (7)
1.一种对随机数的处理方法,其特征在于,所述方法应用于区块链节点装置,所述方法包括:
响应于客户端的事件获取请求,获取随机数,所述随机数是所述区块链节点装置所属区块链网络中的目标区块链节点装置生成的;
对所述随机数进行哈希计算,获得所述随机数的哈希值;
对所述哈希值进行转换,获得所述哈希值对应的目标数值和第一阈值;
根据所述第一阈值和待获取的事件集群中各个事件的权重,生成所述事件集群中各个事件对应的数值区间;在生成得到的数值区间中确定所述目标数值所属的目标数值区间;根据所述目标数值区间生成事件获取结果,所述事件获取结果用于指示所述客户端获得所述目标数值区间对应的事件;
将所述事件获取结果发送至所述客户端;
其中,对所述哈希值进行转换,获得所述哈希值对应的目标数值和第一阈值的方式,包括:
将所述哈希值转换为第一数字序列;根据所述第一数字序列的长度,得到所述第一阈值;根据二进制转换算法,将所述第一数字序列中的每一位数字进行进制转换,得到第二数字序列;根据十进制转换算法,将所述第二数字序列转换为所述目标数值;
或者,将所述哈希值转换为第一数字序列;对所述第一数字序列包含的数字进行运算,得到所述目标数值;根据所述第一数字序列的长度,确定第三数字序列,所述第三数字序列的长度和所述第一数字序列的长度相同,且所述第三数字序列中的每一位数字均为预设阈值;对所述第三数字序列包含的数字进行运算,得到所述第一阈值。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一阈值和待获取的事件集群中各个事件的权重,生成所述事件集群中各个事件对应的数值区间,包括:
获取所述事件集群,所述事件集群中包括多个事件及各事件的权重;
按照所述各事件的权重对所述第一阈值进行划分,得到所述事件集群中各个事件对应的数值区间;
其中,一个事件对应一个数值区间,不同事件对应不同的数值区间,各个数值区间的最大值均小于或等于所述第一阈值。
3.根据权利要求1所述的方法,其特征在于,所述在生成得到的数值区间中确定所述目标数值所属的目标数值区间之前,所述方法还包括:
获取更新后的事件集群,所述更新后的事件集群包括多个更新后的事件及各更新后的事件的权重;
根据所述第一阈值和所述更新后的事件集群中各个事件的权重,生成所述更新后的事件集群中各个事件对应的数值区间;
所述在生成得到的数值区间中确定所述目标数值所属的目标数值区间,包括:
在更新后的数值区间中确定所述目标数值所属的目标数值区间。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一数字序列的长度,得到所述第一阈值,包括:
根据所述第一数字序列的长度,确定第三数字序列,所述第三数字序列的长度和所述第一数字序列的长度相同,且所述第三数字序列中的每一位数字均为预设阈值;
根据所述二进制转换算法,将所述第三数字序列中的每一位数字进行进制转换,得到第四数字序列;
根据所述十进制转换算法,将所述第四数字序列转换为所述第一阈值。
5.一种区块链节点装置,其特征在于,包括:
获取单元,用于响应于客户端的事件获取请求,获取随机数,所述随机数是所述区块链节点装置所属区块链网络中的目标区块链节点装置生成的;
计算单元,用于对所述随机数进行哈希计算,获得所述随机数的哈希值;
转换单元,用于对所述哈希值进行转换,获得所述哈希值对应的目标数值和第一阈值;
确定单元,用于根据所述第一阈值和待获取的事件集群中各个事件的权重,生成所述事件集群中各个事件对应的数值区间;在生成得到的数值区间中确定所述目标数值所属的目标数值区间;根据所述目标数值区间生成事件获取结果,所述事件获取结果用于指示所述客户端获得所述目标数值区间对应的事件;
发送单元,用于将所述事件获取结果发送至所述客户端;
其中,对所述哈希值进行转换,获得所述哈希值对应的目标数值和第一阈值的方式,包括:
将所述哈希值转换为第一数字序列;根据所述第一数字序列的长度,得到所述第一阈值;根据二进制转换算法,将所述第一数字序列中的每一位数字进行进制转换,得到第二数字序列;根据十进制转换算法,将所述第二数字序列转换为所述目标数值;
或者,用于将所述哈希值转换为第一数字序列;对所述第一数字序列包含的数字进行运算,得到所述目标数值;根据所述第一数字序列的长度,确定第三数字序列,所述第三数字序列的长度和所述第一数字序列的长度相同,且所述第三数字序列中的每一位数字均为预设阈值;对所述第三数字序列包含的数字进行运算,得到所述第一阈值。
6.一种区块链节点装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,调用所述存储器中的所述计算机程序,用于执行如权利要求1-4任一项所述的对随机数的处理方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-4任一项所述的对随机数的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910930049.XA CN110601819B (zh) | 2019-09-26 | 2019-09-26 | 一种对随机数的处理方法、区块链节点装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910930049.XA CN110601819B (zh) | 2019-09-26 | 2019-09-26 | 一种对随机数的处理方法、区块链节点装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110601819A CN110601819A (zh) | 2019-12-20 |
CN110601819B true CN110601819B (zh) | 2023-02-14 |
Family
ID=68864528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910930049.XA Active CN110601819B (zh) | 2019-09-26 | 2019-09-26 | 一种对随机数的处理方法、区块链节点装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110601819B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259428A (zh) * | 2020-01-22 | 2020-06-09 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、节点设备及存储介质 |
CN111429186A (zh) * | 2020-04-08 | 2020-07-17 | 杭州左链科技有限公司 | 锦鲤抽奖激励方法、设备和存储介质 |
CN111586013B (zh) * | 2020-04-29 | 2022-02-22 | 数网金融有限公司 | 网络入侵检测方法、装置、节点终端及存储介质 |
CN112751846B (zh) * | 2020-12-28 | 2022-09-06 | 杭州趣链科技有限公司 | 基于区块链的电子游戏随机奖励控制方法、装置及设备 |
CN115206018B (zh) * | 2022-06-16 | 2024-07-02 | 湖南天河国云科技有限公司 | 基于区块链预言机的抽奖方法和抽奖设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018104728A1 (en) * | 2016-12-05 | 2018-06-14 | Quanta Technology Ltd | Random number generation |
CN110135909A (zh) * | 2019-05-15 | 2019-08-16 | 山东工商学院 | 基于零知识证明的数据处理方法、***、设备及存储介质 |
CN110164021A (zh) * | 2019-06-13 | 2019-08-23 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的随机抽奖方法及设备 |
CN110189465A (zh) * | 2019-06-13 | 2019-08-30 | 北京艾摩瑞策科技有限公司 | 一种借助于区块链的随机抽奖方法及其设备 |
CN110223436A (zh) * | 2019-06-13 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的彩票随机出号方法及设备 |
-
2019
- 2019-09-26 CN CN201910930049.XA patent/CN110601819B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018104728A1 (en) * | 2016-12-05 | 2018-06-14 | Quanta Technology Ltd | Random number generation |
CN110135909A (zh) * | 2019-05-15 | 2019-08-16 | 山东工商学院 | 基于零知识证明的数据处理方法、***、设备及存储介质 |
CN110164021A (zh) * | 2019-06-13 | 2019-08-23 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的随机抽奖方法及设备 |
CN110189465A (zh) * | 2019-06-13 | 2019-08-30 | 北京艾摩瑞策科技有限公司 | 一种借助于区块链的随机抽奖方法及其设备 |
CN110223436A (zh) * | 2019-06-13 | 2019-09-10 | 北京艾摩瑞策科技有限公司 | 一种应用区块链的彩票随机出号方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110601819A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110601819B (zh) | 一种对随机数的处理方法、区块链节点装置及存储介质 | |
CN109558748B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US10547618B2 (en) | Method and apparatus for setting access privilege, server and storage medium | |
CN108667717B (zh) | 基于即时通信消息记录的区块链处理方法、介质、装置和计算设备 | |
CN112751729A (zh) | 日志监控方法、装置、介质及电子设备 | |
CN112380464B (zh) | 一种短链接生成方法以及相关设备 | |
CN110247753B (zh) | 基于区块链节点网络的出块方法及装置 | |
CN111885050A (zh) | 基于区块链网络的数据存储方法、装置、相关设备及介质 | |
CN108335208B (zh) | 用于处理信息的方法和装置 | |
CN110851535A (zh) | 基于区块链的数据处理方法、装置、存储介质及终端 | |
CN112631924A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN112348596A (zh) | 基于区块链的投标报价方法、***、设备及存储介质 | |
CN111367923A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN112182109A (zh) | 基于区块链的分布式数据编码存储方法和电子设备 | |
CN111340574B (zh) | 风险用户的识别方法、装置和电子设备 | |
CN110930253B (zh) | 智能合约内部主键生成方法、装置、计算机设备及存储介质 | |
CN110458566B (zh) | 一种区块链的账户地址生成方法、***、装置及计算机可读存储介质 | |
US20220114276A1 (en) | Controlling a data network with respect to a use of a distributed database | |
CN112783500B (zh) | 编译优化信息生成方法、装置及电子设备 | |
CN111324645A (zh) | 区块链的数据处理方法及装置 | |
CN110659900B (zh) | 无应用支付方法、装置、介质及电子设备 | |
CN112002352B (zh) | 随机播放音乐方法、装置、计算机设备及存储介质 | |
CN110880974B (zh) | 一种基于区块链网络的数据通信方法和装置 | |
CN112883301A (zh) | 基于55进制的短链接生成方法、装置及存储介质 | |
CN113872753B (zh) | 基于sha256序列形式的数据的加密传输方法和装置 |
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 |