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


前言

  部署智能合約有多種方式,命令行的瀏覽器的渠道都有,但往往跟我們程序員的風格不太相符,因為我們習慣了在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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM