See also: ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2F0mqyu.png&t=663&c=ruxdXr4_mxPcUg)
|
|
|
I had a run of losses, and now my balance has gone all scientific notation: ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FmKc41.png&t=663&c=bB-TVI3HMiyj0A)
|
|
|
Personally I prefer one address for my address book. However having a new address button woul be nice, I think GLBSE does this.
Agreed. A "new address" button gives the best of both worlds.
|
|
|
It's kind of traditional to use a different bitcoin address for each transaction. I've deposited twice and been given the same address to deposit to both times.
I don't care, personally, but maybe some clients would.
|
|
|
I would suspect that if the POST request times out, the browser would prompt you to redo the POST when you try to refresh the page. I know that if you select the URL bar and hit "Enter" it will always to a GET request though.
I hit control-R. Whatever. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Another observation: When the dealer's playing, the slow reveal of the hole card takes longer than his next 3 or 4 cards. So for a while I can see his 1st, 3rd, and 4rd card before I can see the 2nd card. Which is just a bit weird.
|
|
|
There's one other feature that might be useful -- user configurable timeout, so that like 15 minutes of inactivity I need to log back in to play. (optional, of course)
And don't forget that timing me out because I've been sat half-way through a hand for 15-minutes should log me out, but leave me in the same place when I log back in. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Ah - this is because your connection died while it was making a POST request to /table_transfer. And, now that you're trying to reload hte page, it is doing a GET request to /table_transfer, which isn't implemented. I will implement the GET request for this action so that it just does a redirect back to the table.
Sometimes when I reload a page that made a POST request, it re-makes the POST request. Is it only when the POST times out that the reload does a GET?
|
|
|
Probably a silly point, but "lose -2" reads strangely. If I lose -2, don't I win +2?
It should probably read more like "Lose: -2" he wants to tell that hand is a losing hand and the amount taken from your balance. Yes - I think a simple colon after each of the 5 result words would be better. Win: +2 Blackjack: +3 etc.
|
|
|
Probably a silly point, but "lose -2" reads strangely. If I lose -2, don't I win +2? ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2F8dXpW.png&t=663&c=ShYd_ntayhCvIw)
|
|
|
My Internet connection is pretty flaky here. What happens if it goes down for an hour part way through a hand? Can I expect the hand to continue when I get back online?
Funnily enough, my Internet just went down. While it was down, I clicked 'buy in', and eventually got an error page from Chromium. When the connection came back, I refreshed the page, and got: Not Found
The page you were looking for doesn't exist.
You may have mistyped the address or the page may have moved.
The browser's address bar is now showing https://bitzino.com/table_transfer rather than the usual address, but I didn't change it. (So I guess that answers my question!)
|
|
|
Dooglus, and Stephen Gornick - I've added a BTC to your accounts to thank you. Thanks again!
Heh, wow, awesome! Thanks! There's one other feature that might be useful -- user configurable timeout, so that like 15 minutes of inactivity I need to log back in to play. (optional, of course) Thanks for the bitcoin. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) I was wondering about timeouts too. My Internet connection is pretty flaky here. What happens if it goes down for an hour part way through a hand? Can I expect the hand to continue when I get back online? What if I click 'hit', but the connection is down at the time? Will the client deal nicely with not getting a server response and let me try again later? I guess ideally I'd like to be able to have my browser crash part-way through a hand, then log in on a different computer and see the half-finished hand still in play. But maybe that's expecting too much.
|
|
|
I just noticed that whatever the currency unit I set, the withdraw screen is in whole bitcoins. It might make more sense to use the preferred base unit there too (and anywhere else that you show currency values - like in the history of deposits).
|
|
|
I think I will change the rules to allow for both hitting and re-splitting of split aces, which is more fun, and it'll bring the housed edge down to a meager 0.398%.
Wow. You really are open to feedback aren't you! I don't know if you're aware of how big the swings can be in blackjack. Offering a 10 BTC max bet exposes you to the possibility of some pretty big losses if someone plays the max bet and has a good run. Maybe you've considered that and are prepared to lose a lot, but I thought I should mention it. There's probably a reason the other sites offer less than half that as their max bet. I meant to say that it could affect the output as the algorithm runs - ie, it could rely on the state of the deck in order to determine which operations to take in future steps
Oh, I see. The shuffle is applying a permutation to the pre-existing shuffle. The client gets to decide the permutation, but doesn't have any way of knowing the original state, and so can't control the final state. I made a small deposit last night, played a few hands, and withdrew - mostly just to check out how it worked. It all went pretty smoothly, but I had the following comments: * it seems you wait for 7 confirmations before marking my deposit as 'confirmed'? that seems like a lot, but since you allow me to play unconfirmed balances it's not a problem * if I had been able to 'cancel' my withdrawal request, I would have, and would have played more hands. Is there any reason you wouldn't allow players to cancel a pending withdrawal request? Finally, I just noticed a small issue: if I click my name in the top right, select a new 'base currency', click 'update', then click 'back', then the "Welcome to Blackjack!" box in the centre of the page still shows my balance in the old currency units. So if I was in mBTC before, but have less than 1 mBTC left, so I switch to uBTC, I still can't buy in because the buy-in box is still prompting for the number of mBTC to buy-in with. If I click 'leave' in the top right then the currency units update, but that's a workaround I shouldn't have to use.
|
|
|
so it's a 0.66% house edge if you play optimally.
Are you aware that bitjack21 has only a 0.45% edge (they stand on soft 17), and strike sapphire's is only 0.50% (only 6 decks, let you hit split aces, but only split to 2 hands)? I don't know about the other bitcoin blackjack offerings, but both of these have more attractive offerings than bitzino. Yeah, it is somewhat overkill, I agree. I was paranoid that there may be some vulnerability in Mersenne Twister that would cause the algorithm to somehow allow the input to affect the output. Now that I've gotten to know MT a little bit better, I see this is practically not possible given the way the algorithm is written.
Well, the input does affect the output... but like I said, the 2nd shuffle is entirely for the user's protection, not the site's. The additional benefit that the server_seed provides though, is that it's effectively a random salt for the secret.
The thing is, there are about 10^672 (2^2229) shuffles of 8 decks, but only about 10^78 (2^256) different sha256 hashes. So each secret hash corresponds to about 10^594 (2^1973) different shuffles. A rainbow table won't help. Each time I see the same secret (which happens about once every lifetime-of-the-universe), it will correspond to a different shuffle. ie. you really don't need salt in this case, and so can simplify the verification process.
|
|
|
The words "your" and "deposit" overlap, as seen in this screenshot: ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2F8nG6I.png&t=663&c=a5JDPNr8tpUJVg) It's probably got to be a browser bug, since the HTML looks fine. I'm using Chromium 18.0.1025.151 (Developer Build 130497 Linux) Ubuntu 12.04.
|
|
|
As far as the rules, what if both the dealer and the player get blackjack? Perhaps a page with a more complete set of rules would be useful?
Isn't that always a push? What is the hold percentage (house advantage) for this game?
According to http://wizardofodds.com/games/blackjack/calculator/ it's around 0.66%. 8 decks hit soft 17 double after split double any 2 cards resplit to 4 hands can't resplit aces (right?) can't hit split aces only lose original bet to dealer BJ no surrender blackjack pays 3:2
|
|
|
Just in case the Mersenne Twister algorithm has any unknown vulnerabilities, it's better to stay on the safe side, and not let the client directly provide the seed
I don't think this is necessary at all. The Mersenne Twister bit is for the user's safety, not yours. You've already securely shuffled the deck, and are just letting the user "cut" it. Any vulnerability would be equivalent to the player being able to always cut to exactly the 29th card in the deck. It allows him to cut predictably, but doesn't help him win in any way at all since he has no way of knowing the order of the uncut deck. So there's no need for you to provide your own 'server_seed' - just use the client_seed for the 2nd shuffle.
|
|
|
Great that you're using a provably fair shuffle. I found a typo: dive into all the in-depth technical details on our newly launched bitZino TechBlog"Let's reshuffle the deck using the the Fisher-yates shuffle algorithm"
|
|
|
Here are updated stats, along with a graph showing profit over time, along with expected profits given 1.0% and 1.5% house edges. Results: 2012-Jun-29 12:47pm
Address Target Should Win | #Bets | Win | Lose | Refunds | BTC In | BTC Out | Profit | RTP% ----------------------------------------------------------------------------------------------------------------------------------------- 1dice1e6p 1 0.00002 | 5968 | 0 (0.00000) | 5716 | 251 | 20.07 | 0.01 | 20.05 | 0.096 1dice1Qf4 2 0.00003 | 865 | 0 (0.00000) | 798 | 67 | 7.06 | 0.00 | 7.06 | 0.025 1dice2pxm 4 0.00006 | 1372 | 0 (0.00000) | 1342 | 30 | 11.93 | 0.00 | 11.92 | 0.047 1dice2vQo 8 0.00012 | 1087 | 0 (0.00000) | 1051 | 36 | 14.93 | 0.00 | 14.93 | 0.032 1dice2WmR 16 0.00024 | 1335 | 0 (0.00000) | 1308 | 27 | 20.23 | 0.01 | 20.21 | 0.075 1dice2xkj 32 0.00049 | 3067 | 1 (0.00033) | 3055 | 11 | 88.65 | 100.38 | -11.72 | 113.224 1dice2zdo 64 0.00098 | 4425 | 5 (0.00113) | 4403 | 17 | 175.83 | 110.74 | 65.08 | 62.983 1dice37Ee 128 0.00195 | 5739 | 12 (0.00210) | 5702 | 25 | 1087.25 | 1141.67 | -54.42 | 105.006 1dice3jkp 256 0.00391 | 4352 | 19 (0.00438) | 4321 | 12 | 458.06 | 256.56 | 201.50 | 56.010 1dice4J1m 512 0.00781 | 5285 | 32 (0.00606) | 5248 | 5 | 701.77 | 330.41 | 371.35 | 47.083 1dice5wwE 1000 0.01526 | 6367 | 87 (0.01367) | 6277 | 2 | 1257.79 | 655.93 | 601.85 | 52.150 1dice61SN 1500 0.02289 | 5019 | 107 (0.02134) | 4907 | 5 | 1380.24 | 2091.00 | -710.75 | 151.495 1dice6DPt 2000 0.03052 | 5498 | 171 (0.03112) | 5324 | 3 | 1595.74 | 1459.85 | 135.88 | 91.484 1dice6gJg 3000 0.04578 | 5394 | 272 (0.05048) | 5116 | 6 | 3476.60 | 4491.24 | -1014.64 | 129.185 1dice6GV5 4000 0.06104 | 5378 | 333 (0.06195) | 5042 | 3 | 1578.36 | 1378.16 | 200.19 | 87.316 1dice6wBx 6000 0.09155 | 9136 | 856 (0.09373) | 8277 | 3 | 5842.87 | 6421.04 | -578.17 | 109.895 1dice6YgE 8000 0.12207 | 9609 | 1166 (0.12134) | 8443 | 0 | 2813.96 | 2430.33 | 383.62 | 86.367 1dice7EYz 12000 0.18311 | 14200 | 2709 (0.19088) | 11483 | 5 | 5857.29 | 6191.28 | -333.98 | 105.702 1dice7fUk 16000 0.24414 | 35530 | 8609 (0.24235) | 26914 | 5 | 8893.77 | 8541.12 | 352.65 | 96.035 1dice7W2A 24000 0.36621 | 23601 | 8726 (0.37022) | 14844 | 30 | 10701.69 | 10988.45 | -286.76 | 102.680 1dice8EMZ 32000 0.48828 | 266842 | 129874 (0.48693) | 136844 | 117 | 80094.30 | 81849.88 | -1755.57 | 102.192 1dice97EC 32768 0.50000 | 105161 | 52539 (0.49990) | 52561 | 60 | 35780.42 | 35176.72 | 603.69 | 98.313 1dice9wcM 48000 0.73242 | 65717 | 48254 (0.73463) | 17431 | 31 | 37953.57 | 36577.94 | 1375.63 | 96.375 1dice9wVt 64000 0.97656 | 5687 | 4598 (0.97457) | 120 | 968 | 4901.49 | 4709.70 | 191.79 | 96.087 ----------------------------------------------------------------------------------------------------------------------------------------- | 596634 | -----------------------------------------------------------------------------------------------------------------------------------------
Cumulative Wagers: 208853.68253522 BTC Cumulative Rewards: 209038.94171709 BTC Cumulative Fees Paid: 300.23065000 BTC Cumulative Unreturned: 3.31029257 BTC ---- SD Profit on Completed Bets : -488.80012444 BTC ---- Since Satoshi Dice started, there have been: Blockchain Tx: 1692649 : SatoshiDice Tx: 1113632 (65.8%) Blockchain MB: 718.9 : SatoshiDice Tx: 453.4 (63.1%) ![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FJL8lX.png&t=663&c=3xYnlSqknrDxgg)
|
|
|
Yeah, the different progressives now have some different tuning parameters. I have teh beast setup to not grow very much but to always give a good expected return.
Can you clear something up for me? If I bet 2 BTC on Teh Beast, do I get (a) the currently advertised odds (b) the odds recalculated as if my 2 BTC was already in the pot or (c) different odds for my two spins? It looks to me like it's (b), which means I'm better off sending two separate 1 BTC bets in 2 different blocks - because that way my first bet gets better odds. Is that right? Anyways, I tracked down one of the lost transactions you posted. It looks like some things were marked in the database in such a way that my software lost track of the fact that the transaction to pay them never confirmed and wasn't being tracked. I have a job to clean that up that I'll run overnight which should fix the others.
Your job seems to have cleaned up most of the old pending bets. What's going on with this one? 03a804d79a24ea92112c968652474911666ee57a5b67b10cd265c2d5c2393843 Its 3rd output (output 2, counting from zero) is unspent, whereas all the rest are spent. That's the oldest pending standard transaction now - and it's only 2 days old.
|
|
|
|