3.10 案例實踐
阿新 • • 發佈:2018-12-07
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表