以太坊入門-Truffle框架搭建
Truffle框架搭建的教程網上也有好多,但是隨著truffle版本的更新,truffle.js改名truffle-config.js、truffle命令升級、truffle與testrpc埠不一致、瀏覽器錢包外掛等問題,導致原有的教程不再適用,在踩過一個又一個的坑後,打算寫一篇無坑版本,讓廣大初學者可以一氣呵成搭建完環境。
一、安裝Node.js
安裝後在windows命令cmd視窗,輸入node -v,能顯示node的版本就成功第一步了
二、安裝Truffle
truffle是本地的用來編譯、部署智慧合約的工具。 在windows命令列視窗輸入npm -g install truffle。
沒有報錯資訊就是成功第二步
三、安裝Ethereum TestRPC
命令列視窗輸入npm install -g ethereumjs-testrpc 安裝後再輸入testrpc看是否成功啟動,testrpc預設是監聽8545埠
四 、啟動Dapp
第三步啟動的testrpc視窗不要關閉,新建立開發目錄helloworld,開啟一個新的命令視窗。進入到helloword目錄。truffle 初始化 輸入truffle unbox webpack執行完後,再輸入dir看本地有沒有下載到新的檔案。網上很多老的教程是truffle init webpack命令,但是truffle新的版本不支援,只能是
編譯合約 輸入命令truffle compile出現下面的錯誤,這也是舊的教程的一個坑。 把helloworld目錄的truffle.js改名為truffle-config.js,再執行命令。
部署合約
部署智慧合約成功的前提就是testrpc已經在執行,輸入命令truffle migrate。
沒有編譯資訊,猜測原因沒有安裝solidity
錯誤描述:
truffle專案根目錄執行truffle compile
時,報錯'module'未定義。
錯誤原因:
OS運行了truffle.js而非truffle.cmd。
解決方案:
1. 去truffle根目錄修改truffle.cmd的名稱,編譯時輸入修改名稱+compile;
2. 或者輸入truffle.cmd compile
。
E:\personel\eth\truffeth\helloworld>truffle.cmd migrate --reset
Using network 'development'.
Running migration: 1_initial_migration.js
Deploying Migrations...
... 0xa1023cefdd6abe2f83725b2221943ef226f8358db48c2f44efcc0c2b0ebb5c32
Migrations: 0x494ac8cdcee6e98e5d3612edde449cdc30743fe8
Saving successful migration to network...
... 0xb4847d1df32c793ba7c08efb756ad066b067b3879bca85902f5184686dca50a7
Saving artifacts...
C:\Users\wangxb147\AppData\Roaming\npm\node_modules\truffle\build\webpack:\~\cho
kidar\lib\fsevents-handler.js:26
return (new fsevents(path)).on('fsevent', callback).start();
^
TypeError: fsevents is not a constructor
at createFSEventsInstance (C:\Users\wangxb147\AppData\Roaming\npm\node_modul
es\truffle\build\webpack:\~\chokidar\lib\fsevents-handler.js:26:1)
at setFSEventsListener (C:\Users\wangxb147\AppData\Roaming\npm\node_modules\
truffle\build\webpack:\~\chokidar\lib\fsevents-handler.js:80:1)
at FSWatcher.FsEventsHandler._watchWithFsEvents (C:\Users\wangxb147\AppData\
Roaming\npm\node_modules\truffle\build\webpack:\~\chokidar\lib\fsevents-handler.
js:244:1)
at FSWatcher.<anonymous> (C:\Users\wangxb147\AppData\Roaming\npm\node_module
s\truffle\build\webpack:\~\chokidar\lib\fsevents-handler.js:378:1)
at gotStat (fs.js:1775:21)
at FSReqWrap.oncomplete (fs.js:152:21)
無坑版***
環境版本
初始化
啟動develop模式
使用truffle.cmd的命令,否則會報錯
進入控制檯執行
另起視窗啟動服務
輸入命令npm run dev.
開啟瀏覽器,輸入 http://localhost:8080/
合約呼叫
testrpc控制檯上有十個測試地址,複製一個地址在頁面轉賬。