一、Truffle是什么?
Truffle是一個世界級的開發環境,測試框架,以太坊的資源管理通道,致力於讓以太坊上的開發變得簡單,Truffle有以下:
- 內置的智能合約編譯,鏈接,部署和二進制文件的管理。
- 快速開發下的自動合約測試。
- 腳本化的,可擴展的部署與發布框架。
- 部署到不管多少的公網或私網的網絡環境管理功能
- 使用EthPM&NPM提供的包管理,使用ERC190標准。
- 與合約直接通信的直接交互控制台(寫完合約就可以命令行里驗證了)。
- 可配的構建流程,支持緊密集成。
- 在Truffle環境里支持執行外部的腳本。
二、下載MetaCoin樣例進行環境搭建實戰
2.1.下載MetaCoin
mkdir metacoin cd metacoin truffle unbox metacoin
truffle unbox 下載樣例時,需要一個空的文件夾,因此我們這兒新建一個目錄進行操作。
unbox
Truffle 的盒子Boxs裝有很多非常實用的項目樣板,可以讓你忽略一些環境配置問題,從而可以集中與開發你自己的DApp的業務唯一性。
除此之外,Truffle Boxes能夠容納其他有用的組件、Solidity合約或者庫,前后端視圖等等。
所有這些都是一個完整的實例Dapp程序。都可以下載下來逐一研究,尋找適合自己目前業務模型的組件。
Truffle的官方Boxes地址:https://www.trufflesuite.com/boxes/
2.2.修改以太坊本地配置
vim truffle-config.js
2.3.啟動ganache-cli
ganache-cli
原文使用的是testrpc,但是由於testrpc不能很好的處理拜占庭問題,會在合約部署的時候拋出異常。
testrpc
異常信息如下:
2.4.編譯合約
truffle compile
根據編譯輸出的路徑地址./build/contracts,我們去查看一下
可以看到原來所在在contracts目錄下的智能合約文件(有合約contract,有庫library)均被編譯成了json文件。
這些json文件就是truffle用來部署合約的編譯文件。
2.5.部署合約
truffle migrate
部署結果如下:
2.6.測試合約
truffle test
沒有報錯就說明通過了,測試結果如下:
參考鏈接:https://www.jianshu.com/p/2e2b3b12eb0e