第二課 如何在WINDOWS環境下搭建以太坊開發環境

筆名輝哥發表於2018-11-15

image

【本文目標】

根據本文指導,可以在WINDOUWS環境下完成以太坊智慧合約部署前的比較環境準備。

【技術收穫】

如何在WINDOW(筆者以WINDOWS 10為例)環境搭建以太坊開發環境,按照以下安裝順序完成安裝後,你將獲得相關知識和一個可使用的ETHEREUM環境:

1,安裝VMware虛擬機器

2,安裝Ubuntu系統

3,配置遠端登入Ubuntu系統

4,安裝git,NodeJS,solc,testrpc,truffle,Geth客戶端

5,可選按照Ganache, Lite-Server, MetaMask(WINDOWS本機),

【結果】環境安裝成功後,就可以啟動以太坊進行轉賬和智慧合約執行了。

【實操課程列表】

第一課 如何在WINDOWS環境下搭建以太坊開發環境

第二課 如何實現以太坊最簡智慧合約“Hello World”的執行

第四課 以太坊開發框架Truffle從入門到實戰

第六課 技術小白如何開發一個DAPP區塊鏈應用(以寵物商店為例)

第七課 技術小白如何在45分鐘內發行通證(TOKEN)並上線交易

第八課 如何除錯以太坊官網的智慧合約眾籌案例

【說明】未列出的課程為知識普及的非實操類課程,所有區塊鏈文章參考“區塊鏈入口”專欄。


1,安裝VMware虛擬機器

【概念普及】VMWare (Virtual Machine ware)是一個“虛擬PC”軟體公司.它的產品可以使你在一臺機器上同時執行二個或更多Windows、DOS、LINUX系統。與“多啟動”系統相比,VMWare採用了完全不同的概念。多啟動系統在一個時刻只能執行一個系統,在系統切換時需要重新啟動機器。VMWare是真正“同時”執行,多個作業系統在主系統的平臺上,就象標準Windows應用程式那樣切換。而且每個作業系統你都可以進行虛擬的分割槽、配置而不影響真實硬碟的資料,你甚至可以通過網路卡將幾臺虛擬機器用網路卡連線為一個區域網,極其方便。安裝在VMware作業系統效能上比直接安裝在硬碟上的系統低不少。

(1)下載VMware虛擬機器安裝軟體

筆者以安裝VMware 10為例。安裝程式下載地址:pan.baidu.com/s/1bl2hHYll… 密碼:o0ki

(2) 點選安裝VMware具體配置

image

image

image

image

image

image

image

image

image

請購買或者合法獲取許可證金鑰,例如 NV4CL-0J3D6-ZZMM1-T10QH-13DPX ,然後就安裝成功了。

image

(3) 建立LINUX-UBUNTU空白虛擬機器

筆者曾在WINDOWS 10 64bit筆記本上選擇Ubuntu 64作業系統,提示出現錯誤,後來安裝並使用Ubuntu作業系統。

image

image

image

image

image

image

image

image

image

image

image

image

2,安裝Ubuntu作業系統

(1)下載Ubuntu作業系統安裝盤(.ISO)

Ubuntu為免費軟體,筆者選擇安裝的是“優麒麟17.10.1”版本,下載地址為www.ubuntukylin.com/downloads/

image

(2)載入虛擬光碟機,安裝Ubuntu系統

image

image

image

image

image

image

image

image

3,配置遠端登入Ubuntu系統

(1)在Ubuntu上安裝ssh服務端

image

1) 安裝ssh服務端

apt-get install openssh-server #安裝完畢後ssh預設已啟動

netstat -nat | grep 22 #檢視22號埠是否處於監聽狀態

2) 關閉掉防火牆

sudo ufw disable

【說明】使用ifconfig命令檢視虛擬機器的IP地址,

image

3) 更改網路配置,採用橋模式,跟本機WINDOWS採用相同的路由器配置

image

3) 測試與本機連線情況

虛擬機器是獨立IP。可在本機WINDOWS系統下執行CMD命令列:ping 192.168.1.11,能否PING通。一般情況下可正常連線。

image

(2)在本機安裝Xshell 4程式

【目的】安裝好Xshell,就可以在本機訪問虛擬機器,不受虛擬機器螢幕過小限制。

1) 下載安裝程式包

連結:pan.baidu.com/s/1rsHiK2YN… 密碼:qi5x

2)安裝配置

image

image

配置好對應虛擬機器的IP地址和登入使用者名稱/密碼後,就可以遠端訪問本機的Ubuntu系統命令列了。

【說明】點選工具欄的編碼按鈕,設定為Unicode(UTF-8)方式,能正常顯示中文。

4,安裝git,NodeJS,solc,testrpc,truffle,Geth客戶端

(1)安裝git,NodeJS

【目的】Git可用於從GitHub獲取原始碼;NodeJS以太坊開發框架Truffle需要。

輸入以下命令安裝git:

sudo apt-get install git

注意】如果在安裝git時出現E:Package 'git' has no installation candidate錯誤提示,只需使用以下命令代替即可:sudo apt-getinstall git-core

因為以太坊開發需要使用開發框架,但是,目前最好用且使用人數最多的是第三方開發框架Truffle。而Truffle建議系統所用NodeJS版本為5.0以上,因此,我們就需要安裝NodeJS的最新版本。

有多種方法安裝NodeJS:

方法一:使用apt,輸入以下命令安裝NodeJS 6.0以上版本(成功):

sudo apt-get install curl

curl -sL deb.nodesource.com/setup_6.x | sudo -E bash

sudo apt-get install -y nodejs

方法二:從Node官網下載原始碼並解壓,然後自行編譯安裝(以安裝Node V6.9.2為例):

tar -zxvf node-v6.9.2.tar.gzcd node-v6.9.2

sudo ./configuresudo make

sudo make install

方法二因為要重新編譯,因此耗費的時間可能多一點。

(2)安裝solc

【目的】編譯以太坊智慧合約使用。

輸入以下命令安裝solc:

sudo npm install -g solc

安裝完後,我們就會發現在終端中輸入solc命令返回一個出錯資訊。這是因為solc只是一個程式集,如果我們想要在終端中使用solc程式編譯智慧合約,則需要安裝solc-cli,這是solc的命令列介面。

sudo npm install -g solc-cli

輸入以下命令可以一併安裝solc和solc-cli(推薦使用此命令安裝):

sudo npm install -g solc solc-cli --save-dev

如果輸入solcjs --help命令,有以下輸出,則表明solc和solc-cli安裝成功:

image

到了這裡,如果想以後的智慧合約編譯工作不使用geth控制檯來完成,那麼solc編譯器就算安裝完了。但是,如果我們需要在geth控制檯使用solc編譯器,那麼我們仍然需要安裝solc二進位制包。輸入以下命令安裝solc二進位制包:

sudo add-apt-repository ppa:ethereum/ethereum

sudo apt-get update

sudo apt-get install solc

如果在輸入第一條命令的時候出現了錯誤,可以嘗試重新啟動系統來解決。

【注意】

如果你安裝了webthree-umbrella,那麼solc就會預設安裝,但是我們在終端輸入solc並沒有顯示可用的命令,我們需要輸入以下命令手動建立軟連結:

sudoln-s/home/zcc/webthree-umbrella/solidity/build/solc/solc /bin/solc

這樣就能直接在終端使用solc程式了。

【可選操作】

配置npm源為國內源(可選,可加快下載速度),命令列輸入:

sudo npm config set registry registry.npm.taobao.org

不想用他們的,再設定回原來的就可以了:

sudo npm config set registry registry.npmjs.org

(3)安裝testrpc

輸入以下命令安裝testrpc:

sudo npm install -g ethereumjs-testrpc

如果輸入testrpc命令,有以下輸出,則表明testrpc安裝成功:

image

注意

(1)參考網頁中的命令沒有sudo,但是因為-g引數是表示全域性安裝,則需要使用root許可權才能安裝成功。

(2)安裝過程可能會出錯,可以多試幾次安裝命令。

(4)安裝truffle

【目的】Truffle 是世界一流的開發環境,為以太坊的測試框架和資產管道,致力於使以太坊開發者的生活更容易。

輸入以下命令:

sudo npm install -g truffle

如果輸入truffle version命令,有以下輸出,則表明truffle安裝成功:

image

(5)安裝Geth客戶端

【目的】Geth是Go Ethereum開源專案的簡稱,它是使用Go語言編寫且實現了Ethereum協議的客戶端軟體,也是目前使用者最多,使用最廣泛的客戶端。通過Geth客戶端與以太坊網路進行連線和互動可以實現賬戶管理、合約部署、挖礦等眾多有趣且實用的功能。Geth支援Windows、Mac及Linux等主流作業系統。

有多種以太坊客戶端,安裝go-ethereum輸入以下命令:

sudo apt-get install software-properties-common

sudo add-apt-repository -y ppa:ethereum/ethereum

sudo apt-get update

sudo apt-get install ethereum

如果能執行GETH命令則表示按照成功了。

image

(6)安裝 Ganache 【可選】

【定義】Ganache是為以太坊開發準備的個人區塊鏈錢包,你可以用它執行智慧合約,研發應用和執行測試用例。Ganache的前身是testrpc,跟testrpc的作用一樣。

Ganache現在有兩個版本,一個是帶圖形介面的版本,下載地址:

github.com/trufflesuit…

這些可執行檔案的字尾都比較奇葩,參見下面的對應關係:

● Windows: Ganache-*.appx

● Mac: Ganache-*.dmg

● Linux: Ganache-*.AppImage

(1)在Ubuntu上安裝採用命令列方式

命令如下:

sudo npm install -g ganache-cli

具體的命令列引數配置參見github:

github.com/trufflesuit…

安裝介面截圖:

image

執行命令:

ganache-cli

呼叫命令可顯示10個虛擬賬號和私鑰:

image

Ganache-cli的命令引數幫助文件:

github.com/trufflesuit…

(2)在WINDOWS上安裝Ganache

github.com/trufflesuit…

ganache-setup-1.1.0.exe

image

(3) 在Ubuntu上安裝Ganache圖形化介面程式

下載.AppImage的程式,

wget github.com/trufflesuit…

chmod +x ganache-1.1.0-x86_64.AppImage//修改許可權為可執行檔案

sudo ./ganache-1.1.0-x86_64.AppImage //啟動ganache

【結果】在作者的Ubuntu安裝Gnaache圖形程式沒有成功,只能使用Ganache-clli版本了,可能是作者的Ubuntu是32位的,而程式是64位的原因?但是同樣的操作在歐陽哥哥的環境是成功的,執行的介面同WINDOWS的介面程式。故障待探索。

image

【注意】這個操作要在Ubuntu的本機命令列介面進行操作,不可在Xshell的遠端命令操作,否則不發觸發圖形介面。

【問題】如何啟動遠端Ganache伺服器呢?

把HOSTNAME的IP地址更換為遠端伺服器地址,例如192.168.80.144,點選RESTART按鈕。

image

image

(7)安裝 MetaMask 【可選】

【定義】MetaMask 是一款外掛形式的以太坊輕客戶端,開發過程中使用MetaMask和我們的dapp進行互動是個很好的選擇。

假設你執行的是CHROME瀏覽器,則官網下載擴充套件程式的連結地址(需要VPN翻牆):

chrome.google.com/webstore/de…

或者從百度雲盤獲取:

連結:pan.baidu.com/s/1N0oH5Azb… 密碼:77sl

在CHROME瀏覽器地址輸入:chrome://extensions/

image

【MetaMask官網】metamask.io/#how-it-wor…

(8)安裝 lite-server 【可選】

【定義】lite-server 是輕量級的,僅適用於開發 的 node 伺服器, 它僅支援 web app。 它能夠為你開啟瀏覽器, 當你的html或是JavaScript檔案變化時,它會識別到並自動幫你重新整理瀏覽器, 還能使用套接字自動注入變化的CSS, 當路由沒有被找到時,它將自動後退頁面。

安裝與使用

以下是被推薦的安裝lite-server的方式:

$ npm install lite-server --save-dev

image

在你的專案中的 package.json 檔案中新增一個 “script” 入口:

Inside package.json... "scripts": {

"dev": "lite-server"  },
複製程式碼

有了上面的script 入口, 你就可以通過以下命令來啟動 lite-server 了:

$ npm run dev

image


說明:本環境搭建得到了歐陽哥哥的指導,敬表謝意。

參考文件:

(1)VMware+CentOS+LAMP安裝實踐

(2) Ubuntu Kylin學習筆記

(3) Ubuntu系統搭建以太坊開發平臺過程

知識對接服務:

我和歐陽哥哥在知識星球開通了區塊鏈入門專欄,用於存放簡書區塊鏈入門專欄文章的工程原始碼等內容,並建立專項微信群用於技術交流,歡迎加入。

image

相關文章