技术员如何开发一个DAPP区块链应用(以宠物商店为例)

1. 文章摘要

【本文目标】

通过逐步的指导和截图举证,一步步带领一个技术新手完成一个宠物商店DAPP应用的开发和部署。

【环境前置条件】

参考《第一课 如何在WINDOWS环境下搭建以太坊开发环境》,已完成Ubuntu的安装,已完成TRUFFLE,Ganache-cli,lite-server的安装;
本案例是通过WINDOWS的XSHELL客户端同本机的Ubuntu命令操作进行的。
已在本地WIDOWS环境完成MetaMask轻钱包客户端的安装。
最好遵循从头开始的课程学习顺序。不过如果你想半途插入实操学习,问题也不大,遇到障碍时反向找对应文章的指导内容即可完成。

【技术收获】

从本实践中,你可以学习到:
搭建智能合约开发环境
创建Truffle项目
编写智能合约
编译和部署智能合约到区块链
如何通过Web3和智能合约交互
MetaMask 的使用

【实操课程列表】

第一课 如何在WINDOWS环境下搭建以太坊开发环境
第二课 如何实现以太坊最简智能合约“Hello World”的运行
第四课 以太坊开发框架Truffle从入门到实战
第六课 技术小白如何开发一个DAPP区块链应用(以宠物商店为例)
第七课 技术小白如何在45分钟内发行通证(TOKEN)并上线交易
第八课 如何调试以太坊官网的智能合约众筹案例
【说明】未列出的课程为知识普及的非实操类课程,所有区块链文章参考“区块链入口”专栏。

2. 下载/编写TRUFFLE框架的智能合约

项目背景

Pete有一个宠物店,有16只宠物狗,他想开发一个去中心化应用,让大家来领养宠物。
在truffle box中,已经提供了pet-shop的网站部分的代码,我们只需要编写合约及交互部分。
【官网原始参考】
代码框架下载:Pet Shop Truffle Box - Truffle Suite
开发指导:404

环境搭建

环境需要NodeJS, Truffle,Ganache-Cli, Lite-Server, Meta-Mask等程序,按照步骤可以参考《第一课 如何在WINDOWS环境下搭建以太坊开发环境》 搜索对应关键字在已安装的UBUNTU操作系统完成安装。

  1. 安装Node

    sudo apt-get install curl
    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash
    sudo apt-get install -y nodejs

  2. 安装 Truffle :
  3. npm install -g truffle

  4. 安装Ganache
  5. sudo npm install -g ganache-cli

    【说明】Ganache(或Ganache CLI)已经取代了 testrpc。

    4.Lite-Server, Meta-Mask安装

    创建项目

  6. 建立项目目录并进入
  7.  mkdir dapp-guide-pet-shop
     cd dapp-guide-pet-shop
    
    
  8. 使用truffle unbox 创建项目
    下载官方程序代码
  9. 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/ 配置文件
    其他代码可以暂时不用管
    【说明】如果想了解TRUFFLE框架更详细的内容,可参考文章《第四课 以太坊开发框架Truffle从入门到实战》

    编写智能合约

    智能合约承担着分布式应用的后台逻辑和存储。智能合约使用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是编译型语言,需要把可读的Soli

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值