013 基于truffle的PetShop案例

我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。

truffle里面有几个例子还是不错的,也看到很多人进行翻译,我这里就不翻译啦,介绍安装和部署遇到的坑。

坑一:PetShop这个案例的坑在于src/index.html里面有个jquery.min.js的引用,被伟大的长城防火墙给墙了,导致加载报错。

大家可以自行修改或者下载我整理的代码,代码地址:https://github.com/zxs9999/pet-shop

坑二:没有介绍如何转以太币,勉强算坑吧。

下面快速介绍安装部署流程,详细可以看英文原版或者百度其他人翻译的。

1、安装前提条件

Node.js v6+ LTS and npm (comes with Node)  地址:http://blog.csdn.net/zxs9999/article/details/79029044

Git   

安装turffle   地址:http://blog.csdn.net/zxs9999/article/details/79029328

使用root进行部署

扫描二维码关注公众号,回复: 1987161 查看本文章

2、搭建私有链

安装、运行ganache详细手册,地址: http://mp.blog.csdn.net/postedit/79118556

RPC SERVER : HTTP://127.0.0.1:7545

NETWORK ID:8888

3、创建工程

mkdir pet-shop-tutorial
cd pet-shop-tutorial
truffle unbox pet-shop
4、代码修改(包括合约代码、测试合约代码和前端代码)

请按原文修改代码或者下载我github已经整理好的代码

truffle原文地址:http://truffleframework.com/tutorials/pet-shop

github整理好的代码地址:https://github.com/zxs9999/pet-shop

5、配置工程文件

修改工程truffle配置文件truffle.js,文件路径/home/jack/demo/pet-shop-tutorial

RPC地址修改成已经启动的私有网络地址:RPC SERVER : HTTP://127.0.0.1:7545

网络地址可以修改成NETWORK ID:8888,也可以默认为*

vi truffle.js 
6、配置编译文件

      在目录/home/jack/demo/pet-shop-tutorial/migrations下执行以下命令

vi 2_deploy_contracts.js 

修改为以下内容
var Adoption = artifacts.require("Adoption");

module.exports = function(deployer) {
  deployer.deploy(Adoption);
};
7、编译合约

      在目录/home/jack/demo/pet-shop-tutorial下执行以下命令

truffle compile  
8、部署合约

      在目录/home/jack/demo/pet-shop-tutorial下执行以下命令,truffle会根据truffle.js文件配置的网络把合约部署到上面

truffle migrate
9、部署测试合约

       在目录/home/jack/demo/pet-shop-tutorial下执行以下命令

truffle test
      测试结果如下,表示合约部署成功:

   Using network 'development'.

   Compiling ./contracts/Adoption.sol...
   Compiling ./test/TestAdoption.sol...
   Compiling truffle/Assert.sol...
   Compiling truffle/DeployedAddresses.sol...

     TestAdoption
       ✓ testUserCanAdoptPet (91ms)
       ✓ testGetAdopterAddressByPetId (70ms)
       ✓ testGetAdopterAddressByPetIdInArray (89ms)


     3 passing (670ms)
10、安装Metamask钱包并创建账户

可以参考之前安装Metamask钱包文章:http://blog.csdn.net/zxs9999/article/details/79052801

设置Metamask钱包链接到私有链。




11、转以太币到Metamask钱包账户

ganache创建的私有链第二个账户中转10个以太币给Metamask钱包内账户。

在目录/home/jack/demo/pet-shop-tutorial下执行以下命令,进入truffle交互命令行

 truffle console

先复制Metamask账户地址 0xafFDC60DEca1df8b61E5297dBCCca3d6d80820f7
修改以下账户地址为你的Metamask账户地址 ,在交互命令行下,执行以下命令 

web3.eth.sendTransaction( {from :web3.eth.accounts[1], to: "0xafFDC60DEca1df8b61E5297dBCCca3d6d80820f7", value: web3.toWei("10","ether")	} );


12、运行项目

      在目录/home/jack/demo/pet-shop-tutorial下执行以下命令

npm run dev









猜你喜欢

转载自blog.csdn.net/zxs9999/article/details/79155163
013