本文從「安裝」,「開發」,「編譯和部署合約」,「測試網頁與合約交互」,「從源代碼構建 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:7545http://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 與我們互動!
轉載請註明版權和原文鏈接!

來源鏈接:blog.csdn.net