Been kicking around this idea for a while to create a desktop p2p app replicating the lightning-poker.com site experience (with a few upgrades like private tables, optional names etc). I’ve got most of it mapped in my head, plenty of hurdles but it feels solvable.

Basic vision: a desktop app using p2p bittorrent style swarms to sync the game state. Provable fair shuffling using commit-reveal hash functions. Could even experiment integrating ecash to avoid a need for a lightning node to take deposits. Ecash tokens represented as chips immediately change ownership with each hand, removing any party holding funds during the game.

It’s a fun thought experiment but don’t hold back, tell me what I’m missing. Maybe I can refine this into a project worth pursuing.

#p2p #poker #lightning #ecash #cashu

nostr:npub1t3ggcd843pnwcu6p4tcsesd02t5jx2aelpvusypu5hk0925nhauqjjl5g4 nostr:npub1de6l09erjl9r990q7n9ql0rwh8x8n059ht7a267n0q3qe28wua8q20q0sd nostr:npub1puffxa96tjjh46cgwnsuse4uegewh0a05w6nmuu0cphcfggz6xasw6deee nostr:npub12zqf55l7l9vsg5f6ssx5pq4f9dzu6hcmnepkm8ftj25fecy379jqkq99h8 nostr:npub1el3mgvtdjpfntdkwq446pmprpdv85v6rs85zh7dq9gvy7tgx37xs2kl27r nostr:npub12r0yjt8723ey2r035qtklhmdj90f0j6an7xnan8005jl7z5gw80qat9qrx nostr:npub10npj3gydmv40m70ehemmal6vsdyfl7tewgvz043g54p0x23y0s8qzztl5h

nostr:npub1m50e65pv09ga73lglrkjgh5tlgj006pv9rce8xdg7rn5kps38gssh2glzq nostr:npub162zpxufpw8pnuytaf0gfxzkqtvk9rvcwkvppa7x57y3n7qkfpg4shatdhy nostr:npub1t04cvx3d0a3le22rgnekk20wvr3l4jpg93vkledsyakas96puqaqwm53m9 nostr:npub1x3n9jcp54npw2l6scvewdvy47jhvj30706u783nu2hktu6a8gc5q8f00qs nostr:npub1qhjxfxpjm7udr0agr6nuhuwf9383e4g9907g64r9hf6y4fh6t6uqpcp36k nostr:npub1lqz2yf2tvutrxwtfnlxtdt9vdam7lwkyk95kehavvm4gfm5rx7ws0p3ak9 nostr:npub18w72kl3a9vr625p8ypk4uxfcz0cpgp5g9k4dq4qj8zd9pdnm4yhqn5s7pw nostr:npub16e3vzr7dk2uepjcnl85nfare3kdapxge08gr42s99n9kg7xs8xhs90y9v6 nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s nostr:npub1ymt2j3n8tesrlr0yhaheem6yyqmmwrr7actslurw6annls6vnrcslapxnz

P.S lightning-poker team you’ve done great running this site for years. I mean no offense or ill will while exploring this idea

https://cdn.nostrcheck.me/dbc64e036069817292b62e3586d60f56f79cdcb4d9c8d25985cf07c6d4b85823/aff3919d9aa658ba252bac47f10aa2aa57c0f89569b274781b2ec55ffd8639e6.webp

https://cdn.nostrcheck.me/dbc64e036069817292b62e3586d60f56f79cdcb4d9c8d25985cf07c6d4b85823/08a31eb4da3e10ff91339754306934343479fa2a9152043aa88db8e80891a7f4.webp

Reply to this note

Please Login to reply.

Discussion

we definitely need this. ecash would be great for poker chips.

I thought the same, sometimes you have an idea that just feels right

Let’s make it happen! We can borrow some ideas from swc poker site too

Planning to set aside some time this week to see what I can figure out. Trying to manage expectations though, I’m no a code expert so I’ll need others to contribute and/or it will be highly vibe coded

We could just get the software from enterra poker. I was running cyberdeck poker ~2015 ahead of it's time.

https://enterra-poker.com/

Beautiful, I had my fingers crossed something like this was out there. Pretty complete front end we’d only need minor changes

I don't know if they're still running their Bitcoin poker network. If so, you can probably get a skin on the network for cheap. Alternatively you can get the entire software for a standalone deployment. Both come with a backend. I spent a lot of time 10 years ago to make their software somewhat decent.

I meant to say, spent a lot of time working with them to make the software somewhat decent.

I mean techincally the mint would be holding the funds but beside the ecash specific issue I have, that looks pretty solid. Things I am thinking about:

What are some fail-state mitigations?

- What if a player disconnects mid-hand and tries to reconnect, what kind of hand timer will be implemented?

- What happens when a player busts, do they get removed from the seat or do they have a chance to buy in from their seat?

Are there auto action toggles? (Check/fold, call current bet, call any, fold) to make hands not wait on afk players.

Big blind avoidance protections? Not allow a player to "sit out" before their turn to be big blind the "sit in" afterwards in high player games.

Swc site had some good rules for when a player:

ā™¦ļøtimes out - gave users an extra time bar before forcing user to ā€œsit outā€ and 3 hands to reconnect before booting off the table

ā™¦ļøposting big blinds when joining the table from in front of the button.

ā™¦ļøcheck/fold/call actions while waiting to act

ā™¦ļøauto buy back in after busting out. With a couple hand grace period to buy back in

ā™¦ļøif using ecash I would recommend that every table has its own mint and is run by the table owner.

I always think of this when you mention site

This is why I need you guys, lots of UX stuff I haven’t considered. The examples puzzl laid out would work pretty well, feel like most UI decisions we can steal.

The ecash aspect is a trade off and I see the merit in both paths. If we stick with lightning its established and more reliable to integrate at this time, but the node runner would be labeled as the ā€œhostā€ and face legal risk for running an unlicensed gambling operation. The big benefit with ecash being we have a better chance of structuring in a way that no individual has to take on that burden

Would play šŸ¤™

When I went shopping github for holdem repos, this was one that stuck out.. The "Mental" implementation.

https://github.com/predatorray/mental-texas-holdem

https://en.wikipedia.org/wiki/Mental_poker

His toolkit repo is also good info https://github.com/predatorray/mental-poker-toolkit

whoa!

This is impressive, lot of it is over my head but looking into more detail

Yes, the problems to solve IMO are anonymity for players (so that sharing player history notes doesn't give an advantage), truly random shuffling(?), and collusion. However, the way I've been thinking, is that unless we have entire rooms that are provably SCIF's, like in every city, these are the real casualties of AI and technology. Games like this just aren't possible to make fair anymore. Screensharing, VR goggles, infinite scams possible with closed source, asymmetrical access to realtime calculations, earbuds/coaching, etc. The game was invented when none of this existed. Therefore, board games will be more what they once were, ways to socialize with trusted peers and low stakes simulations of real world incentive change / pressure / leverage / strategy / dynamics within shared ruleset / game theory etc etc. So we lose the provably fair competition but refocus on the per-living-room benefits of games with friends.

good points

To be real, these games were never "fair" they were just unknowns back then. The calculations are not difficult, certainly not as deep as chess bots we are talking percentage risk tolerance and psychology dynamics. AI only seems to be better than those who play too loose. Knowing that you are drawing dead is a much bigger skill gap than people think.

Good stuff that hasn’t even crossed my mind yet. The shuffling component is difficult but seems solvable, however other aspects of cheating like simple player collusion I have no solution for yet.

Currently best I can imagine is a ā€œgood faithā€ game with people you know. Private invite only tables can help but if playing with randoms there would need to be other solutions

Yes. I have been thinking that the venue is the entire experience, you walk in and everything is there, provably ungamable. But it could be that a dedicated device could eliminate some, though not all, of the potential vulnerability of playing with strangers. Matching based on mutual interest, provable reputation without being tied to identity two other ways. Or the other way, radical transparency, each individual livestreams themselves in some perpetualtimestamproving stream paradigm. Even so ultimately a local good faith game seems a more viable and sustainable product than an ecosystem that allows and selects for questionable strategy.

let's do it! you, because I have almost no idea about programming šŸ¤—

https://v.nostr.build/BuR6yPkaHlNTNTWX.mp4

need the voice of nostr:nprofile1qqsdvckpplxm9wvsevfln6f573ucmx7snyvhn5p64gzjejmy0rgrntcprfmhxue69uhkzun59ehx7um5wfn8yetpddejucm0d5hszxnhwden5te0v4kxjar9wvhxummnw3exzarf9ehhyee0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7s6x74r saying "thaaaat's poker" 😁

I will record catchphrases. It will be my contribution for this great project!

this would be šŸ˜‚. Imagine loosing a good hand or big pot and the sounds comes.

.. "thaaaat's poker"...

Your bigger contribution of course, after your chips contribution šŸ˜šŸ§”šŸ’œšŸ«‚

If you need some icons or images there for anything, it would be my honour 😜

We can make you the poker version of the halo multiplayer voice

You're quite the salesman!

šŸ˜‚ definitely have more experience there than with code

Man I would love to see a poker game built with ecash. Would love to assist if I can. It'd be a perfect use case.

Absolutely! I can admit a lot of this is over my head, I’m great at mapping out ideas but when it comes time to build I’m not the best choice.

I’m going to continue exploring the concept, but I have already thought of a question for you.

At this point are we able to build this in a way that the players at a table wouldn’t all have to be using the same mint? Another workable idea was table specific mints if we needed all players on one mint, but I have a passing knowledge of ecash so I’m unsure

yo

There are some open source poker gaming pieces that could help build quickly on github… mainly re random cards etc.. i also agree i would be interested in this —

Yeah surprised me with this much interest so I’m going to keep exploring

I dont have the time currently but it was one my high priority list…. Can you explain the ecash vs lightning issue etc ? Im curious about that

Sure! This is the aspect I’ve spent the most time thinking on. ļæ¼

Existing games with lightning integration work very well and they are reliable, but it requires some central entity running a lightning node to handle deposits, escrow, and withdrawals when the game is over.ļæ¼ The big problem with this is legally that entity is considered the ā€œhostā€ effectively running in an unlicensed gambling operation. ļæ¼I set out with a goal of decentralizing further than that so no single person would be liable. Also this would remove a need for a rake of the game, as far as I’m concerned it could run on donations. ļæ¼

ļæ¼Ecash offers some unique possibilities. Tokens can be transferred through any medium even offline. So I was envisioning a system where when you deposit your ecash tokens into the app, you receive chips and sit down to play. In the background your ecash tokens didn’t really go anywhere. They’re just represented as chips and then are transferred between seats as the game is played.ļæ¼

If this works out the way I imagine, there is no central repository holding funds for the game. The tokens are temporarily stored within the game while you play and then you can take them when you’re done or even leave them in your game wallet for next time

What if there's no new hand dealt until everyone settles?

I could probably explain it better, but ļæ¼in my head I’m picturing the ecash being ā€œsettledā€ upon the end of each hand. ļæ¼ The system can automatically transfer the ecash to the winning seat so by the time the next hand starts all funds are technically settled, allowing players to quickly come and go and no losing player can runoff with funds ļæ¼

Thanks for taking the time to write this — yes its kinda how I envisioned the issues of a central stakeholder. Buying chips at the register seems to be the way.

Here is an idea from many years ago. Maybe you can incorporate some of that into your plans.

https://cdn.satellite.earth/2903ceedf2ec2bc71d0cfa9a6c6058dd07c384b899299438bb56af4d6d74f7cb.pdf