IOTA-全新的状态客户端库

IOTA中国社区 · · 2156 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

今天,我们正式发布全新的状态客户端库的beta版本,其中包含我们称之为“帐户模块”的内容。这个名称不足以说明什么是重要的更新,因此我们将总结我此次更新客户端库的内容说明。

客户端库一直是构建IOTA上层应用的难题。库的功能是以您熟悉的语言来实现您的项目设计目标。

IOTA基金会一种在维护Java,JavaScript和Golang版本的客户端库。虽然我们看到很多开发者使用库构建出许多出色的项目,但我们依然认为它离开发者们心中最理想的体验还有很大的距离。

几个月前,我们开始彻底的重新设计客户端库,并试图尽可能多地抽象出复杂的操作。因此,开发人员只需要关心他们真正关心的事情:发送交易和接收交易即可,而对于其他琐碎的IOTA协议内容大可无需考虑。

新的客户端库做了什么?

以前在使用我们的客户端库时,开发人员必须从头开始实现许多组件。这需要许多IOTA概念的高级知识。 例如,你必须非常熟悉:

1、交易

2、交易束,并会构建它们

3、了解哪些地址可以安全地用于存款,哪些地址可用于输入选择

4、推进和重新附加待处理交易

5、以及其他很多概念

由于客户端库没有状态,开发人员必须管理或完全依赖网络。甚至诸如获取交易数据之类的操作也需要接入网络,并且必须考虑通过快照修剪旧的分类账数据。

所有的这些粗枝末节都使得在IOTA之上的项目建设变得复杂。在发送交易之前必须进行的前期学习才是真正的问题。特别是当你想在IOTA上试验简单的应用程序时。

然而,对于新库,大多数基本概念都被抽象掉了。开发人员可以创建一个帐户,并以更少的工作量开始发送和接收交易。

新的客户端库在本地存储帐户信息,无需调用节点来获取地址状态或余额等信息。它们对快照也很有弹性,具体功能如下:

1、在本地存储帐户信息和设置。您还可以导出和导入现有帐户。

2、本地存储待处理交易。

3、通过预定义的策略处理待处理交易的推进和重新附加。您还可以定义自己的策略。通过插件支持重新附加和升级功能,您可以开发自己的插件来扩展库功能。

4、了解您帐户中的哪些地址已存入和使用,以及哪些地址应用于输入选择。因此,无论何时您要求存款,您都是以安全的方式进行存款。

5、提供事件处理功能。您现在可以收听不同的事件,例如每个新存款或每个已确认的外发交易。

6、引入有条件存款地址(CDAs)的概念,现在是与存款人沟通的主要手段。这是一个非常重要的功能,我们将在后续内容中进行扩展。

在前面的内容中,我们重点介绍了客户端库中的一些主要更改,以及它们如何简化IOTA的开发。下面,我们将仔细研究条件存款地址(CDAs)的概念。

CDA是特殊地址,允许您指定它们保持可用的条件,只要您指定的条件成立,CDA就可用于提款和存款。

CDA的主要用途是避免地址重用。当您从一方请求IOTA时,您创建一个在特定时间段内处于活动状态的CDA,并且可以指定IOTA的确切数量。通过这种方式,您可以向发币者传达意图,然后发币人会判断是否存款。简化的流程是:

用户生成CDA地址。

创建CDA时,您可以指定地址有效的条件,如时间,收款金额限制等。

您可以通过您选择的媒介与存款人共享CDA,并将其序列化为您选择的对象,例如二维码,协议缓冲区或磁力链接。

存款人要么将令牌发送到CDA中指定的地址,要么请求一个新的CDA(例如,在CDA已经过期的情况下)。

CDA是简单的描述性对象,您可以将它们序列化为任何格式。 例如,CDA磁铁链接的样子:

iota://GODULTSVAVRXBJFKTAEAJTULFKJUHIMKKVBCS9TJCNBWEVWFHAAVKVKLABMYTSK9EKWPMZJUVHAKGULLDAMABAGQIZ/?timeout_at=1554372484&expected_amount=1000

客户端库可以解析磁链接,然后发送您收到的链接也很简单:

account.sendToCDA({

    magnetLink: magnetLink

})

    .then()

    .catch();

试试条件存款地址

为了展示这个概念,Luca Moser构建了一个作为网络钱包工作的Web应用程序(注意:这在使用测试令牌的devnet上运行的):

转到Sigma Wallet网站

创建一个帐户。

在钱包中生成一个金额设置为1000的地址。

点击“COPY RAW ADDRESS”按钮并使用它从Devnet获取资金。资金应该很快就会出现,您可以在余额部分看到。

在网络钱包中生成新地址,然后单击“复制磁力链接”。

您可以将此磁力链接粘贴到钱包“发送”部分的地址字段中,并将特定金额发送给您自己。

如果您在生成CDA时指定了IOTA的数量,IOTA将在它们到达时立即在您的余额中可用。否则它们将被阻止,直到CDA到期,一般情况是30分钟。

发送交易到条件存款地址

捐赠地址或其他场景

CDA启用的一种方案是实施固定时间捐赠地址。您在网站上显示CDA,例如QR码。 而且,每当目前的CDA即将到期时,都可以设置策略在CDA有效期的最后48小时内,生成一个新的CDA并显示新的二维码。为已经进入的交易留出足够的空间以安全地进入,以确保所有新的捐赠都被新的CDA接收。

您可以在此捐赠场景的PoC代码库中看到Go语言实现此方法的示例。

您可以在我们的文档中阅读有关客户端库的更多信息。 或者从各自的代码库中获取客户端库

Go library

Java library

JavaScript library

文章链接:https://www.iotachina.com/stateful-client-libraries-part-1-and-part-2.html


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:IOTA中国社区

查看原文:IOTA-全新的状态客户端库

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2156 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传