【本文目標】
根據本文指導,可以在WINDOUWS環境下完成以太坊智慧合約部署前的比較環境準備。
【技術收穫】
如何在WINDOW(筆者以WINDOWS 10為例)環境搭建以太坊開發環境,按照以下安裝順序完成安裝後,你將獲得相關知識和一個可使用的ETHEREUM環境:
1,安裝VMware虛擬機器
2,安裝Ubuntu系統
3,配置遠端登入Ubuntu系統
4,安裝git,NodeJS,solc,testrpc,truffle,Geth客戶端
5,可選按照Ganache, Lite-Server, MetaMask(WINDOWS本機),
【結果】環境安裝成功後,就可以啟動以太坊進行轉賬和智慧合約執行了。
【實操課程列表】
第二課 如何實現以太坊最簡智慧合約“Hello World”的執行
第六課 技術小白如何開發一個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具體配置
請購買或者合法獲取許可證金鑰,例如 NV4CL-0J3D6-ZZMM1-T10QH-13DPX ,然後就安裝成功了。
(3) 建立LINUX-UBUNTU空白虛擬機器
筆者曾在WINDOWS 10 64bit筆記本上選擇Ubuntu 64作業系統,提示出現錯誤,後來安裝並使用Ubuntu作業系統。
2,安裝Ubuntu作業系統
(1)下載Ubuntu作業系統安裝盤(.ISO)
Ubuntu為免費軟體,筆者選擇安裝的是“優麒麟17.10.1”版本,下載地址為www.ubuntukylin.com/downloads/
(2)載入虛擬光碟機,安裝Ubuntu系統
3,配置遠端登入Ubuntu系統
(1)在Ubuntu上安裝ssh服務端
1) 安裝ssh服務端
apt-get install openssh-server #安裝完畢後ssh預設已啟動
netstat -nat | grep 22 #檢視22號埠是否處於監聽狀態
2) 關閉掉防火牆
sudo ufw disable
【說明】使用ifconfig命令檢視虛擬機器的IP地址,
3) 更改網路配置,採用橋模式,跟本機WINDOWS採用相同的路由器配置
3) 測試與本機連線情況
虛擬機器是獨立IP。可在本機WINDOWS系統下執行CMD命令列:ping 192.168.1.11,能否PING通。一般情況下可正常連線。
(2)在本機安裝Xshell 4程式
【目的】安裝好Xshell,就可以在本機訪問虛擬機器,不受虛擬機器螢幕過小限制。
1) 下載安裝程式包
連結:pan.baidu.com/s/1rsHiK2YN… 密碼:qi5x
2)安裝配置
配置好對應虛擬機器的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安裝成功:
到了這裡,如果想以後的智慧合約編譯工作不使用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安裝成功:
【注意】
(1)參考網頁中的命令沒有sudo,但是因為-g引數是表示全域性安裝,則需要使用root許可權才能安裝成功。
(2)安裝過程可能會出錯,可以多試幾次安裝命令。
(4)安裝truffle
【目的】Truffle 是世界一流的開發環境,為以太坊的測試框架和資產管道,致力於使以太坊開發者的生活更容易。
輸入以下命令:
sudo npm install -g truffle
如果輸入truffle version命令,有以下輸出,則表明truffle安裝成功:
(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命令則表示按照成功了。
(6)安裝 Ganache 【可選】
【定義】Ganache是為以太坊開發準備的個人區塊鏈錢包,你可以用它執行智慧合約,研發應用和執行測試用例。Ganache的前身是testrpc,跟testrpc的作用一樣。
Ganache現在有兩個版本,一個是帶圖形介面的版本,下載地址:
這些可執行檔案的字尾都比較奇葩,參見下面的對應關係:
● Windows: Ganache-*.appx
● Mac: Ganache-*.dmg
● Linux: Ganache-*.AppImage
(1)在Ubuntu上安裝採用命令列方式
命令如下:
sudo npm install -g ganache-cli
具體的命令列引數配置參見github:
安裝介面截圖:
執行命令:
ganache-cli
呼叫命令可顯示10個虛擬賬號和私鑰:
Ganache-cli的命令引數幫助文件:
(2)在WINDOWS上安裝Ganache
(3) 在Ubuntu上安裝Ganache圖形化介面程式
下載.AppImage的程式,
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的介面程式。故障待探索。
【注意】這個操作要在Ubuntu的本機命令列介面進行操作,不可在Xshell的遠端命令操作,否則不發觸發圖形介面。
【問題】如何啟動遠端Ganache伺服器呢?
把HOSTNAME的IP地址更換為遠端伺服器地址,例如192.168.80.144,點選RESTART按鈕。
(7)安裝 MetaMask 【可選】
【定義】MetaMask 是一款外掛形式的以太坊輕客戶端,開發過程中使用MetaMask和我們的dapp進行互動是個很好的選擇。
假設你執行的是CHROME瀏覽器,則官網下載擴充套件程式的連結地址(需要VPN翻牆):
chrome.google.com/webstore/de…
或者從百度雲盤獲取:
連結:pan.baidu.com/s/1N0oH5Azb… 密碼:77sl
在CHROME瀏覽器地址輸入:chrome://extensions/
【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
在你的專案中的 package.json 檔案中新增一個 “script” 入口:
Inside package.json... "scripts": {
"dev": "lite-server" },
複製程式碼
有了上面的script 入口, 你就可以通過以下命令來啟動 lite-server 了:
$ npm run dev
說明:本環境搭建得到了歐陽哥哥的指導,敬表謝意。
參考文件:
(2) Ubuntu Kylin學習筆記
知識對接服務:
我和歐陽哥哥在知識星球開通了區塊鏈入門專欄,用於存放簡書區塊鏈入門專欄文章的工程原始碼等內容,並建立專項微信群用於技術交流,歡迎加入。