LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > Forge 极简入门 | ArcBlock 博客

Forge 极简入门 | ArcBlock 博客

2019-10-14 ArcBlock区块基石 来源:区块链网络

2019101417324287260.jpg

作者: 王仕军(资深前端工程师)

相信你应该已经知道 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,等待安装完成,看到如下输出:

2019101417330876691.jpg

安装 Forge 发行版本

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

2019101417422599336.jpg

一键发链和发币

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

2019101417400561111.jpg

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

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:把剩余的币放到链管理员账户里面,可以用程序转走

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

2019101417394527507.jpg

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

2019101417392132710.jpg

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

2019101417390656176.jpg

一键创建 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,如下图:

2019101417384674758.jpg

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

2019101417383330683.jpg

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

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

2019101417442044246.jpg

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

2019101417444499422.jpg

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

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

2019101417450443303.jpg

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

2019101417452243893.jpg

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

2019101417460180280.jpg

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

—-

编译者/作者:ArcBlock区块基石

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...