Project-Eolt

相關地址

Setup

安装依赖

npm install

启动项目

npm start

注意 在测试的时候,需要手动清理浏览器缓存,才能应用更改!

在浏览器run

http://localhost:5000/

在线浏览

https://andoromeda-foundation.github.io/Project-Eolt/

EOS node setup

#NODEOS
alias nodeos=/usr/local/eosio/bin/nodeos

#CLEOS
alias cleos=/usr/local/eosio/bin/cleos

#KEOSD
alias keosd=/usr/local/eosio/bin/keosd

# EOSIOCPP
alias eosiocpp=/usr/local/eosio/bin/eosiocpp


nodeos -e -p eosio --plugin eosio::chain_api_plugin \
    --plugin eosio::history_api_plugin \
    --http-server-address 127.0.0.1:8888 \
    --hard-replay-blockchain \
    --http-alias localhost:8888

keosd --config-dir ~/eos-wallet --wallet-dir ~/eos-wallet --http-server-address 127.0.0.1:8900 --http-alias localhost:8900

cleos wallet create

happyeosslot

Save password to use in the future to unlock this wallet. Without password imported keys will not be retrievable. "PW5Jan36YgE4yNhk1ZeWH5b2r3ti2LJorFWV5x3yDPK1Vj1Akd6mM"

Tools

  • 查询玩家余额

     cleos -u https://api.eosnewyork.io:443 get table happyeosslot happyeosslot player
    
  • 查询当前玩家的投注

     cleos -u https://api.eosnewyork.io:443 get table happyeosslot happyeosslot offer
    

合約的資料結構和開發細語

form : https://zhuanlan.zhihu.com/p/42410021

合约中有三张 table,

  • global 记录全局信息,如游戏当前 seed。
  • player 记录玩家的信息,每个玩家的筹码。
  • order 记录每个玩家下注的队列。

每当后台检测到有玩家下注,我们就调用一次 reveal 方法,清空当前 order 队列,并顺便设置下一局游戏的 seed。

最后说一下这个游戏的风险,理论上,游戏官方作为最后一步揭示 seed 的参与者,是可以提前预测到 roll 出的结果的,因此可以拒绝开奖或者大量作弊套现离场。另一种可能是虽然玩家 roll 到 100 倍的 BTC 是小概率事件(我们自己测试的时候第一把就 roll 到了 btc,我们还一度以为是合约的 bug。。。),但是一旦发生可能会造成短时间内产生大量挤兑,导致合约入不敷出。