名前空間に制限付きでアクセスする
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
名前空間機能は現在パブリックプレビューです。この機能と関連ドキュメントは変更される可能性があります。
このドキュメントでは、ScalarDL のマルチテナント環境において、名前空間を制限付きで設定およびアクセスする方法について説明します。
名前空間への制限アクセスとは?
名前空間へのアクセスを制限すると、単一の ScalarDL クラスター上で複数のテナントをホストしながら、テナント間での厳格なデータ分離を確保できます。各テナントは独自の名前空間内で動作し、その名前空間内のアセットのみにアクセスできます。
セキュリティモデル
名前空間への制限アクセスは、ポートベースのアクセス制御に依存します:
- 特権ポート: 管理者が名前空間管理と資格情報登録に使用します。管理者のみがこのポートにアクセスできる必要があります。
- 非特権ポート: テナントクライアントがコントラクト登録と実行に使用します。テナントは、特定の名前空間に登録された資格情報を使用してこのポートにアクセスします。
テナントの資格情報は特定の名前空間に登録されているため、これらの資格情報で実行されるすべての操作は自動的にその 名前空間にスコープされます。テナントは、割り当てられた名前空間外でコントラクトを登録したり操作を実行したりできません。
このチュートリアルでは、簡単にするためデフォルトポートを使用し、特権および非特権ポートの両方が同じクライアントマシンからアクセス可能であることを前提としています。本番環境では、管理者のみが特権ポートにアクセスできるようにアクセスを制限し、テナントは非特権ポートのみを通じて接続するようにしてください。
前提条件
- 以下のいずれかの 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
クライアントSDKをダウンロードする
次に、ScalarDL クライアントツールとサンプルを使用して ScalarDL と対話します。
デプロイされた ScalarDL バージョンと同じバージョンを指定し、以下のコマンドを実行してツールをダウンロードするために使用します:
VERSION=$(grep SCALARDL_VERSION .env | awk -F= '{print $2}')
次に、以下のコマンドを実行してツールをダウンロードします:
curl -OL https://github.com/scalar-labs/scalardl/releases/download/v$VERSION/scalardl-java-client-sdk-$VERSION.zip
unzip scalardl-java-client-sdk-$VERSION.zip
mv scalardl-java-client-sdk-$VERSION client
テナント名前空間を設定する
このセクションでは、新しいテナント名前空間を設定する手順について説明します。
管理者クライアントを設定する
テナント名前空間と資格情報を管理するため、管理者用のクライアントプロパティを設定する必要があります。管理者クライアント用の最小必要プロパティを含む設定ファイルを作成するには、以下のコマンドを実行します:
cat << 'EOF' > admin.properties
# ScalarDL Ledger用のホスト名
scalar.dl.client.server.host=localhost
# エンティティID。各秘密鍵に対して設定する必要があり、名前空間内で一意でなければなりません。
scalar.dl.client.entity.id=admin
# 証明書ファイルへのパス
scalar.dl.client.entity.identity.digital_signature.cert_path=./fixture/client.pem
# 秘密鍵ファイルへのパス
scalar.dl.client.entity.identity.digital_signature.private_key_path=./fixture/client-key.pem
EOF
このチュートリアルでは、ScalarDL Ledger ホスト名に localhost を使用できます。秘密鍵と証明書については、scalardl-samples の fixture ディレクトリで提供されているもの (それぞれ client-key.pemとclient.pem) を使用できます。証明書保持者には、任意の一意の ID を指定できます。
本番環境ではサンプルの秘密鍵と証明書を使用しないでください。独自の証明書の取得について詳しくは、証明書の取得方法を参照してください。
テナント名前空間を作成する
管理者として、以下のコマンドを実行してテナント用の名前空間を作成します。この操作には特権ポートへのアクセスが必要です。
client/bin/scalardl create-namespace --properties admin.properties --namespace tenant_a
テナント資格情報を登録する
以下のコマンドを実行して、新しく作成された名前空間にテナントの証明書を登録します。これにより、テナントの身元と名前空間が関連付けられます。
client/bin/scalardl register-cert --properties admin.properties --namespace tenant_a --entity-id foo --cert-path ./fixture/client.pem
このサンプルでは、簡単にするため管理者クライアントと同じclient.pemを使用します。電子署名認証を使用する実際の本番環境では、テナントユーザーによって発行された証明書を使用すべきです。
テナント名前空間を使用する
このセクションでは、テナントクライアントを設定して割り当てられた名前空間を操作する方法について説明します。
テナントクライアントを設定する
割り当てられた名前空間でコントラクトを登録して実行したり、アセットを検証したりするため、テナント用のクライアントプロパティを設定する必要があります。テナントクライアント用の最小必要プロパティを含む設定ファイルを作成するには、以下のコマンドを実行します:
cat << 'EOF' > tenant.properties
# ScalarDL Ledger用のホスト名
scalar.dl.client.server.host=localhost
# エンティティID。前の手順で名前空間に登録されたエンティティIDと一致する必要があります。
scalar.dl.client.entity.id=foo
# クライアント要求が実行される名前空間
scalar.dl.client.context.namespace=tenant_a
# 証明書ファイルへのパス
scalar.dl.client.entity.identity.digital_signature.cert_path=./fixture/client.pem
# 秘密鍵ファイルへのパス
scalar.dl.client.entity.identity.digital_signature.private_key_path=./fixture/client-key.pem
EOF
コントラクトを登録して実行する
テナントは、名前空間内でコントラクトを登録し実行できるようになりました。クライアントプロパティで設定された名前空間にすべての操作が自動的にスコープされるため、名前空間を意識することなく ScalarDL Ledger をはじめようで紹介された同じコントラクトを使用できます。
まず、以下のコマンドを実行してscalardl-samples内のコントラクトをコンパイルします:
./gradlew assemble
これにより build/classes/java/main/com/org1/contract/StateUpdater.class が生成されます。次に、以下のコマンドを実行してコントラクトを登録します:
client/bin/scalardl register-contract --properties tenant.properties --contract-id StateUpdater --contract-binary-name com.org1.contract.StateUpdater --contract-class-file build/classes/java/main/com/org1/contract/StateUpdater.class
以下のコマンドを実行してコントラクトを実行します:
client/bin/scalardl execute-contract --properties tenant.properties --contract-id StateUpdater --contract-argument '{"asset_id":"some_asset", "state":3}'
アセットを検証する
以下のコマンドを実行することで、デフォルト名前空間と同様に通常通りアセットを検証できます:
client/bin/scalardl validate-ledger --properties tenant.properties --asset-id="some_asset"
参照
独自のコントラクトを記述するには、以下を参照してください:
Java アプリケーションで ScalarDL コンポーネントと対話するには、以下を参照してください:
名前空間とその管理方法について詳しく学ぶには、以下を参照してください: