搭建eth开发环境_3_truffle以太坊开发测试框架-学习笔记

前言

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

一、安装

https://mp.csdn.net/mdeditor

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

  • 1、新建nodejs的程序根路径为
    mkdir /app/software/
    cd /app/software/
  • 2、下载 打开 http://nodejs.cn/download/ 确认最新包
    wget https://npm.taobao.org/mirrors/node/v10.8.0/node-v10.8.0-linux-arm64.tar.xz
  • 3、解压
    (解压后的文件我这边将名字改为了nodejs,这个地方自己随意,只要在建立软连接的时候写正确就可以)
    tar -C nodejs -xvf node-v10.8.0-linux-arm64.tar.xz
    确认一下nodejs下bin目录是否有node 和npm文件
  • 4、建立软连接,变为全局
    $ 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#window下
> truffle compile #linux下
3.3. 部署合约
部署合约之前,请开启之前下载的以太坊客户端:
Ganache:请打开下载的软件,或者在命令行中输入 > ganache-cli #启动
Ethereumjs-testrpc:在终端输入> testrpc 命令,以出现测试账号为成功,不要关闭,打开新的终端窗口进行下一步。
Truffle Develop:在终端输入 > truffle develop 命令,以出现测试账号为成功,可直接在此窗口进行下一步。
开启客户端之后再输入命令:
> truffle.cmd migrate #window下
> truffle migrate #linux下

四、测试网页与合约交互

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

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

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

六、附

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

猜你喜欢

转载自blog.csdn.net/zdyah/article/details/81784750