以太坊是区块链开发领域最好的编程平台,而truffle是以太坊(Ethereum)最受欢迎的一个开发框架, 搭建truffle开发 环境,运行第一个区块链程序(Dapp)。
系统信息:
- 操作系统:
Ubuntu 16.04
- truffle版本:
v4.1.0
- node.js版本:
v8.9.4
- npm版本:
5.6.0
ubuntu-16.04下安装truffle
安装truffle依赖环境 NodeJS 访问https://nodejs.org 官方网站下载安装
编码安装 :
下载nodejs源码包 node-v8.9.4.tar.gz
tar xvf node-v8.9.4.tar.gz //解压源码包
./configure //进入解压目录后 执行配置文件
make //编译 需要好久
sudo make install //安装 nodejs
node -v //安装之后 查看版本号
源码编译真的需要好久,所以可以直接下载nodejs的已经编译完的二进制文件 node-v8.9.4-linux-x64.tar.gz
tar xvf node-v8.9.4-linux-x64.tar.gz
解压完之后有如下文件夹
把 文件夹 分别拷贝到 /usr/local/目录下
sudo cp * /usr/local/ -rf
这样nodejs便完成了安装。
sudo npm install -g truffle //安装truffle
需要安装Ethereum客户端,来支持JSON RPC API调用 开发环境,推荐使用EthereumJS TestRPC: https://github.com/ethereumjs/testrpc
npm install -g ethereumjs-testrpc //安装 testrpc
新建第一个项目:
编译项目:
部署项目:
部署之前先启动TestRPC
testrpc
却出现错误 Error: No network specified. Cannot determine current network.
解决方法: 参考链接 http://blog.csdn.net/wo541075754/article/details/78761513
修改truffle.js 的原始文件
修改为:
然后再执行 truffle migrate
又出现错误:
Using network 'development'.
Network up to date.
解决方法: 参考链接 : http://blog.csdn.net/qindong564950620/article/details/68933678
truffle migrate --reset 使用这个命令便可解决以上问题
启动服务:
truffle serve
出现如下错误:
Serving static assets in ./build on port 8080...
/usr/local/lib/node_modules/truffle/build/webpack:/~/chokidar/lib/fsevents-handler.js:26
return (new fsevents(path)).on('fsevent', callback).start();
^
TypeError: fsevents is not a constructor
at createFSEventsInstance (/usr/local/lib/node_modules/truffle/build/webpack:/~/chokidar/lib/fsevents-handler.js:26:1)
at setFSEventsListener (/usr/local/lib/node_modules/truffle/build/webpack:/~/chokidar/lib/fsevents-handler.js:80:1)
at FSWatcher.FsEventsHandler._watchWithFsEvents (/usr/local/lib/node_modules/truffle/build/webpack:/~/chokidar/lib/fsevents-handler.js:244:1)
at FSWatcher.
(/usr/local/lib/node_modules/truffle/build/webpack:/~/chokidar/lib/fsevents-handler.js:378:1)
at gotStat (fs.js:1775:21)
at FSReqWrap.oncomplete (fs.js:152:21)
解决方法: 参考链接: http://blog.csdn.net/skylark0924/article/details/79307190 不能解决此问题。
最终不能解决 truffle serve 出现的错误 。
如果谁能在解决此问题,请在下面留言,万分感谢!
然后参考链接 https://github.com/trufflesuite/truffle/issues/448 换一种方法启动服务。
打开此链接 https://github.com/trufflesuite/truffle-init-webpack
mkdir test //重新建一个项目目录test
truffle unbox webpack
truffle develop // 启动一个控制台
> compile //编译
>migrate //迁移合约 当然这两部也可以不在控制台下完成 可以用 truffle compile 和 truffle migrate 完成。
npm run dev //运行webpack服务器进行前端热重新加载(在开发控制台之外)。
虽然最终结果还是有问题,不过总算能启动一个服务了,现在还不能解决,等以后学习过之后能解决了再补充吧!