3.10 EOS智能合约案例实践

Posted 尹成

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.10 EOS智能合约案例实践相关的知识,希望对你有一定的参考价值。

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

以上是关于3.10 EOS智能合约案例实践的主要内容,如果未能解决你的问题,请参考以下文章

EOS 智能合约案例解析

EOS 智能合约案例解析

eos智能合约开发最佳实践

EOS智能合约授权限制和数据存储

EOS基础全家桶智能合约IDE-EOS_Studio

EOS基础全家桶智能合约IDE-EOS_Studio