ScalarDL HashStore をはじめよう
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
ScalarDL HashStore は、低レベルの台帳抽象化の上に構築された高レベルの抽象化です。デジタル証拠保全専用に設計されており、オブジェクト真正性管理とコレクション真正性管理の2つの機能を提供します。HashStore を使用することで、コントラクトを記述することなく、不変な方法でオブジェクトのハッシュ値とオブジェクトのコレクションを管理し、真正性管理アプリケーションを迅速かつ簡単に開発できます。
このスタートガイドでは、お好みのデータベースで ScalarDL HashStore を設定し、改ざん検知可能な方法でオブジェクトとコレクションを管理する方法について説明します。
ScalarDL HashStore とは?
HashStore は、オブジェクト真正性管理とコレクション真正性管理の2つの機能を提供します。オブジェクト真正性管理では、ファイル、監査ログ、さらにはファイルまたはオブジェクトストレージ内のディレクトリなど、あらゆる種類のオブジェクトの真正性を管理できます。コレクション真正性管理では、コレクション内に存在するオブジェクトを管理できます。例えば、監査プロセスで検証が必要なオブジェクトのコレクションを作成できます。
HashStore がこれらの機能をどのように実現するかについては、下記のオブジェクト真正性の管理とコレクション真正性の管理の例を参照してください。
前提条件
- 以下のいずれかの Java Development Kit (JDK):
- Oracle JDK: 8、11、17、または 21 (LTS バージョン)
- OpenJDK (Eclipse Temurin、Amazon Corretto、または Microsoft Build of OpenJDK): 8、11、17、または 21 (LTS バージョン)
- Docker 20.10以降とDocker Compose v2.20.0以降
ScalarDL サンプルリポジトリをクローンする
ターミナルを開き、次のコマンドを実行して ScalarDL サンプルリポジトリをクローンします:
git clone https://github.com/scalar-labs/scalardl-samples
次に、以下のコマンドを実行して、サンプル設定を含むディレクトリに移動します:
cd scalardl-samples
お使いのデータベースで ScalarDL を起動する
データベースを選択し、コマンドに従って ScalarDL Ledger をデプロイしてください。ScalarDL がサポートするデータベースの一覧については、データベースを参照してください。
- MySQL
- PostgreSQL
- Oracle Database
- SQL Server
- DynamoDB
- Cosmos DB for NoSQL
- Cassandra
ライセンスを設定する (Enterprise Edition のみ)
ScalarDL Enterprise Edition を使用している場合は、次のようにライセンスを設定します。Community Edition を使用している場合は、次のセクションに進んで ScalarDL を起動してください。
ライセンスの設定についてはこちらをご覧ください
-
次のように、
mysql/docker-compose-ledger.ymlファイルで Enterprise Edition のコンテナイメージを有効にします。-
イメージを変更する前 (デフォルト設定):
services:
scalardl-ledger:
image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
# image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION} -
イメージを変更した後:
services:
scalardl-ledger:
# image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION}
-
-
ScalarDL Ledger のライセンスキーを設定します。
mysql/ledger.propertiesファイルで、<SET_YOUR_LICENSE_KEY>をライセンスキーに置き換えます。例:##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) #####
scalar.dl.licensing.license_key={"organization_name":"XXXXXXXX","expiration_date_time":"YYYY-MM-DDTHH:mm:SS+TIMEZONE","product_name":"ScalarDL Ledger","product_version":N,"license_type":"trial","signature":"XXXXXXXX"}
##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) ##### -
ライセンスを確認するには、
mysql/docker-compose-ledger.ymlファイルを次のように更新します。試用版ライセンスを使用している場合は、この手順をスキップしてください。-
証明書ファイルのパスを変更する前に (デフォルト設定):
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
- ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
# - ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem -
証明書ファイルのパスを変更した後:
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
# - ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
- ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem
-
ScalarDL を起動する
以下の手順に従って、ScalarDL Ledger を開始できます。
-
次のコマンドを実行して、MySQL をローカルで実行します。
docker compose -f mysql/docker-compose-ledger.yml up -d mysql -
次のコマンドを実行して、ScalarDL Ledger のデータベーススキーマをロードします。
docker compose -f mysql/docker-compose-ledger.yml up -d scalardl-ledger-schema-loader -
次のコマンドを実行して ScalarDL Ledger および依存するコンポーネントを起動します。
docker compose -f mysql/docker-compose-ledger.yml up -d
ライセンスを設定する (Enterprise Edition のみ)
ScalarDL Enterprise Edition を使用している場合は、次のようにライセンスを設定します。Community Edition を使用している場合は、次のセクションに進んで ScalarDL を起動してください。
ライセンスの設定についてはこちらをご覧ください
-
次のように、
postgres/docker-compose-ledger.ymlファイルで Enterprise Edition のコンテナイメージを有効にします。-
イメージを変更する前 (デフォルト設定):
services:
scalardl-ledger:
image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
# image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION} -
イメージを変更した後:
services:
scalardl-ledger:
# image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION}
-
-
ScalarDL Ledger のライセンスキーを設定します。
postgres/ledger.propertiesファイルで、<SET_YOUR_LICENSE_KEY>をライセンスキーに置き換えます。例:##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) #####
scalar.dl.licensing.license_key={"organization_name":"XXXXXXXX","expiration_date_time":"YYYY-MM-DDTHH:mm:SS+TIMEZONE","product_name":"ScalarDL Ledger","product_version":N,"license_type":"trial","signature":"XXXXXXXX"}
##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) ##### -
ライセンスを確認するには、
postgres/docker-compose-ledger.ymlファイルを次のように更新します。試用版ライセンスを使用している場合は、この手順をスキップしてください。-
証明書ファイルのパスを変更する前に (デフォルト設定):
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
- ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
# - ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem -
証明書ファイルのパスを変更した後:
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
# - ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
- ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem
-
ScalarDL を起動する
以下の手順に従って、ScalarDL Ledger を開始できます。
-
次のコマンドを実行して、PostgreSQL をローカルで実行します。
docker compose -f postgres/docker-compose-ledger.yml up -d postgres -
次のコマンドを実行して、ScalarDL Ledger のデータベーススキーマをロードします。
docker compose -f postgres/docker-compose-ledger.yml up -d scalardl-ledger-schema-loader -
次のコマンドを実行して ScalarDL Ledger および依存するコンポーネントを起動します。
docker compose -f postgres/docker-compose-ledger.yml up -d
ライセンスを設定する (Enterprise Edition のみ)
ScalarDL Enterprise Edition を使用している場合は、次のようにライセンスを設定します。Community Edition を使用している場合は、次のセクションに進んで ScalarDL を起動してください。
ライセンスの設定についてはこちらをご覧ください
-
次のように、
oracle/docker-compose-ledger.ymlファイルで Enterprise Edition のコンテナイメージを有効にします。-
イメージを変更する前 (デフォルト設定):
services:
scalardl-ledger:
image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
# image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION} -
イメージを変更した後:
services:
scalardl-ledger:
# image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION}
-
-
ScalarDL Ledger のライセンスキーを設定します。
oracle/ledger.propertiesファイルで、<SET_YOUR_LICENSE_KEY>をライセンスキーに置き換えます。例:##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) #####
scalar.dl.licensing.license_key={"organization_name":"XXXXXXXX","expiration_date_time":"YYYY-MM-DDTHH:mm:SS+TIMEZONE","product_name":"ScalarDL Ledger","product_version":N,"license_type":"trial","signature":"XXXXXXXX"}
##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) ##### -
ライセンスを確認するには、
oracle/docker-compose-ledger.ymlファイルを次のように更新します。試用版ライセンスを使用している場合は、この手順をスキップしてください。-
証明書ファイルのパスを変更する前に (デフォルト設定):
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
- ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
# - ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem -
証明書ファイルのパスを変更した後:
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
# - ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
- ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem
-
ScalarDL を起動する
以下の手順に従って、ScalarDL Ledger を開始できます。
-
次のコマンドを実行して、Oracle Database をローカルで実行します。
docker compose -f oracle/docker-compose-ledger.yml up -d oracle -
次のコマンドを実行して、ScalarDL Ledger のデータベーススキーマをロードします。
docker compose -f oracle/docker-compose-ledger.yml up -d scalardl-ledger-schema-loader -
次のコマンドを実行して ScalarDL Ledger および依存するコンポーネントを起動します。
docker compose -f oracle/docker-compose-ledger.yml up -d
ライセンスを設定する (Enterprise Edition のみ)
ScalarDL Enterprise Edition を使用している場合は、次のようにライセンスを設定します。Community Edition を使用している場合は、次のセクションに進んで ScalarDL を起動してください。
ライセンスの設定についてはこちらをご覧ください
-
次のように、
sqlserver/docker-compose-ledger.ymlファイルで Enterprise Edition のコンテナイメージを有効にします。-
イメージを変更する前 (デフォルト設定):
services:
scalardl-ledger:
image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
# image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION} -
イメージを変更した後:
services:
scalardl-ledger:
# image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION}
-
-
ScalarDL Ledger のライセンスキーを設定します。
sqlserver/ledger.propertiesファイルで、<SET_YOUR_LICENSE_KEY>をライセンスキーに置き換えます。例:##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) #####
scalar.dl.licensing.license_key={"organization_name":"XXXXXXXX","expiration_date_time":"YYYY-MM-DDTHH:mm:SS+TIMEZONE","product_name":"ScalarDL Ledger","product_version":N,"license_type":"trial","signature":"XXXXXXXX"}
##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) ##### -
ライセンスを確認するには、
sqlserver/docker-compose-ledger.ymlファイルを次のように更新します。試用版ライセンスを使用している場合は、この手順をスキップしてください。-
証明書ファイルのパスを変更する前に (デフォルト設定):
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
- ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
# - ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem -
証明書ファイルのパスを変更した後:
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
# - ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
- ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem
-
ScalarDL を起動する
以下の手順に従って、ScalarDL Ledger を開始できます。
-
次のコ マンドを実行して、SQL Server をローカルで実行します。
docker compose -f sqlserver/docker-compose-ledger.yml up -d sqlserver -
次のコマンドを実行して、ScalarDL Ledger のデータベーススキーマをロードします。
docker compose -f sqlserver/docker-compose-ledger.yml up -d scalardl-ledger-schema-loader -
次のコマンドを実行して ScalarDL Ledger および依存するコンポーネントを起動します。
docker compose -f sqlserver/docker-compose-ledger.yml up -d
ライセンスを設定す る (Enterprise Edition のみ)
ScalarDL Enterprise Edition を使用している場合は、次のようにライセンスを設定します。Community Edition を使用している場合は、次のセクションに進んで ScalarDL を起動してください。
ライセンスの設定についてはこちらをご覧ください
-
次のように、
dynamodb/docker-compose-ledger.ymlファイルで Enterprise Edition のコンテナイメージを有効にします。-
イメージを変更する前 (デフォルト設定):
services:
scalardl-ledger:
image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
# image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION} -
イメージを変更した後:
services:
scalardl-ledger:
# image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION}
-
-
ScalarDL Ledger のライセンスキーを設定します。
dynamodb/ledger.propertiesファイルで、<SET_YOUR_LICENSE_KEY>をライセンスキーに置き換えます。例:##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) #####
scalar.dl.licensing.license_key={"organization_name":"XXXXXXXX","expiration_date_time":"YYYY-MM-DDTHH:mm:SS+TIMEZONE","product_name":"ScalarDL Ledger","product_version":N,"license_type":"trial","signature":"XXXXXXXX"}
##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) ##### -
ライセンスを確認するには、
dynamodb/docker-compose-ledger.ymlファイルを次のように更新します。試用版ライセンスを使用している場合は、この手順をスキップしてください。-
証明書ファイルのパスを変更する前に (デフォルト設定):
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
- ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
# - ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem -
証明書ファイルのパスを変更した後:
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
# - ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
- ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem
-
ScalarDL を起動する
以下の手順に従って、ScalarDL Ledger を開始できます。
-
次のコマンドを実行して、DynamoDB をローカルで実行します。
docker compose -f dynamodb/docker-compose-ledger.yml up -d dynamodb -
次のコマンドを実行して、ScalarDL Ledger のデータベーススキーマをロードします。
docker compose -f dynamodb/docker-compose-ledger.yml up -d scalardl-ledger-schema-loader -
次のコマンドを実行して ScalarDL Ledger および依存するコンポーネントを起動します。
docker compose -f dynamodb/docker-compose-ledger.yml up -d
ライセンスを設定する (Enterprise Edition のみ)
ScalarDL Enterprise Edition を使用している場合は、以下の手順でライセンスを設定してください。Community Edition を使用している場合は、次のセクションに進んで ScalarDL を起動してください。
ライセンスを設定するにはこちらをご覧ください
-
次のように
cosmosdb/docker-compose-ledger.ymlファイルで Enterprise Edition 用の Docker イメージを有効にします:-
イメージ変更前 (デフォルト設定):
services:
scalardl-ledger:
image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
# image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION} -
イメージ変更後:
services:
scalardl-ledger:
# image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION}
-
-
ScalarDL Ledger のライセンスキーを設定します。
cosmosdb/ledger.propertiesファイル内の<SET_YOUR_LICENSE_KEY>をライセンスキーに置き換えます。例:##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) #####
scalar.dl.licensing.license_key={"organization_name":"XXXXXXXX","expiration_date_time":"YYYY-MM-DDTHH:mm:SS+TIMEZONE","product_name":"ScalarDL Ledger","product_version":N,"license_type":"trial","signature":"XXXXXXXX"}
##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) ##### -
ライセンスを確認するには、次のように
cosmosdb/docker-compose-ledger.ymlファイルを更新します。トライアルライセンスを使用している場合は、この手順をスキップしてください。-
証明書ファイルパス変更前 (デフォルト設定):
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
- ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
# - ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem -
証明書ファイルパス変更後:
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
# - ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
- ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem
-
ScalarDL を起動する
以下の手順で ScalarDL Ledger を起動できます:
-
Cosmos DB for NoSQL を設定します。
Azure Cosmos DB for NoSQL を使用するには、Azure アカウントが必要です。Azure アカウントをお持ちでない場合は、Azure Cosmos DB アカウントの作成をご覧ください。
Cosmos DB for NoSQL の設定後、Cosmos DB for NoSQL の設定に基づいて
cosmodb/ledger.properties内の以下の項目を変更します。scalar.db.contact_points=<COSMOS_DB_FOR_NOSQL_URI>
scalar.db.password=<COSMOS_DB_FOR_NOSQL_KEY> -
次のコマンドを実行して、ScalarDL Ledger 用のデータベーススキーマをロードします:
docker compose -f cosmosdb/docker-compose-ledger.yml up -d scalardl-ledger-schema-loader -
次のコマンドを実行して、ScalarDL Ledgerを実行します:
docker compose -f cosmosdb/docker-compose-ledger.yml up -d
ライセンスを設定する (Enterprise Edition のみ)
ScalarDL Enterprise Edition を使用している場合は、次のようにライセンスを設定します。Community Edition を使用している場合は、次のセクションに進んで ScalarDL を起動してください。
ライセンスの設定についてはこちらをご覧ください
-
次のように、
cassandra/docker-compose-ledger.ymlファイルで Enterprise Edition のコンテナイメージを有効にします。-
イメージを変更する前 (デフォルト設定):
services:
scalardl-ledger:
image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
# image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION} -
イメージを変更した後:
services:
scalardl-ledger:
# image: ghcr.io/scalar-labs/scalardl-ledger:${SCALARDL_VERSION}
image: ghcr.io/scalar-labs/scalardl-ledger-byol:${SCALARDL_VERSION}
-
-
ScalarDL Ledger のライセンスキーを設定します。
cassandra/ledger.propertiesファイルで、<SET_YOUR_LICENSE_KEY>をライセンスキーに置き換えます。例:##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) #####
scalar.dl.licensing.license_key={"organization_name":"XXXXXXXX","expiration_date_time":"YYYY-MM-DDTHH:mm:SS+TIMEZONE","product_name":"ScalarDL Ledger","product_version":N,"license_type":"trial","signature":"XXXXXXXX"}
##### PLEASE REPLACE THIS VALUE WITH YOUR LICENSE KEY (ENTERPRISE EDITION ONLY) ##### -
ライセンスを確認するには、
cassandra/docker-compose-ledger.ymlファイルを次のように更新します。試用版ライセンスを使用している場合は、この手順をスキップしてください。-
証明書ファイルのパスを変更する前に (デフォルト設定):
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
- ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
# - ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem -
証明書ファイルのパスを変更した後:
services:
scalardl-ledger:
volumes:
- ./ledger.properties:/scalar/ledger/ledger.properties.tmpl
- ../fixture/ledger-key.pem:/scalar/ledger-key.pem
# - ../fixture/trial-license-cert.pem:/scalar/license-cert.pem
# If you have a commercial license key, you must use `commercial-license-cert.pem` instead of `trial-license-cert.pem`.
- ../fixture/commercial-license-cert.pem:/scalar/license-cert.pem
-
ScalarDL を起動する
以下の手順に従って、ScalarDL Ledger を開始できます。
-
次のコマンドを実行して、Cassandra をローカルで実行します。
docker compose -f cassandra/docker-compose-ledger.yml up -d cassandra -
次のコマンドを実行して、ScalarDL Ledger のデータベーススキーマをロードします。
docker compose -f cassandra/docker-compose-ledger.yml up -d scalardl-ledger-schema-loader -
次のコマンドを実行して ScalarDL Ledger および依存するコンポーネントを起動します。
docker compose -f cassandra/docker-compose-ledger.yml up -d
Client SDK のダウンロード
次に、ScalarDL HashStore クライアントツールを使用します。デプロイされた ScalarDL バージョンと同じバージョンを指定して、ツールをダウンロードするために次のコマンドを実行します:
VERSION=$(grep SCALARDL_VERSION .env | awk -F= '{print $2}')
次に、以下のコマンドを実行してツールをダウンロードします:
curl -OL https://github.com/scalar-labs/scalardl/releases/download/v$VERSION/scalardl-hashstore-java-client-sdk-$VERSION.zip
unzip scalardl-hashstore-java-client-sdk-$VERSION.zip
mv scalardl-hashstore-java-client-sdk-$VERSION hashstore
クライアントプロパティの設定
ScalarDL HashStore と対話する前に、クライアントを設定する必要があります。クライアントに必要な最小限のプロパティを含む設定ファイルを作成するには、以下のコマンドを実行します:
cat << 'EOF' > client.properties
# A host name for ScalarDL Ledger.
scalar.dl.client.server.host=localhost
# An ID for the certificate holder. This must be configured for each private key and must be unique in the system.
scalar.dl.client.cert_holder_id=foo
# A path to the certificate file.
scalar.dl.client.cert_path=./fixture/client.pem
# A path to the private key file.
scalar.dl.client.private_key_path=./fixture/client-key.pem
EOF
このチュートリアルでは、ScalarDL Ledger のホスト名に localhost を使用できます。秘密鍵と証明書については、scalardl-samples リポジトリの fixture ディレクトリで提供されているもの (それぞれ client-key.pem と client.pem) を使用できます。証明書ホルダーには、任意の一意の ID を指定できます。
本番環境では、サンプルの秘密鍵と証明書を使用しないでください。独自の証明書を取得する方法の詳 細については、証明書の取得方法を参照してください。
ブートストラップ
次に、以下のコマンドを実行して HashStore をブートストラップできます:
hashstore/bin/scalardl-hashstore bootstrap --properties client.properties
ブートストラップコマンドは、内部的にアイデンティティ情報 (証明書またはシークレット) と HashStore を使用するために必要な事前定義されたコントラクトを登録します。
オブジェクト真正性の管理
HashStore のオブジェクト真正性管理では、put-object コマンドを使用してオブジェクトのハッシュ値を格納できます。以下の例のように、対象のオブジェクト ID とオブジェクトのハッシュ値を指定します。オブジェクト ID は、オブジェクトまたはファイルを識別する一意の ID である必要があります。例えば、オブジェクトのキーやファイルパスなどです。metadata オプションを使用して、オブジェクトに関連付けられた任意のメタデータを格納することもできます。
まず、ファイルのハッシュ値を取得して、改ざん検知可能な台帳に格納します。
sha256sum コマンドは Linux 環境でのみ利用可能です。macOS 環境と Windows 環境では、それぞれ shasum と certutil が利用可能です。同じ SHA256 ハッシュ値を取得する方法の詳細については、これらのコマンドの使用方法を参照してください。
echo "Alice created this file." > a.txt
sha256sum a.txt
以下のハッシュ値が取得できるはずです:
5c7440fb2273a247f78aadefbc511c680a84e7d44004abfaedef2b145151dab0 a.txt
以下のコマンドを実行して、ハッシュ値を格納できます:
hashstore/bin/scalardl-hashstore put-object --properties client.properties \
--object-id a.txt \
--hash 5c7440fb2273a247f78aadefbc511c680a84e7d44004abfaedef2b145151dab0 \
--metadata '{"note": "created"}'
オブジェクトが更新された場合、同じ方法で新しいハッシュ値を格納できます。例えば、以下では下記のコマンドが実行されたと仮定します:
echo "Alice updated this file." >> a.txt
sha256sum a.txt
ハッシュ値として以下の結果が取得できるはずです:
b97a42c87a46ffebe1439f8c1cd2f86e2f9b84dad89c8e9ebb257a19b6fdfe1c a.txt
次に、以下のようにハッシュ値を更新できます:
hashstore/bin/scalardl-hashstore put-object --properties client.properties \
--object-id a.txt \
--hash b97a42c87a46ffebe1439f8c1cd2f86e2f9b84dad89c8e9ebb257a19b6fdfe1c \
--metadata '{"note": "updated"}'
以下のコマンドを実行して、オブジェクトの最新ステータスを取得することもできます:
hashstore/bin/scalardl-hashstore get-object --properties client.properties \
--object-id a.txt
以下のような結果が得られるはずです:
Result:
{
"object_id" : "a.txt",
"hash_value" : "b97a42c87a46ffebe1439f8c1cd2f86e2f9b84dad89c8e9ebb257a19b6fdfe1c",
"metadata" : {
"note" : "updated"
}
}
オブジェクトの真正性を検証したい場合は、まず検証したいオブジェクトの各バージョンについて、例えば sha256sum コマンドを使用して、ハッシュ値を再計算します。
次に、再計算されたハッシュ値とバージョン ID を降順で指定して compare-object-versions コマンドを実行します。任意の数のバージョンを指定できます。バージョン ID は、出力で元の値と異なるハッシュ値を表示するためにのみ使用されるため、値が一意に識別できる限り、任意の文字列値を使用できます。
使用中の環境で a.txt ファイルの古いバージョンのハッシュ値を取得できない場合は、代わりに現在のバージョンのみを指定してください。
hashstore/bin/scalardl-hashstore compare-object-versions --properties client.properties \
--object-id a.txt \
--versions '[{"version_id": "v2", "hash_value": "b97a42c87a46ffebe1439f8c1cd2f86e2f9b84dad89c8e9ebb257a19b6fdfe1c"}, {"version_id": "v1", "hash_value": "5c7440fb2273a247f78aadefbc511c680a84e7d44004abfaedef2b145151dab0"}]}'
オブジェクトの再計算されたハッシュ値が台帳にあるものと同じ場合、以下の結果が表示されるはずです。
Result:
{
"status" : "correct",
"details" : "The status is correct.",
"faulty_versions" : [ ]
}
誰かがファイル a.txt を以下のように改ざんしたとします:
Bob created this file.
Alice updated this file
最新バージョンのハッシュ値は 1f75d715648a3b4b3a33ecd7428a3e7139d9357da7d38735c23bf38618ecf9c7 になります。以下のコマンドを実行して検証を実行できます:
hashstore/bin/scalardl-hashstore compare-object-versions --properties client.properties \
--object-id a.txt \
--versions '[{"version_id": "v2", "hash_value": "1f75d715648a3b4b3a33ecd7428a3e7139d9357da7d38735c23bf38618ecf9c7"}, {"version_id": "v1", "hash_value": "5c7440fb2273a247f78aadefbc511c680a84e7d44004abfaedef2b145151dab0"}]}'
以下のような結果 が得られるはずです:
Result:
{
"status" : "faulty",
"details" : "A faulty version is found.",
"faulty_versions" : [ "v2" ]
}
この検証プロセスは、データのハッシュ値と ScalarDL に保存されている対応するハッシュ値を比較することで、ScalarDL 外部のデータが変更されていないことを確認します。ScalarDL 内のデータ (この場合はハッシュ値) が改ざんされていないかどうかを検証するには、validate-ledger コマンドを使用できます。詳細については、HashStore で管理されるデータの検証を参照してください。