以太坊学习(三) -- truffle搭建第一个区块链应用程序

以太坊是区块链开发领域最好的编程平台,而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

新建第一个项目:

以太坊学习(三) -- truffle搭建第一个区块链应用程序_第1张图片

编译项目:

truffle compile



部署项目:

部署之前先启动TestRPC


testrpc


以太坊学习(三) -- truffle搭建第一个区块链应用程序_第2张图片


truffle migrate

以太坊学习(三) -- truffle搭建第一个区块链应用程序_第3张图片

却出现错误 Error: No network specified. Cannot determine current network.

解决方法: 参考链接   http://blog.csdn.net/wo541075754/article/details/78761513
修改truffle.js 的原始文件 
以太坊学习(三) -- truffle搭建第一个区块链应用程序_第4张图片

修改为:
以太坊学习(三) -- truffle搭建第一个区块链应用程序_第5张图片

然后再执行 truffle migrate

又出现错误:   Using network 'development'.

                    Network up to date.  
解决方法: 参考链接 : http://blog.csdn.net/qindong564950620/article/details/68933678

truffle migrate --reset  使用这个命令便可解决以上问题
以太坊学习(三) -- truffle搭建第一个区块链应用程序_第6张图片

启动服务:

truffle serve

以太坊学习(三) -- truffle搭建第一个区块链应用程序_第7张图片

出现如下错误:
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 换一种方法启动服务。

以太坊学习(三) -- truffle搭建第一个区块链应用程序_第8张图片

打开此链接  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服务器进行前端热重新加载(在开发控制台之外)。


以太坊学习(三) -- truffle搭建第一个区块链应用程序_第9张图片

以太坊学习(三) -- truffle搭建第一个区块链应用程序_第10张图片

以太坊学习(三) -- truffle搭建第一个区块链应用程序_第11张图片

以太坊学习(三) -- truffle搭建第一个区块链应用程序_第12张图片

虽然最终结果还是有问题,不过总算能启动一个服务了,现在还不能解决,等以后学习过之后能解决了再补充吧!

你可能感兴趣的:(以太坊)