部署智能合約有多種方式,命令行的瀏覽器的渠道都有,但每每跟咱們程序員的風格不太相符,由於咱們習慣了在IDE裏寫了代碼而後打包運行看效果。webpack
雖然如今IDE中已經存在了Solidity插件,能夠編寫智能合約,可是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測試。程序員
若是團隊管理的區塊節點多、合約多,那得哭暈在廁所。web
Truffle是一個世界級的智能合約開發框架,專門爲智能合約而生。npm
sudo cnpm install -g truffle
truffle version
mkdir dapp cd dapp/
truffle init
你也能夠不建立空項目 而是建立一個帶有模板的項目 以下瀏覽器
truffle unbox webpack網絡
官方模板列表:https://www.trufflesuite.com/boxesapp
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()