首页 > 资讯 > 虚拟币交流社区|以太坊开发测试框架 Truffle 的搭建
链闻研究院  

虚拟币交流社区|以太坊开发测试框架 Truffle 的搭建

摘要:本文从「安装」,「开发」,「编译和部署合约」,「测试网页与合约交互」,「从源代码构建 Docker 容器」等几个方面向我们介绍了如何在 windows 下搭建以

本文从「安装」,「开发」,「编译和部署合约」,「测试网页与合约交互」,「从源代码构建 Docker 容器」等几个方面向我们介绍了如何在 windows 下搭建以太坊测试服务器。

来源 | 红地龙的博客
作者 |?红地龙

前言


这是一篇 在 window 下 搭建以太坊 测试服务 的学习笔记

一、安装

1.首先安装 NodeJS(Truffle 依赖它):

  • 新建 nodejs 的程序根路径为?
mkdir /app/software/
cd /app/software/
  • 下载 打开 http://nodejs.cn/download/ 确认最新包?

  • 解压 (解压后的文件我这边将名字改为了 nodejs,这个地方自己随意,只要在建立软连接的时候写正确就可以)

tar -C nodejs -xvf node-v10.8.0-linux-arm64.tar.xz

确认一下 nodejs 下 bin 目录是否有 node 和 npm 文件

  • 建立软连接,变为全局
$ ln -s /app/software/nodejs/bin/npm /usr/local/bin/
$ ln -s /app/software/nodejs/bin/node /usr/local/bin/
  • 下载后检查版本? ? ?
$ node -v
  • 配置 npm 源为国内源(可选,可加快 node 插件下载速度)? ?
$ npm config set registry http://registry.npm.taobao.org

2. Truffle

  • 安装? ?
> npm install -g truffle 

安装过程自动设置软链接? ? ? ?

/usr/bin/truffle -> /usr/lib/node_modules/truffle/build/cli.bundled.js

3. 安装测试环境

测试环境每次启动 都是一组新的 用户 , 所有的测试合约都要发布 , 下面 3 种测试环境 , 你可以选择三个中任何一个客户端来跟 truffle 交互 .

需要特别说明的是 :

所有的测试框架每次启动后 , 都会在内存中重新生成临时用户 , 一旦关闭 , 所有用户以及部署过的合约都会消失 。

1) ethereumjs-testrpc

> npm install -g ethereumjs-testrpc
> testrpc #启动  

2) ganache-cli

ganache-cli 是内存测试环境 , 前身就是 testRPC, 命令版 :

> npm install -g ganache-cli
> ganache-cli #启动 

window cmd 环境用 truffle.cmd xxxx
linux shell 环境用 truffle xxxx
Compile:truffle.cmd compile(linux:truffle complie)
Migrate:truffle.cmd migrate
Test contracts:truffle.cmd test
Run linter:npm run lint
Run dev server:npm run dev
Build for production:npm run build

一个是带图形界面的版本,下载地址:
https://github.com/trufflesuite/ganache/releases

3)truffle develop

这个是 truffle 内置的客户端,跟命令行版本的 Ganache 基本类似。唯一要注意的是在 truffle develop 里执行 truffle 命令的时候需要省略前面的「truffle」,比如「truffle compile」只需要敲「compile」就可以了。

> truffle develop 

二、开发

1. 建项目目录 , 在目录下初始化项目框架

> mkdir 目录名 # 新建目录
> cd 目录   #进入目录

有两种方法初始化框架 init 或者 unbox 指令格式如下

> truffle init#在当前目录下 , 创建一个空项目
> truffle unbox webpack#在当前目录下 , 创建示例项目

主要分为 3 个部分:

1) contracts 目录中包含 Solidity 合约代码,整个目录被编译,其中 Migrations.sol 是默认的 , 必须的,其他就是你自己写的合约代码了。
2) migrations 目录中包含合约部署脚本 , 整个目录被编译,其中 1_initial_migration.js 就是用来部署 Migrations.sol 的,其他的脚本 最好从 2 开始编号 , 会按照顺序依次执行。
3) test 目录中存放的是测试用例的代码。

三、编译和部署合约

3.1. 更改 truffle.js 文件配置

module.exports = {
    networks: {
        development: {
            host: 'localhost',
            port: '7545',
            network_id: '*' // Match any network id
        }
    }
};

这里要注意的是:

Ganache 默认运行在 8545 端口
Ethereumjs-testrpc 默认运行在 8545 端口 Truffle Develop
默认运行在 9545 端口

3.2. 编译合约

truffle 框架里已经给我们提供了 demo 代码,我们暂时不用写新的合约,我们直接用 demo 进行编译和部署。

输入命令:> truffle.cmd compile

3.3. 部署合约

部署合约之前,请开启之前下载的以太坊客户端:
Ganache:请打开下载的软件 , 或者在命令行中输入 > ganache-cli #启动
Ethereumjs-testrpc: 在终端输入 > testrpc 命令,以出现测试账号为成功,不要关闭,打开新的终端窗口进行下一步。
Truffle Develop:在终端输入 > truffle develop 命令,以出现测试账号为成功,可直接在此窗口进行下一步。
开启客户端之后再输入命令:
> truffle.cmd migrate

四、测试网页与合约交互

  1. 在上面的合约部署成功后,我们就可以在服务器中查看效果了。执行 > npm run dev
  2. 浏览器打开 http://localhost:8080/ 可以看到一个 demo 页面
  3. 你也可以用 MetaCoin 浏览器 插件 连接 http://llocalhost:8545, 如果你用的以太坊可视客户端 Ganache 或 Truffle Develop 的话, Custom RPC 添加 http://localhost:7545 或 http://localhost:9545

五、从源代码构建 Docker 容器 :

1.git 下载

> git clone [https://github.com/trufflesuite/ganache-cli.git&&](https://github.com/trufflesuite/ganache-cli.git&&) cd ganache-cli
> docker build -t trufflesuite/ganache-cli
  1. 运行镜像
> docker run -d -p 8545:8545 trufflesuite/ganache-cli:latest 

六、附

虽然现在很多教程都是 truffle 和 Ethereumjs-testrpc 配合,但 truffle 官方推荐的是 Ganache,所以建议用 Ganache,文档会新一点。

更多精彩内容,关注链闻 ChainNews 公众号(id:chainnewscom),
或者来微博@ 链闻 ChainNews 与我们互动!
转载请注明版权和原文链接!

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。