前言
部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果,
雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗,
如果團隊管理的區塊節點多、合約多,那得哭暈在廁所,
Truffle是一個世界級的智能合約開發框架,專門為智能合約而生,
安裝
安裝truffle
sudo cnpm install -g truffle
查看版本
truffle version
搭建專案
創建專案目錄
mkdir dapp cd dapp/
初始化空專案
truffle init
你也可以不創建空專案 而是創建一個帶有模板的專案 如下
初始化模板專案
truffle unbox webpack
官方模板串列:https://www.trufflesuite.com/boxes
配置區塊節點
truffle-config.js檔案中networks代碼段 用來配置區塊鏈節點
示例中有這么一段
development: { host: "127.0.0.1", // Localhost (default: none) port: 8545, // Standard Ethereum port (default: none) network_id: "*", // Any network (default: none) }
你可以根據你的實際情況修改,或者如我一樣直接注釋掉這段,我直接加了下面這段
line: { host: "47.97.26.107", network_id: 100, port: 8888, from:'0xDFeDb94Ab496d6b68795dB890AcbbBdc2557860A' },
不管是development還是line都是隨意取的Key,如果你有多個區塊鏈節點,你也可以多配幾段即可,
代碼段中的from為部署合約的賬戶,如果不配,則默認為以太坊客戶端的第一個賬戶,
部署合約
編譯
truffle compile
部署前
編譯后要做的事情是確保部署合約的那個地址里有ETH,因為部署是要花錢的,并且地址必須解鎖, 然后才能部署,
部署
truffle migrate --network line
(我自己配置的網路段是line,所以我的--network值是line,如果你只是 truffle migrate 不加任何引數 那么默認會部署development網路)
部署后
必須要設定挖礦地址,進行挖礦,否則交易不會廣播,
查看合約
truffle networks
操作合約
進入控制臺
truffle console --network line
獲取合約實體
let instance = await MetaCoin.deployed()
呼叫合約方法
這里舉例獲取地址余額
let balance = await instance.getBalance('0x30f8c37E265FbfC8941c38f861a8d2FC994e4772') balance.toNumber()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/624.html
標籤:區塊鏈