1. 程式人生 > >以太坊入門-Truffle框架搭建

以太坊入門-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 unbox webpack

編譯合約 輸入命令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控制檯上有十個測試地址,複製一個地址在頁面轉賬。