步驟 6:驗證分類帳中的文件 - Amazon Quantum Ledger Database (Amazon QLDB)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 6:驗證分類帳中的文件

使用 Amazon QLDB,您可以使用搭配 SHA-256 的加密雜湊,有效地驗證分類帳日誌中文件的完整性。在這個例子中,亞歷克西斯和布倫特決定通過在汽車經銷商與 VIN1N4AL11D75C109151 交易車輛升級到一個新的車型。經銷商通過與註冊辦事處驗證車輛的所有權來啟動該過程。

若要深入瞭解驗證和加密雜湊如何在 QLDB 中運作,請參閱Amazon QLDB 中的數據驗證

在此步驟中,您會核對vehicle-registration分類帳中的文件版次。首先,您要求摘要,該摘要會以輸出檔案的形式傳回,並做為分類帳整個變更歷史記錄的簽章。然後,您要求相對於該摘要的修訂版本的證明。使用此證明,如果所有驗證檢查都通過,則會驗證修訂的完整性。

要求摘要

  1. 開啟亞馬遜 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. 在查詢編輯器視窗中,輸入下列陳述式,然後選擇 Run (執行)。

    SELECT r.metadata.id, r.blockAddress FROM _ql_committed_VehicleRegistration AS r WHERE r.data.VIN = '1N4AL11D75C109151'
  4. 複製並儲存id查詢傳回的 ANDblockAddress 值。請務必省略id欄位的雙引號。在 Amazon Ion 中,字串資料類型會以雙引號分隔。

  5. 現在您已經選擇了文件修訂版,您可以開始驗證它的過程。

    在導覽窗格中,選擇 Aquery (驗證)。

  6. 在 [驗證文件] 表單的 [指定您要驗證的文件] 下,輸入下列輸入參數:

    • 分類帳-選擇vehicle-registration

    • 區塊位址 — 您在步驟 3 中查詢傳回的blockAddress值。

    • 文件 ID — 您在步驟 3 中查詢傳回的id值。

  7. 在「指定用於驗證的摘要」下,選擇「選擇摘要」來選取先前儲存的摘要。如果該文件有效,這會自動填充控制台上的所有摘要字段。或者,您可以直接從摘要文件中手動複製並粘貼以下值:

    • 摘要 — 摘要檔案中的digest值。

    • 摘要提示位址 — 摘要檔案中的digestTipAddress值。

  8. 檢閱文件和摘要輸入參數,然後選擇 [驗證]。

    控制台會為您自動執行兩個步驟:

    1. 向 QLDB 索取您指定文件的證明。

    2. 使用 QLDB 傳回的證明來呼叫用戶端 API,該 API 會根據提供的摘要驗證文件修訂版本。

    主控台會在「驗證結果」卡片中顯示您要求的結果。如需詳細資訊,請參閱驗證結果

  9. 若要測試驗證邏輯,請重複執行「驗證文件修訂」下的步驟 6-8,但變更摘要輸入字串中的單一字元。這會導致您的「驗證」要求失敗,並顯示適當的錯誤訊息。

如果您不再需要使用vehicle-registration分類帳,請繼續執行步驟 7 (選擇性):清除資源