安裝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 https://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 http://registry.npm.taobao.org
不想用他們的,再設置回原來的就可以了:
sudo npm config set registry https://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現在有兩個版本,一個是帶圖形界面的版本,下載地址:
https://github.com/trufflesuite/ganache/releases
這些可執行文件的后綴都比較奇葩,參見下面的對應關系:
● Windows: Ganache-*.appx
● Mac: Ganache-*.dmg
● Linux: Ganache-*.AppImage
(1)在Ubuntu上安裝采用命令行方式
命令如下:
sudo npm install -g ganache-cli
具體的命令行參數配置參見github:
https://github.com/trufflesuite/ganache-cli
安裝界面截圖:
運行命令:
ganache-cli
調用命令可顯示10個虛擬賬號和私鑰:
Ganache-cli的命令參數幫助文檔:
https://github.com/trufflesuite/ganache-cli/blob/master/README.md
(2)在WINDOWS上安裝Ganache
https://github.com/trufflesuite/ganache/releases目錄下下載最新的WINDOWS版本安裝文件
(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瀏覽器,則官網下載擴展程序的鏈接地址(需要VPNFQ):
https://chrome.google.com/webstore/detail/nkbihfbeogaeaoehlefnkodbefgpgknn
或者從百度雲盤獲取:
鏈接:https://pan.baidu.com/s/1N0oH5AzbLqU0B3YIwNSvjQ 密碼:77sl
在CHROME瀏覽器地址輸入:chrome://extensions/
【MetaMask官網】https://metamask.io/#how-it-works
(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