这是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云功能将交易附加到现有的货物流中。
原文链接:
在Github了解该项目:
https://github.com/iotaledger/trade-poc
后台办公系统演示:
https://item-tracking.firebaseapp.com