

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 步骤 2：在 QLDB 中验证您的数据
<a name="verification.verify"></a>

**重要**  
终止支持通知：现有客户将能够使用 Amazon QLDB，直到 2025 年 7 月 31 日终止支持。有关更多详细信息，请参阅[将亚马逊 QLDB 账本迁移到亚马逊 Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

Amazon QLDB 提供了一个 API，用于请求指定文档ID及其关联块的证明。您还必须提供之前保存的摘要的提示地址，如[步骤 1：在 QLDB 中请求摘要](verification.digest.md)中所述。您可以使用 AWS 管理控制台、S AWS DK 或 AWS CLI 来获取证据。

然后，您可以使用 QLDB 返回的证明通过客户端 API 验证文档修订与保存的摘要是否匹配。这使您能够控制用于验证数据的算法。

**Topics**
+ [AWS 管理控制台](#verification.verify.con)
+ [QLDB API](#verification.verify.api)

## AWS 管理控制台
<a name="verification.verify.con"></a>

本节描述了使用 Amazon QLDB 控制台验证文档修订与先前保存的摘要相匹配的步骤。

开始之前，请确保您已完成 [步骤 1：在 QLDB 中请求摘要](verification.digest.md) 中的步骤。验证需要先前保存的摘要，其中包含您要验证的修订。

**验证文档修订（控制台）**

1. [在 /qldb 上打开亚马逊 QLDB 控制台。https://console.aws.amazon.com](https://console.aws.amazon.com/qldb)

1. 首先，在分类账中查询要验证的文档修订的 `id`和 `blockAddress`。这些字段包含在文档的元数据中，您可以在*提交视图*中查询它们。

   文档 `id` 是系统分配的唯一 ID 字符串。`blockAddress` 是一种 Ion 结构，用于指定提交修订版本的区块位置。

   在导航窗格中，选择 **‬PartiQL 编辑器**。

1. 选择要验证修订的分类帐名称。

1. 在查询编辑器中输入类似以下内容的语句，然后选择 `SELECT`Run Query**（运行查询），或者按 **。

   ```
   SELECT metadata.id, blockAddress FROM _ql_committed_table_name
   WHERE criteria
   ```

   例如，以下查询从在 [Amazon QLDB 控制台入门](getting-started.md) 中创建的示例分类帐中的 `VehicleRegistration` 表返回一个文档。

   ```
   SELECT r.metadata.id, r.blockAddress FROM _ql_committed_VehicleRegistration AS r 
   WHERE r.data.VIN = 'KM8SRDHF6EU074761'
   ```

1. 复制并保存查询返回的 `id` 和 `blockAddress` 值。请务必省略 `id` 字段的双引号。在 [Amazon Ion](ion.md) 中，字符串数据类型用双引号分隔。例如，您必须仅复制以下代码片段中的字母数字文本。

   `"LtMNJYNjSwzBLgf7sLifrG"`

1. 您已经选择了文档修订版，现在可以开始对其进行验证。

   在导航窗格中选择**验证**。

1. 在“**验证文档**”表单中，在**“指定要验证的文档”**下，输入以下输入参数：
   + **分类账**-您要在其中验证修订的分类账。
   + **区块地址** - 您在步骤 4 中查询返回的`blockAddress`值。
   + **文档 ID** - 您在步骤 4 中查询返回的 `id` 值。

1. 在“**指定要验证的摘要**”下，通过选择“**选择摘要**”，选择之前保存的摘要。如果文件有效，则会自动填充控制台上的所有摘要字段。或者，您可以直接从摘要文件中手动复制和粘贴以下值：
   + **摘要** - 摘要文件中的 `digest` 值。
   + **摘要提示地址** - 摘要文件中的 `digestTipAddress` 值。

1. 查看您的文档和摘要输入参数，然后选择**Verify（验证）**。

   控制台为您自动执行两个步骤：

   1. 向 QLDB 请求指定文档的证明。

   1. 使用 QLDB 返回的证明来调用客户端 API，该API会根据提供的摘要验证您的文档修订版本。要查看此验证算法，请参阅下一节[QLDB API](#verification.verify.api)以下载代码示例。

   控制台在**验证结果**卡中显示您的请求结果。有关更多信息，请参阅[验证结果](verification.results.md)。

## QLDB API
<a name="verification.verify.api"></a>

您还可以使用 Amazon QLDB API 与相关 AWS SDK 或者使用 AWS CLI，通过向 Amazon QLDB 请求验证文档修订。QLDB API 提供以下操作以供应用程序使用：
+ `GetDigest` — 返回日记账中最新提交区块的分类账摘要。响应包括一个 256 位的哈希值和一个块地址。
+ `GetBlock` — 返回日记账中指定地址的数据块对象。如果 `DigestTipAddress` 已提供，还会返回指定数据块的证明以供验证。
+ `GetRevision` — 返回指定文档 ID 和块地址的修订数据对象。如果 `DigestTipAddress` 已提供，还将返回指定修订的用于验证的证明。

有关这些 API 操作的完整介绍，请参阅 [Amazon QLDB API 参考](api-reference.md)。

有关使用验证数据的信息 AWS CLI，请参阅《[AWS CLI 命令参考](https://docs.aws.amazon.com/cli/latest/reference/qldb/index.html)》。

### 示例应用程序
<a name="verification.verify.api.sample"></a>

有关 Java 代码示例，请参阅 GitHub 存储库 a [ws-samples/-amazon-qldb-dmv-sample](https://github.com/aws-samples/amazon-qldb-dmv-sample-java) java。有关如何下载和安装此示例应用程序的说明，请参阅 [安装 Amazon QLDB Java 示例应用程序](sample-app.java.md)。在进行验证之前，请确保按照 [Java 教程](getting-started.java.tutorial.md) 中的步骤 1-3 创建一个示例分类帐并用示例数据加载它。

课堂中的教程代码[GetRevision](https://github.com/aws-samples/amazon-qldb-dmv-sample-java/blob/master/src/main/java/software/amazon/qldb/tutorial/GetRevision.java)提供了一个示例，说明如何请求文档修订版的证据，然后验证该修订版。此类运行以下步骤：

1. 从示例分类账中请求新的摘要`vehicle-registration`。

1. 请求从 `vehicle-registration` 分类帐中的 `VehicleRegistration` 表中获取示例文档修订的证明。

1. 使用返回的摘要和证明验证示例修订。