寵物商店是truffle中最簡單的一個例子,一般都是從這里建立對truffle的了解,之后順利起航,邁進(jìn)神奇的truffle世界!今天我們一起回顧一下這個簡單的demo是如何運行起來的~
可以根據(jù)這個網(wǎng)址跑一遍,講解的非常詳細(xì),清楚。
https://learnblockchain.cn/2018/01/12/first-dapp/
不過,小伙伴需要注意以下補(bǔ)充,就可以成功的啟動這個寵物醫(yī)院的DAPP啦!
一、我使用的版本:
Ubuntu 16.04LTS
Truffle v5.0.20
Solidity 0.5.0 以上版本
Ganache v2.0.1
MetaMask v5.3.4
答應(yīng)我,千萬不要選擇新版的Metamask,v7以上默認(rèn)啟用了隱私模式,(網(wǎng)上說可以手動關(guān)閉,但我并沒有找到可以關(guān)閉的按鈕,哭!)隱私模式就意味著web3j 在網(wǎng)頁中應(yīng)用獲取不到metamask帳戶??梢酝ㄟ^GitHub網(wǎng)址上的下載指定的版本metamask。火狐瀏覽器現(xiàn)在不支持自定義安裝未驗證的版本擴(kuò)展程序,(網(wǎng)上說通過過Firefox 配置編輯器(about:config 頁)更改。將偏好extensions.langpacks.signatures.required設(shè)置為false可以解決,我試了,并不行,如果你們嘗試成功,一定要教教我,怎么弄得~)Google瀏覽器開發(fā)者模式可以,所以我用的是metamask-chrome-5.3.4。
二、Ganache下載安裝
Ganache是一個用于以太坊開發(fā)的個人區(qū)塊鏈,可以用它來部署合同,開發(fā)應(yīng)用程序和運行測試。用Ganache可以快速的來開啟一個私鏈來進(jìn)行開發(fā)測試,為開發(fā)人員帶來極大的便利??梢赃x擇安裝ganache-cli(是由命令行控制的),也可以選擇.AppImage文件的Ganache(提供用戶界面,可視化操作,更加便捷!)建議兩個都安裝。
1、安裝ganache-cli
npm install -g ganache-cli(命令行的方式)
2、安裝.AppImage文件的Ganache(視圖的方式)
在Ubuntu中,打開瀏覽器并導(dǎo)航到
https://github.com/trufflesuite/ganache/releases
或
https://www.trufflesuite.com/ganache
下載將作為.AppImage文件的最新Linux版本,例如ganache-2.0.1-x86_64.AppImage。(目前是2.3.0)下載完成后,打開一個新終端并切換到包含該.AppImage文件的目錄。
cd Downloads // 我下載在Downloads文件夾下
chmod +x Ganache-2.0.1.AppImage // 修改權(quán)限為可執(zhí)行文件
sudo ./Ganache-2.0.1.AppImage //啟動ganache
三、運行測試用例時
在終端運行
truffle test
會出現(xiàn)錯誤,如下圖所示:
TypeError:Type contract TestAdoption is not implicitly convertible to expected type address. address expected = this;

這是由于編譯器版本和代碼之前編寫的版本規(guī)范不同而導(dǎo)致的錯誤,更改TestAdoption.sol來解決這個問題!
將address expected = this; 改為 address expected = address(this);

四、在瀏覽器中運行,啟動npm run dev后發(fā)現(xiàn),頁面并沒有顯示我們的寵物商店,這是由于index.html文件中的jquery文件沒有加載成功,修改一下jquery文件的地址。如下:
index.html 中修改代碼:
將
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
*替換成
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
再重新運行 npm run dev 就可以了!