Forge 极简入门 | ArcBlock 博客

相信你应该已经知道 ArcBlock[1] 是一家什么样的公司:我们坚信区块链会给人类组织和协作方式带来巨大的变革,我们致力于开发简单易用、灵活可扩展的 dApp 开发框架和工具。到目前为止我们已经发布了 Forge 框架[2] 及围绕 Forge 框架的一系列工具。

Forge 工具箱从开始的只包含 Forge 内核,到现在包含能覆盖 dApp 完整生命周期的如下组件:

•Forge 内核: 交易处理引擎、和共识引擎、数据存储层的交互,每周会有大小版本发布


•核心智能合约: Forge 内置的交易合约,能够帮助开发者解决 99% 的账户、交易、跨链、链上治理等业务逻辑


•Forge Desktop:桌面版链节点


•Forge Web: Forge 链节点的 Web 管理界面和区块浏览器


•Forge SDK: 各种语言的 SDK,目前支持的语言包括 Elixir、Javascript、Java、Python、Rust


•Forge Simulator:流量模拟器


•dApp Workshop:dApp 原型工坊


•Forge Patron:集成测试工具


•Forge Deploy:生产环境大规模部署的工具,目前只支持 AWS


•Forge Compiler:智能合约编译工具,跟随 Forge 发版,在 Forge CLI 里面可用

而 Forge CLI 是开发者获取、使用这些工具的最佳路径:只需安装一条命令,就得到了整个区块链工具箱。

本文中我们会演示如何使用 Forge CLI 来完成下面几个事情:

•一键发链发币:创建和配置自己的链以及链上的通证


•一键创建 dApp:基于基石程序快速常见能跑在链上的 dApp

安装 Forge CLI

因为 Forge CLI 使用 Node.js 开发,所以安装前需要确保你的电脑上有 Node.js v10.x 及以上的运行环境,检查是否存在 Node.js 运行环境的最简单办法是:

node –version

然后,我们就可以开始安装 Forge CLI,执行:npm install -g @arcblock/forge-cli,等待安装完成,看到如下输出:

Forge 极简入门 | ArcBlock 博客

安装 Forge 发行版本

接下来,执行 forge install v0.38.4,把 Forge 发行版本安装到本地,安装过程如下图:


Forge 极简入门 | ArcBlock 博客

一键发链和发币

接下来,我们就可以执行 forge chain:create demo-chain 来创建一条链,并且在链上定义名称为 DCT、总量为 1 亿的通证,配置过程如下图:


Forge 极简入门 | ArcBlock 博客

关于自定义配置的部分,我们逐行解释如下:

1.Chain name: demo-chain:链的名称为 demo-chain,节点的名称也是这个
2.Please input block time (in seconds): 5:出块时间为 5 秒
3.Do you want to customize token config for this chain? Yes:选择自定义链上的币
4.What’s the token name? Demo Chain Token:币的名称
5.What’s the token symbol? DCT:币的符号,至少 3 个字符
6.What’s the token icon? /Users/wangshijun/.forge_cli/tmp/token.png:币的图标文件路径,建议正方形的 PNG 图片
7.What’s the token description? Token on demo chain:币的描述
8.Please input token total supply: 100000000:币的总供应量是 1 个亿
9.Please input token initial supply: 100000000:币的初始供应量是 1 个亿
10.Please input token decimal: 18:币的精度是小数点后 18 位
11.Do you want to enable “feel lucky” (poke) feature for this chain? Yes:允许用户签到领币
12.Do you want to customize “feel lucky” (poke) config for this chain? Yes:需要自定义签到领币的参数
13.How much token to give on a successful poke? 10:每次签到领币 10 个
14.How much token can be poked daily? 1000:每天最多放出去 1000 个
15.How much token can be poked in total? 1460000:允许签到领币放出去的最多的币数量
16.Do you want to include moderator config in the config? Yes:自动包含链管理员信息
17.Set moderator as token owner of (98540000 DCT) on chain start? Yes:把剩余的币放到链管理员账户里面,可以用程序转走

命令执行完毕之后,提示信息如下:

Forge 极简入门 | ArcBlock 博客

根据提示,执行 forge start demo-chain 即可启动测试链,等待 15 秒左右,即可启动成功:

Forge 极简入门 | ArcBlock 博客

刚刚启动的测试链其实是一条单节点的链,本地节点内置了节点的控制台和区块浏览器,执行 forge web open 即可打开控制台:

Forge 极简入门 | ArcBlock 博客

一键创建 dApp

有了链之后,我们就可以创建运行在这条链上的去中心化 dApp 了。Blocklet(基石程序) 是简化开发者创建 dApp 的可重用构建模块。Blocklet 可以是任何现成的组件、模块、库、前端视图或其他简化构建 dApp(去中心化 dApp)过程的工具。选择一个 Blocklet 后,就可以安装、启动并运行该 Blocklet。除了使用单一的 Blocklet, 用户也可以将多个 Blocklet 组合在一起,用于构建更复杂的 dApp。

基于 ArcBlock 官方提供的 Starter 类型基石程序,我们就可以快速创建一个包含如下功能的 dApp:

•支持用户用 ABT 钱包[3] 登录
•支持用户扫码签到领币
•支持用户支付测试币来解锁加密的文档

执行 forge blocklet:use,选择 forge-react-starter,然后指定 dApp 代码的存放目录为 demo-dapp,如下图:


Forge 极简入门 | ArcBlock 博客

接下来根据提示,配置好 dApp 所必须的参数,配置完毕,forge-react-starter 会自动给 dApp 创建 DID 账户、并且去链上声明 dApp 的 DID(DID 是内置在 Forge 里面的身份解决方案):

Forge 极简入门 | ArcBlock 博客

关键配置项是测试链的 GraphQL 接口,这个接口在 forge start demo-chain 输出里面最后那列能找到:http://localhost:8211/api。

dApp 创建结束后会有如下图的启动提示:

Forge 极简入门 | ArcBlock 博客

按照提示进入 dApp 目录,启动 dApp,如果一切正常,你就能在浏览器里面看到 dApp 的首页:

Forge 极简入门 | ArcBlock 博客

点击首页右上角的 “Login” 即可使用 ABT 钱包扫码登录,ABT 钱包的下载地址在这里[4]。

整个扫码登录过程和微信扫码登录非常类似:

Forge 极简入门 | ArcBlock 博客

在 ABT 钱包上输入 dApp 请求的用户名、邮箱信息,滑动确认,完成登录之后,就跳转到档案页面:

Forge 极简入门 | ArcBlock 博客

点击档案页面的 “GET 25 DCT” 按钮,然后钱包再次扫码,即可领取 10 个测试链上的通证,这里是 10 个而不是 25 个是因为我们签到的配置里面是 10 个,签到完之后,如果刷新用户档案页面,可以看到链上余额已经变成了 10,此时打开测试链的区块浏览器则能看到账户的链上注册和签到操作:

Forge 极简入门 | ArcBlock 博客

dApp 中的支付测试币解锁加密的功能则留给读者去探索,提示:只需要点击档案页面的 “MY PURCHASE” 按钮即可打开支付页面。

总结

如果你对命令行有一定的使用经验,整个发链、发币、发应用的流程走下来会非常快,开发者真正所需要关心的就是自己 dApp 的业务逻辑,而不需要在 dApp 运行环境和底层设施上浪费时间,这就是 Forge 框架和工具箱的初衷和目标,也是 ArcBlock 的愿景:让区块链应用开发变得足够简单。

References
[1] ArcBlock: https://arcblockio.cn
[2] Forge 框架: https://arcblockio.cn/zh/forge-sdk
[3] ABT 钱包: https://abtwallet.io
[4] 这里: https://abtwallet.io

关键词: Forge  ArcBlock  

该内容来自于互联网公开内容,非区块链原创内容,如若转载,请注明出处:https://htzkw.com/archives/28418

联系我们

aliyinhang@gmail.com