官方PoC项目 – IOTA货物跟踪系统

9 个月前 · 原创文章

这是IOTA官方Github中的一个开源项目,目的是跟踪港口货物的各项数据(传感器数据和货物的文档等)并通过MAM记录到不可变更的Tangle中,在保证了数据的真实性和完整性的同时简化了相关各方的工作流程。


解决方案


将数字文书工作和项目状态管理集中到一个系统中,但将数据存储在一个安全的不可变更的分布式帐本(Tangle)中。

提供可随时查询的货物信息、库存、状态、货主情况、运输路线、所有的数字文件和证书、GPS位置、参考温度等数据。可以随时的在任何时间、任何设备上访问所有信息。
开发一个访问和权限管理系统,用来控制谁可以读取和写入存储数据的哪些部分。
通过动态的计算文档校验和并与存储的信息进行比较,确保文档的完整性和真实性。

对于货主:


简化了文书工作,即使货物已经在前往目的地的途中,也能够轻松的提供文件和证书。
启用货物位置和状态监控。

对于海关:


简化了对货物库存/装载信息以及所有相关文档和证书的访问。
提供对货主信息的查询,并在需要时使直接联系更简化。

对于港口和货代:


简化了对货物运输路线信息的访问。
可在温度值上升或停电时提供温度传感器信息,并提供可选的警报功能。

工作原理


本Demo应用基于用JavaScript编写的开源IOTA库。提供了文档和使用指南。

https://github.com/iotaledger/mam.client.js 它运行在IOTA Testnet上。

这个库公开了用于创建新MAM频道、向现有频道提交新交易和从频道中检索数据的函数。


货物身份

货物由数据集表示,其中货物ID是查询数据的键。一旦宣告一件/批新的货物后,就会在后台创建一个MAM流,并在第一个交易中保存初始货物信息,使其成为不可变更的。具有特定访问权限的用户可以将新交易附加到货物的MAM流中,例如状态或位置更新。可以添加新文档,其元数据也作为新交易附加到流中。具有只读访问权限的用户可以查询流中保存的数据。我们的后台访问管理软件可以确定是否允许用户查询所有交易或仅可查询已定义的交易子集。

保存在货物MAM流中的所有交易都是不可变的,并使用强私钥加密。尽管交易存储在公共Tangle中,但所有数据都是加密的,只有拥有MAM流的根地址(root address)和加密密钥的用户才能查询已保存的交易并解密有效负载(MAM所承载的有效消息内容)。- 相关术语请查看MAM介绍。

文档处理


我们实施了一个文档完整性校验功能。每次将文档保存在文档存储中时,其元数据(如大小,最后更改日期和计算出的哈希校验和)都存储在IOTA分布式帐本中。这些数据是不可变的。

虽然可以在Google云端硬盘中修改或覆盖文档本身,但我们会对它进行检索并实时计算它的哈希校验和。如果存储的值存在差异,我们将向用户发出警报并表明文档的内容不再可信。

访问权限


由于IOTA协议中没有内置用户管理功能,因此我们开发了一个应用程序(用React编写)和一个后台办公系统来管理用户角色和访问权限(Firebase)。向不同的用户(组织)提供不同授权级别的“私钥”,不同的授权级别可以解锁存储文档的不同部分。

文档存储连接到同一系统,目前基于Google云端硬盘。

传感器数据


来自温度传感器和GPS跟踪器的传感器数据可以被馈送到同一个MAM频道中,并结合使用IOTA库和Firebase云功能将交易附加到现有的货物流中。

IOTA

重新定义信任、价值和所有权