Truffle
Truffle 是世界一流的開發(fā)環(huán)境温眉,為以太坊的測(cè)試框架和資產(chǎn)管道慨绳,致力于使以太坊開發(fā)者的生活更容易挟伙。使用Truffle,有以下特點(diǎn):
- 內(nèi)置智能合約編譯荐开、鏈接付翁、開發(fā)和二進(jìn)制管理。
- 快速開發(fā)的自動(dòng)化合約測(cè)試
- 腳本晃听、可擴(kuò)展性部署和遷移框架百侧。
- 用于部署到任意數(shù)量的公網(wǎng)和私網(wǎng)的網(wǎng)絡(luò)管理
- 基于EthPM和NPM,并使用ERC190標(biāo)準(zhǔn)進(jìn)行包管理
- 為合約通信提供交互式控制臺(tái)
- 為緊密集成提供可配置的構(gòu)建管道
- 在Truffle的環(huán)境中執(zhí)行外部的運(yùn)行腳本
我們?cè)趺窗惭b這個(gè)框架
npm install -g truffle
安裝完成后 使用命令truffle --version
能看到truffle的版本能扒,若提示沒(méi)有truffle命令佣渴,則需要將你的node的bin目錄添加到系統(tǒng)的環(huán)境變量文件/etc/profile
中
安裝完成后我們可以快速初始化一個(gè)truffle 項(xiàng)目
1、創(chuàng)建一個(gè)文件夾 : mkdir MetaCoin
2初斑、進(jìn)入剛創(chuàng)建的文件夾 : cd MetaCoin
3辛润、 truffle init
若全局翻墻之后則會(huì)下載不下來(lái),但是我們可以通過(guò)
git clone ne https://github.com/trufflesuite/truffle-init-bare.git
下載见秤,得到是一樣的
Truffle框架介紹
-
contracts/
: 合約源碼存放文件夾 -
migrations/
: 合約部署腳本 -
test/
: 測(cè)試案例存放文件夾 -
truffle.js
: 配置文件
通過(guò)一個(gè)簡(jiǎn)單的HelloWorld合約砂竖,來(lái)熟悉Truffle框架的合約編寫灵迫,部署,測(cè)試
1晦溪、在contracts文件夾內(nèi)新建一個(gè)HelloWrold.sol合約,合約內(nèi)容如下
pragma solidity ^0.4.24;
contract HelloWorld{
uint i = 8;
function getI ()public view returns(uint){
return i;
}
function addI (uint s)public view returns(uint){
return (i+s);
}
}
2瀑粥、編寫完成后我們先進(jìn)入truffle 的開發(fā)模式
truffle develop
即可進(jìn)入開發(fā)模式,會(huì)返回10個(gè)賬號(hào)三圆,結(jié)果如下圖
3狞换、在開發(fā)模式下編譯我們寫的合約compile
編譯后會(huì)生成一個(gè)build的文件夾:
4、編譯完成后我們開始遷徙我們的HelloWorld合約舟肉,我們首先需要在migrations文件夾
內(nèi)建立一個(gè)js文件修噪,我們命名為 2_deploy_HelloWorld.js
在js內(nèi)寫入一下內(nèi)容,其實(shí)就是照上面的那個(gè)1_initial_migration.js內(nèi)容,稍微修改變量名和文件名路媚,路徑都差不多
var HelloWorld= artifacts.require("./HelloWorld.sol");
module.exports = function(deployer) {
deployer.deploy(HelloWorld);
};
5黄琼、弄完后再truffle 開發(fā)模式下的窗口輸入命令migrate
,若得不到下面紅框類似的結(jié)果整慎,則需要 加 --reset 重新遷徙代碼到區(qū)塊鏈
6脏款、遷徙代碼到區(qū)塊鏈上完成后我們開始部署我們的合約:先定義變量addr用來(lái)保存合約部署成功后的合約對(duì)象
7、合約部署成功后我們就可以測(cè)試裤园,還記得我們寫合約時(shí)候的2個(gè)函數(shù)么getI 和 addI 我們初始的I 值是8
我們先來(lái)測(cè)試下:直接用addr合約對(duì)象調(diào)用方法即可撤师。