A timeline for the schedule-impaired

Patrick Bay
Sep 3, 2018 · 4 min read

The number one question I’m asked in relation to CypherPoker is:

“… when can I play it?”

Well, the ActionScript version can be played on the main Ethereum blockchain or a new (custom) one right now. Been that way since last year, in fact. And it’s pretty easy to set up.

But in the browser it was getting increasingly difficult to maintain, it requiring Flash and all. Also, as I mentioned, Ethereum got pricey so I needed to look around to see what else was available.

Otherwise I wasn’t sure what else to say.

But maybe I understood the question wrong.

Maybe the question wasn’t so much “when can I play it?” but “when will functionality X be available for me to use?”

With that in mind we can be a bit more systematic in identifying what will work, and when.

The next question I’m usually asked is:

“… does it work with Bitcoin?

So, good news: that’s the next step for CypherPoker.JS and it should do so within a month or two.

Just to be clear, at that point you’ll be able to:

  1. Use the updated server code to act as the Trusted Third Party in handling escrow Bitcoin transactions between players.
  2. Send live Bitcoin or Testnet Bitcoin to the service and have it act as the TTP for one or more games.
  3. Cash out at any time from the service to a Bitcoin or Testnet Bitcoin account of your choosing.
  4. Track the progress of live Bitcoin or Testnet Bitcoin transactions using traditional tools. This stuff’ll be working with the real networks.

To get there, a number of things will need to be done:

A game verification and scoring system makes sure that games check out cryptographically and rules-wise. It also scores hands to determine the winner(s). This part is done; took a week or so.

A Trusted Third Party (TTP) service with blockchain interactions needs to be built into the server code since we can’t do this directly from the browser. This may take a week or two.

As a stand-in for smart contract interactions, CypherPoker.JS will communicate with the TTP service using a smart-contract-like interface (which will require capturing the game state at key intervals). The idea is that I’ll eventually swap in actual smart contracts. This may also take a week or two.

After this, the game verification and scoring system will need to be ported, or partially re-written, for the TTP service and the (now) existing blockchain functionality will be updated to support automated payment processing. We’re looking at a couple of potential weeks here.

Finally, the TTP service will need to be able to deal with possible issues like player timeouts / disconnects and providing false or missing information, which should produce some sort of penalties. For good measure, I’d think this would take from one to two weeks.

And that’s it for the Bitcoin part.

At that point it’d be useful to do a write up and maybe a video demonstrating how to install the WebSocket Sessions / TTP server, either on your own desktop or on free online services.

Hmm … run my own online poker room?

After that, the plan is to fix bugs and optimize — not necessarily in that order — and adding actual Ethereum smart contracts will probably be mixed in there too.

Ultimately, I’m building CypherPoker.JS to be an online poker solution that operates out of the box. Not just a poker client or standalone server but a complete solution.

That “.JS” means it’s written in JavaScript (ECMAScript 2017), and the user interface is in HTML 5 and CSS3 so you’ll be in fine company if you don’t care to customize it yourself.

Something to consider while you ponder…

Next time: Why are you doing this?!

CypherPoker

News, updates, and thoughts.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade