- 介绍
目前以太坊开发智能合约的语言官方推荐是solidity,可以使用remix 在线开发, 也可以使用truffle开发框架.
这里推荐的是用truffle。
2. 安装
truffle 不同的版本也是有一定差异的,这里使用truffle最新版本 v5.0.1。 这里只针对此版本做的演示
truffle 安装需要前置软件是 nodejs、npm、 ganache(模拟区块链节点)和 truffle(智能合约开发框架)
windows安装nodejs 可以直接去下载 压缩版的nodejs,配置环境变量
一般安装好nodejs 就可以使用npm了
我的 nodejs 版本: v8.12.0
npm :6.4.1
ganache 安装 npm install -g ganache-cli =>v6.2.5
truffle安装 npm install -g truffle => 5.0.1
以上 环境就安装好了 。
3. 创建一个DEMO 项目,使用官方提供的项目
创建一个test文件价,进入test,
运行 truffle unbox webpack 将会初始化一个MetaCoin的演示项目, 生成如下图所示项目结构
之后,我们需要首先将truffle.js文件名修改为truffle-config.js。如果不修改的话,直接执行truffle compile命令会报出缺少对象800A138F的错误:
接下来,另外打开一个dos命令窗口,输入ganache-cli命令,启动模拟节点,命令执行结果如下所示:
我们需要将truffle-config.js文件中的host、port与上述图片中圈出的ip和端口更改一致
同时还需要在app/scripts/index.js中的host、port与上述图片中更改一致
然后,我们编译项目 truffle compile。 这时候呢 可能编译出现错误,主要是说明版本问题导致,可能官方的还是以前旧版本的 没有同步,那我们自己手动修改下版本的问题。
我们下载另外一个项目 。新建一个文件夹 , 使用truffle unbox metacoin
下载好 metacoin项目后, 把里面的 contracts/*.sol拷贝到test/contracts/覆盖
再次进行 truffle compile 就可以编译成功了。 如下图
但是过2天, 突然升级到 pragma solidity >=0.4.21 <0.6.0; 好像
接下来部署到节点上去
truffle migrate --network ganache ganache 指向的是 truffle-config.js中的 networks配置
一定要注意 -- 是2个横杠
启动 web app
npm run dev 将默认在8080端口启动web 服务器. 打开浏览器 http://localhost:8080 如下
接下来 我们就可以使用ganache 提供的账户 ,进行转账操作。 同时 在ganache-cli 中也可以看到 创建的txhash,可以交易所在的blockNumber.
命令介绍
Commands:
Compile: truffle compile
Migrate: truffle migrate
Test contracts: truffle test
Run linter: npm run lint
Run dev server: npm run dev
Build for production: npm run build