013 基于truffle的PetShop案例

简介: 我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。truffle里面有几个例子还是不错的,也看到很多人进行翻译,我这里就不翻译啦,介绍安装和部署遇到的坑。坑一:PetShop这个案例的坑在于src/index.html里面有个jquery.min.js的引用,被伟大的长城防火墙给墙了,导致加载报错。

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

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-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









目录
相关文章
|
4月前
|
存储 JavaScript 数据库
nodejs中express框架实现增删改查接口
nodejs中express框架实现增删改查接口
|
JavaScript 测试技术 C#
【C#】【xUnit】【Moq】.NET单元测试Mock框架Moq初探!
在TDD开发模型中,经常是在编码的同时进行单元测试的编写,由于现代软件开发不可能是一个人完成的工作,所以在定义好接口的时候我们就可以进行自己功能的开发(接口不能经常变更),而我们调用他人的功能时只需要使用接口即可。
5143 0
|
JavaScript 关系型数据库 MySQL
ABP【一】
ABP【一】
171 0
|
数据可视化 关系型数据库 MySQL
Laravel-Gii 可视化代码生成工具 CRUD +GUI
Laravel-Gii 可视化代码生成工具 CRUD +GUI GIT:https://github.com/sunshinev/laravel-gii 适用于快速B端后台开发 根据MySQL的表结构生成对应的Model、Observer、Controller、View、Route等相关项目文件,通过简单点击鼠标即可自动创建完整的CRUD后台。
1365 0
|
Web App开发 缓存 前端开发
艾伟_转载:WCF版的PetShop之一:PetShop简介
本系列文章导航 WCF版的PetShop之一:PetShop简介 WCF版的PetShop之二:模块中的层次划分 WCF版的PetShop之三:实现分布式的Membership和上下文传递   在《WCF技术剖析(卷1)》的最后一章,我写了一个简单基于WCF的Web应用程序,该程序模拟一个最简单的网上订购的场景,所以我将其命名为PetShop。
1219 0
|
JavaScript 前端开发 测试技术
ABP框架 - 介绍
原文:ABP框架 - 介绍 文档目录   本节内容: 简介 一个快速示例 其它特性 启动模板 如何使用   简介 我们总是对不同的需求开发不同的应用。但至少在某些层面上,一次又一次地重复实现通用的和类似的功能。
3458 0