3.10 EOS智能合约案例实践
  tEcohMEyDsEb 2023年11月13日 33 0


1.Dapp框架与开发

  • 传统Web开发模式如下
  • 程序员负责的工作:
    • 写后端服务
    • 设计数据库表
    • 前端人员开发页面
    • 前后端接口交互的开发
    • 编写缓存服务
      3.10 EOS智能合约案例实践_区块链
  • 区块链开发模式如下
  • 数据是存在内存数据库和区块上
  • 会给前端提供SDK
  • 下图是2个Instance,也就是2个节点
  • 程序员负责的工作:
    • 编写智能合约
    • 前端人员开发页面
    • 编写SDK调用
      3.10 EOS智能合约案例实践_GO语言_02
  • 回顾EOS开发流程
    3.10 EOS智能合约案例实践_GO语言_03

2.Oasis游戏设计

  • Oasis理解为一个数字化的世界
  • 使用eos.token发Oas的币,主网也是用eos.token发EOS币的
  • 玩家玩游戏,赢得Oas币,用币买道具,提升玩家属性

3.玩家及属性定义

  • Player:玩家
  • account:EOS账户
  • username:名称
  • level:等级
  • health:健康点数
  • energy:能量点数
  • abilities:特殊技能
  • inventory:背包,里面有道具,是具体的Item
  • Item:具体的道具
  • item_id:道具id
  • name:道具名称
  • power:增加的力量
  • health:增加的健康点数
  • ability:获得的特殊技能
  • level_up:提升的等级
  • Marketplace:道具商店
  • product:是Item的扩展
  • 例如加了productId,price价钱等
  • Game:游戏,可以增加不同的游戏
  • game_1
  • game_2

4.玩家合约实现

  • 编写oasis/contracts/Players下的文件
  • 启动网络
    3.10 EOS智能合约案例实践_GO语言_04
  • 设置两个alias
    3.10 EOS智能合约案例实践_区块链_05
    3.10 EOS智能合约案例实践_GO语言_06
  • 解锁钱包
    3.10 EOS智能合约案例实践_GO语言_07
  • 查看公钥
    3.10 EOS智能合约案例实践_区块链_08
  • 挑选1个公钥创建player账号
    3.10 EOS智能合约案例实践_区块链_09
  • 生成wast文件
    3.10 EOS智能合约案例实践_GO语言_10
  • 生成abi文件
    3.10 EOS智能合约案例实践_区块链_11
  • 使用player账户部署玩家合约
    3.10 EOS智能合约案例实践_区块链_12
  • 创建一个玩家
    3.10 EOS智能合约案例实践_区块链_13
  • 查看是否添加成功
    3.10 EOS智能合约案例实践_GO语言_14
  • 调用合约查看账户
    3.10 EOS智能合约案例实践_GO语言_15
    3.10 EOS智能合约案例实践_区块链_16- 更新玩家
    3.10 EOS智能合约案例实践_区块链_17
  • 增加技能
    3.10 EOS智能合约案例实践_GO语言_18
    3.10 EOS智能合约案例实践_区块链_19
  • 添加item道具
    3.10 EOS智能合约案例实践_GO语言_20
  • 查看表中数据
    3.10 EOS智能合约案例实践_GO语言_21

5.发币合约实现

  • 编写oasis/contracts/eosio.token下的文件
  • 启动网络
    3.10 EOS智能合约案例实践_GO语言_22
  • 设置两个alias
    3.10 EOS智能合约案例实践_GO语言_23
    3.10 EOS智能合约案例实践_GO语言_24
  • 解锁钱包
    3.10 EOS智能合约案例实践_GO语言_25
  • 查看现在的公钥
    3.10 EOS智能合约案例实践_GO语言_26
  • 挑选1个公钥创建player账号
    3.10 EOS智能合约案例实践_GO语言_27
  • 使用player账户部署玩家合约
    3.10 EOS智能合约案例实践_GO语言_28
  • 创建player1账号
    3.10 EOS智能合约案例实践_区块链_29
  • 添加player1玩家
    3.10 EOS智能合约案例实践_区块链_30
  • 查看player1玩家
    3.10 EOS智能合约案例实践_GO语言_31
  • 生成wast文件
    3.10 EOS智能合约案例实践_GO语言_32
  • 生成abi文件
    3.10 EOS智能合约案例实践_区块链_33
  • 解锁钱包
    3.10 EOS智能合约案例实践_区块链_34
    3.10 EOS智能合约案例实践_GO语言_35- 查看现在的公钥
    3.10 EOS智能合约案例实践_区块链_36
  • 创建token账户
    3.10 EOS智能合约案例实践_GO语言_37
  • 使用token账户部署发币合约
    3.10 EOS智能合约案例实践_区块链_38
  • 创建token:OAS
    3.10 EOS智能合约案例实践_GO语言_39
  • 查看表中数据
    3.10 EOS智能合约案例实践_GO语言_40
  • 调用issue方法
    3.10 EOS智能合约案例实践_区块链_41
    3.10 EOS智能合约案例实践_区块链_42
  • 再次查看表中数据
    3.10 EOS智能合约案例实践_GO语言_43
  • 使用token账户给player1账户转账
    3.10 EOS智能合约案例实践_GO语言_44

6.商品合约实现

  • 编写oasis/contracts/Marketplace下的文件
  • 启动网络
    3.10 EOS智能合约案例实践_区块链_45
  • 设置两个alias
    3.10 EOS智能合约案例实践_GO语言_46
    3.10 EOS智能合约案例实践_区块链_47
  • 生成wast文件
    3.10 EOS智能合约案例实践_区块链_48
  • 生成abi文件
    3.10 EOS智能合约案例实践_区块链_49
  • 查看公钥
    3.10 EOS智能合约案例实践_区块链_50
  • 创建market账户
    3.10 EOS智能合约案例实践_GO语言_51
  • 使用market账户部署商品合约
    3.10 EOS智能合约案例实践_GO语言_52
  • 创建新的Product
    3.10 EOS智能合约案例实践_区块链_53
  • 使用ID查看Product
    3.10 EOS智能合约案例实践_区块链_54
  • 再增加一个Product
    3.10 EOS智能合约案例实践_区块链_55
  • 按照ID更新Product
    3.10 EOS智能合约案例实践_GO语言_56
  • 查看更新后的Product
    3.10 EOS智能合约案例实践_GO语言_57
  • player1从Marketplace买东西
    3.10 EOS智能合约案例实践_GO语言_58
  • 将player1账户授予market合约active的权限
    3.10 EOS智能合约案例实践_GO语言_59
  • 再次执行购买,成功
    3.10 EOS智能合约案例实践_区块链_60
  • 查看player1的余额
    3.10 EOS智能合约案例实践_GO语言_61
  • 查看player1的背包装备
    3.10 EOS智能合约案例实践_GO语言_62
  • 查看产品库存
    3.10 EOS智能合约案例实践_区块链_63

7.玩家战斗实现

  • 编写oasis/contracts/Games下的文件
  • 启动网络
    3.10 EOS智能合约案例实践_区块链_64
  • 设置两个alias
    3.10 EOS智能合约案例实践_GO语言_65
    3.10 EOS智能合约案例实践_区块链_66
  • 解锁钱包
    3.10 EOS智能合约案例实践_GO语言_67
  • 查看公钥
    3.10 EOS智能合约案例实践_GO语言_68
  • 创建player的3个账户
    3.10 EOS智能合约案例实践_GO语言_69
    3.10 EOS智能合约案例实践_区块链_70
    3.10 EOS智能合约案例实践_GO语言_71
  • 使用player账户部署玩家合约
    3.10 EOS智能合约案例实践_区块链_72
  • 添加player1玩家
    3.10 EOS智能合约案例实践_区块链_73
  • 添加player2玩家
    3.10 EOS智能合约案例实践_GO语言_74
  • 调用战斗方法
    3.10 EOS智能合约案例实践_GO语言_75
  • 创建token账户
    3.10 EOS智能合约案例实践_区块链_76
  • 使用token账户部署发币合约
    3.10 EOS智能合约案例实践_GO语言_77
  • 创建token:OAS
    3.10 EOS智能合约案例实践_区块链_78
  • 查看表中数据
    3.10 EOS智能合约案例实践_GO语言_79
  • 调用issue方法
    3.10 EOS智能合约案例实践_GO语言_80
  • 创建market账户
    3.10 EOS智能合约案例实践_区块链_81
  • 使用market账户部署商品合约
    3.10 EOS智能合约案例实践_区块链_82
  • 创建新的Product
    3.10 EOS智能合约案例实践_区块链_83
  • 将player1账户授予market合约active的权限
    3.10 EOS智能合约案例实践_区块链_84
  • player1从Marketplace买东西
    3.10 EOS智能合约案例实践_区块链_85
  • 查看player1的属性
    3.10 EOS智能合约案例实践_区块链_86
  • 调用战斗方法
    3.10 EOS智能合约案例实践_GO语言_87

8.游戏合约实现

  • 编写oasis/contracts/Games下的文件
  • 启动网络
    3.10 EOS智能合约案例实践_区块链_88
  • 设置两个alias
    3.10 EOS智能合约案例实践_GO语言_89
    3.10 EOS智能合约案例实践_GO语言_90
  • 生成wast文件
    3.10 EOS智能合约案例实践_区块链_91
  • 生成abi文件
    3.10 EOS智能合约案例实践_GO语言_92
  • 解锁钱包
    3.10 EOS智能合约案例实践_区块链_93
  • 创建game账户
    3.10 EOS智能合约案例实践_区块链_94
  • 使用game账户部署游戏合约
    3.10 EOS智能合约案例实践_GO语言_95
  • 为player1和player2账户授予game合约active的权限
    3.10 EOS智能合约案例实践_区块链_96
    3.10 EOS智能合约案例实践_区块链_97
  • 调用开始战斗
    3.10 EOS智能合约案例实践_GO语言_98
  • 查看pk的结果
    3.10 EOS智能合约案例实践_区块链_99
  • 可以再次触发战斗
    3.10 EOS智能合约案例实践_GO语言_100
  • 查看游戏合约的pk表
    3.10 EOS智能合约案例实践_区块链_101

学院Go语言视频主页





【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
tEcohMEyDsEb