3.10 EOS智慧合約案例實踐

尹成發表於2018-12-11

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
在這裡插入圖片描述

相關文章