登录

开发者请进:手把手教你在公链 Conflux 创建 DApp

技术
0 12

学会在 Conflux 上开发一个包含前端和智能合约的完整 DApp,从这篇开始。

撰文:黑曜石实验室

Conflux DApp 开发教程将使用 Conflux Studio 在 Oceanus 网络下开发一个简单的代币应用 Coin。

通过这个开发教程,你将会学习到如何进行 Conflux 智能合约的编写、调用,配置智能合约的代付以及如何使用 Web 前端项目与智能合约进行交互,从而实现一个包含前端和智能合约的完整的 DApp。

在阅读教程中遇到任何问题,欢迎在 Issues 中向我们反馈。

准备工作

安装 IDE

请在 GitHub 下载页面 下载 Conflux Studio。目前 Conflux Studio 支持 macOS 和 Linux 系统,请根据系统下载对应的版本。

正确安装 Conflux Studio 并初次启动后,Conflux Studio 将显示欢迎页面,根据提示完成 Docker, Conflux Node 以及 Conflux Truffle 的下载、安装及启动。

硬核 | 手把手教你从零开始在 Conflux 上开发 DApp

创建钱包

完成所有的安装步骤后,首先需要创建钥匙对来完成后续的合约部署以及调用。

在 Conflux Studio 的任意界面,点击应用左下⻆的钥匙图标,打开密钥管理器。点击 Create 按钮打开新钥匙对弹窗,输入钥匙对的名字并点击 Save 按钮。完成后将在密钥管理器中看到刚刚生成的钥匙对的地址。钥匙对由私钥和公钥组成,公钥在智能合约中也常被称作地址。

导出私钥可以通过点击每个地址后面的眼睛按钮打开查看私钥弹窗,弹窗显示地址以及私钥。后续教程中会需要通过管理器导出私钥。

硬核 | 手把手教你从零开始在 Conflux 上开发 DApp

为了顺利完成教程,首先需要创建三个钥匙对:

  • minter_key 用于 Coin 合约部署时的签名,是这个教程中最常使用的钥匙对
  • receiver_key 用于 Coin 合约接收转账,将在后文中介绍转账时用到
  • sponsor_key 用于 Coin 合约代付功能,将在后文中介绍代付功能时用到

连接 Conflux 网络

教程将在 Oceanus 网络进行合约的部署以及合约的调用。点击顶部 Network 标签的倒三角打开下拉菜单,点击选择 Oceanus 网络进行切换。

切换完成后,可以在主页面中看到当前网络为 oceanus。页面左边包括了当前网络的节点 URL,Chain ID,TPS 信息,页面右边包含了当前网络区块的信息。

硬核 | 手把手教你从零开始在 Conflux 上开发 DApp

申请测试 CFX

点击顶部 Explorer 标签打开区块浏览器,并在地址栏粘贴钥匙对地址,可以在左边看到当前地址的 CFX 余额信息。

硬核 | 手把手教你从零开始在 Conflux 上开发 DApp

在区块链的世界中,大家通常将申请测试 Token 的方式称为 faucet,目前在 Oceanus 网络下每次 faucet 申请到的 Token 为 100 CFX。

获取 CFX 的方式有两种方式:

硬核 | 手把手教你从零开始在 Conflux 上开发 DApp

使用上述方法在 Conflux Studio 中为 minter_key 和 sponsor_key 申请 CFX Token。完成申请后,这两个账户上的余额将会从 0 CFX 更新为 100 CFX。

目前余额信息为:

  • minter_key 余额 100 CFX
  • receiver_key 余额 0 CFX
  • sponsor_key 余额 100 CFX

智能合约

创建项目

点击顶部左边的 Project 标签切换至项目列表页面,点击页面中的 New 按钮打开项目创建窗口,输入项目的名称并选择 coin 模版,点击 Create Project 完成项目的创建。

硬核 | 手把手教你从零开始在 Conflux 上开发 DApp

合约代码

Coin 合约是一个简单的代币合约,其中:

  • 通过 mint 方法可以增发代币数量
  • 通过 send 方法可以将一定数量的代币转账给别的用户,同时会在事件中记录下这笔转账的信息
  • 通过 balanceOf 方法可以查询到指定账户地址的代币余额
  • 通过 add_privilege 方法可以为合约添加代付白名单
  • 通过 remove_privilege 方法可以为合约移除代付白名单

硬核 | 手把手教你从零开始在 Conflux 上开发 DApp

Conflux 智能合约使用 Solidity 语言进行开发,打开目录下的 contracts/Coin.sol 文件,查看项目的核心代码。

编译及部署合约

点击工具栏的 Build 按钮进行合约的编译,编译的结果将会保存在 build/Coin.json 文件中。

硬核 | 手把手教你从零开始在 Conflux 上开发 DApp

在部署合约前,首先需要确认在 Explorer 中选择合约部署所使用的地址,Conflux Studio 会使用这个地址将部署合约这笔交易进行签名(选择的方法为在 Explorer 的地址栏中输入地址)。在合约代码的 constructor 中,minter 被赋值为 msg.sender,这个 msg.sender 就是 Explorer 所选择的地址。

在此我们选择 minter_key 作为部署合约的签名者。

硬核 | 手把手教你从零开始在 Conflux 上开发 DApp

点击工具栏的部署按钮进行部署,部署完成后,部署结果会在 deploys 的 JSON 文件中,在这个文件中可以在 contractCreated 中找到当前合约部署的地址,后文中使用 contract_addr 来代表这个合约地址。

硬核 | 手把手教你从零开始在 Conflux 上开发 DApp

总结

在本开发教程中,我们学习了如何使用 Conflux Studio 来完成一个完整的 Coin DApp 开发,其中包括了:

  • 使用钥匙对管理器创建账户及导出账户私钥
  • 切换 Oceanus 网络,查看网络信息
  • 账户申请 CFX Token
  • 创建、编译并部署项目
  • 解析 Coin 合约代码,学习如何编写合约的读写方法及事件
  • 使用合约浏览器调用 Coin 合约的代币增发、转账、查询余额及查询事件
  • 设置并使用智能合约的代付功能
  • 将私钥导入 Conflux Portal 并连接前端项目
  • 在前端项目中调用 Coin 合约的代币增发、转账、查询余额及查询事件
  • 解析前端项目代码,学习如何通过 Conflux Portal 和 Conflux JavaScript SDK 连接网络并实现交易

本文为节选内容,完整教程请 参见此处

来源链接:github.com

发表评论

0 个回复