019:Truffle簡介與使用|《ETH原理與智能合約開發(fā)》筆記

待字閨中開發(fā)了一門區(qū)塊鏈方面的課程:《深入淺出ETH原理與智能合約開發(fā)》钠绍,馬良老師講授。此簡書文集記錄我的學(xué)習(xí)筆記吞获。

課程共8節(jié)課。其中谚鄙,前四課講ETH原理衫哥,后四課講智能合約。
第六課分為三部分:

  1. Solidity語法之數(shù)組
  2. Solidity語法之合約
  3. Truffle簡介與使用

這篇文章是第六課第三部分的學(xué)習(xí)筆記:Truffle簡介與使用襟锐。


這節(jié)課主要講解了 Truffle 的技術(shù)特性,并演示了 Truffle 的安裝和一個小例子膛锭。

1粮坞、Truffle 簡介

前面介紹的 Remix 作為學(xué)習(xí)工具來用是比較好的,但是不能滿足生產(chǎn)環(huán)境初狰。因為 Remix 不支持 web 前端莫杈、自動化程度不是很高,不方便進行自動化測試奢入。實際工作中用到的是Truffle框架筝闹。

1.1 技術(shù)特性

  • Consensys 出品,智能合約開發(fā)測試框架
  • 內(nèi)置的編譯 / 鏈接 / 部署
  • 快速開發(fā)自動合約測試
  • 可以部署到 TESTRPC/ 測試網(wǎng)絡(luò) / 主網(wǎng)(TESTRPC現(xiàn)在更名為ganache)
  • 直接可與合約通信的交互 Console
  • 調(diào)試合約
  • 集成了 web / javascript 組件腥光,可以直接運行 App web 前端

1.2 安裝要求

  • ubuntu 16.04
  • Nodejs LTS 8.11
  • ganache-cli 為測試網(wǎng)絡(luò)(速度快关顷,不需要挖礦。)

2武福、Truffle 開發(fā)演示

馬老師把演示的步驟放在了代碼倉庫:lesson_6/truffle_setup.txt 议双。下面是我的操作記錄。

2.1 Truffle 安裝

  1. 安裝NVM捉片。Truffle 是基于 Node.js 開發(fā)的平痰,使用時需要node的版本在 8.0 以上,管理版本用的工具是Nvm伍纫。安裝命令如下:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.9/install.sh | bash
  1. 確認各個軟件都已安裝齊宗雇。我這步出了點問題,重啟了一下終端莹规,好了赔蒲。
sudo apt install build-essential python -y
  1. 退出終端exit,使安裝的 nvm 生效。也可以不退出嘹履,使用如下命令腻扇,生成一個子進程。
exec bash
  1. 安裝 node.js 的長期穩(wěn)定版砾嫉。我安裝之后是8.11.2版幼苛。
nvm install --lts
  1. 再把 npm 更新一下。更新后版本是6.0
npm install -g  npm  
  1. 安裝 Truffle 和 ganache焕刮,另外還要安裝webpack并指定版本4.0 舶沿。我這步安裝了20多分鐘,電腦發(fā)熱的厲害配并。最后安裝成功括荡,Truffle 的版本是4.1.9
npm install -g truffle ganache-cli  webpack@4.0.0

2.2 Truffle 實例

  1. 在工作目錄新建一個文件夾。我的工作目錄是ETHljx溉旋,新建文件夾是hello_world 畸冲。再進入到文件夾。
cd ~/ETHljx
mkdir hello_world
cd hello_world
  1. 用Truffle 生成一個自帶的例子观腊。這是一個很簡單的例子邑闲,并不是ERC20的代幣,僅作練習(xí)使用梧油。
truffle unbox webpack
  1. 編譯
truffle compile 
  1. 編譯后可以看到有三個 .sol 文件苫耸。主要是 MetaCoin.sol 文件。查看文件
vim contracts/MetaCoin.sol

MetaCoin.sol代碼

查看完代碼后儡陨,在命令模式下按 :q! 退出vim 褪子。

  1. 使用 tmux 再開一個窗口,啟動ganache測試網(wǎng)絡(luò)(右邊窗口)骗村。
ganache-cli  -h 0.0.0.0 

上面的命令是老師的嫌褪,用的是兩臺機器,一個遠程服務(wù)器叙身。我的是在同一臺電腦上練習(xí)渔扎,用下面的命令,即不加后面的參數(shù):

ganache-cli

啟動后信轿,可以看到10個賬號晃痴,和對應(yīng)的私鑰。復(fù)制下來一個賬號财忽。端口號8545要記下來倘核。

  1. 部署合約(左邊窗口)
truffle migrate
  1. 修改 truffle.js 改端口號到 8545, ip 到本機對應(yīng)的外部IP(非 127.0.0.1)。注意:前面這句是馬老師的情況(使用兩臺機器)即彪,我用的一臺機器紧唱,所以活尊,IP還得寫127.0.0.1 。(老師的是192.168.1.12)

  2. 修改 package.json漏益,第8行的端口號8008 蛹锰。

  3. 修改 app/javascript/app.js 修改ip地址和端口號 否則不能正常運行

vim app/javascript/app.js
window.web3 = new Web3(new Web3.providers.HttpProvider("http://192.168.1.12:8545"));//這是老師的,IP和第13步一樣绰疤;端口號改成8545铜犬。
window.web3 = new Web3(new Web3.providers.HttpProvider("http://127.0.0.1:8545"));//這是我的。
  1. 啟動
npm run dev 
  1. 在瀏覽器地址欄輸入127.0.0.1:8008轻庆,打開web前端癣猾。可以看到當前有10000個Meta幣余爆。給剛才復(fù)制的賬號轉(zhuǎn)88個幣纷宇,輸入88,粘貼地址蛾方,點擊Send MetaCoin像捶。之后,余額少了88個幣桩砰。
    再回到測試網(wǎng)絡(luò)作岖,可以看到,區(qū)塊號增加了1五芝。

  2. 演示結(jié)束。

Ctrl + Z:停止左邊的 web 服務(wù)辕万,Ctrl + B枢步,:切換到右邊窗口,Ctrl + C:停止測試網(wǎng)絡(luò)渐尿。exit:關(guān)閉一個tmux窗口醉途,退出 tmux,退出默認的終端砖茸,都是這個命令隘擎。

小結(jié)一下,本節(jié)簡要介紹了Truffle的技術(shù)特性凉夯,演示了Truffle的安裝過程货葬,并運行了一個簡單的實例。


不足之處劲够,請批評指正震桶。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市征绎,隨后出現(xiàn)的幾起案子蹲姐,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柴墩,死亡現(xiàn)場離奇詭異忙厌,居然都是意外死亡,警方通過查閱死者的電腦和手機江咳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進店門逢净,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扎阶,你說我怎么就攤上這事汹胃。” “怎么了东臀?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵着饥,是天一觀的道長。 經(jīng)常有香客問我惰赋,道長宰掉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任赁濒,我火速辦了婚禮轨奄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拒炎。我一直安慰自己挪拟,他們只是感情好,可當我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布击你。 她就那樣靜靜地躺著玉组,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丁侄。 梳的紋絲不亂的頭發(fā)上惯雳,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天,我揣著相機與錄音鸿摇,去河邊找鬼石景。 笑死,一個胖子當著我的面吹牛拙吉,可吹牛的內(nèi)容都是我干的潮孽。 我是一名探鬼主播,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼筷黔,長吁一口氣:“原來是場噩夢啊……” “哼恩商!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起必逆,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤怠堪,失蹤者是張志新(化名)和其女友劉穎揽乱,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粟矿,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡凰棉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了陌粹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撒犀。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖掏秩,靈堂內(nèi)的尸體忽然破棺而出或舞,到底是詐尸還是另有隱情,我是刑警寧澤蒙幻,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布映凳,位于F島的核電站,受9級特大地震影響邮破,放射性物質(zhì)發(fā)生泄漏诈豌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一抒和、第九天 我趴在偏房一處隱蔽的房頂上張望矫渔。 院中可真熱鬧,春花似錦摧莽、人聲如沸庙洼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽送膳。三九已至,卻和暖如春丑蛤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撕阎。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工受裹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人虏束。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓棉饶,卻偏偏與公主長得像,于是被迫代替她去往敵國和親镇匀。 傳聞我的和親對象是個殘疾皇子照藻,可洞房花燭夜當晚...
    茶點故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內(nèi)容