宠物商店是truffle中最简单的一个例子,一般都是从这里建立对truffle的了解,之后顺利起航,迈进神奇的truffle世界!今天我们一起回顾一下这个简单的demo是如何运行起来的~
可以根据这个网址跑一遍,讲解的非常详细,清楚。
https://learnblockchain.cn/2018/01/12/first-dapp/
不过,小伙伴需要注意以下补充,就可以成功的启动这个宠物医院的DAPP啦!
一、我使用的版本:
Ubuntu 16.04LTS
Truffle v5.0.20
Solidity 0.5.0 以上版本
Ganache v2.0.1
MetaMask v5.3.4
答应我,千万不要选择新版的Metamask,v7以上默认启用了隐私模式,(网上说可以手动关闭,但我并没有找到可以关闭的按钮,哭!)隐私模式就意味着web3j 在网页中应用获取不到metamask帐户。可以通过GitHub网址上的下载指定的版本metamask。火狐浏览器现在不支持自定义安装未验证的版本扩展程序,(网上说通过过Firefox 配置编辑器(about:config 页)更改。将偏好extensions.langpacks.signatures.required设置为false可以解决,我试了,并不行,如果你们尝试成功,一定要教教我,怎么弄得~)Google浏览器开发者模式可以,所以我用的是metamask-chrome-5.3.4。
二、Ganache下载安装
Ganache是一个用于以太坊开发的个人区块链,可以用它来部署合同,开发应用程序和运行测试。用Ganache可以快速的来开启一个私链来进行开发测试,为开发人员带来极大的便利。可以选择安装ganache-cli(是由命令行控制的),也可以选择.AppImage文件的Ganache(提供用户界面,可视化操作,更加便捷!)建议两个都安装。
1、安装ganache-cli
npm install -g ganache-cli(命令行的方式)
2、安装.AppImage文件的Ganache(视图的方式)
在Ubuntu中,打开浏览器并导航到
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 // 修改权限为可执行文件
sudo ./Ganache-2.0.1.AppImage //启动ganache
三、运行测试用例时
在终端运行
truffle test
会出现错误,如下图所示:
TypeError:Type contract TestAdoption is not implicitly convertible to expected type address. address expected = this;
这是由于编译器版本和代码之前编写的版本规范不同而导致的错误,更改TestAdoption.sol来解决这个问题!
将address expected = this; 改为 address expected = address(this);
四、在浏览器中运行,启动npm run dev后发现,页面并没有显示我们的宠物商店,这是由于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 就可以了!