3.10 EOS智能合约案例实践

GO语言 同时被 2 个专栏收录
182 篇文章 7 订阅
391 篇文章 36 订阅

1.Dapp框架与开发

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

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下的文件
  • 启动网络
    在这里插入图片描述
  • 设置两个alias
    在这里插入图片描述
    在这里插入图片描述
  • 解锁钱包
    在这里插入图片描述
  • 查看公钥
    在这里插入图片描述
  • 挑选1个公钥创建player账号
    在这里插入图片描述
  • 生成wast文件
    在这里插入图片描述
  • 生成abi文件
    在这里插入图片描述
  • 使用player账户部署玩家合约
    在这里插入图片描述
  • 创建一个玩家
    在这里插入图片描述
  • 查看是否添加成功
    在这里插入图片描述
  • 调用合约查看账户
    在这里插入图片描述
    在这里插入图片描述- 更新玩家
    在这里插入图片描述
  • 增加技能
    在这里插入图片描述
    在这里插入图片描述
  • 添加item道具
    在这里插入图片描述
  • 查看表中数据
    在这里插入图片描述

5.发币合约实现

  • 编写oasis/contracts/eosio.token下的文件
  • 启动网络
    在这里插入图片描述
  • 设置两个alias
    在这里插入图片描述
    在这里插入图片描述
  • 解锁钱包
    在这里插入图片描述
  • 查看现在的公钥
    在这里插入图片描述
  • 挑选1个公钥创建player账号
    在这里插入图片描述
  • 使用player账户部署玩家合约
    在这里插入图片描述
  • 创建player1账号
    在这里插入图片描述
  • 添加player1玩家
    在这里插入图片描述
  • 查看player1玩家
    在这里插入图片描述
  • 生成wast文件
    在这里插入图片描述
  • 生成abi文件
    在这里插入图片描述
  • 解锁钱包
    在这里插入图片描述
    在这里插入图片描述- 查看现在的公钥
    在这里插入图片描述
  • 创建token账户
    在这里插入图片描述
  • 使用token账户部署发币合约
    在这里插入图片描述
  • 创建token:OAS
    在这里插入图片描述
  • 查看表中数据
    在这里插入图片描述
  • 调用issue方法
    在这里插入图片描述
    在这里插入图片描述
  • 再次查看表中数据
    在这里插入图片描述
  • 使用token账户给player1账户转账
    在这里插入图片描述

6.商品合约实现

  • 编写oasis/contracts/Marketplace下的文件
  • 启动网络
    在这里插入图片描述
  • 设置两个alias
    在这里插入图片描述
    在这里插入图片描述
  • 生成wast文件
    在这里插入图片描述
  • 生成abi文件
    在这里插入图片描述
  • 查看公钥
    在这里插入图片描述
  • 创建market账户
    在这里插入图片描述
  • 使用market账户部署商品合约
    在这里插入图片描述
  • 创建新的Product
    在这里插入图片描述
  • 使用ID查看Product
    在这里插入图片描述
  • 再增加一个Product
    在这里插入图片描述
  • 按照ID更新Product
    在这里插入图片描述
  • 查看更新后的Product
    在这里插入图片描述
  • player1从Marketplace买东西
    在这里插入图片描述
  • 将player1账户授予market合约active的权限
    在这里插入图片描述
  • 再次执行购买,成功
    在这里插入图片描述
  • 查看player1的余额
    在这里插入图片描述
  • 查看player1的背包装备
    在这里插入图片描述
  • 查看产品库存
    在这里插入图片描述

7.玩家战斗实现

  • 编写oasis/contracts/Games下的文件
  • 启动网络
    在这里插入图片描述
  • 设置两个alias
    在这里插入图片描述
    在这里插入图片描述
  • 解锁钱包
    在这里插入图片描述
  • 查看公钥
    在这里插入图片描述
  • 创建player的3个账户
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 使用player账户部署玩家合约
    在这里插入图片描述
  • 添加player1玩家
    在这里插入图片描述
  • 添加player2玩家
    在这里插入图片描述
  • 调用战斗方法
    在这里插入图片描述
  • 创建token账户
    在这里插入图片描述
  • 使用token账户部署发币合约
    在这里插入图片描述
  • 创建token:OAS
    在这里插入图片描述
  • 查看表中数据
    在这里插入图片描述
  • 调用issue方法
    在这里插入图片描述
  • 创建market账户
    在这里插入图片描述
  • 使用market账户部署商品合约
    在这里插入图片描述
  • 创建新的Product
    在这里插入图片描述
  • 将player1账户授予market合约active的权限
    在这里插入图片描述
  • player1从Marketplace买东西
    在这里插入图片描述
  • 查看player1的属性
    在这里插入图片描述
  • 调用战斗方法
    在这里插入图片描述

8.游戏合约实现

  • 编写oasis/contracts/Games下的文件
  • 启动网络
    在这里插入图片描述
  • 设置两个alias
    在这里插入图片描述
    在这里插入图片描述
  • 生成wast文件
    在这里插入图片描述
  • 生成abi文件
    在这里插入图片描述
  • 解锁钱包
    在这里插入图片描述
  • 创建game账户
    在这里插入图片描述
  • 使用game账户部署游戏合约
    在这里插入图片描述
  • 为player1和player2账户授予game合约active的权限
    在这里插入图片描述
    在这里插入图片描述
  • 调用开始战斗
    在这里插入图片描述
  • 查看pk的结果
    在这里插入图片描述
  • 可以再次触发战斗
    在这里插入图片描述
  • 查看游戏合约的pk表
    在这里插入图片描述

学院Go语言视频主页
https://edu.csdn.net/lecturer/1928

[清华团队带你实战区块链开发]
(https://ke.qq.com/course/344443?tuin=3d17195d)
扫码获取海量视频及源码 QQ群:
721929980
在这里插入图片描述

  • 1
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值