【入門級攻略】IOST dApp 開發

IOST 創造了一項高擴容、高吞吐的區塊鏈技術,採用高效分佈式分片(EDS)以及置信度證明共識機制(Proof-of-Believable consensus approach),極大地提升了系統吞吐量。IOST 爲開發者創建了一個安全高效的分佈式平臺,支持擁有大量用戶的大型 dApp 部署。

下文將爲讀者展示IOST dApp 的部署教程,案例採用本地測試網,其使用方法與主網一致。

01

環境安裝。docker 安裝完成後,通過 docker 方式執行代碼 docker run -d --rm -p 30000-30003:30000-30003 iostio/iost-node

若出現以下圖示,Gen block,則啓動成功。

【入門級攻略】IOST dApp 開發

02

安裝 iwallet 錢包及 nodejs (編譯 dApp 使用)。首先安裝 golang,並設置 GOPATH、GOBIN 等環境變量,執行以下命令,安裝 iwallet

go get github.com/iost-official/go-iost/cmd/iwallet

03

本地測試網內置了一個 admin 賬戶,裏面有很多 token balance,可使用命令查看。在主網上需創建自己的主網賬號。

iwallet --server 127.0.0.1:30002 balance admin

04

編寫 dApp 程序。此處以開發者入門程序 hello world 爲例,更爲複雜的程序同樣可依照此方法編寫。

首先編寫一個 JavaScript 類,例如 HelloWorld.js,

vim helloworld.js

    class HelloWorld {    init() {} // 需要提供一個 init 函數它將會在部署時被調用    hello(someone) {        return "hello, "+ someone    }}

module.exports = HelloWorld;

該智能合約包含一個接口,接受一個輸入,然後輸出 Hello,+輸入。爲使 hi 智能合約能夠被外界調用,需準備一個 abi 文件,如 HelloWorld.abi

     vim HelloWorld.abi{  "lang": "javascript",  "version": "1.0.0",  "abi": [    {      "name": "hello",      "args": [        "string"      ]    }  ]}

abi 的 name 字段對應 js 的函數名,args 列表包含了一個初步的類型檢查,建議只使用 string、number、bool 三種類型。

05

發佈 dApp 程序。測試網需加上—chain_id=1020,主網則不需要。

    iwallet \ --gas_limit 1000000 --gas_ratio 1 \ --server localhost:30002 \ --account admin \ --amount_limit '*:unlimited' \ publish helloworld.js helloworld.abi

若 HelloWorld.js 和 HelloWorld.abi 並未放在當前目錄下,則需制定相對應的目錄。

發佈成功輸出參考示例(SUCCESS!):

【入門級攻略】IOST dApp 開發

下面來測試一下該 dApp 能否正常使用:

    iwallet \ --gas_limit 1000000 --gas_ratio 1 \ --server localhost:30002 \ --account admin \ --amount_limit '*:unlimited' \ call "${ contract id }" "hello" '["{$name}"]'

注:

此處的 ${ contract id }需改成你所收到的 id,如上圖中的 Contract4potBXswtQ2krYVSb85fFwngZ3GaaWQ6sqzCwCtQUKvV

{$name}爲任意你想要的名字。以 Tom 爲例,其輸入 / 輸出如下:
【入門級攻略】IOST dApp 開發
【入門級攻略】IOST dApp 開發
如此一來,這條記錄便被永遠記錄在區塊鏈上。任何人均可根據 txHash 進行查詢,如下圖所示:
【入門級攻略】IOST dApp 開發
一個簡單的智能合約即 dAPP 程序部署完成。
- IOST 的 dApp 生態截至 2019 年 12 月 31 日,IOST 主網上已上線 59 款 dApp,其中游戲類 dApp 多達 30 個,佔比 50%。當前 dApp 主要分爲遊戲、金融、交易所等等。通過上文可知,在 IOST 網絡中部署一個 dApp 較爲簡單,只需懂得 JavaScript 語言即可,這也使得 IOST 網絡爲廣大 dApp 生態開發者所喜愛。

【入門級攻略】IOST dApp 開發

來源鏈接:mp.weixin.qq.com