本文主要是介绍windows 以太坊开发框架Truffle环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
truffle框架搭建的教程网上也有好多,但是随着truffle版本的更新,truffle.js改名truffle-config.js、truffle命令升级、truffle与testrpc端口不一致、浏览器钱包插件等问题,导致原有的教程不再适用。
包括nodejs、truffle、solc、web3js、ganache的环境搭建。
windows8.1 x64
Truffle是一个世界级的开发环境,测试框架,以太坊的资源管理通道,致力于让以太坊上的开发变得简单。
Truffle有以下功能:
内置的智能合约编译,链接,部署和二进制文件的管理。
快速开发下的自动合约测试。
脚本化的,可扩展的部署与发布框架。
部署到不管多少的公网或私网的网络环境管理功能
使用EthPM&NPM提供的包管理,使用ERC190标准。
与合约直接通信的直接交互控制台(写完合约就可以命令行里验证了)。
可配的构建流程,支持紧密集成。
在Truffle环境里支持执行外部的脚本。
一、安装DApp开发环境
1.1 安装Node.js
我们使用官方长期支持的8.10.0LTS版本,下载64位包装包。
下载后直接安装即可。安装完毕,打开一个控制台窗口,可以使用node了:
C:\Users\Administrator> node -v
v8.10.0
1.2 安装节点仿真器
为了快速开发和测试以太坊DApp,我们通常使用以太坊节点仿真器来模拟区块链,最流行的节点仿真器就是Ganache,之前被称为TeseRPC。
在控制台执行以下命令:
C:\Users\Administrator> npm install -g ganache-cli
安装完毕后,执行命令验证安装成功:
C:\Users\Administrator>ganache-cli --version
Ganache CLI v6.1.6 (ganache-core: 2.1.5)
要了解ganache命令行的详细用法,可以查看以太坊ganache CLI命令行参数详解
如果你是Win10,也可以下载预编译的Win10软件包,安装图形版的ganache。
1.3 安装solidity编译器
solidity是开发以太坊智能合约的编程语言,不熟悉的话可以查看以太坊solidity开发语言简介。
C:\Users\Administrator> npm install -g solc
安装完毕后,执行命令验证安装成功
C:\Users\Administrator > solcjs -version
0.40.2+commit.3155dd80.Emscripten.clang
1.4安装web3
C:\Users\Administrator> npm install -g web3@0.20.2
安装验证:
C:\Users\Administrator>node -p 'require("web3")'
require(web3)
1.5安装truffle框架
执行以下命令安装truffle开发框架:
C:\Users\Administrator> npm install -g truffle
验证安装:
C:\Users\Administrator> truffle version
Truffle v4.1.13 (core 4.1.13)
1.6安装webpack
执行以下命令安装webpack:
C:\Users\Administrator > npm install -g webpack@3.11.0
验证安装:
C:\Users\Administrator > webpack -v
3.11.0
二、构建示例项目 (往下坑比较多,搭建成功否,都得随缘,所以不建议windows去学习区块链)
2.1 新建DApp项目
执行以下命令创建项目目录并进入该目录
d:\work\geth> mkdir hello
d:\work\geth > cd hello
然后用webpack模版初始化项目骨架结构:新版本truffle引入了box的概念,所有的示例代码都以box的形式提供。
老版本的是truffle init,默认会生成一个MetaCoin的demo,可以从这个demo中学习truffle的架构。
d:\work\geth\hello> truffle unbox webpack
Downloading…
Unpacking…
Setting up…
Unbox successful. Sweet!
注意:此处在setup处比较慢,需要从网上下载东西,持续10-20分钟左右。
2.2 修改truffle配置
如果你使用图形版的ganache,不需要修改truffle.js配置文件。否则,需要将truffle.js修改为truffle-config.js中,修改galance:为development:,修改port为8545,因为ganache-cli在8545端口监听:
注意:老的教程是truffle.js。由于版本升级需要变更为truffle-config.js。如果是在git的bash shell下仍然是可用truffle.js的。
2.3 启动节点
执行以下命令启动节点仿真器,以便部署合约并执行交易:
d:\work\geth\hello> ganache-cli
成功之后如图:会给自动建立10个账户,必须先启动这个之后才能合约的编译与部署。否则部署不成功。
或者直接启动9545端口的truffle自带的以太坊环境。(需要在项目路径里启动,集d:\work\geth\hello)
2.4 安装项目依赖的NPM包
执行以下命令安装nmp包:
d:\work\geth\hello> npm install
2.5 编译合约
执行以下命令编译项目合约:
d:\work\geth\hello> truffle compile
注意:这个命令必须在hello项目下运行。不返回错误即是成功
2.6 部署合约:
执行以下命令来部署合约:
d:\work\geth\hello> truffle migrate
2.7 启动DApp
执行以下命令来启动DApp:
d:\work\geth\hello> npm run dev
启动比较慢,上图给出了浏览器地址 http://locaohost:8081/,一致等到最后才提示成功,如下图:
如果你希望从别的机器也可以访问你的DApp应用,修改一下package.json:
{
scripts:{
"dev": "webpack-dev-server –-host 0.0.0.0"
}
}
运行成功
请求合约的端口9545和testrpc监听端口8545不一致,只要把两者改成一致就行,解决办法以下二选一即可 :
1. 修改合约调用代码。helloworld\app\javascripts\app.js,把window.web3 = new Web3(new Web3.providers.HttpProvider("http://127.0.0.1:9545"));的端口号9545改为8545
2. testrpc监听端口改为8545。
启动testrpc时用命令行 testrpc –p 9545。
truffle部署合约的端口也改为9545,在truffle-config.js把port参数改为9545。
执行truffle compile、truffle migrate、npm run dev重新编译、部署、启动。
二、如果要让别的机器访问Dapp应用
在package.json修改
保存后,重新启动Dapp 把防火墙关闭
在另一台机器的浏览器打开
访问成功
=============以上采用的是ganache-cli 默认8545端口生产的以太坊私链========
也可以采用truffle develop自带的默认9545端口的以太坊私链
执行 truffle develop,会生成十个测试账号,同时进入truffle控制台(可以在此控制台,编译和部署,执行合约)
编译合约,使用:compile,migrate
后面操作同上。
truffle 指令指南
可以使用 geth attach http://127.0.0.1:9545 连接evm.
写到这里就基本结束了,总结一下:
truffle 是目前来说比较受欢迎的一个框架,掌握它会让开发以太坊DAPP变得方便。虽然现在很多教程都是truffle和Ethereumjs-testrpc配合,但truffle官方推荐的是Ganache,所以建议用Ganache,文档会新一点。无论是Ethereumjs-testrpc、Ganache还是Truffle Develop,都是基于本地测试的以太坊客户端,只需要选一个就好,当然为了体验测试也可以跟我一样每个都试试。
技术贴的更新迭代很快,有些命令可能在文章发布之后就被更新了,最好还是查询相关文档用最新的命令。
MetaCoin的demo网页只提供了发送MetaCoin,自己尝试在网页上添加查询余额的功能,来更深的了解网页与合约的调用。
这篇关于windows 以太坊开发框架Truffle环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!