以太坊开发
最新推荐文章于 2022-09-16 23:23:56 发布

bk1171676983 于 2019-01-27 14:55:03 发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
pet-shop Box项目地址:http://truffleframework.com/boxes/pet-shop
pet-shop Box官方教程:http://truffleframework.com/tutorials/pet-shop
本文在原文基于Truffle Box中的pet-shop Box代码,使用图形化的Ganache以及插件形式的以太坊轻客户端MetaMask,编写一个去中心化的宠物商店的基础上,加入了在实际操作过程中解决遇到的问题。例如页面无法正常显示的问题。
项目背景
Pete有一个宠物店,有16只宠物,他想开发一个去中心化应用,让大家来领养宠物。
在truffle box中,已经提供了pet-shop的网站部分的代码,我们只需要编写合约及交互部分。
环境搭建
安装Node 安装 Truffle第1,2步骤请查看区块链开发(一)Truffle入门指南 安装Ganache
创建项目
建立项目目录并进入yuyangdeMacBook-Pro:~ yuyang$ mkdir pet-shop-tutorial
yuyangdeMacBook-Pro:~ yuyang$ cd pet-shop-tutorial
使用truffle unbox 创建项目yuyangdeMacBook-Pro:pet-shop-tutorial yuyang$ truffle unbox pet-shop
这一步需要等待一会。
也可以使用truffle init 来创建一个全新的项目。
项目目录结构
contracts/ 智能合约的文件夹,所有的智能合约文件都放置在这里,里面包含一个重要的合约Migrations.sol(稍后再讲)。
migrations/ 用来处理部署(迁移)智能合约 ,迁移是一个额外特别的合约用来保存合约的变化。
test/ 智能合约测试用例文件夹。
truffle.js/ 配置文件。
其他代码可以暂时不用管。
编写智能合约
智能合约承担着分布式应用的后台逻辑和存储。智能合约使用solidity编写。
在contracts目录下,添加合约文件Adoption.sol
pragma solidity ^0.4.17;
contract Adoption {
address[16] public adopters; // 保存领养者的地址
// 领养宠物
function adopt(uint petId) public returns (uint) {
require(petId >= 0 && petId <= 15); // 确保id在数组长度内
adopters[petId] = msg.sender; // 保存调用这地址
return petId;
}
// 返回领养者
function getAdopters() public view returns (address[16]) {
return adopters;
}
}
编译部署智能合约
Truffle集成了一个开发者控制台,可用来生成一个开发链用来测试和部署智能合约。
编译
Solidity是编译型语言,需要把可读的Solidity代码编译为EVM字节码才能运行。
yuyangdeMacBook-Pro:pet-shop-tutorial yuyang$ truffle compile
输出
Compiling ./contracts/Migrations.sol...
Comp
相关知识
首款基于以太坊的宠物社交3D区块链游戏《旺旺狗》公测来袭
【精品】边黎安大神陪你一起学dapp以太坊 宠物狗领养 免费大神指导
Hello Kimi区块链云宠物社交休闲游戏由国内资深原创游戏开发团队打造
没有最疯狂只有更疯狂:一只虚拟"宠物猫"叫价13亿元
宠物区块链开发平台
前瞻区块链产业全球周报第54期:深圳正开展数字货币内测,“购买加密货币”的谷歌搜索量达两年高点
Vitalik 出席的基辅 Web3 黑客松获胜项目一览
一周预告
宠物工坊打造一个宠物需要多少能量
鸡犬升天!狗狗币之后 秋田犬币、柴犬币、宠物币都涨疯了
原文链接: 以太坊开发 https://www.mcbbbk.com/newsview182069.html
| 上一篇: 现货水滴蓝牙防丢器断点提醒钥匙钱... | 下一篇: python实例1 |





