I think it skipped a nonce.
This definitely looks very suspicious, so I think I owe it to everyone with a full technical explanation. However, this is actually the system working properly to protect players (and myself) in the event of a server-crash or something similar. Firstly this is something I monitor and was made immediately aware of:
...in the code---
Ok, so the first thing is the server does is
generate a random seed and random game crash.
Then this is
inserted into the database, with a boolean `ended=false` -- which is to tell the server the game has not finished, and to never reveal the seed or game crash (otherwise people could cheat the system). Once this game is safely inserted and replicated, the server begins the count down,
telling the client the hash of the seed and now allowing it to join the game.
During the joining period, the server allows people to join the game -- saving the data in the database. When the joining period is over, the server pauses to ensure everyones joining information is safely committed and replicated -- and then the actual game begins.
Under normal operation, people would perhaps cash out (which is recorded in the database) and eventually the game would end. If everything went fine, the server adds all the bonuses and
marks the game as fully terminatedBy marking the game as ended, in the public statistics the game crash (and seed) are allowed to be revealed.
---
In this case, the game was never marked as ended -- so it's left in a state for me to manually review and resolve. The whole reason for this two-phase system, is to protect players in the case of a server or database problem -- and to protect me if someone finds a way to interrupt the server or database during a game.
I still need to go through the logs and try find out what happened to the server or database, but here's how I resolved the issue:
Note: game crash of 171 doesn't mean 171x but means 1.71x
And here is everyones play:
Note: 'bet' is in satoshis
Not2: there was not a single cash_out -- this indicates there was a server/database problem very early in the game
And here's how I'm resolving the game:
Note: Depending on game, I can't always afford to err so far in the favor of players (in this case, I just made the assumption they all cashed out at the max possible) -- but I always try do the right thing by players.
Now I need to see what the problem was =)