一.项目背景
Pete 有一个宠物店,有 16 只宠物,他想开发一个去中心化应用,让大家来领养宠物。
在 truffle box 中,已经提供了 pet-shop 的网站部分的代码,我们只需要编写合约及交互部分。
二.环境搭建
- 安装 Node
访问nodejs官网(https://nodejs.org/en/)选择合适,我选择是mac的,安装完成后输入node -v查看即可 - 安装 Truffle :
npm install -g truffle
- 安装 Ganache
搜索一下下载版本即可
三创建项目
1.建立项目目录并进入
mkdir pet-shop-tutorial

2.使用 truffle unbox 创建项目
truffle unbox pet-shop
出现
Downloading...
Unpacking...
Setting up...
Unbox successful. Sweet!
Commands:
Compile: truffle compile
Migrate: truffle migrate
Test contracts: truffle test
Run dev server: npm run dev
则说明成功启动项目,这一步需要等待一会。
四.项目目录结构
contracts/ 智能合约的文件夹,所有的智能合约文件都放置在这里,里面包含一个重要的合约 Migrations.sol(稍后再讲)
migrations/ 用来处理部署(迁移)智能合约 ,迁移是一个额外特别的合约用来保存合约的变化。
test/ 智能合约测试用例文件夹
truffle.js/ 配置文件
五 编写智能合约
在 contracts 目录下,添加合约文件 Adoption.sol
pragma solidity ^0.5.0;
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] memory) {
return adopters;
}
}
六.编译部署智能合约
编译
dapp 的根目录 pet-shop-tutorial 下
输入
truffle compile
完成后输出
Compiling ./contracts/Adoption.sol...
Writing artifacts to ./build/contracts
部署
编译之后,就可以部署到区块链上。
在 migrations 文件夹下已经有一个 1_initial_migration.js 部署脚本,用来部署 Migrations.sol 合约。
Migrations.sol 用来确保不会部署相同的合约。
现在我们来创建一个自己的部署脚本 2_deploy_contracts.js
var Adoption = artifacts.require("Adoption");
module.exports = function(deployer) {
deployer.deploy(Adoption

本文档详细介绍了如何在Mac上基于Truffle搭建一个去中心化的宠物商店应用(Dapp)。首先,文章讲解了项目背景,然后逐步指导读者进行环境搭建,包括安装Node、Truffle和Ganache。接着,通过truffle unbox创建项目,并解释项目目录结构。文章还涵盖了编写智能合约、编译和部署合约的步骤,以及测试合约和创建用户接口与智能合约交互的方法。最后,文章指导如何使用lite-server配置本地Web服务器运行Dapp。
最低0.47元/天 解锁文章
1621

被折叠的 条评论
为什么被折叠?



