一种报名摇号方法、装置、系统、计算机设备及存储介质与流程



1.本发明属于互联网技术领域,具体涉及一种报名摇号方法、装置、系统、计算机设备及存储介质。


背景技术:



2.摇号系统的应用场景十分广泛,如购房选房摇号、小学入学抽签、车牌指标摇号和现场活动抽奖等。摇号的一般方法是先让摇号申请方报名预约,再在统一的时间内,使用摇号发起方提供的工具参与摇号。由于在现有的摇号系统设计中,摇号全过程由摇号发起方控制,使得其受到来自摇号发起方的人为因素的影响较大,进而存在现有报名摇号系统难以阻止摇号发起方作弊的问题。


技术实现要素:



3.本发明的目的是提供一种报名摇号方法、装置、系统、计算机设备及计算机可读存储介质,用以解决现有的报名摇号系统存在难以阻止摇号发起方作弊的问题。
4.为了实现上述目的,本发明采用以下技术方案:
5.获取报名用户的报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
6.将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
7.在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子;
8.将所述第一随机种子和所述第二随机种子拼接成第三随机种子;
9.通过m次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,其中,m为正整数,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
10.再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数;
11.根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
12.基于上述发明内容,提供了一种结合区块链技术的报名摇号新方案,即在收到报名用户的且包含有摇号影响数据的报名信息后,将所述报名信息添加到区块链中,然后在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子,再然后将所述第一随机种子和所述第二随机种子拼接成第三随机种子,最后使用所述第三随机种子为多个报名用户生成一一对应的多个随机数以及从所述多个随机数中随机选出至少一个摇中随机数,得到摇号结果,如此可使得各个报名用
户能够通过对应报名信息中的摇号影响数据来影响区块链哈希值及最终随机种子的生成,进而可影响最终的摇号结果,有效阻止摇号发起方作弊,使整个报名摇号过程更公开、公平和公正,增加了用户参与体验。
13.在一个可能的设计中,当所述报名信息还包含有所述报名用户的用户唯一标识时,将所述报名信息添加到区块链中,包括:
14.遍历各个已上链报名信息,若发现某个所述已上链报名信息包含有所述用户唯一标识,则向所述报名用户反馈重复报名提醒信息,其中,所述已上链报名信息是指已被添加到区块链中的报名信息;
15.在遍历所述各个已上链报名信息后,若发现所述各个已上链报名信息均未包含有所述用户唯一标识,则将所述报名信息添加到所述区块链中。
16.在一个可能的设计中,当所述报名信息还包含有所述报名用户的报名资格待审内容时,将所述报名信息添加到所述区块链中,包括:
17.判断所述报名资格待审内容是否满足预设的报名资格条件;
18.若是,则将所述报名信息添加到所述区块链中,否则向所述报名用户反馈审核不合格提醒信息。
19.在一个可能的设计中,通过m次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,包括:
20.在第一摇号时刻,使用所述第三随机种子和与所述第一摇号时刻对应的时间戳信息作为随机种子,随机生成与多个报名用户一一对应的多个随机序号,其中,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
21.在第二摇号时刻,针对所述多个随机序号中的各个随机序号,使用对应的序号数值、所述第三随机种子和与所述第二摇号时刻对应的时间戳信息作为随机种子,随机生成对应的随机数;
22.汇总所有的随机数,得到与所述多个报名用户一一对应的多个随机数。
23.在一个可能的设计中,所述方法还包括:
24.在为多个报名用户生成一一对应的多个随机数之后,向所述报名用户实时反馈所述多个报名用户与所述多个随机数的一一对应关系;
25.在从所述多个随机数中随机选出至少一个摇中随机数之后,向所述报名用户实时反馈全部的所述摇中随机数;
26.在得到摇号结果之后,向所述报名用户实时反馈所述摇号结果。
27.第二方面,提供了一种报名摇号装置,用于布置在服务器侧,包括有依次通信连接的信息获取模块、信息上链模块、种子获取模块、种子拼接模块、随机处理模块和摇号结果确定模块;
28.所述信息获取模块,用于获取报名用户的报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
29.所述信息上链模块,用于将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
30.所述种子获取模块,用于在摇号启动时将所述区块链中尾端区块的哈希值作为第
一随机种子,以及获取由人工输入的或随机生成的第二随机种子;
31.所述种子拼接模块,用于将所述第一随机种子和所述第二随机种子拼接成第三随机种子;
32.所述随机处理模块,用于先通过m次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,然后再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数,其中,m为正整数,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
33.所述摇号结果确定模块,用于根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
34.第三方面,提供了一种报名摇号系统,包括有通过互联网络通信相连的报名终端、报名服务器、第一摇号服务器和第二摇号服务器,其中,所述报名服务器、所述第一摇号服务器和所述第二摇号服务器分别为独立的物理服务器;
35.所述报名终端,用于将报名用户的报名信息上传至所述报名服务器,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
36.所述报名服务器,用于将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
37.所述第一摇号服务器,用于在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或由所述报名服务器随机生成的第二随机种子,然后将所述第一随机种子和所述第二随机种子拼接成第三随机种子,最后通过m次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,并将所述第三随机种子和所述多个随机数传送至所述第二摇号服务器,其中,m为正整数,所述m次使用所述第三随机种子的各次执行主体分别为不同的所述第一摇号服务器,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
38.所述第二摇号服务器,用于再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数;
39.所述报名服务器或所述第二摇号服务器,还用于根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
40.在一个可能的设计中,将报名用户的报名信息上传至所述报名服务器,包括:
41.采用内容分发网络cdn缓存机制缓存报名用户的报名信息,然后使用消息队列向所述报名服务器发送所述报名信息,直到成功发送所述报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据。
42.第四方面,提供了一种计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面或第一方面中任意可能设计所述的报名摇号方法。
43.第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面或第一方面中任意可能设计所述的报名摇号方法。
44.第六方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面或第一方面中任意可能设计所述的报名摇号方法。
45.上述方案的有益效果:
46.(1)本发明创造性提供了一种结合区块链技术的报名摇号新方案,即在收到报名用户的且包含有摇号影响数据的报名信息后,将所述报名信息添加到区块链中,然后在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子,再然后将所述第一随机种子和所述第二随机种子拼接成第三随机种子,最后使用所述第三随机种子为多个报名用户生成一一对应的多个随机数以及从所述多个随机数中随机选出至少一个摇中随机数,得到摇号结果,如此可使得各个报名用户能够通过对应报名信息中的摇号影响数据来影响区块链哈希值及最终随机种子的生成,进而可影响最终的摇号结果,有效阻止摇号发起方作弊,使整个报名摇号过程更公开、公平和公正,增加了用户参与体验;
47.(2)在生成多个随机数及随机选号的过程中,每次使用第三随机种子的主体可为不同的摇号服务器,以便用多个独立的物理服务器级联地进行随机操作,提升摇号随机性,以及实现对参与者进行暗文摇号的目的;
48.(3)还可具有防止篡改、过程可复现和过程可追溯等特点,便于实际应用和推广。
附图说明
49.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1为本技术实施例提供的报名摇号方法的流程示意图。
51.图2为本技术实施例提供的区块链的结构示意图。
52.图3为本技术实施例提供的在将信息添加到区块链过程中进行防重复报名及资格审核的流程示意图。
53.图4为本技术实施例提供的进行随机数生成的流程示意图。
54.图5为本技术实施例提供的报名摇号过程信息的展示举例图。
55.图6为本技术实施例提供的报名摇号装置的结构示意图。
56.图7为本技术实施例提供的报名摇号系统的结构示意图。
57.图8为本技术实施例提供的计算机设备的结构示意图。
具体实施方式
58.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将结合附图和实施例或现有技术的描述对本发明作简单地介绍,显而易见地,下面关于附图结构的描述仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。
59.应当理解,尽管本文可能使用术语第一和第二等等来描述各种对象,但是这些对
象不应当受到这些术语的限制。这些术语仅用于区分一个对象和另一个对象。例如可以将第一对象称作第二对象,并且类似地可以将第二对象称作第一对象,同时不脱离本发明的示例实施例的范围。
60.应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a、单独存在b或者同时存在a和b等三种情况;又例如,a、b和/或c,可以表示存在a、b和c中的任意一种或他们的任意组合;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,a/和b,可以表示:单独存在a或者同时存在a和b等两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
61.实施例:
62.如图1所示,本实施例第一方面提供的所述报名摇号方法,可以但不限于由具有一定计算资源的且通信连接报名终端(例如智能手机、平板电脑或台式电脑等)的计算机设备执行,例如由平台服务器或个人计算机(personal computer,pc,指一种大小、价格和性能适用于个人使用的多用途计算机;台式机、笔记本电脑到小型笔记本电脑和平板电脑以及超级本等都属于个人计算机)等电子设备执行。如图1所示,所述报名摇号方法,由服务器侧执行,可以但不限于包括有如下步骤s1~s7。
63.s1.获取报名用户的报名信息,其中,所述报名信息包含但不限于有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据。
64.在所述步骤s1中,所述报名信息可由所述报名用户通过人工操作所述报名终端,在所述报名终端上生成并上传至本地服务器。所述摇号影响数据用于作为所述报名用户的摇号参与因子影响后续的摇号过程,其可以由所述报名用户手动输入得到,也可以通过某种现有随机算法为所述报名用户随机生成得到;为了确保各个报名用户的摇号影响数据具有绝对的同等摇号影响程度,不同报名用户的所述摇号影响数据优选具有相同的数据长度,例如都由8个字符(包括数字、字母和/或其它特殊符号等)组成。除了所述摇号影响数据,所述报名信息还可以但不限于包含有所述报名用户的用户唯一标识(例如身份证号码)以及报名资格待审内容(例如家庭住址、年龄和健康证明等,内容形式可以但不限于是文字、图像或音视频等)等。
65.s2.将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块。
66.在所述步骤s2中,所述区块链的结构可如图2所示,其中,所述区块链的首个区块可以为不包含任何信息的空区块。此外,考虑所有的用户唯一标识具有相同长度,而不同的报名资格待审内容具有不同长度,因此为了确保各个报名用户在后续摇号过程中具有绝对的同等摇号影响程度,可在信息上链时,将剔除报名资格待审内容的所述报名信息添加到区块链中。
67.在所述步骤s2中,当所述报名信息还包含有所述报名用户的用户唯一标识时,优选的,将所述报名信息添加到区块链中,包括但不限于有如下步骤s21~s22:s21.遍历各个已上链报名信息,若发现某个所述已上链报名信息包含有所述用户唯一标识,则向所述报名用户反馈重复报名提醒信息,其中,所述已上链报名信息是指已被添加到区块链中的报
名信息;s22.在遍历所述各个已上链报名信息后,若发现所述各个已上链报名信息均未包含有所述用户唯一标识,则将所述报名信息添加到所述区块链中。如图3所示,所述重复报名提醒信息可以通过传送至所述报名终端实现向所述报名用户反馈的目的。通过前述方式,可以实现报名去重目的,避免同一报名用户多次报名参与摇号。
68.在所述步骤s2中,当所述报名信息还包含有所述报名用户的报名资格待审内容时,优选的,将所述报名信息添加到所述区块链中,包括但不限于有如下步骤s221~s222:s221.判断所述报名资格待审内容是否满足预设的报名资格条件;s222.若是,则将所述报名信息添加到所述区块链中,否则向所述报名用户反馈审核不合格提醒信息。如图3所示,所述审核不合格提醒信息同样可以通过传送至所述报名终端实现向所述报名用户反馈的目的。通过前述方式,可以确保仅具有摇号资格的报名用户才能参与后续的摇号。此外,在将所述报名信息添加到所述区块链中之后,还可向所述报名用户反馈报名成功信息,也即将所述报名成功信息传送至所述报名终端。
69.s3.在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子。
70.在所述步骤s3中,由于所述尾端区块的哈希值是基于所有所述已上链报名信息而得,因此也是所有报名用户的摇号参与因子总和,以便作为所述第一随机种子。所述第二随机种子需要与所述第一随机种子无任何关联,因此可以人工输入的得到(例如由摇号发起方输入得到)或通过某种现有随机算法随机生成得到。
71.s4.将所述第一随机种子和所述第二随机种子拼接成第三随机种子。
72.在所述步骤s4中,可以前后依次拼接,也可以间错拼接。
73.s5.通过m次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,其中,m为正整数,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户。
74.在所述步骤s5中,所述第三随机种子的多次使用是为了提升所述多个随机数的随机性,即m数值越大,随机性越高,具体的,如图4所示,通过m次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,包括但不限于有如下步骤s51~s53:s51.在第一摇号时刻,使用所述第三随机种子和与所述第一摇号时刻对应的时间戳信息作为随机种子,随机生成与多个报名用户一一对应的多个随机序号,其中,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;s52.在第二摇号时刻,针对所述多个随机序号中的各个随机序号,使用对应的序号数值、所述第三随机种子和与所述第二摇号时刻对应的时间戳信息作为随机种子,随机生成对应的随机数;s53.汇总所有的随机数,得到与所述多个报名用户一一对应的多个随机数。所述第二摇号时刻晚于所述第一摇号时刻。此外,为了使报名用户能够实时监视摇号过程,优选的,在为多个报名用户生成一一对应的多个随机数之后,向所述报名用户实时反馈所述多个报名用户与所述多个随机数的一一对应关系(例如包含有所述多个报名用户与所述多个随机序号的一一对应关系以及所述多个随机序号与所述多个随机数的一一对应关系,如图5所示),即将所述多个报名用户与所述多个随机数的一一对应关系传送至所述多个报名用户中各个报名用户的所述报名终端。
75.s6.再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随
机数。
76.在所述步骤s6中,具体的随机选出过程可以但不限于有如下方式(a)或方式(b)。
77.(a)在第三摇号时刻,使用所述第三随机种子和与所述第三摇号时刻对应的时间戳信息作为随机种子,随机生成至少一个随机数,然后针对所述至少一个随机数中的各个随机数,从所述多个随机数中抽出距离最近的一个随机数作为对应的摇中随机数,从而得到所述至少一个摇中随机数。例如,若所述多个随机数分别为56、78、92和32,在所述第三摇号时刻生成的所述至少一个随机数有88,则可抽取92作为对应的摇中随机数。此外,若发现所述至少一个随机数中的某个随机数有两个在所述多个随机数中的且距离最近的随机数,则需要重新使用所述第三随机种子和新的时间戳信息作为随机种子来生成对应的新随机数,直到该新随机数仅有一个在所述多个随机数中的且距离最近的随机数,以便重新用于抽取。
78.(b)在第三摇号时刻,使用所述第三随机种子和与所述第三摇号时刻对应的时间戳信息作为随机种子,随机生成至少一个随机数,然后对所述多个随机数进行轮番检索计数,并针对所述至少一个随机数中的各个随机数,将在轮番检索计算值等于对应随机数时的且在所述多个随机数中的随机数作为对应的摇中随机数,从而得到所述至少一个摇中随机数。例如,所述多个随机数依次包括有21、35、9、60、45、77、99、7、11和83,在所述第三摇号时刻生成的所述至少一个随机数有15,则轮番的数21、35、9、60、45、77、99、7、11和83这十个数,并在第一圈数到10后,再重新数21、35、9、60、45、77、99、7、11和83这十个数,当数到45时有轮番检索计算值等于15,则可将45作为与15对应的摇中随机数。
79.在所述步骤s6中,所述第三摇号时刻晚于所述第二摇号时刻;所述至少一个随机数的生成所需随机算法同样为现有算法。此外,为了使报名用户能够实时监视摇号过程,优选的,在从所述多个随机数中随机选出至少一个摇中随机数之后,向所述报名用户实时反馈全部的所述摇中随机数,如图5所示。
80.s7.根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
81.在所述步骤s7中,为了使报名用户能够实时监视摇号过程,优选的,在得到摇号结果之后,向所述报名用户实时反馈所述摇号结果,以便通过所述报名终端进行如图5所示的信息展示。此外,为了便于历史追溯,可在得到所述摇号结果时记录相关的摇号时间戳(例如与所述第一摇号时刻对应的时间戳信息、与所述第二摇号时刻对应的时间戳信息和与所述第三摇号时刻对应的时间戳信息,等等),并对该摇号时间戳和所述摇号结果进行绑定存储。
82.由此基于前述步骤s1~s7所描述的报名摇号方法,提供了一种结合区块链技术的报名摇号新方案,即在收到报名用户的且包含有摇号影响数据的报名信息后,将所述报名信息添加到区块链中,然后在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子,再然后将所述第一随机种子和所述第二随机种子拼接成第三随机种子,最后使用所述第三随机种子为多个报名用户生成一一对应的多个随机数以及从所述多个随机数中随机选出至少一个摇中随机数,得到摇号结果,如此可使得各个报名用户能够通过对应报名信息中的摇号影响数据来影响区块链哈希值及最终随机种子的生成,进而可影响最终的摇号结果,有效阻止摇号发起方作弊,使整
个报名摇号过程更公开、公平和公正,增加了用户参与体验。此外,还可具有防止篡改、过程可复现和过程可追溯等特点,便于实际应用和推广。
83.如图6所示,本实施例第二方面提供了一种实现第一方面所述的报名摇号方法的虚拟装置,用于布置在服务器侧,包括有依次通信连接的信息获取模块、信息上链模块、种子获取模块、种子拼接模块、随机处理模块和摇号结果确定模块;
84.所述信息获取模块,用于获取报名用户的报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
85.所述信息上链模块,用于将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
86.所述种子获取模块,用于在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子;
87.所述种子拼接模块,用于将所述第一随机种子和所述第二随机种子拼接成第三随机种子;
88.所述随机处理模块,用于先通过m次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,然后再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数,其中,m为正整数,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
89.所述摇号结果确定模块,用于根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
90.本实施例第二方面提供的前述装置的工作过程、工作细节和技术效果,可以参见第一方面所述的报名摇号方法,于此不再赘述。
91.如图7所示,本实施例第三方面提供了一种实现第一方面所述的报名摇号方法的实体系统,包括有通过互联网络通信相连的报名终端、报名服务器、第一摇号服务器和第二摇号服务器,其中,所述报名服务器、所述第一摇号服务器和所述第二摇号服务器分别为独立的物理服务器;
92.所述报名终端,用于将报名用户的报名信息上传至所述报名服务器,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;
93.所述报名服务器,用于将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;
94.所述第一摇号服务器,用于在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或由所述报名服务器随机生成的第二随机种子,然后将所述第一随机种子和所述第二随机种子拼接成第三随机种子,最后通过m次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,并将所述第三随机种子和所述多个随机数传送至所述第二摇号服务器,其中,m为正整数,所述m次使用所述第三随机种子的各次执行主体分别为不同的所述第一摇号服务器,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;
95.所述第二摇号服务器,用于再次使用所述第三随机种子,从所述多个随机数中随
机选出至少一个摇中随机数;
96.所述报名服务器或所述第二摇号服务器,还用于根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。
97.在一个可能的设计中,为了避免因多个所述报名终端在同一时间上传报名信息而导致出现通信拥堵问题,优选的,将报名用户的报名信息上传至所述报名服务器,包括但限于有:采用内容分发网络cdn(content delivery network)缓存机制缓存报名用户的报名信息,然后使用消息队列向所述报名服务器发送所述报名信息,直到成功发送所述报名信息,其中,所述报名信息包含但不限于有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据。
98.本实施例第三方面提供的前述系统的工作过程、工作细节和技术效果,可以参见第一方面所述的报名摇号方法,于此不再赘述。此外,在通过m次使用所述第三随机种子为多个报名用户生成一一对应的多个随机数的过程中,每次使用所述第三随机种子的主体可为不同的所述第一摇号服务器,由此在生成多个随机数及随机选号的过程中,每次使用第三随机种子的主体可为不同的摇号服务器,以便用多个独立的物理服务器级联地进行随机操作,提升摇号随机性,以及实现对参与者进行暗文摇号的目的。
99.如图8所示,本实施例第四方面提供了一种执行如第一方面所述的报名摇号方法的计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面所述的报名摇号方法。具体举例的,所述存储器可以但不限于包括随机存取存储器(random-access memory,ram)、只读存储器(read-only memory,rom)、闪存(flash memory)、先进先出存储器(first input first output,fifo)和/或先进后出存储器(first input last output,filo)等等;所述处理器可以但不限于采用型号为stm32f105系列的微处理器。此外,所述计算机设备还可以但不限于包括有电源模块、显示屏和其它必要的部件。
100.本实施例第四方面提供的前述计算机设备的工作过程、工作细节和技术效果,可以参见第一方面所述的报名摇号方法,于此不再赘述。
101.本实施例第五方面提供了一种存储包含如第一方面所述的报名摇号方法的指令的计算机可读存储介质,即所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面所述的报名摇号方法。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(memory stick)等计算机可读存储介质,所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。
102.本实施例第五方面提供的前述计算机可读存储介质的工作过程、工作细节和技术效果,可以参见如第一方面所述的报名摇号方法,于此不再赘述。
103.本实施例第六方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面所述的报名摇号方法。其中,所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。
104.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明
的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:


1.一种报名摇号方法,其特征在于,由服务器侧执行,包括:获取报名用户的报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子;将所述第一随机种子和所述第二随机种子拼接成第三随机种子;通过m次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,其中,m为正整数,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数;根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。2.如权利要求1所述的报名摇号方法,其特征在于,当所述报名信息还包含有所述报名用户的用户唯一标识时,将所述报名信息添加到区块链中,包括:遍历各个已上链报名信息,若发现某个所述已上链报名信息包含有所述用户唯一标识,则向所述报名用户反馈重复报名提醒信息,其中,所述已上链报名信息是指已被添加到区块链中的报名信息;在遍历所述各个已上链报名信息后,若发现所述各个已上链报名信息均未包含有所述用户唯一标识,则将所述报名信息添加到所述区块链中。3.如权利要求1或2所述的报名摇号方法,其特征在于,当所述报名信息还包含有所述报名用户的报名资格待审内容时,将所述报名信息添加到所述区块链中,包括:判断所述报名资格待审内容是否满足预设的报名资格条件;若是,则将所述报名信息添加到所述区块链中,否则向所述报名用户反馈审核不合格提醒信息。4.如权利要求1所述的报名摇号方法,其特征在于,通过m次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,包括:在第一摇号时刻,使用所述第三随机种子和与所述第一摇号时刻对应的时间戳信息作为随机种子,随机生成与多个报名用户一一对应的多个随机序号,其中,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;在第二摇号时刻,针对所述多个随机序号中的各个随机序号,使用对应的序号数值、所述第三随机种子和与所述第二摇号时刻对应的时间戳信息作为随机种子,随机生成对应的随机数;汇总所有的随机数,得到与所述多个报名用户一一对应的多个随机数。5.如权利要求1所述的报名摇号方法,其特征在于,所述方法还包括:在为多个报名用户生成一一对应的多个随机数之后,向所述报名用户实时反馈所述多个报名用户与所述多个随机数的一一对应关系;
在从所述多个随机数中随机选出至少一个摇中随机数之后,向所述报名用户实时反馈全部的所述摇中随机数;在得到摇号结果之后,向所述报名用户实时反馈所述摇号结果。6.一种报名摇号装置,其特征在于,用于布置在服务器侧,包括有依次通信连接的信息获取模块、信息上链模块、种子获取模块、种子拼接模块、随机处理模块和摇号结果确定模块;所述信息获取模块,用于获取报名用户的报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;所述信息上链模块,用于将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;所述种子获取模块,用于在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子;所述种子拼接模块,用于将所述第一随机种子和所述第二随机种子拼接成第三随机种子;所述随机处理模块,用于先通过m次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,然后再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数,其中,m为正整数,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;所述摇号结果确定模块,用于根据所述多个报名用户与所述多个随机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。7.一种报名摇号系统,其特征在于,包括有通过互联网络通信相连的报名终端、报名服务器、第一摇号服务器和第二摇号服务器,其中,所述报名服务器、所述第一摇号服务器和所述第二摇号服务器分别为独立的物理服务器;所述报名终端,用于将报名用户的报名信息上传至所述报名服务器,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据;所述报名服务器,用于将所述报名信息添加到区块链中,其中,具体包括:先获取区块链中尾端区块的哈希值,然后将该哈希值和所述报名信息添加到一个新区块中,最后将该新区块链接在所述尾端区块之后,以便作为所述区块链中的新尾端区块;所述第一摇号服务器,用于在摇号启动时将所述区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或由所述报名服务器随机生成的第二随机种子,然后将所述第一随机种子和所述第二随机种子拼接成第三随机种子,最后通过m次使用所述第三随机种子,为多个报名用户生成一一对应的多个随机数,并将所述第三随机种子和所述多个随机数传送至所述第二摇号服务器,其中,m为正整数,所述m次使用所述第三随机种子的各次执行主体分别为不同的所述第一摇号服务器,所述多个报名用户是指对应报名信息已被添加到所述区块链中的所有报名用户;所述第二摇号服务器,用于再次使用所述第三随机种子,从所述多个随机数中随机选出至少一个摇中随机数;所述报名服务器或所述第二摇号服务器,还用于根据所述多个报名用户与所述多个随
机数的一一对应关系,确定出与所述至少一个摇中随机数一一对应的至少一个报名用户,得到摇号结果。8.如权利要求7所述的报名摇号系统,其特征在于,将报名用户的报名信息上传至所述报名服务器,包括:采用内容分发网络cdn缓存机制缓存报名用户的报名信息,然后使用消息队列向所述报名服务器发送所述报名信息,直到成功发送所述报名信息,其中,所述报名信息包含有由所述报名用户手动输入的或为所述报名用户随机生成的摇号影响数据。9.一种计算机设备,其特征在于,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如权利要求1~5中任意一项所述的报名摇号方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如权利要求1~5中任意一项所述的报名摇号方法。

技术总结


本发明公开了一种报名摇号方法、装置、系统、计算机设备及存储介质,涉及互联网技术领域。所述方法是将包含有摇号影响数据的报名信息添加到区块链中,然后在摇号启动时将区块链中尾端区块的哈希值作为第一随机种子,以及获取由人工输入的或随机生成的第二随机种子,再然后将两随机种子拼接成第三随机种子,最后使用该随机种子为多个报名用户生成一一对应的多个随机数以及从中随机选出至少一个摇中随机数,得到摇号结果,如此可使得各个报名用户能够通过对应报名信息中的摇号影响数据来影响区块链哈希值及最终随机种子的生成,进而可影响最终的摇号结果,有效阻止摇号发起方作弊,使整个报名摇号过程更公开、公平和公正,增加了用户参与体验。加了用户参与体验。加了用户参与体验。


技术研发人员:

蓝海洋 李红利

受保护的技术使用者:

北京女娲补天科技信息技术有限公司

技术研发日:

2022.08.23

技术公布日:

2022/11/22

本文发布于:2024-09-20 11:35:29,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/279.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   区块   多个   随机数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议