当前位置:首页 > 资讯 > 区块链新闻 > 正文

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

发布:中币网   时间:2019-12-03 11:18:25   加入收藏 打赏

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

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

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

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

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

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

在 8 月,我们的实习生娜娜撰写了一个很棒的系列博客,分享她在四周内从一个入门级区块链开发者[3]到独立完成一个自动售货机 DApp 的学习过程。这个系列博客启发了我们去”吃自己的狗粮“ —— 不仅仅是去尝试用我们的产品来解决现实的问题,同时也是去试验一下自身产品的能力和可用性。
于是乎,我们团队报名参加了最近的万向区块链黑客马拉松[4],去尝试一下在 36 小时内用 ArcBlock SDK 开发一个 DApp。
Charging Block DApp
如何在 36 小时之内用 ArcBlock SDK 开发一个 DApp

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

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

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

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

于是我们设计出了一个名叫 Charging Block 的 DApp。这个 DApp 的基本想法是,建设一个电动车车主之间共享充电桩的社区。通过发布基于区块链的通证 Charging Block Token(CBT),人们可以加入到这个社区里来,分享他们的资源,并获得回报。CBT 通证可以被用来支付充电费用,奖励分享资源的成员(例如分享充电桩最多的用户可以获得额外奖励),以及”惩罚“浪费公共资源的成员(充满电还占据位置的车主将被罚款)等。再进一步,社区成员还可以使用 CBT 来众筹在他们的小区建设充电站,并在后续的充电站运营收益中得到分成。所有的这些交易都会通过区块链来记录,并且即时生效,无法篡改。
我们认为这是一个有趣的想法,于是决定在黑客马拉松期间尝试开发一个 demo。这个 demo 将有三部分组成:一个区块链、一个车载应用和一个充电桩端的应用。以下是 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区块基石




来源:中币网  https://www.zhongbi.net/news/blocknews/174954.html
声明:登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。 此文如侵犯到您的合法权益,请联系我们3111859717@qq.com,我们将第一时间处理。