ScalarDL Auditor の使用を開始する
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このドキュメントでは、ScalarDL Auditor の使用を開始する方法について説明します。 ここでは、読者がすでに以下のガイドを読み終えており、ScalarDL 全体についてある程度の経験を積んでいることを前提としています。
- ScalarDL 入門
- ScalarDL の適切なコントラクトの書き方に関するガイド
- ScalarDL ファンクションの書き方ガイド
- ScalarDL でアセット プルーフを使用する方法に関するガイド
ScalarDL Auditor とは何ですか?
ScalarDL Auditor は、Ledger の同一の状態を管理し、クライアントによるビザンチン障害の検出を支援するコンポーネントです。 Auditor を使用すると、セキュリティの観点からは大きなメリットがありますが、追加の処理コストがかかるため、本当に必要な場合は慎重に検討してください。
Auditor によるビザンチン障害検出を適切に機能させるには、Ledger と Auditor を異なる管理ドメインに展開して管理する必要があります。 ただし、この入門ガイドでは、それらが同じネットワークに配置され、同じ 管理ドメインで管理されることを前提としています。
前提条件
このガイドでは、Ledger と Auditor の両方が ScalarDB 経由で Cassandra を使用し、両方の Cassandra インスタンスが管理者権限としてデフォルトのユーザー名とパスワードを使用すると仮定します。 また、Ledger、Auditor、および Cassandra はすべて同じネットワーク内に配置されているため、相互にアクセスできます。
プロパティを構成する
検出が適切に機能するように、Ledger と Auditor を構成する必要があります。
Ledger のプロパティについては、次のエントリを構成する必要があります。
[ledger.properties]
scalar.dl.ledger.proof.enabled=true
scalar.dl.ledger.proof.private_key_path=/path/to/private_key.pem
scalar.dl.ledger.nonce_txid.enabled=true
scalar.dl.ledger.auditor.enabled=true
#scalar.dl.ledger.auditor.cert_holder_id=auditor
#scalar.dl.ledger.auditor.cert_version=1
まず、scalar.dl.ledger.auditor.enabled
を true に設定して、ScalarDL システムが Auditor を使用しているかどうかを Ledger に知らせる必要があります。
Auditor は AssetProof を使用して機能するため、scalar.dl.ledger.proof.enabled
を有効にし、適切な秘密鍵を scalar.dl.ledger.proof.private_key_path
に設定する必要もあることに注意してください。
これらが適切かつ一貫して構成されていない場合、Ledger は例外をスローします。
また、Ledger は Auditor の証明書を管理し (つまり、 Auditor はその証明書を Ledger に登録する必要があります)、その証明書を使用して Auditor の秘密鍵で署名されたリクエストを検証し、リクエストの送信元を識別します。 したがって、証明書所有者 ID (scalar.dl.ledger.auditor.cert_holder_id
) とバージョン (scalar.dl.ledger.auditor.cert_version
) も設定する必要があります。
デフォルトでは、Ledger は、Auditor がその証明書を名前 auditor
、バージョン 1
で登録すると想定します。
Auditor のプロパティについては、次のエントリを構成する必要があります。
[auditor.properties]
#scalar.dl.auditor.ledger.cert_holder_id=ledger
#scalar.dl.auditor.ledger.cert_version=1
#scalar.dl.auditor.cert_holder_id=auditor
#scalar.dl.auditor.cert_version=1
scalar.dl.auditor.cert_path=/path/to/auditor.pem
scalar.dl.auditor.private_key_path=/path/to/auditor-key.pem
Auditor は、Ledger にリクエストを送信する前にリクエストに署名するキーペアを管理し、Ledger から与えられたリクエストを検証するため、scalar.dl.auditor.cert_path
と scalar.dl.auditor.private_key_path
を適切に設定する必要があります。
Ledgerと同様に、AuditorはLedgerの証明書を管理し(つまり、Ledgerがその証明書をAuditorに登録し)、その証明書を使用してLedgerの秘密鍵によって署名されたリクエストを検証します。 したがって、証明書所有者 ID (scalar.dl.auditor.ledger.cert_holder_id=ledger
) とバージョン (scalar.dl.auditor.ledger.cert_version
) が必要です。
デフォルトでは、Auditor は Ledger がその証明書を名前 ledger
、バージョン 1
で登録していると想定します。
その他の値はここではオプションですが、環境に応じて更新する必要があります。
たとえば、Ledger と Auditor を異なるホストに配置する場合、Auditor が Ledger にアクセスできるように、scalar.dl.auditor.ledger.host
を更新する必要があります。
詳細については、設定ファイル を確認してください。