以太坊智能合約開發框架Truffle

前言

  部署智能合約有多種方式,命令行的瀏覽器的渠道都有,但每每跟咱們程序員的風格不太相符,由於咱們習慣了在IDE裏寫了代碼而後打包運行看效果。webpack

  雖然如今IDE中已經存在了Solidity插件,能夠編寫智能合約,可是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測試。程序員

  若是團隊管理的區塊節點多、合約多,那得哭暈在廁所。web

  Truffle是一個世界級的智能合約開發框架,專門爲智能合約而生。npm

 

安裝

安裝truffle

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()
相關文章
相關標籤/搜索