一.系統環境
- Ubuntu 16.04 操作系統
二. 安裝命令
安裝nodejs
- 更新ubuntu軟件源
sudo apt-get update
sudo apt-get install -y python-software-properties software-properties-common
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
- 安裝nodejs
sudo apt-get install nodejs
sudo apt install nodejs-legacy
sudo apt install npm
- 更新npm的包鏡像源,方便快速下載
sudo npm config set registry https://registry.npm.taobao.org
sudo npm config list
- 全局安裝n管理器(用於管理nodejs版本)
sudo npm install n -g
- 安裝最新的nodejs(stable版本)
sudo n stable
sudo node -v
安裝npm 工具
打開Terminal,輸入$ sudo apt-get install npm
安裝Truffle
Truffle是針對基於以太坊的Solidity語言的一套開發框架。本身基於Javascript。
官方文檔:http://truffleframework.com/docs/
輸入sudo npm -g install truffle
, 安裝Truffle。
安裝Ethereum TestRPC
輸入sudo npm install -g ethereumjs-testrpc
測試結果
輸入testrpc
,得到如下結果
三.選擇以太坊客戶端
我們需要安裝Ethereum客戶端來支持JSON RPC API的調用。
- Ethereum客戶端的選擇有很多,我大概列一下本地開發可以使用:Ganache、Ethereumjs-testrpc、以及truffle自帶的Truffle Develop,只需要用其中一種就好了。
- Ganache的安裝,可以在 http://truffleframework.com/ganache/ 直接下載安裝。
四 .創建一個項目
新建開發目錄dapp. 打開一個新的命令窗口。進入到dapp目錄。
初始化項目
執行truffle unbox webpack
,
執行以上命令之後,dapp文件夾內會自動生成開發所需要的目錄結構:
- contracts/:Solidity職能合約目錄
- migrations/:部署用到的腳本
- test/:用於測試應用程序和合約的測試文件目錄
- truffle.js:配置文件
- app:前端代碼目錄
目錄裏默認生成一個MetaCoin的demo,可以研究下 的代碼,瞭解網頁與合約的交互實現。
編譯合約
truffle框架裏已經給我們提供了demo代碼,我們暫時不用寫新的合約,我們直接用demo進行編譯和部署。
運行truffle compile
,出現如下錯誤。
解決方法:
安裝sudo npm install babel-core
。
再次運行truffle compile
命令。
編譯成功的話,你會在dapp的項目文件夾裏發現多個一個build的文件夾。
部署合約
部署合約之前,請開啓之前下載的以太坊客戶端:
Ganache:請打開下載的軟件
Ethereumjs-testrpc:在終端執行testrpc命令,以出現測試賬號爲成功,不要關閉,打開新的終端窗口進行下一步。
Truffle Develop:在終端執行 truffle develop 命令,以出現測試賬號爲成功,可直接在此窗口進行下一步。
開啓客戶端之後再輸入命令:
$ truffle migrate
執行成功,會出現以下界面: