IOTA黑客马拉松:开放式车载网络

这是第二部分,总结IOTA Hackathon期间获奖团队“PlugInBaby”的经验。在第一次出版物中,我们描述了产生想法的过程。在这篇文章中,团队成员Rebecca Johnson更详细地介绍了团队如何构建项目以及完成的内容。

我们的PoC 通过允许发货人通过价值0的交易在无争议的情况下(离线,繁忙,可用)传送其状态,分散和民主化电动车充电器网络。然后,使用移动应用程序,搜索充电站的用户可以使用0值交易来查询纠缠以搜索可用站的标签。他们可以预定一个收费地点,并保留所有使用IOTA支付电费所需的微型交易。

使用Tangle作为数据库使解决方案相当优雅。发送数据和数据的协议本质上是一样的,这就消除了对集中的支付处理层的需求,并允许将DIY道德规范扩展到最终用户。

由于硬件和软件是开源的,这种方法也足够灵活,为公用事业公司和其他有关方面的参与腾出空间。欢迎改进,任何人都可以自由实施这个想法。代码可以在这里找到。

要求和假设

我们只限于使用IOTA来实现数据库的功能。这带来了未来可扩展性,总分散化和零交易成本的理论上的优势,以及从机器到机器购买电力的机制。

我们假设API和充电器与汽车应用程序之间的交互是黑客马拉松无法实现的。

充电站的提供者必须使用0个余额交易向他们的电台发送状态消息(免费,正在使用,离线)。我们的后端通过终端条目来提供这种能力。由于这只是一个PoC,我们不会为这个部分建立一个API或UI。

一个基于Web的前端,一个Tangle的后端连接和一个用于构建两者之间的通信的API。鉴于此,团队分成两组,每组3-4人。

后端

PlugInBaby团队的经验与Freedom Pass团队的经验类似。我们从遵循波罗的海数据科学的这个教程开始,通过使用来自IOTA的Chris Dukakis的问答环节的一些资源来加快速度。之后,我们连接到一个testnet节点,并开始发行交易。

和自由通团队一样,我们也考虑使用主节点,但是如何与邻居联系的问题最终成为决定性的标准。这实际上是由于安全问题。我们团队的成员之一在远程虚拟机中有一个Java运行时环境配置,我们考虑过配置IRI实例的可能性。然而,最后,我们对与未知节点的连接所带来的安全风险感到不适应。

与其他计算机不同,“PlugInBaby”团队使用IOTA Python库构建和连接后端。与JavaScript库相比,这个库的文档相当稀少。我们要感谢来自IOTA的Andreas Osowski,Lewis Freiberg和Chris Dukakis的24小时支持,让所有的事情都能顺利进行。

我们的团队成员Lukasz Zmudzinski 在他的网站上写了一篇很棒的博客文章,更详细地描述了我们用来在“纠结”中读写的Python方法。我们为这个项目使用Tornado web框架和异步网络库,并编写我们自己的API来与接口进行通信。

接口

前端主要是用JavaScript编写的,使用server.js作为Node。为了加速开发,我们开始使用Node.js Web应用程序的标准/框架。后来我们使用bootstrap和AngularJS来改进设计,并使我们的Web应用程序为移动设备和接受做好准备。

用户可以通过免费的电台查询供应商的交易,也可以阅读动态的价格信息。搜索机制使用写在标签上的信息,而关于充电站的状态信息和站的纬度/经度被写入消息。该信息通过API调用传递到前端,以在用户界面中进行解释。

用户体验

步骤1:用户使用智能手机应用程序咨询可用充电站的纠纷。

步骤2:用户选择一个地图加载站。当选择电台时,每个电台都有一个动态的价格,与地图引脚一起实时显示。

步骤3:用户开车到车站,并通过发送消息给“纠结”来通知车站他们已经到达。

步骤4:充电站通知应用程序车辆已充满电。

步骤5:加载用户的IOTA钱包,并通过存储在应用程序中的种子签署交易。

步骤6:加载器将其状态恢复为“可用”,所有交易/消息都可用于验证。

我们学到了什么

PlugInBaby PoC演示了基于IOTA的基于IOTA的DIY充电器搜索和支付应用程序的可行性,但远远不能在实验室/黑客马拉松之外使用。在这个系统适合公共使用之前,出现了一些必须解决的问题:

标签只允许27个字符,这些字符不足以存储经纬度数据加上没有截断的交易ID。该团队最终使用消息字段来存储数据(位置+充电器状态),而标签用于存储具有搜索能力的搜索者标识符。

测试网的速度是相当有限的。具体而言,我们发现,次testnet确认是相当长的深夜(2-3分钟)时,较少的用户进行了在线运行的测试应用。这是由于每个新交易都必须批准另外两个交易。这种方法可以很好地扩展,但是也需要许多主动节点来发送和批准事务。随着测试网络和主网络的增长,这个问题应该得到缓解。

需要事务缓存才能使演示在分配的三分钟演示时间内可用。

虽然IOTA团队的支持非常好,但是我们注意到文档,尤其是关于phython库的文档是相当差的。这使得开发过程变得缓慢,反复试验。

IOTA生态系统中的安全和隐私通常是开放的问题。该小组认为这些问题超出了PoC的范围。也就是说,我们在开发过程中经常提到对隐私问题的担心,这些隐私问题往往是API滥用的可能性和隐私的缺乏。改进文档和更多描述性的错误信息对于促进对这些问题的管理将有很大的帮助。

由于IOTA目前在安全和隐私领域的局限性,掩盖认证消息(MAM),计划中的私密交易层以及IOTA生态系统中零知识测试的集成是新研究的有趣领域。

结论

总之,团队学到了很多关于实现一个令IOTA真正有用的激动人心的用例。这是建立这样一个系统的唯一方法吗?没有。还有许多其他的方式来搜索,导航和支付电动车辆的充电。许多准备上市的集中式系统已经在运作。然而,我们的PoC表明,仅仅使用IOTA就可以解决这个用例,这允许可扩展的分散式方法。这反过来又可以为更多的参与者开放这个领域,并为多个实体提供一个共同的系统。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180121G0JEAV00?refer=cp_1026

扫码关注云+社区