W3-1 DApp 去中心化应用
W3-1 DApp 去中心化应用
架构对比
中⼼化应⽤
去中⼼化应⽤
开发对比
中⼼化应⽤
- 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.