Ethereum smart contracts mixed feelings

I have very mixed feelings about this course on the one hand looks like quite easy database (insert and select) put on blockchain and view the results from blockchain. But on the other hand I/we can put a lot of money on the line you can make one mistake and all the money can just disappear there is no updating the contract in the future and me as a web developer I know how many mistakes can happen in a project or how fast you can make it. Currently I’m not confident that I would put Ethereum smart contracts to my CV.

I have a feeling that this course should/could be little bigger with more examples not just coinflip. And when we are at coinflip I just realize if we had true blockchain casino this would be very expensive casino, for every dice roll, every card hand on blackjack we should make transaction this is not very good practice and it’s very expensive and it takes a lot of time to get results. So how do they do it? How works for example CoinPoker? They are normal poker room but instead of $ they have tokens and that’s it? Poker hands are not on blockchain but in database? Then what is the point to have them?

2 Likes

I see what you mean. With all of the transaction fees each time it seems to be ridiculous, especially if you bet small amounts like 1000 Weis, but you pay already more for the transaction. Maybe this could be solved with second layer technologies such as payment channels, or switching to proof of stake, etc. in the future. On the other hand, we have also to keep in mind that normal service providers (real casinos) also retain around 30% of the bets on average in the long-run. So if we could get to those 30%, i think it will also be reasonable to put it on the blockchain.
I don’t know about CoinPoker yet and I’m curious to find out how they are doing it, if someone can explain it here.
I can also totally understand that you are not feeling really confident about Ethereum smart contract programming yet after this course. Me neither. So more practice would be essential, however, I think this course is a good starting point.

You could front your entire deployment with a Router contract, which would simply hold a reference to the latest version of your DAPP’s main contract. Then the root address would be the Router address and you would route all requests through this using the .call() function.

1 Like