CypherPoker Lounge Contract

I think it’d be great if they turned to CypherPoker as a technology solution — the costs easily justify themselves as long as one is willing to move away from the centralized model. Exposure will be very important and having celebrity endorsement, of a sort, would go a long way.

No reason why they couldn’t run a hybrid either — do centralized until they’re comfortable with CypherPoker, then switch.~Patrick Bay

(Dialogue Collected Via Patrick Bay, this is Patrick Explaining his concept of the Lounge Contract)

Actually, I think that that contract I mentioned is absolutely necessary for version 2.0 (or VERY soon afterward).

I can point the compiled version to that as the default contract — here are all of the existing, CypherPoker-vetted smart contracts available for your discounted play (of course you may also publish your own contracts if you wish), and here’s a list of registered accounts and their ratings (but you’re free to play with anyone, of course).

The contract must be open source and anyone can modify their own, make changes, deploy on any network _freely_ (in any sense of the word).

This is why I broke CypherPoker up into the Lounge and GameEngine components. The Lounge can now take care of connecting to “Lounge” contracts (probably a better name in hindsight), which can point to hand contracts and provide lists/stats of registered players. The game client can very easily switch between Lounge contracts and it would be nice to be able to provide a way to join new ones easily.

If you wanted to run a Lounge contract, for example, you would control which hand contracts are considered kosher (allowed to interact with the Lounge for updating ratings), and you could also publish those hand contracts if you wanted to have full ownership.

And you set any fees that may be required for interacting with any pieces you own.

Some hand contracts could be made rentable so they can be shared between Lounges with variable splits of any fees.

And it won’t be hard to get started. I’m including the poker hand contract with the game client and it pretty much takes care of fully deploying it onto any network for you. A Lounge contract would be even easier to deploy, though you may have to update the parameters to your own specifications.

You could offer special features, tournaments, whatever … stuff like that shouldn’t be complicated to code.

But the contract would come prepared with basics like sign-up fees, insurance escrow collection at regular intervals, and of course easy registered account look-up.

Players could then enter the address of Lounge contracts to get access to the host’s entire range of offerings

Contracts can collect minuscule fees per hand. Contract owners can access those fees and with some extra coding those fees can be split in more complex ways (for example, owner gets access to 2/3 and Lounge owner gets 1/3).

I suspect that there may be minor rounding leftovers in certain situations so occasionally contracts will end up with extra value even when they don’t collect fees. It’s good for the contract’s owner to retain some control such as the ability to empty any non-accounted-for funds or destroy the contract altogether.

With P2P networking players are able to verify their presence online so the Lounge can be seen as providing the list of players to check for on the P2P the network. Players have full control over how this handled — they can be online and simply not respond (private mode), or they can respond and even flag themselves as being available for a game.

As part of my “are you there?” messages I would include my own stats (perhaps with all the Lounges I’m registered with), that anyone can easily verify, and can determine up front if they want to play me; how good should my up-to-down rating ratio be, what should the lifetime (number of ratings), be — is this even a reputable Lounge or do I not recognize its ratings?

Lounges would have their own reputations, mediated culturally beyond the blockchain.

The default CypherPoker Lounge would be the one that is accessed through the game software “out-of-the-box”, otherwise players are 100% free to sign-up with and use whatever Lounges they like.

If you strike up a friendship with another player, one of you can publish a private hand contract (no need for a Lounge), and be completely untethered to anything CypherPoker. The game client software can also be anything that’s capable of the P2P communication and Ethereum integration – I’m certain that a Node.js version that plays in the browser (without any plugins) is doable.

Hopefully some _official_ CypherPoker client can always something a little extra that people may be willing to pay for if they’re not satisfied with the free, open-source version. However, it needn’t be the only stream of revenue out of all the moving pieces that make CypherPoker tick.

The design is something I’m keeping very fluid. I’ve decided on a high-performance UI framework named Starling Feathers UI which, on top of being very skinnable, looks and moves very nicely. I’ve put in lots of code to handle as much of the styling from external XML data as possible so a designer can very easily update the config data and reload the game to see the results. Most of the UI is split into widgets which have their own independent functions, and widgets live in sliding panels.

Some of the wireframes are here:

I’m only really making one client Lounge that’s fully skinnable.

There are containers for objects like widgets and they all do their own things in there. Object-Oriented Coding embraced :slightly_smiling_face:

I spent some time writing the translation system that takes the XML and converts it to the appropriate skins for various widget components but it’s as close to freeform as I could get. Anything can be just about anywhere and it’ll organize itself when it needs to

Now I’m putting together the basic compoments. Have the “Enable Ethereum Integration” button completed and a nice Ethereum account management interface.

You don’t need to code (just some basic XML knowledge), to make your own fully custom skins. And everything’s open-source so you can create your own widgets that perform some useful function for the CypherPoker console.

It’s still somewhat server based except that the servers are contract based and will reward you for either not bothering them or for notifying them of genuine problems.

Well, this model can be worked out over time. If a Lounge fails it’s not expensive to start a one, and even though they’re quite costly to put on the blockchain the poker hand and validator contracts are a one-time cost and still reasonably priced for most people.

If I had to put a dollar amount on it, I believe you could start your own Lounge with its own hand and validator for between CDN$2 to $3

The hand and validator contracts would be the more expensive components. If you got an agreement with other contract owners you could just publish a Lounge for under CDN$1.

Yes, everyone can openly compete. Well, “openly” as much as cryptocurrency accounts will provide.

Nothing to stop people from doing something similar but incompatible with the CypherPoker protocols too.

I think it would be a massive shift. Plus I’ve already tested Tor integration with that slot game I produced so we can mix in some good anonymity. This should help to mix that free market stew a little.

Bitcoin is as good as done. Early after v2.0 I’ll work on a widget that will convert between the various cryptocurrencies, at least Bitcoin, so that will provide a good on-ramp.

And there needn’t be cartels, and they can be easily bypassed. If, for example, I play with some very trusted people and we just need an electronic card deck to play one night (we just need a way to detect if someone cheated at the end), CypherPoker solo would do fine because it’s fast, provable, and it can work on a private network. The dealer punches in the fiat buy-in that everyone tossed in the hat, no physical chips needed. In the end we paid 0 fees for the game but still had excellent assurance that everyone played fairly.

It would also be possible to play on a private blockchain if we wanted a little more cryptographic certainty.

Finally, we can also use the Ethereum testnet (Ropsten), either for free or for *much much* cheaper than the Ethereum mainnet, although that’s still not as secure as the full mainnet.

Just because the number of mining nodes is fairly small there (in the testnet).

So we pay for our security, all the way up to a full-cost, on-the-Ethereum-blockchain hand.

But once we start interacting with Ethereum we need to come armed with a bit of extra cash since we may have to pay our way through to the end, which may include validation costs & deposit.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s