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









目录
相关文章
|
3月前
|
前端开发 容器
第十七章 使用脚手架写一个HelloWorld项目
第十七章 使用脚手架写一个HelloWorld项目
|
4月前
|
监控 前端开发 JavaScript
如何测试前端代码? 知道 BDD, TDD, Unit Test 么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?
如何测试前端代码? 知道 BDD, TDD, Unit Test 么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?
74 0
|
JavaScript 测试技术 C#
【C#】【xUnit】【Moq】.NET单元测试Mock框架Moq初探!
在TDD开发模型中,经常是在编码的同时进行单元测试的编写,由于现代软件开发不可能是一个人完成的工作,所以在定义好接口的时候我们就可以进行自己功能的开发(接口不能经常变更),而我们调用他人的功能时只需要使用接口即可。
5130 0
|
4月前
|
数据采集 JSON 安全
简明指南:使用Kotlin和Fuel库构建JD.com分析
Kotlin是一门基于JVM的静态类型编程语言,以其简洁、高效、安全、跨平台等特点而著称。这门语言不仅适用于Android开发,还可用于服务器端和Web应用程序的开发。Fuel库作为一款轻量级的Kotlin HTTP客户端,提供了一套简洁易用的DSL(领域特定语言),使得发送HTTP请求和处理响应变得异常便捷。除此之外,Fuel还支持协程、异步操作、JSON处理以及文件上传等多种功能,以满足各种网络编程需求。
简明指南:使用Kotlin和Fuel库构建JD.com分析
|
9月前
|
存储 IDE NoSQL
我是如何组织 Go 代码的(目录结构 依赖注入 wire)
我们在编写 Go 程序可能会直接新建 main.go,xxx.go,yyy.go……对于小型工程来说简洁明了;但对于大型工程而言,或者团队协作中,没有明确的规范,只会使得项目越来越凌乱……
68 0
|
10月前
|
Kubernetes 前端开发 Cloud Native
如何设计一个优秀的 Go Web 项目目录结构
如何设计一个优秀的 Go Web 项目目录结构
584 0
|
JSON NoSQL 关系型数据库
go web 工程脚手架
go web 工程示例,可以作为一些项目工程结构参考,对一些常用功能做了简单封装。支持构建docker镜像。
300 0
|
测试技术 Go
Go Web 编程入门:一探 GoConvey 测试库(下)
GoConvey 完美兼容 Go 内置的 testing 库,提供命令行工具简化内置的测试执行命令,测试会自动运行,提供更加直观的 Web 界面,最重要的是能够很轻易的得到测试报告。
|
测试技术 Go
Go Web 编程入门:一探 GoConvey 测试库(上)
GoConvey 完美兼容 Go 内置的 testing 库,提供命令行工具简化内置的测试执行命令,测试会自动运行,提供更加直观的 Web 界面,最重要的是能够很轻易的得到测试报告。
Go Web 编程入门:一探 GoConvey 测试库(上)
|
NoSQL 关系型数据库 MySQL
【Go实战 | 电商平台】(2) 项目结构及配置文件初始化
文章目录 1. 必备环境与推荐软件 1.1 必备环境 1.2 推荐软件 2. 项目初始化 3. 配置文件初始化 3.1 config.ini 3.2 conf.go 3.3 main函数
160 0
【Go实战 | 电商平台】(2) 项目结构及配置文件初始化