Post

W3-1 DApp 去中心化应用

W3-1 DApp 去中心化应用

架构对比

中⼼化应⽤

  • web2.0
  • image1

去中⼼化应⽤

  • web2.0

    image2

开发对比

中⼼化应⽤

  • UI呈现
  • http请求
  • 后端服务程序
  • 服务器Nginx/Apache

去中⼼化应⽤

  • UI呈现
    • 钱包/Dapp浏览器
  • rpc请求
    • ethers.js
  • 智能合约
  • EVM节点

  • 两个主要特点:
    • 交易离不开钱包
    • 交易是异步的

前端与合约交互

  • Ethers.js/Web3.js:⼀套和以太坊区块链进⾏交互的库,RPC 接⼝封装
  • 安装:npm install --save ethers
  • 使⽤ ethers.js 调⽤ ERC20 合约示例:
1
2
3
4
5
6
7
var abi = [];
var addr = "0x...";
var contract = new ethers.Contract(address, abi, provider);
contract.transfer(targetAddress, amount)
  .then(function (tx) {
    console.log(tx);
  });

开发流程

  • 链接钱包(Provider)
  • 初始化合约
  • 从合约获取数据、发起交易
This post is licensed under CC BY 4.0 by the author.