木星链 木星链
Ctrl+D收藏木星链

INK:如何通过Chainlink外部适配器将特斯拉汽车API连接到智能合约上

作者:

时间:1900/1/1 0:00:00

作为[Chainlink黑客马拉松的特等奖获得者,智能合约开发者HarryPapacharissiou和MattDurkin使用Chainlink外部适配器将特斯拉车辆API连接到Chainlink预言机,用于点对点车辆租赁应用。他们的特斯拉智能合约是一个说明Chainlink用于连接链外API和智能合约的很好的例子,并实现全新的商业模式。在这篇文章中,Harry和Matt将介绍他们是如何创建实现的。*作者:HarryPapacharissiou和MattDurkinChainlink的外部适配器功能可以轻松地将智能合约连接到任何API,实现智能合约触发链外事件的各种用例,并将防篡改的数字协议带到外部系统。特斯拉公司生产了一系列创新的电动汽车,配备了技术先进的功能和特性。其中一项就是丰富的API,可以为经过认证的客户端提供丰富的车辆数据,以及远程访问并执行车辆上各种状态变化的功能。通过外部适配器和Chainlink节点来调用API,特斯拉智能合约可以与特斯拉车辆完全集成,这就开辟了几个独特的用例。在这篇技术文章中,我们将通过:如何使用特斯拉外部适配器与特斯拉API进行交互?如何编写一个智能合约,通过链克节点使用特斯拉外部适配器获取车辆数据并修改车辆的状态特斯拉API

如车辆数据API所示,特斯拉官方移动应用可以让特斯拉车主获得车辆位置、里程表读数、车辆电池充电状态等数据。这款移动应用还允许用户执行各种远程命令,如锁定和解锁车辆、远程启动车辆、打开和关闭充电口、设置限速等,另外还有很多特斯拉远程命令列表中列出的内容。这款移动应用使用RESTAPI连接到特斯拉的服务器,而服务器则与每辆车进行通信。在撰写本文的时候,特斯拉还没有向车主发布任何API的官方文档,但社区开发者已经通过逆向工程的方式制作了非官方文档。目前,社区已经在几个第三方应用中应用了这些API,比如这个自带的数据记录器。特斯拉API使用OAuth标准进行身份验证,在成功请求到验证端点后,API会授予访问令牌。向API连续发出的需要身份验证的请求时,需要在请求头中包含身份验证令牌,前提是该令牌尚未过期或被撤销。特斯拉API生成的访问令牌有一个长达45天的有效期,并且每次认证请求都会生成一个寿命较长的刷新令牌。如果访问令牌接近到期或过期,我们也可以申请新的访问令牌。在与特斯拉汽车进行通信之前,必须首先通过向身份验证API端点发出HTTPPOST请求,成功获取其中一个身份验证令牌。使用下面请求体中的参数来完成这一任务。将电子邮件和密码设置为特斯拉车辆账户所有者在特斯拉网站上的登录名。

外媒:香港金融监管机构本周讨论了如何解决加密公司开设银行账户面临的挑战:6月16日消息,据彭博社援引知情人士报道,香港金融监管机构已于本周一召集银行、加密平台和其他行业参与者在一起,主要讨论如何解决加密公司在开设银行账户方面面临的持续挑战。这是香港监管机构自 4 月下旬以来第二次推动银行更多参与加密领域的会议。[2023/6/16 21:41:23]

你会收到一个含有访问令牌的回复:

一旦你有了一个有效的认证令牌,你就需要通过在请求头中传递这个认证令牌到所需的API端点来找出你的(https://www.teslaapi.io/vehicles/list):

所需的车辆ID将在响应'id_s'元素中返回。这是特斯拉服务器将成功验证的车辆ID。其他'id'和'vehicle_id'字段用于其他目的,不适用于网络服务请求。

直播|Claire Wu&马静 > 稳定币和DeFi如何出圈:金色财经 · 直播主办的《 币圈 “后浪” 仙女直播周》第6期直播中,本期“后浪”仙女魔笛手技术开发社区创始人Claire Wu & MYKEY市场负责人 马静将在直播间聊聊“稳定币和DeFi如何出圈”,感兴趣的朋友扫码移步收听![2020/6/24]

在上面这个例子中,验证令牌**bc031af9351deb7a33e92f689be9eaad4b840e98b49f050a5e951347f140493d**和车辆ID**42555797050350366**都将在后续对车辆的API调用中使用。特斯拉外部适配器

作为Chainlink黑客马拉松2020获奖作品LinkMyRide的一部分,我们创建了一个外部适配器,将Chainlink节点连接到特斯拉API的特定端点,以促进车主和租车人之间的点对点车辆租赁协议。这个外部适配器现在已经在Chainlink市场列出,其他开发者可以使用、修改或扩展。一旦你从Github上下载了外部适配器的代码,并按照说明让它运行,你就可以将外部适配器添加到你的Chainlink节点中,然后创建一个使用它的JobSpecification。如果你需要帮助设置Chainlink节点,你可以查看这个文档。这个示例JobSpecification寻找来自特定预言机合约地址的传入请求,将请求传递给外部适配器,然后将结果返回给智能合约。

Compound CEO :创建治理代币,是为让最聪明用户决定协议如何升级:Compound创始人兼CEO Robert Leshner在媒体直播间表示,流动性挖矿是作为一种分发代币的方式,Compound总体上是一种自治的系统,这需要相信那些最有能力的人来决定协议的参数是什么,所以我们创建了一个治理代币来升级协议,向协议主题添加新资产,所以我们创造这个代币以便把它交到最聪明的用户手中。(深链财经)[2020/6/24]

如果你无法访问特斯拉车辆,但仍然想玩玩外部适配器,你可以使用下面的一个无服务接口。这个目前指向一个仿真特斯拉服务器端点来模拟真实的特斯拉服务器响应。

存储车辆认证令牌

如上所述,认证令牌对车辆的请求进行认证。将这些令牌暴露在链上是一种安全风险,因为它们控制着对车辆的访问,并可用于确定车辆的确切位置。因此,我们需要一个解决方案,以确保认证令牌可以保留和使用,但永远不会暴露在链上被其他人可以看到。如果你只需要将一辆车集成到你的智能合约中,那么最简单的解决方案就是将认证令牌存储在适配器运行的主机上作为环境变量。你可以在构建外部适配器指南中找到一个示范。但是如果需要为多辆汽车存储和使用多个身份验证令牌怎么办?在这种情况下,外部适配器需要存储和检索多个键/值对。键是每辆车的车辆ID或一些独特的标识符,而值是身份验证令牌。在外部适配器中存储和使用多个键/值对有很多解决方案。最创新的解决方案之一是使用云端的无服务NoSQL数据存储认证令牌。如果您还将外部适配器作为无服务计算在您的云提供商上运行,您的外部适配器就会成为一个真正的无服务器、高可用和可扩展的混合区块链/云计算功能。该外部适配器使用谷歌云的FirestoreNoSQL文档数据库来支持存储和检索多个车辆认证代币。要设置Firestore数据库,请遵循这个指导。如果你没有谷歌云账户,你可以注册一个免费账户。一旦您的Firestore数据库设置完毕,您就可以为外部适配器设置所需的环境变量,然后按照外部适配器文档中的说明启动它。一旦外部适配器和Firestore数据库运行完毕,在进入智能合约之前的最后一步就是对车辆进行认证。认证过程是适配器获取车辆的特定信息,用这些信息连接到特斯拉服务器,然后将给定的车辆ID和认证令牌作为新的键/值对存储在Firestore数据库中,最后返回一个成功消息。从这一点来看,对给定车辆ID的任何请求都不需要认证令牌。外部适配器将在需要时从Firestore数据库中获取它。要执行这一步,以下面的格式向外部适配器URL发出HTTPPOST请求。在本例中,jobID是534ea675a9524e8e834585b00368b178;我们将在向Tesla服务器发出的请求中使用车辆ID和apiToken字段。认证操作告诉适配器对给定的车辆详细信息进行认证,如果凭证有效,它就会将车辆详细信息存储在Firestore数据库中。

欧科集团徐明星对话全国政协委员 谈抗击疫情区块链如何发挥作用:3月20日,全国政协云上“小双周”座谈会今天举行。全国政协委员,中国证监会原主席肖钢等多位全国政协委员、业界专家代表出席。会上,欧科集团创始人徐明星发表“区块链+供应链抗疫期间‘扛大旗’”主题演讲。徐明星表示:“除了供应链外,区块链技术在其他领域也有重要应用。随着下一代高新技术产业的发展,区块链技术将展现出更大的应用潜力。”[2020/3/20]

我们可以通过REST客户端手动提出这个请求,也可以直接通过web应用提出,或者如果适配器只允许从特定的Chainlink节点进行连接,那么你可以通过web发起的jobspecification来发起,如下图所示。在这个例子中,认证请求进入Chainlink节点,Chainlink节点将其转发到外部适配器,然后外部适配器将结果发送到智能合约中的链上函数。

一旦外部适配器运行并对车辆进行了认证,我们就需要采取适当的措施来确保对适配器的访问安全。我们可以在适配器内部和外部采取更多的安全措施,以确保只有经过授权的Chainlink节点或进程才能访问调用外部适配器。你可以在适配器本身通过白名单来实现。如果适配器在云环境中作为无服务函数计算运行,您可以在那里配置安全和角色访问。创建智能合约

印度数字货币交易所要求政府澄清如何收税:印度政府一直在打击数字货币相关的逃税行为,但是没有提供明确的指导方针规定如何收税,七家数字货币交易所正在要求监管机构进行澄清。Khaitan&Co律师事务所合伙人Abhishek A Rastogi认为税率将取决于政府把比特币当作货币,商品还是服务。[2018/1/7]

现在,我们正在运行一个外部适配器,我们已经将其添加到Chainlink节点作业规范中,并且我们还安全地存储了车辆的验证验证令牌。接下来,我们可以创建一个智能合约来对车辆进行操作,同时,获取车辆的位置、里程表和充电水平的数据。第一步是创建一个新的API消费者合约,根据所选择的以太坊网络设置所有所需参数。您应该在合同中创建两个函数:"unlockVehicle"和"unlockVehicleCallback",如下面的例子。调用unlockVehicle函数与特斯拉车辆进行交互。unlockVehicle函数将车辆ID和jobID作为参数。这应该是前面在特斯拉外部适配器部分提到的第一个作业规范的ID。我们将LINK支付金额设置为0.1LINK。下面是我们的Solidity例子,通过我们的Chainlink预言机进行HTTPPOST请求。

如果调用特斯拉服务器成功,车辆就会解锁车门,并返回一条成功消息和一个JSON对象,其中包含车辆里程表、充电等级百分比和位置坐标。

这个响应数据将被返回到unlockVehicleCallback函数,我们可以手动提取每个值进行链上存储。

上述合约的完整版本可以在GitHub]上获得,或者你可以使用易于部署的Remix链接。这个实现目前连接到一个模拟的特斯拉服务器,用于开发和测试目的。为了将其修改为生产环境并连接到实际的特斯拉车辆,需要将作业规范更新为运行在指向真实特斯拉生产服务器的外部适配器上。总结

利用Chainlink网络及其多功能的外部适配器功能,我们已经演示了如何将智能合约与特斯拉车辆进行整合。通过整合,智能合约可以完全访问特斯拉丰富的车辆数据集,并能够远程执行车辆上的所有各种操作。这一演示为智能合约和车辆集成开辟了许多令人兴奋的潜在用例,例如点对点车辆租赁,正如我们的Chainlink黑客马拉松2020获奖作品LinkMyRide所展示的那样。其他用例可能包括短期的按次使用车辆登记或数据驱动的车辆保险,实时适应驾驶员的行为。随着我们快速迈向一个拥有自主车辆的世界,想象一下在无人驾驶车辆上预订和出行会变得更容易,由一个高度安全、确定性的智能合约管理车主和客户之间的协议和交易。了解更多

如果你是一名开发者,并希望将你的智能合约连接到底层区块链之外的现有数据和基础设施,请在这里联系或访问开发者文档。

标签:INKLINKAPICHACOINLINKdatalinkbaseSocial CapitalismeXPerience Chain

币安app官网下载热门资讯
SWAP:Uniswap历史交易总量高达500亿美元,真实性有多高?

编者按:本文来自Cointelegraph中文,作者:SAMUELHAIG,Odaily星球日报经授权转载.

1900/1/1 0:00:00
ITCO:不发币、不集资,合规交易所Bitcoinwin靠什么吸引用户?

放眼如今的加密货币市场,几乎每一家中心化交易所都有拥有自己的平台币,甚至就连Uniswap、Sushiswap等DEX也拥有自己的治理代币.

1900/1/1 0:00:00
比特币:BTC突破2万美金,下一步星辰大海

编者按:本文来自小吒闲谈,Odaily星球日报经授权转载。比特币价格冲破了20000美元大关,写稿时比特币价格为21325美元.

1900/1/1 0:00:00
比特币:三年又三年的解套规律,BTC高点的逻辑推理

我翻开这历史的一页,看到了周期性波动的秘密,仿佛握住了时间的脉搏,财富的命根子。本文可以当作一次对过往历史的简单总结和未来走势的预估。本文会阐述比特币的周期性和此次牛市的高点.

1900/1/1 0:00:00
数字人:来围观数字人民币刚刚交出的“苏州卷”

借势今年“双12苏州购物节”,苏州市成为继深圳之后,数字人民币试点的第二个城市。目前苏州数字人民币红包消费情况如何?商家以及用户消费体验如何?数字人民币相较之前支付体系又展现出怎样的优势?数字人.

1900/1/1 0:00:00
NFT:六问NFT和链游:链游的今天和未来是何景象?其中的机会在哪里?

从公链时代开启之时,链游一直被寄予众望,几乎所有公链都曾将链游作为其重点扶持对象。不过在其发展过程中我们依然看到了诸多有待攻克的问题.

1900/1/1 0:00:00