运作原理

每个结果由三个输入组成:我们的服务器种子、您的客户端种子和 nonce。游标让一笔投注可以使用超过 32 个字节,用于需要很多数字的游戏(扫雷、基诺、弹珠、纸牌)。

  • 服务器种子

    由我们生成。投注前您能看到它的 sha256 哈希,轮换后能看到种子本身。

  • 客户端种子

    由您或您的浏览器生成。可随时在公平设置中更改。

  • Nonce

    每个种子对从 0 开始,每投注一次加 1。

  • 游标

    从 0 开始。一笔投注每多需要 32 个字节,游标加 1。

由种子得到字节

function* bytes({ serverSeed, clientSeed, nonce, cursor }) {  let round = Math.floor(cursor / 32), i = cursor - round * 32;  while (true) {    const hash = hmacSha256(serverSeed, `${clientSeed}:${nonce}:${round}`);    for (; i < 32; i++) yield hash[i];    round++; i = 0;  }}

字节转为浮点数

// 4 个字节组成一个 0 到 1 之间的浮点数float = b0 / 256 + b1 / 256^2 + b2 / 256^3 + b3 / 256^4