【学习笔记】Mac基于truffle第一个去中心化应用(Dapp) - 宠物商店

一.项目背景

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
 ![cd pet-shop-tutorial](https://img-blog.csdnimg.cn/20200802182719766.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTY5NTkx,size_16,color_FFFFFF,t_70)


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);
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值