iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0

Truffle是一個世界級的開發環境,測試框架,以太坊的資源管理通道,致力於讓以太坊上的開髮變得簡單,Truffle有以下:

  • 內置的智能合約編譯,鏈接,部署和二進製文件的管理。
  • 快速開發下的自動合約測試。
  • 腳本化的,可擴展的部署與發布框架。
  • 部署到不管多少的公網或私網的網絡環境管理功能
  • 使用EthPM&NPM提供的包管理,使用ERC190標準。
  • 與合約直接通信的直接交互控制台(寫完合約就可以命令行里驗證了)。
  • 可配的構建流程,支持緊密集成。
  • 在Truffle環境裡支持執行外部的腳本。

Truffle是最流行的開發框架,使命是讓開發更容易
安裝方式:

npm install -g truffle

環境要求
NodeJS 5.0+
Windows,Linux,或Mac OS X
Truffle需要以太坊客戶端,需要支持標準的JSON RPC API。對於開發來說,有一些更適合,後續章節會介紹(如:testRPC提供編碼調試時的實時反饋)。

Windows用戶的建議
如果你是Windows用戶,我們推薦你使用Powershell或Git BASH來安裝和使用Truffle框架。這兩個shell環境相對默認的,提供了更方便的一些特性。


適用開發的客戶端

  • EtherumJS TestRPC
    當開發基於Truffle的應用時,我們推薦使用EthereumJS TestRPC。它是一個完整的在內存中的區塊鏈僅僅存在於你開發的設備上。它在執行交易時是實時返回,而不等待默認的出塊時間,這樣你可以快速驗證你新寫的代碼,當出現錯誤時,也能即時反饋給你。它同時還是一個支持自動化測試的功能強大的客戶端。Truffle充分利用它的特性,能將測試運行時間提速近90%。

適用正式發布的客戶端

  • Geth (go-ethereum)
  • WebThree(cpp-ethereum)
  • More
    對此有許多官方和非官方的以太坊客戶端可供選擇。最好使用TestRPC客戶端充分測試後,再使用這些客戶端。這些是完整的客戶端實現,包括挖礦,網絡,塊及交易的處理,Truffle可以在不需要額外配置的情況下發佈到這些客戶端。

當發佈到私有網絡中
私人網絡中使用了相同的技術,但卻有不同的配置。所以你可以將上面提及的客戶端來運行一個私有的網絡,部署到這樣的網絡也是使用同樣的方式。


創建工程目錄
首先創建一個工程目錄。你可以使用你喜歡的文件瀏覽器或使用下面的命令在命令行創建一個目錄:

mkdir myproject

初始化你的工程
接下來,通過下面的命令初始化一個Truffle工程:

truffle
Truffle v3.4.11 - a development framework for Ethereum
cd myproject
truffle init

完成後,你將擁有如下目錄:

  • app/ - 你的應用文件運行的默認目錄。這裡麵包括推薦的javascript文件和css樣式文件目錄,但你可以完全決定如何使用這些目錄。
  • contract/ - Truffle默認的合約文件存放地址。
  • migrations/ - 存放發布腳本文件
  • test/ - 用來測試應用和合約的測試文件
  • truffle.js - Truffle的配置文件
  • 默認工程:METACOIN
  • truffle init會默認創建一個構建在以太坊內的代幣demo應用。我們可以使用這個工程來進行快速的學習,或者你也可以刪除這些文件來創建一個你自己的工程。

默認工程:METACOIN
truffle init會默認創建一個構建在以太坊內的代幣demo應用。我們可以使用這個工程來進行快速的學習,或者你也可以刪除這些文件來創建一個你自己的工程。


官網: https://trufflesuite.com/
參考資料
https://truffle.tryblockchain.org/Truffle-introduce-%E4%BB%8B%E7%BB%8D.html

https://medium.com/my-blockchain-development-daily-journey/%E4%BB%8B%E7%B4%B9-truffle-suite-%E5%92%8Cdapp-development-7d747d13cf2b


上一篇
Day20 什麼是Solidity ?
下一篇
Day22 Ganache
系列文
區塊鏈 Blockchain30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言