Skip to content

LBank-exchange/Apollo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

验证方法指引

  1. 抽签算法采用Go语言编写,可自行编译LBKLotteryMachine.go后运行。

  2. Mac平台用户可以下载可执行文件LBKLotteryMachine,双击后运行

  3. Windows平台用户可以下载可执行文件LBKLotteryMachine.exe,首先运行cmd控制台,在控制台运行此文件。

  4. 根据控制台提示,依次输入TotalParticipants(总参与签数),TotalWinners(可中奖签数),RandomSeedHex(以太坊Block的Hash值),程序会根据以上三个参数,列出所有可中奖的签数。

随机算法规则

  1. 开奖算法输入:本期活动的总参与签数M、可中奖签数N、随机数R。
  2. 算法输出:N个不重复的1到M的奖号集合。
  3. 开奖程序多次运行子程序,子程序每次运行得到一个之前未出现的中奖号码,直到最终得到N个1到M的不同中奖号码。
  4. 子程序所用的随机数为售卖结束之后的第一个以太坊区块Hash值。nonce值起始为0,子程序每运行一次,nonce值加一。
  5. 子程序每次运行结果由本期的随机数R与当前nonce值唯一确定,运行结果是1到M之间的整数。
  6. 如果子程序的某次运行得出的号码已经在中奖池中出现,那么将当前nonce值加一后再次运行子程序,直到得到一个未重复的号码。
  7. 子程序取随机数和当前nonce值作为输入运行。将随机数和当前nonce作字符链接后作SHA256运算,取运算结果的低k位十进制字符,k是本期发放的奖券总数M的十进制位数。例如共有M=55218张奖卷,那么k=5,随机数和当前nonce作字符链接后作SHA256运算的结果为0x.....d508c11427c4b7a4dcb5d01ea1fa,取45011为本次子程序运行的输出结果。
  8. 如果子程序运行结果大于本期发放的奖券总数M或等于0,那么本次运行结果无效,不采用本次结果,nonce值加一后再次运行子程序,直到子程序运行得到一个有效结果。例如共有M=55218张奖卷,子程序某次运行,随机数和当前nonce作字符链接后作SHA256运算的结果为0x......9815fa37a6acc96a193eed3e7c7003744a04,得到的号码74404,超过M=55218,将被舍弃。当前nonce值加一,再次运行子程序。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages