# IOHK官网博客：掌握Cardano上的元数据

**URL:** <https://forum.cardano.org/t/iohk-cardano/41901>\
**Category:** 中文\
**Created:** [6 November 2020 05:47 UTC](https://forum.cardano.org/t/iohk-cardano/41901 "2020-11-06T05:47:37Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Anson888](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.cardano.org/anson888/32/14861_2.png) [@Anson888](https://forum.cardano.org/u/Anson888)\
**Post date:** [6 November 2020 05:47 UTC](https://forum.cardano.org/t/iohk-cardano/41901/1 "2020-11-06T05:47:37Z")

</div>

![image](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/6/1/6110cd3633df0d88992ae1ea5e9a5b06e6da6e78.jpeg)  
_原文来自IOHK官网博客，原作者为Alan Mcsherry，由卡尔达诺大使陈哲Anson翻译_

**添加交易信息是公司和开发人员的强大工具**

在上一篇文章《为Cardano区块链带来新的价值和实用性》中，我讨论了交易元数据的概念。我还解释了为什么这对于卡尔达诺Goguen，这一去中心化金融（DeFi）实用平台的发展至关重要。

元数据有许多潜在用途。考虑到这一点，IOHK一直在努力确保开发人员和以企业为中心的客户都可以轻松地将元数据构建到自己的应用程序中。此外，我们要确保ada用户有一种更为方便的方式来查看有关其交易的信息。

**元数据如何在Cardano上工作？**

元数据讲述了交易的故事，并且有许多方法可以与该故事进行交互。开发人员可以通过将详细信息直接嵌入到交易中来使用元数据，ada用户可以在Cardano浏览器中搜索特定信息。我们可以直接添加数据，从而创建数据的Merkle树并将Merkle树的根哈希放在区块链上，一旦完成，就可以证明数据存在于特定的时间点，并永久保留在链上以备将来参考。

这里需要注意的是，交易元数据存储在区块链上，并附随于每笔交易。它存储在链上而不是记录在分类账状态是有益的，因为它不会影响交易验证或损害分类账性能。

**IOHK的元数据服务**

IOHK的专业服务小组（PSG）提供业务咨询和技术服务。我们的PSG正在开发服务，以通过无缝、便捷的方式将其系统与分布式分类帐技术整合来帮助公司构建和实施区块链解决方案。

开发元数据服务时考虑了各种应用程序，特别是针对商业应用程序。

该接口处理钱包交互，为用户提供低余额警报，并将其全部汇总到Docker容器中，这消除了直接在钱包的后端API中提交元数据的复杂性。因此，元数据服务仅需要指定的元数据和最终交易确认前存储交易数据的区块。

在元数据请求中，元数据服务包括：  
• **实际的元数据** ：发送者和接收者的身份、评论、标签。  
• **深度** ：包含元数据的交易在被视为最终数据之前应存储的块数。  
• **客户身份** ：指示要使用的钱包。  
• **交易身份** ：此功能在发生故障和重新启动时很有用。它允许客户端重新检查以前提交的元数据。

在包括所有详细信息后，元数据服务将交易记录在区块链上，然后使用Cardano浏览器检索交易信息。元数据服务只需指出交易身份即可。

另一个功能是可以使用与语言无关的协议缓冲区来指定PSG元数据服务。因为客户端生成器支持许多编程语言，包括Python、Java和Scala，所以这扩大了潜在用途的数量。这样的扩展机会使与Cardano区块链的集成过程更加简单。

**辅助功能是关键**

我们还为Cardano钱包API开发了Scala和Java客户端，对API的调用捆绑在一起，并使更多开发人员可以轻松访问它们。除了Java和Scala API，我们还可以提供可执行的jar文件，从命令行提供基本的访问权限。您可以在GitHub上找到PSG Cardano钱包API的详细信息，并查看它如何允许客户端执行诸如提交和列出交易，钱包维护以及节点监视之类的任务。

**使用钱包和Cardano-CLI**

使用元数据的另一种方法是直接从钱包或Cardano命令行界面（CLI）提交元数据。

这些过程需要基本的编码经验并熟悉运行Cardano节点和CLI。与元数据的直接交互为在Cardano上构建去中心化应用程序提供了强大的功能，因为开发人员可以通过首选方式对有价值的数据进行身份验证。

在Cardano钱包和CLI中，元数据的结构是通过从密钥到值（密钥-值对）的映射来定义的，这些映射将出于多种目的的详细信息组合到同一笔交易中。

•元数据密钥用作显示元数据值的架构标识符。密钥是无符号整数，大小上限为64位。  
•元数据值是简单术语，由整数，文本字符串，字节字符串，列表和映射组成。价值必须结构化，这使其变得容易以便对其进行检查和管理，尤其是通过脚本进行检查和管理。

这里所涉及的唯一额外成本是元数据增加了交易的大小（以字节为单位），处理费用将基于交易的大小。

我们可以使用简洁的二进制对象表示（CBOR）和简洁的数据定义语言（CDDL）表示法来构造元数据。有关更多详细信息，请参阅Cardano钱包中的交易元数据，并查看如何在Cardano CLI中使用交易元数据方案。

_交易元数据是Cardano向多功能智能合约平台发展的重要一步。 Goguen进一步增强，将添加元数据以指定智能合约的交易条件，从而为商业使用和交易结算创造更多机会。您如果要将元数据集成到您的业务流程中，如果有任何疑问或请求支持，请您联系enterprise.solutions@iohk.io。随着Goguen功能的不断构建，请您继续关注此博客以获取更多最新内容。_

原文链接：[https://iohk.io/zh/blog/posts/2020/11/03/getting-to-grips-with-metadata-on-cardano/](https://iohk.io/zh/blog/posts/2020/11/03/getting-to-grips-with-metadata-on-cardano/)
