以太坊入門-Truffle框架搭建

giserinchina發表於2018-09-13


一、安裝Node.js

https://nodejs.org/en/下載安裝包,選擇LTS版本下載。

安裝後在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出現下面的錯誤,這也是舊的教程的一個坑。

 

部署合約

部署智慧合約成功的前提就是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/


 

網上有些方法說修改

window.web3 = new Web3(new Web3.providers.HttpProvider('http://127.0.0.1:9545'))

將9545修改為8545後會出現 META 錯誤

合約呼叫

testrpc控制檯上有十個測試地址,複製一個地址在頁面轉賬。

 

 

相關文章