第 6 步:验证分类账中的文档 - Amazon Quantum Ledger Database (Amazon QLDB)

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

第 6 步:验证分类账中的文档

借助 Amazon QLDB,您可在 SHA-256 中使用加密哈希,从而有效地验证分类账日记账中文档的完整性。在此示例中,Alexis 和 Brent 决定通过在汽车经销商处用 VIN 1N4AL11D75C109151 交换车辆来升级到一款新车型。经销商通过向登记处核实车辆的所有权来开始这一流程。

要详细了解验证和加密哈希在 QLDB 中的工作原理,请参阅 Amazon QLDB 中的数据验证

在此步骤中,您将验证 vehicle-registration 分类账中的文档修订版本。首先,您请求一份摘要,该摘要作为输出文件返回,并作为分类账整个变更历史记录的签名。然后,您要求提供与此摘要相关的修订证明。使用此证明,如果所有验证检查都可通过,可以验证修订版的完整性。

请求摘要

  1. 通过以下网址打开 Amazon QLDB 控制台:https://console.aws.amazon.com/qldb

  2. 在导航窗格中,选择分类账

  3. 在分类账列表中,选择 vehicle-registration

  4. 选择“获取摘要”。获取摘要对话框显示以下摘要详细信息:

    • 摘要 - 您请求的摘要的 SHA-256 哈希值。

    • 摘要提示地址 - 您请求的摘要所涵盖的日记中的最新位置。地址包含以下两个字段:

      • strandId — 包含数据块的日记账链的唯一 ID。

      • sequenceNo — 一个索引号,用于指定数据块在链中的位置。

    • 分类账 - 您请求摘要的分类账名称。

    • 日期 - 您请求摘要时的时间戳。

  5. 检查摘要信息。然后选择 Save(保存)。您可以保留默认文件名,或输入新名称。

    此步骤将保存一个内容为 Amazon Ion 格式的纯文本文件。该文件的文件扩展名为 .ion.txt,包含前面对话框中列出的所有摘要信息。以下是摘要内容的示例。字段的顺序可能因您的浏览器而异。

    {   "digest": "42zaJOfV8iGutVGNaIuzQWhD5Xb/5B9lScHnvxPXm9E=",   "digestTipAddress": "{strandId:\"BlFTjlSXze9BIh1KOszcE3\",sequenceNo:73}",   "ledger": "vehicle-registration",   "date": "2019-04-17T16:57:26.749Z" }
  6. 将此文件保存在以后可以访问的某个位置。在以下步骤中,您将使用此文件来验证文档修订版。

保存分类账摘要后,您可以开始根据该摘要验证文档修订的过程。

注意

在用于验证的生产用例中,您可以使用先前保存的摘要,而不是连续执行这两个任务。最佳做法是,在日记账中写入要稍后验证的修订版本后,立即请求并保存摘要。

验证文档的修订版

  1. 首先,在分类账中查询要验证的文档修订版本的 idblockAddress。字段都包含在文档元数据中,您可以在提交视图中对其进行查询。

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

    在 QLDB 控制台的导航窗格中,选择 PartiQL 编辑器

  2. 选择 vehicle-registration 分类账。

  3. 在查询编辑器窗口中输入以下语句,然后选择 运行

    SELECT r.metadata.id, r.blockAddress FROM _ql_committed_VehicleRegistration AS r WHERE r.data.VIN = '1N4AL11D75C109151'
  4. 复制并保存查询返回的 idblockAddress 值。请务必省略 id 字段的双引号。在 Amazon Ion 中,字符串数据类型用双引号分隔。

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

    在导航窗格中选择验证

  6. 在“验证文档”表单中,在“指定要验证的文档”下,输入以下输入参数:

    • 分类账 - 选择 vehicle-registration

    • 块地址 - 您在步骤 3 中查询返回的blockAddress值。

    • 文档 ID - 您在步骤 3 中查询返回的 id 值。

  7. 在 “指定要验证的摘要” 下,通过选择 “选择摘要”,选择之前保存的摘要。如果文件有效,则会自动填充控制台上的所有摘要字段。或者,您可以直接从摘要文件中手动复制和粘贴以下值:

    • 摘要 - 摘要文件中的 digest 值。

    • 摘要提示地址 - 摘要文件中的 digestTipAddress 值。

  8. 查看您的文档和摘要输入参数,然后选择Verify(验证)

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

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

    2. 使用 QLDB 返回的证明来调用客户端 API,该API会根据提供的摘要验证您的文档修订版本。

    控制台在验证结果卡中显示您的请求结果。有关更多信息,请参阅验证结果

  9. 要测试验证逻辑,请重复“验证文档修订版” 下的步骤 6—8,但要更改摘要输入字符串中的单个字符。这应该会导致您的验证请求失败,并显示相应的错误消息。

如果您不再需要使用vehicle-registration分类账,请继续步骤 7 (可选):清除资源