Forge 极简入门 | ArcBlock 博客
发布:中币网 时间:2019-12-03 11:25:14 加入收藏 打赏
相信你应该已经知道 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 发行版本
接下来,执行 forge install v0.38.4,把 Forge 发行版本安装到本地,安装过程如下图:
一键发链和发币
接下来,我们就可以执行 forge chain:create demo-chain 来创建一条链,并且在链上定义名称为 DCT、总量为 1 亿的通证,配置过程如下图:
关于自定义配置的部分,我们逐行解释如下:
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 start demo-chain 即可启动测试链,等待 15 秒左右,即可启动成功:
刚刚启动的测试链其实是一条单节点的链,本地节点内置了节点的控制台和区块浏览器,执行 forge web open 即可打开控制台:
一键创建 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,如下图:
接下来根据提示,配置好 dApp 所必须的参数,配置完毕,forge-react-starter 会自动给 dApp 创建 DID 账户、并且去链上声明 dApp 的 DID(DID 是内置在 Forge 里面的身份解决方案):
关键配置项是测试链的 GraphQL 接口,这个接口在 forge start demo-chain 输出里面最后那列能找到:http://localhost:8211/api。
dApp 创建结束后会有如下图的启动提示:
按照提示进入 dApp 目录,启动 dApp,如果一切正常,你就能在浏览器里面看到 dApp 的首页:
点击首页右上角的 "Login" 即可使用 ABT 钱包扫码登录,ABT 钱包的下载地址在这里[4]。
整个扫码登录过程和微信扫码登录非常类似:
在 ABT 钱包上输入 dApp 请求的用户名、邮箱信息,滑动确认,完成登录之后,就跳转到档案页面:
点击档案页面的 "GET 25 DCT" 按钮,然后钱包再次扫码,即可领取 10 个测试链上的通证,这里是 10 个而不是 25 个是因为我们签到的配置里面是 10 个,签到完之后,如果刷新用户档案页面,可以看到链上余额已经变成了 10,此时打开测试链的区块浏览器则能看到账户的链上注册和签到操作:
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区块基石
来源:中币网 https://www.zhongbi.net/news/blocknews/175089.html 声明:登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。 此文如侵犯到您的合法权益,请联系我们3111859717@qq.com,我们将第一时间处理。