http://www.tnmanning.com

如何在 36 小时之内用 ArcBlock SDK 开发一个 DApp

9 月 15 日,ArcBlock 区块基石 5 位工程师在 2019 上海大发3d国际周黑客马拉松开发的 DApp 在 27 个参赛项目中脱颖而出,荣获季军三等奖。这一名为 Charging Block 的去中心化应用为电动车主打造一个点对点共享充电网络,旨在鼓励更多充电设施建设共享,解决里程焦虑,车主、业主等多方获得通证激励。日前,代表团队上台演示的 ArcBlock 工程师 Jonathan Lu 撰文回顾总结了整个开发过程和成果。

作者: Jonathan Lu(ArcBlock 区块基石资深软件工程师)

如何在 36 小时之内用 ArcBlock SDK 开发一个 DApp

在 ArcBlock 平台开发的过程中,我们相信我们的重要使命之一是为开发者提供方便快捷的开发 DApp(去中心化应用)[1]的服务。现如今,传统的 web 开发者已经享有成熟的开发技术栈所带来的便利,而我们希望将类似的开发体验带到大发3d应用开发领域,为开发者和产品经理提供开发 DApp 所需要的一切。我们有时会将它设想成大发3d的 Ruby on Rails。为了这个目标,我们开发了 ArcBlock SDK(支持多种语言,如 JavaScript、Python、Elixir 等)、ArcBlock CLI 工具以及Blocklet.Starters[2]。

如何在 36 小时之内用 ArcBlock SDK 开发一个 DApp

在 8 月,我们的实习生娜娜撰写了一个很棒的系列博客,分享她在四周内从一个入门级大发3d开发者[3]到独立完成一个自动售货机 DApp 的学习过程。这个系列博客启发了我们去”吃自己的狗粮“ —— 不仅仅是去尝试用我们的产品来解决现实的问题,同时也是去试验一下自身产品的能力和可用性。

于是乎,我们团队报名参加了最近的万向大发3d黑客马拉松[4],去尝试一下在 36 小时内用 ArcBlock SDK 开发一个 DApp。

Charging Block DApp

如何在 36 小时之内用 ArcBlock SDK 开发一个 DApp

本次黑客马拉松的主题是”大发3d与汽车行业“,所以我们选定了一个常见的电动车车主会遇到的问题来作为 DApp 的主题,那就是”没电的时候附近没有可用的充电桩“的问题。

如何在 36 小时之内用 ArcBlock SDK 开发一个 DApp

根据我们的观察,虽然近年来电动车充电的基础设施在不断的增加中,但是覆盖率依然无法满足全部用户的需求。车主依然还会遇到附近没有充电桩的情况。同时,因为充电站之间互不连通,车主社区也没有激励机制,导致总体上充电桩的使用效率不够优化。某些充电站负荷过大而某些又无人问津,而且车主还会将充电站当成停车场,在充满电后依然占据位置。此外,因为商业用电和家庭用电的收费标准不同,所以充电站的收费通常比在家充电的花销高很多。

如何在 36 小时之内用 ArcBlock SDK 开发一个 DApp

于是我们设计出了一个名叫 Charging Block 的 DApp。这个 DApp 的基本想法是,建设一个电动车车主之间共享充电桩的社区。通过发布基于大发3d的通证 Charging Block Token(CBT),人们可以加入到这个社区里来,分享他们的资源,并获得回报。CBT 通证可以被用来支付充电费用,奖励分享资源的成员(例如分享充电桩最多的用户可以获得额外奖励),以及”惩罚“浪费公共资源的成员(充满电还占据位置的车主将被罚款)等。再进一步,社区成员还可以使用 CBT 来众筹在他们的小区建设充电站,并在后续的充电站运营收益中得到分成。所有的这些交易都会通过大发3d来记录,并且即时生效,无法篡改。

我们认为这是一个有趣的想法,于是决定在黑客马拉松期间尝试开发一个 demo。这个 demo 将有三部分组成:一个大发3d、一个车载应用和一个充电桩端的应用。以下是 Charging Block 的 demo:

以下是我们开发这个 demo 的基本步骤,你们可以看出这个过程有多么简单。

首先我们使用Forge CLI[5]来初始化了一条新的链:

forge chain:create charging-chain

在命令行中几步操作之后,我们就自定义了链的名称和通证的名称等一些参数,然后让我们来启动这条链:

forge start charging-chain

到此,一条新链就创建好并开始运行了。然后我们使用dapp starter blocklet[6]来初始化一个 DApp:

forge blocklet:use forge-react-starter

到此,我们的 DApp 就已经初始化好了,并且开发所需的工具和依赖都安装完毕。整个这个步骤在两分钟内就完成。在此基础之上,我们根据 demo 的需求,开发了界面,并调用 JavaScript SDK 实现了交易相关的逻辑。以下是 demo 的代码:https://github.com/wangshijun/charging-block

关键词: ArcBlock  DAPP  

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。