一、安装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控制台上有十个测试地址,复制一个地址在页面转账。