我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
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进行部署
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-shop4、代码修改(包括合约代码、测试合约代码和前端代码)
请按原文修改代码或者下载我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.js6、配置编译文件
在目录/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 compile8、部署合约
在目录/home/jack/demo/pet-shop-tutorial下执行以下命令,truffle会根据truffle.js文件配置的网络把合约部署到上面
truffle migrate9、部署测试合约
在目录/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") } );
在目录/home/jack/demo/pet-shop-tutorial下执行以下命令
npm run dev