diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/applications/simple-bank-account/README.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/applications/simple-bank-account/README.mdx index e8f107e7..b52b14f7 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/applications/simple-bank-account/README.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/applications/simple-bank-account/README.mdx @@ -10,11 +10,11 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; ## 概要 -これは単純な銀行口座アプリケーションであり、[`scalardl` リポジトリ](https://github.com/scalar-labs/scalardl/tree/master/docs/applications/simple-bank-account/) にあります。ユーザーが実行できるアクションは、アカウントの作成、アカウント履歴の表示、アカウントへの資金の入金、アカウントからの資金の引き出し、アカウント間の資金の転送です。 アカウントで実行されたすべてのアクションは ScalarDL に記録されます。これは、ブロックチェーンがブロックを記録する方法と同様に、アカウント履歴が改ざん明示的な方法で記録されることを意味します。 これは、アカウント履歴が (意図的かどうかに関わらず) 変更された場合、これを検出することが可能であることを意味します。 - -ここでは物事を簡単にするために、銀行がすべてのコントラクトを実行するための秘密鍵を保持していると仮定します (これがどのように機能するかについては、以下を参照してください)。 おそらくこれは、この銀行アプリケーションを実際に使用する方法ではありません。 この場合、悪意のあるアカウント マネージャーがユーザーのアカウント履歴を実際に変更する可能性があります。たとえば、単にアカウントを再作成し、偽のデータを入力するだけです。 より意味のある設定は、銀行が口座に入金するための秘密鍵を所有し、各ユーザーが自分の秘密鍵を使用して引き出しと送金のコントラクトを登録することです。 その場合、銀行のみが口座に資金を移動でき、ユーザーのみが口座から資金を移動できます。 +これは単純な銀行口座アプリケーションであり、[`scalardl` リポジトリ](https://github.com/scalar-labs/scalardl/tree/master/docs/applications/simple-bank-account/)にあります。ユーザーが実行できるアクションは、アカウントの作成、アカウント履歴の表示、アカウントへの資金の入金、アカウントからの資金の引き出し、アカウント間の資金の転送です。アカウントで実行されたすべてのアクションは ScalarDL に記録されます。これは、ブロックチェーンがブロックを記録する方法と似た方法で、アカウント履歴が改ざん検知可能な方法で記録されることを意味します。これは、アカウント履歴が (意図的かどうかに関わらず) 変更された場合、これを検出することが可能であることを意味します。 -このアプリケーションでは、次の 5 つのコントラクトを使用します。 +ここでは物事を簡単にするために、銀行がすべてのコントラクトを実行するための秘密鍵を保持していると仮定します (これがどのように機能するかについては、以下を参照してください)。おそらくこれは、この銀行アプリケーションを実際に使用する方法ではありません。この場合、悪意のあるアカウントマネージャーがユーザーのアカウント履歴を実際に変更する可能性があります。たとえば、単にアカウントを再作成し、偽のデータを入力するだけです。より意味のある設定は、銀行が口座に入金するための秘密鍵を所有し、各ユーザーが自分の秘密鍵を使用して引き出しと送金のコントラクトを登録することです。その場合、銀行のみが口座に資金を移動でき、ユーザーのみが口座から資金を移動できます。 + +このアプリケーションでは、次の5つのコントラクトを使用します。 - [`AccountHistory.java`](https://github.com/scalar-labs/scalardl/blob/master/docs/applications/simple-bank-account/contract/src/main/java/com/scalar/application/bankaccount/contract/AccountHistory.java) - [`CreateAccount.java`](https://github.com/scalar-labs/scalardl/blob/master/docs/applications/simple-bank-account/contract/src/main/java/com/scalar/application/bankaccount/contract/CreateAccount.java) @@ -24,7 +24,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; これらのコントラクトは銀行によって登録され、銀行はそれぞれ、口座履歴の表示、口座の作成、口座への入金、口座間の資金移動、口座からの資金の引き出しを行うことができます。 -このアプリケーションの全体的なアーキテクチャは次のようになります。 (この使用例は簡素化のためのものであり、実際には少し異なる可能性があることに再度注意してください。) +このアプリケーションの全体的なアーキテクチャは次のようになります。(この使用例は簡素化のためのものであり、実際には少し異なる可能性があることに再度注意してください。) ![architecture](./docs/img/architecture.jpg) @@ -35,13 +35,13 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; :::note - 上記の LTS バージョンの使用をお勧めしますが、他の非 LTS バージョンでも動作する可能性があります。 -- また、他の JDK もこのサンプル アプリケーションで動作するはずですが、テストは行っていません。 +- また、他の JDK でもこのサンプルアプリケーションは動作するはずですが、テストは行っていません。 ::: ## アプリケーションを試してみる -[ScalarDL Client SDK](https://github.com/scalar-labs/scalardl-client-sdk)をダウンロードします。 ScalarDL が実行されていることを確認し、必要なコントラクトをすべて実行して登録します。 +[ScalarDL Client SDK](https://github.com/scalar-labs/scalardl-client-sdk)をダウンロードします。ScalarDL が実行されていることを確認し、必要なコントラクトをすべて実行して登録します。 ```console ./gradlew build @@ -49,17 +49,17 @@ cd contract SCALAR_SDK_HOME=/path/to/scalardl-client-sdk ./register ``` -IntelliJ (または選択した IDE) を使用するか、プロジェクトのホーム ディレクトリで `gradle bootRun` を実行して、アプリケーションを実行します。 アプリと対話するために HTTP リクエストを送信できるサーバーを `localhost:8080` 上に作成する必要があります。 詳細については、[API ドキュメント](./docs/api_endpoints.mdx) を参照してください。 HTTP リクエストを作成するには、[Postman](https://www.getpostman.com/) が非常に優れていることがわかりました。 +IntelliJ (または選択した IDE) を使用するか、プロジェクトのホームディレクトリで `gradle bootRun` を実行して、アプリケーションを実行します。アプリと対話するために HTTP リクエストを送信できるサーバーを `localhost:8080` 上に作成する必要があります。詳細については、[API ドキュメント](./docs/api_endpoints.mdx)を参照してください。HTTP リクエストを作成するには、[Postman](https://www.getpostman.com/) が便利です。 ## ScalarDL アプリケーションの作成に関する短いチュートリアル -Spring Boot を使用して、コントラクトと対話する Web サービスを作成することにしました。 もちろん、これが唯一の選択肢ではありません。 別の選択肢は、たとえば [アセット管理アプリケーション](https://github.com/indetail-blockchain/getting-started-with-scalardl) で行われたように、コマンド ライン インターフェイスを作成することです。 そこには、ScalarDL 用のアプリケーションを作成するための非常に優れたチュートリアルもあります。 +Spring Boot を使用して、コントラクトと対話する Web サービスを作成することにしました。もちろん、これが唯一の選択肢ではありません。別の選択肢は、たとえば [アセット管理アプリケーション](https://github.com/indetail-blockchain/getting-started-with-scalardl)で行われたように、コマンドラインインターフェースを作成することです。そこには、ScalarDL 用のアプリケーションを作成するための非常に優れたチュートリアルもあります。 -このチュートリアルでは、Web サービスまたはコマンド ライン インターフェイスのレベルでの詳細については説明せず、代わりにアプリケーションと ScalarDL の間の対話に焦点を当てます。 コントラクトの作成方法、コントラクトの登録方法、そして ScalarDL SDK を使用してアプリケーションからこれらのコントラクトを呼び出す方法について説明します。 +このチュートリアルでは、Web サービスまたはコマンドラインインターフェースのレベルでの詳細については説明せず、代わりにアプリケーションと ScalarDL の間の対話に焦点を当てます。コントラクトの作成方法、コントラクトの登録方法、そして ScalarDL SDK を使用してアプリケーションからこれらのコントラクトを呼び出す方法について説明します。 ### コントラクト -コントラクトは、 `JacksonBasedContract` クラスを拡張し、 `invoke` メソッドをオーバーライドする Java クラスです。 `Deposit.java` コントラクトを詳しく見てみましょう。 +コントラクトは、 `JacksonBasedContract` クラスを拡張し、 `invoke` メソッドをオーバーライドする Java クラスです。`Deposit.java` コントラクトを詳しく見てみましょう。 ```java package com.scalar.application.bankaccount.contract; @@ -105,23 +105,23 @@ public class Deposit extends JacksonBasedContract { } } ``` -このコントラクトが適切に機能するためには、ユーザーはアカウントの `id` と `amount` を指定する必要があります。 したがって、最初に行うことは、引数にこれら 2 つのキーが含まれているかどうかを確認し、含まれていない場合は `ContractContextException` をスローすることです。 +このコントラクトが適切に機能するためには、ユーザーはアカウントの `id` と `amount` を指定する必要があります。したがって、最初に行うことは、引数にこれら2つのキーが含まれているかどうかを確認し、含まれていない場合は `ContractContextException` をスローすることです。 **注記:** `ContractContextException` はコントラクト内で唯一スロー可能な例外であり、回復不可能なエラーが発生した場合は常にスローされる必要があります。 - -したがって、`id` と `amount` があると仮定して、`amount` に対して簡単な非負のチェックを行い、負の場合は再度 `ContractContextException` をスローします。 これで、`ledger` を操作する準備が整いました。 - -`ledger` で呼び出すことができるメソッドは 3 つあります: `get(String s)`、 `put(String s, JsonNode jsonNode)`、および `scan(AssetFilterassetFilter)` です。 `get(String s)` は Ledger からアセット `s` を取得します。 `put(String s, JsonNode jsonNode)` は、アセット `s` をデータ `jsonNode` に関連付け、アセットの年齢を増やします。 `scan(AssetFilterassetFilter)` は、`AssetFilter` で指定されたアセットの履歴のバージョンを返します。 - -**注記:** Ledger ではブラインド書き込みは許可されていません。つまり、特定のアセットに対して `put` を実行する前に、まずそのアセットを `get` する必要があります。 さらに、 `scan` は読み取り専用コントラクトでのみ許可されます。つまり、1 つのコントラクトで `scan` と `put` の両方を行うことはできません。 - -コントラクトの残りの部分は単純な方法で進められます。 まず Ledger からアセットを `get` し、現在の残高を取得し、それに預金額を追加し、最後に新しい残高でアセットを Ledger に `put`。 -最後に `JsonNode` を返す必要があります。 `JsonNode` に何が含まれるかは、コントラクトの設計者次第です。 ここでは、`status` メッセージ、`old_balance`、および `new_balance` を含めることにしました。 +したがって、`id` と `amount` があると仮定して、`amount` に対して簡単な非負のチェックを行い、負の場合は再度 `ContractContextException` をスローします。これで、`ledger` を操作する準備が整いました。 + +`ledger` で呼び出すことができるメソッドは3つあります: `get(String s)`、 `put(String s, JsonNode jsonNode)`、および `scan(AssetFilterassetFilter)` です。`get(String s)` は Ledger からアセット `s` を取得します。`put(String s, JsonNode jsonNode)` は、アセット `s` をデータ `jsonNode` に関連付け、アセットの age を増やします。`scan(AssetFilterassetFilter)` は、`AssetFilter` で指定されたアセットの履歴のバージョンを返します。 + +**注記:** Ledger ではブラインドライトは許可されていません。つまり、特定のアセットに対して `put` を実行する前に、まずそのアセットを `get` する必要があります。さらに、 `scan` は読み取り専用コントラクトでのみ許可されます。つまり、1つのコントラクトで `scan` と `put` の両方を行うことはできません。 + +コントラクトの残りの部分は単純な方法で進められます。まず Ledger からアセットを `get` し、現在の残高を取得し、それに預金額を追加し、最後に新しい残高でアセットを Ledger に `put` します。 -必要に応じて、このアプリケーションが使用する他のコントラクトを [`scalardl` リポジトリ内のこのサンプルの `contract` フォルダー](https://github.com/scalar-labs/scalardl/tree/master/docs/applications/simple-bank-account/contract/src/main/java/com/scalar/application/bankaccount/contract) で表示できます。 - -コントラクトを作成したら、それを編集する必要があります。 これは次のようにして実行できます。 +最後に `JsonNode` を返す必要があります。`JsonNode` に何が含まれるかは、コントラクトの設計者次第です。ここでは、`status` メッセージ、`old_balance`、および `new_balance` を含めることにしました。 + +必要に応じて、このアプリケーションが使用する他のコントラクトを [`scalardl` リポジトリ内のこのサンプルの `contract` フォルダー](https://github.com/scalar-labs/scalardl/tree/master/docs/applications/simple-bank-account/contract/src/main/java/com/scalar/application/bankaccount/contract)で参照できます。 + +コントラクトを作成したら、それをコンパイルする必要があります。これは次のようにして実行できます。 ```console ./gradlew build @@ -129,9 +129,9 @@ public class Deposit extends JacksonBasedContract { ### 認定資格とコントラクトの登録 -これでコントラクトを作成し、まとめたはずです。 ただし、それらを実行する前に、ScalarDL ネットワークに登録する必要があります。 [ScalarDL Client SDK](https://github.com/scalar-labs/scalardl-client-sdk) `client/bin` ディレクトリで利用可能なツールを利用して、コントラクトを登録して実行します。 このディレクトリにアクセスできることを確認してください。 +これでコントラクトを作成し、コンパイルしたはずです。ただし、それらを実行する前に、ScalarDL ネットワークに登録する必要があります。[ScalarDL Client SDK](https://github.com/scalar-labs/scalardl-client-sdk) `client/bin` ディレクトリで利用可能なツールを利用して、コントラクトを登録して実行します。このディレクトリにアクセスできることを確認してください。 -ここで、証明書 (例: `client.pem`) とそれに対応する秘密鍵 (例: `client-key.pem`)、および ScalarDL を起動して実行する必要があります。 構成に合わせて `client.properties` (`conf` ディレクトリにあります)を編集します。 次のような行が含まれている必要があります。 +ここで、証明書 (例: `client.pem`) とそれに対応する秘密鍵 (例: `client-key.pem`)、および ScalarDL を起動して実行する必要があります。構成に合わせて `client.properties` (`conf` ディレクトリにあります) を編集します。次のような行が含まれている必要があります。 ```console scalar.dl.client.server.host=localhost @@ -148,7 +148,7 @@ cd contract ${SCALAR_SDK_HOME}/client/bin/scalardl register-cert --properties ../conf/client.properties ``` -成功すると、ステータス コード 200 が返されます。 +成功すると、ステータスコード200が返されます。 コントラクトを登録するには、次の形式を使用して `conf` ディレクトリに `contracts.toml` ファイルを作成します。 @@ -169,7 +169,7 @@ contract-binary-name = "com.scalar.application.bankaccount.contract.Transfer" contract-class-file = "build/classes/java/main/com/scalar/application/bankaccount/contract/Transfer.class" ``` -この例では、 `CreateAccount.java`、`Deposit.java`、`Transfer.java` の 3 つのコントラクトを登録します。 `contract-binary-name` と `contract-class-file` は決まっていますが、 `contract-id` は自由に選択できます。 以下で説明するように、`contract-id` は、 `ClientService` を使用して特定のコントラクトを参照する方法です。 +この例では、 `CreateAccount.java`、`Deposit.java`、`Transfer.java` の3つのコントラクトを登録します。`contract-binary-name` と `contract-class-file` は決まっていますが、 `contract-id` は自由に選択できます。以下で説明するように、`contract-id` は、 `ClientService` を使用して特定のコントラクトを参照する方法です。 toml ファイルを作成したら、次のように指定したすべてのコントラクトを登録できます。 @@ -177,26 +177,26 @@ toml ファイルを作成したら、次のように指定したすべてのコ ${SCALAR_SDK_HOME}/client/bin/scalardl register-contracts --properties ../conf/client.properties --contracts-file ../conf/contracts.toml ``` -正常に登録された各コントラクトはステータス コード 200 を返す必要があります。 +正常に登録された各コントラクトはステータスコード200を返す必要があります。 ### コントラクトの実行 -必要に応じて、登録されているコントラクトを実行できるようになります。 たとえば、登録コントラクトを使用していくつかの口座を作成し、そのうちの 1 つの口座に資金を入金し、これらの資金の一部をもう一方の口座に転送して、口座履歴を確認します。 +必要に応じて、登録されているコントラクトを実行できるようになります。たとえば、登録コントラクトを使用していくつかの口座を作成し、そのうちの1つの口座に資金を入金し、これらの資金の一部をもう一方の口座に転送して、口座履歴を確認します。 -ID が `a111` と `b222` の 2 つのアカウントを作成します。 (コントラクト ID には任意の文字列を指定できます。) +ID が `a111` と `b222` の2つのアカウントを作成します。(コントラクト ID には任意の文字列を指定できます。) ```console ${SCALAR_SDK_HOME}/client/bin/scalardl execute-contract --properties ../conf/client.properties --contract-id create-account --contract-argument '{"id": "a111"}' ${SCALAR_SDK_HOME}/client/bin/scalardl execute-contract --properties ../conf/client.properties --contract-id create-account --contract-argument '{"id": "b222"}' ``` -ここで、アカウント `a111` に 100 を入金します。 +ここで、アカウント `a111` に100を入金します。 ```console ${SCALAR_SDK_HOME}/client/bin/scalardl execute-contract --properties ../conf/client.properties --contract-id deposit --contract-argument '{"id": "a111", "amount": 100}' ``` -最後に、25 を `a111` から `b222` に転送します。 +最後に、25を `a111` から `b222` に転送します。 ```console ${SCALAR_SDK_HOME}/client/bin/scalardl execute-contract --properties ../conf/client.properties --contract-id transfer --contract-argument '{"from": "a111", "to": "b222", "amount": 100}' @@ -236,13 +236,13 @@ Contract result: } ``` -アプリケーション自体を実行している場合は、[API エンドポイント](./docs/api_endpoints.mdx) を使用してこれらのコマンドを実行できます。 - +アプリケーション自体を実行している場合は、[API エンドポイント](./docs/api_endpoints.mdx)を使用してこれらのコマンドを実行できます。 + ## 顧客サービス -これで、コントラクトが ScalarDL ネットワークに登録されたはずです。 アプリケーションからこれらのコントラクトを実行するには、[ScalarDL Client SDK](https://github.com/scalar-labs/scalardl-client-sdk) の `ClientService` クラスを利用します。 +これで、コントラクトが ScalarDL ネットワークに登録されたはずです。アプリケーションからこれらのコントラクトを実行するには、[ScalarDL Client SDK](https://github.com/scalar-labs/scalardl-client-sdk) の `ClientService` クラスを利用します。 -クライアント SDK は [Maven Central](https://search.maven.org/search?q=a:scalardl-client-sdk) で入手でき、次の依存関係を追加することで Gradle を使用してアプリケーションにインストールできます。 あなたの `build.gradle`: +Client SDK は [Maven Central](https://search.maven.org/search?q=a:scalardl-client-sdk) で入手でき、次の依存関係を追加することで Gradle を使用してアプリケーションにインストールできます。あなたの `build.gradle`: ```groovy dependencies { @@ -257,7 +257,7 @@ ClientServiceFactory factory = new ClientServiceFactory(); ClientService service = factory.create(new ClientConfig(new File(properties))); ``` -`ClientService` には、もちろんコントラクトを実行するために使用できるメソッド `executeContract(String contractId, JsonNode contractArgument)` が含まれています。 例えば: +`ClientService` には、もちろんコントラクトを実行するために使用できるメソッド `executeContract(String contractId, JsonNode contractArgument)` が含まれています。例えば: ```java ObjectMapper mapper = new ObjectMapper(); @@ -265,9 +265,9 @@ JsonNode argument = mapper.createObjectNode().put("id", "010-123456789"); ContractExecutionResult result = clientService.executeContract("create-account", argument); ``` -これにより、上で行ったように、引数 `{"id": "010-123456789"}` を指定して `CreateAccount` コントラクトが実行されます。 コントラクトの登録時に選択した、指定された ID `create-account` を使用してコントラクトを呼び出していることに注意してください。 +これにより、上で行ったように、引数 `{"id": "010-123456789"}` を指定して `CreateAccount` コントラクトが実行されます。コントラクトの登録時に選択した、指定された ID `create-account` を使用してコントラクトを呼び出していることに注意してください。 -コントラクトの実行結果は `ContractExecutionResult` です。 これには結果と証明が含まれており、それぞれは次のようにして取得できます。 +コントラクトの実行結果は `ContractExecutionResult` です。これには結果と証明が含まれており、それぞれは次のようにして取得できます。 ```java result.getProofs(); @@ -276,7 +276,7 @@ result.getResult(); ## 次は何ですか? -独自のアプリの作成を始めるのに十分な情報が得られたことを願っています。 次に試してみることができるアイデアをいくつか紹介します。 - -- [ScalarDL クライアント SDK](https://github.com/scalar-labs/scalardl-client-sdk) GitHub ページにアクセスします。 -- [ScalarDL エミュレータ](https://github.com/scalar-labs/scalardl-emulator) を使用すると、メモリ内 Ledger でコントラクトをテストできます。 +独自のアプリの作成を始めるのに十分な情報が得られたことを願っています。次に試してみることができるアイデアをいくつか紹介します。 + +- [ScalarDL Client SDK](https://github.com/scalar-labs/scalardl-client-sdk) GitHub ページにアクセスします。 +- [ScalarDL エミュレータ](https://github.com/scalar-labs/scalardl-emulator)を使用すると、メモリ内 Ledger でコントラクトをテストできます。 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/authentication.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/authentication.mdx index 91488c0c..6e9e4e39 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/authentication.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/authentication.mdx @@ -12,50 +12,50 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; ## ScalarDL での認証 -認証は ScalarDL の重要な役割の 1 つであり、プロトコルを期待どおりに動作させることができます。 -ScalarDL は、次の 3 つの状況で認証を使用します。 +認証は ScalarDL の重要な役割の1つであり、プロトコルを期待どおりに動作させることができます。 +ScalarDL は、次の3つの状況で認証を使用します。 * クライアント認証(Ledger と Auditor 用) * Ledger と Auditor は、クライアントからのリクエストに添付されたクライアント生成の署名を使用してクライアントを認証します。 * Ledger 認証(Auditor 用) - * Auditor は、[アセット証明](how-to-use-proof.mdx) に添付された Ledger 生成の署名を使用して Ledger を認証します。 + * Auditor は、[アセットプルーフ](how-to-use-proof.mdx)に添付された Ledger 生成の署名を使用して Ledger を認証します。 * Auditor 認証(Ledger 用) * Ledger は、クライアントのリクエストに添付された Auditor が生成した署名を使用して Auditor を認証します。 -Ledger 認証と Auditor 認証は Auditor モードでのみ使用されることに注意してください。 Auditor の詳細については、[ScalarDL Auditor 入門](getting-started-auditor.mdx) および [ScalarDL 実装](implementation.mdx) を参照してください。 +Ledger 認証と Auditor 認証は Auditor モードでのみ使用されることに注意してください。Auditor の詳細については、[ScalarDL Auditor 入門](getting-started-auditor.mdx)および [ScalarDL 実装](implementation.mdx)を参照してください。 また、ここでは認証に使用されるバイト配列を指定するために `signature` という用語を使用していることに注意してください。 ## 認証方法 -ScalarDL は、デジタル署名と HMAC という 2 つの認証方法をサポートしています。 -以下に説明するように、これらの方法には両方とも長所と短所がありますが、どちらの方法でもビザンチン障害検出機能が犠牲になることはありません。 +ScalarDL は、電子署名と HMAC という2つの認証方法をサポートしています。 +以下に説明するように、これらの方法には両方とも長所と短所がありますが、どちらの方法でもビザンチン故障検出機能が犠牲になることはありません。 -### デジタル署名 +### 電子署名 * 利点 - * クライアントのリクエスト、アセットレコード、およびアセット証明には否認防止特性があります。 具体的には、クライアントのリクエストに添付されたデジタル署名は、そのリクエストが生成する対応するアセットレコードとともに保存されるため、クライアントのリクエストと対応するレコードには否認防止の特性が備わります。つまり、クライアントのリクエストに署名した秘密鍵の所有者が誰であるかを保証できます。 リクエストによりレコードが作成されました。 さらに、実行の結果としてクライアントに返されるアセット証明に添付されたデジタル署名により、Ledger と Auditor がそれぞれ証明を作成したことが保証されます。 クライアント(アプリケーション)がプルーフを保持しておけば、クライアントは必要に応じてプルーフを使用して結果を検証できます。 + * クライアントのリクエスト、アセットレコード、およびアセットプルーフには否認防止特性があります。具体的には、クライアントのリクエストに添付された電子署名は、そのリクエストが生成する対応するアセットレコードとともに保存されるため、クライアントのリクエストと対応するレコードには否認防止の特性が備わります。つまり、リクエストに署名した秘密鍵の所有者がレコードを作成したことを保証できます。さらに、実行の結果としてクライアントに返されるアセットプルーフに添付された電子署名により、Ledger と Auditor がそれぞれ証明を作成したことが保証されます。クライアント(アプリケーション)がプルーフを保持しておけば、クライアントは必要に応じてプルーフを使用して結果を検証できます。 * 短所 - * デジタル署名は非常に遅いです。 上記の利点と引き換えに、無視できないパフォーマンスのオーバーヘッドが追加されます。 + * 電子署名は非常に遅いです。上記の利点と引き換えに、無視できないパフォーマンスのオーバーヘッドが追加されます。 ### HMAC * 利点 - * HMAC はデジタル署名よりもはるかに高速です。 + * HMAC は電子署名よりもはるかに高速です。 * 短所 - * クライアントのリクエスト、アセットレコード、およびアセット証明には否認防止特性がありません。 + * クライアントのリクエスト、アセットレコード、およびアセットプルーフには否認防止特性がありません。 ### どれを使用すればよいですか? 否認防止プロパティが必要ない場合は、常に HMAC を使用する必要があります。 -技術的には、クライアント認証にはデジタル署名を使用し、Ledger/Auditor 認証には HMAC を使用するなど、認証方法を混合することができます。 ただし、混合方法は非常に混乱を招く可能性があるため、ScalarDL ではそのような使用を禁止しています。 +技術的には、クライアント認証には電子署名を使用し、Ledger/Auditor 認証には HMAC を使用するなど、認証方法を混合することができます。ただし、混合方法は非常に混乱を招く可能性があるため、ScalarDL ではそのような使用を禁止しています。 -パフォーマンスを向上させるために、Ledger と Auditor の認証に HMAC のみを使用するように ScalarDL を更新する予定であることに注意してください。 同様に、Ledger と Auditor の認証をアセット証明への署名方法から分離する予定です。 上記の変更により、Ledger と Auditor の間で HMAC 認証を使用しながら、デジタル署名されたアセット証明を返すことができるようになります。 +パフォーマンスを向上させるために、Ledger と Auditor の認証に HMAC のみを使用するように ScalarDL を更新する予定であることに注意してください。同様に、Ledger と Auditor の認証をアセットプルーフへの署名方法から分離する予定です。上記の変更により、Ledger と Auditor の間で HMAC 認証を使用しながら、電子署名されたアセットプルーフを返すことができるようになります。 ## 構成、設定 -このセクションでは、ScalarDL 認証を適切に使用するために設定する必要がある変数について説明します。 各変数の詳細については、[Javadoc](https://scalar-labs.github.io/scalardl/javadoc/latest/) を参照してください。 +このセクションでは、ScalarDL 認証を適切に使用するために設定する必要がある変数について説明します。各変数の詳細については、[Javadoc](https://scalar-labs.github.io/scalardl/javadoc/latest/) を参照してください。 -### デジタル署名 +### 電子署名 * クライアント認証 * クライアント側のプロパティ @@ -65,11 +65,11 @@ ScalarDL は、デジタル署名と HMAC という 2 つの認証方法をサ * お客様を識別するために使用します。 * `scalar.dl.client.entity.identity.digital_signature.cert_pem` または `scalar.dl.client.entity.identity.digital_signature.cert_path` (または `scalar.dl.client.cert_pem` または `scalar.dl.client) .cert_path`、これは非推奨です。) * クライアントが生成した署名を検証するために、Ledger と Auditor の証明書を登録するために使用されます。 - * 証明書の取得方法については、[こちら](ca/caclient-getting-started.mdx#ca-サーバーから証明書を取得する) を参照してください。 + * 証明書の取得方法については、[こちら](ca/caclient-getting-started.mdx#ca-サーバーから証明書を取得する)を参照してください。 * `scalar.dl.client.entity.identity.digital_signature.cert_version` (または非推奨の `scalar.dl.client.cert_version`) * `scalar.dl.client.entity.identity.digital_signature.private_key_pem` または `scalar.dl.client.entity.identity.digital_signature.private_key_path` (または `scalar.dl.client.private_key_pem` または `scalar.dl.client) .private_key_path`、これは非推奨です。) * リクエストの署名に使用されます。 - * 秘密キーの取得方法については、[こちら](ca/caclient-getting-started.mdx#秘密キーと-csr-を生成する) を参照してください。 + * 秘密鍵の取得方法については、[こちら](ca/caclient-getting-started.mdx#秘密キーと-csr-を生成する)を参照してください。 * Ledger 側のプロパティ * `scalar.dl.ledger.authentication.method` (`digital-signature`に設定) * Auditor 側のプロパティ @@ -77,14 +77,14 @@ ScalarDL は、デジタル署名と HMAC という 2 つの認証方法をサ * Ledger 認証 * Ledger 側のプロパティ * `scalar.dl.ledger.proof.enabled` (`true` に設定) - * Ledger 認証ではアセット証明の署名が使用されるため必須です。 + * Ledger 認証ではアセットプルーフの署名が使用されるため必須です。 * `scalar.dl.ledger.proof.private_key_pem` または `scalar.dl.ledger.proof.private_key_path` - * アセット証明に署名するために使用されます。 - * 秘密キーの取得方法については、[こちら](ca/caclient-getting-started.mdx#秘密キーと-csr-を生成する) を参照してください。 + * アセットプルーフに署名するために使用されます。 + * 秘密鍵の取得方法については、[こちら](ca/caclient-getting-started.mdx#秘密キーと-csr-を生成する)を参照してください。 * Auditor 側のプロパティ * `scalar.dl.auditor.ledger.cert_holder_id` * `scalar.dl.auditor.ledger.cert_version` - * アセット証明の署名を検証するために使用されます。 + * アセットプルーフの署名を検証するために使用されます。 * Auditor の認証 * Ledger 側のプロパティ * `scalar.dl.ledger.auditor.cert_holder_id` @@ -93,12 +93,12 @@ ScalarDL は、デジタル署名と HMAC という 2 つの認証方法をサ * クライアント要求に添付された Auditor が生成した署名を検証するために使用されます。 * Auditor 側のプロパティ * `scalar.dl.auditor.cert_holder_id` - * クライアント ライブラリを使用して Ledger サービスを直接呼び出すために使用されます。 + * クライアントライブラリを使用して Ledger サービスを直接呼び出すために使用されます。 * `scalar.dl.auditor.cert_version` - * クライアント ライブラリを使用して Ledger サービスを直接呼び出すために使用されます。 + * クライアントライブラリを使用して Ledger サービスを直接呼び出すために使用されます。 * `scalar.dl.auditor.private_key_pem` または `scalar.dl.auditor.private_key_path` * クライアントのリクエストと Auditor から Ledger へのリクエストに署名するために使用されます。 - * 秘密キーの取得方法については、[こちら](ca/caclient-getting-started.mdx#秘密キーと-csr-を生成する) を参照してください。 + * 秘密鍵の取得方法については、[こちら](ca/caclient-getting-started.mdx#秘密キーと-csr-を生成する)を参照してください。 ### HMAC @@ -109,7 +109,7 @@ ScalarDL は、デジタル署名と HMAC という 2 つの認証方法をサ ※お客様を識別するために使用します。 * `scalar.dl.client.entity.identity.hmac.secret_key` * リクエストの署名に使用されます。 - * 秘密キーはランダムな長い値 (例: 32 文字の長さの 16 進文字列) である必要があります。 + * シークレットキーはランダムな長い値 (例: 32文字の長さの16進文字列) である必要があります。 * `scalar.dl.client.entity.identity.hmac.secret_key_version` * Ledger 側のプロパティ * `scalar.dl.ledger.authentication.method` (`hmac`に設定) @@ -119,29 +119,29 @@ ScalarDL は、デジタル署名と HMAC という 2 つの認証方法をサ * Ledger と Auditor の認証 * Ledger 側のプロパティ * `scalar.dl.ledger.proof.enabled` (`true` に設定) - * Ledger 認証ではアセット証明の署名が使用されるため必須です。 + * Ledger 認証ではアセットプルーフの署名が使用されるため必須です。 * `scalar.dl.ledger.servers.authentication.hmac.secret_key` * Ledger と Auditor 間のメッセージとリクエストの署名と検証に使用されます。 - * 秘密キーはランダムな長い値 (例: 32 文字の長さの 16 進文字列) である必要があります。 + * シークレットキーはランダムな長い値 (例: 32文字の長さの16進文字列) である必要があります。 * `scalar.dl.ledger.authentication.hmac.cipher_key` - * クライアントの秘密鍵の暗号化および復号化に使用されます。 + * クライアントのシークレットキーの暗号化および復号に使用されます。 * 暗号キーは、予測できない長い値である必要があります。 * Auditor 側のプロパティ * `scalar.dl.auditor.servers.authentication.hmac.secret_key` - * Ledger と Auditor 間のメッセージとリクエストの署名と検証に使用されます。 `scalar.dl.ledger.servers.authentication.hmac.secret_key` と同じキーである必要があります。 - * 秘密キーはランダムな長い値 (例: 32 文字の長さの 16 進文字列) である必要があります。 + * Ledger と Auditor 間のメッセージとリクエストの署名と検証に使用されます。`scalar.dl.ledger.servers.authentication.hmac.secret_key` と同じキーである必要があります。 + * シークレットキーはランダムな長い値 (例: 32文字の長さの16進文字列) である必要があります。 * `scalar.dl.auditor.authentication.hmac.cipher_key` - * クライアントの秘密鍵の暗号化および復号化に使用されます。 + * クライアントのシークレットキーの暗号化および復号に使用されます。 * 暗号キーは、予測できない長い値である必要があります。 ## リクエストを実行する前に準備する 構成後、実行リクエストを発行する準備として次の作業を行う必要があります。 -### デジタル署名 +### 電子署名 * クライアントの証明書を Ledger (および有効な場合は Auditor) に登録します。 - * クライアント ライブラリまたはコマンドライン ツール (`register-cert`) を使用します。 + * クライアントライブラリまたはコマンドラインツール (`register-cert`) を使用します。 * Auditor の証明書を Ledger に登録します。 * Auditor が有効な場合にのみ必須です。 * Auditor に Ledger 証明書を登録します。 @@ -150,6 +150,6 @@ ScalarDL は、デジタル署名と HMAC という 2 つの認証方法をサ ### HMAC -* クライアントの秘密鍵を Ledger (および有効な場合は Auditor) に登録します。 - * クライアント ライブラリまたはコマンドライン ツール (`register-secret`) を使用します。 -* コントラクトを Ledger (および Auditor ) に登録します。 +* クライアントのシークレットキーを Ledger (および有効な場合は Auditor) に登録します。 + * クライアントライブラリまたはコマンドラインツール (`register-secret`) を使用します。 +* コントラクトを Ledger (および Auditor) に登録します。 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/backup-restore.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/backup-restore.mdx index 3fd922ca..02c65f62 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/backup-restore.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/backup-restore.mdx @@ -12,68 +12,64 @@ ScalarDL は、非トランザクション (おそらくトランザクション トランザクション的に一貫した方法でデータベースをバックアップおよび復元するには、特別な注意を払う必要があります。 このガイドでは、トランザクション的に一貫性のある ScalarDL バックアップを作成および復元する方法を説明します。 -まず、ScalarDL Ledger のデータベースをバックアップおよび復元する方法について説明します。 次に、Auditor が使用されるケースをカバーするためにプロセスがどのように拡張されるかについて説明します。 +まず、ScalarDL Ledger のデータベースをバックアップおよび復元する方法について説明します。次に、Auditor が使用されるケースをカバーするためにプロセスがどのように拡張されるかについて説明します。 ## Ledger データベースのバックアップを作成する -### トランザクション データベースの場合 +### トランザクショナルデータベースの場合 #### JDBC データベース JDBCデータベースはお好みの方法でバックアップが可能です。 -JDBC データベース上の ScalarDL でのバックアップの要件の 1 つは、すべての ScalarDL 管理テーブル (コーディネーター テーブルと scalardb テーブルを含む) のバックアップがトランザクション的に一貫性があるか、トランザクション的に一貫性のある状態に自動的にリカバリ可能である必要があることです。 -つまり、単一トランザクションですべてのテーブルをダンプして、一貫性のあるスナップショットを作成する必要があります。 たとえば、MySQL では `mysqldump` コマンドを `--single-transaction` オプションとともに使用し、PostgreSQL では `pg_dump` コマンドを使用してこれを実現できます。 +JDBC データベース上の ScalarDL でのバックアップの要件の1つは、すべての ScalarDL 管理テーブル (Coordinator テーブルと ScalarDB テーブルを含む) のバックアップがトランザクション的に一貫性があるか、トランザクション的に一貫性のある状態に自動的にリカバリ可能である必要があることです。 +つまり、単一トランザクションですべてのテーブルをダンプして、一貫性のあるスナップショットを作成する必要があります。たとえば、MySQL では `mysqldump` コマンドを `--single-transaction` オプションとともに使用し、PostgreSQL では `pg_dump` コマンドを使用してこれを実現できます。 または、Amazon RDS (Relational Database Service) または Azure Database for MySQL/PostgreSQL を使用している場合は、要件を満たす自動バックアップ機能を使用して、バックアップ保持期間内の任意の時点に復元できます。 -### 非トランザクション データベースの場合 +### 非トランザクショナルデータベースの場合 -#### トランザクションの一貫性のあるバックアップを作成するための基本戦略 +#### トランザクション的に一貫性のあるバックアップを作成するための基本戦略 -トランザクションの一貫性のあるバックアップを作成する 1 つの方法は、ScalarDL クラスターに未処理のトランザクションがない間にバックアップを作成することです。 -基礎となるデータベースがポイントインタイム スナップショット/バックアップ メカニズムをサポートしている場合は、その期間中にスナップショットを取得できます。 -基礎となるデータベースがポイントインタイム復元/回復メカニズムをサポートしている場合は、復元ポイントを期間内の特定の時刻 (できれば中間時刻) に設定できます。 +トランザクション的に一貫性のあるバックアップを作成する1つの方法は、ScalarDL クラスターに未処理のトランザクションがない間にバックアップを作成することです。 +基礎となるデータベースがポイントインタイムスナップショット/バックアップメカニズムをサポートしている場合は、その期間中にスナップショットを取得できます。 +基礎となるデータベースがポイントインタイムリストア/回復メカニズムをサポートしている場合は、復元ポイントを期間内の特定の時刻 (できれば中間時刻) に設定できます。 これを簡単に実現するために、ScalarDL は一時停止 API を公開して、ScalarDL に未処理のトランザクションを排出させ、新しいトランザクションの受け入れを停止させます。 -また、[scalar-admin](https://github.com/scalar-labs/scalar-admin) という単純なクライアント プログラムも提供しており、ScalarDL クラスターに対して一時停止リクエスト (および一時停止解除リクエスト) を行い、一時停止期間を取得します。 +また、[scalar-admin](https://github.com/scalar-labs/scalar-admin) という単純なクライアントプログラムも提供しており、ScalarDL クラスターに対して一時停止リクエスト (および一時停止解除リクエスト) を行い、一時停止期間を取得します。 -ポイントインタイム復元/回復メカニズムを使用する場合は、NTP などのクロック同期を使用して、ノード (ScalarDL ノードと一時停止を要求するクライアント ノード) 間のクロック ドリフトを最小限に抑えることをお勧めします。 +ポイントインタイムリストア/回復メカニズムを使用する場合は、NTP などのクロック同期を使用して、ノード (ScalarDL ノードと一時停止を要求するクライアントノード) 間のクロックドリフトを最小限に抑えることをお勧めします。 そうしないと、一時停止期間として取得される時間が実際に一時停止が行われた時間と大きく異なる可能性があり、進行中のトランザクションが存在する時点に復元される可能性があります。 -また、クロック同期ではノード間のクロックを完全に同期させることはできないため、十分な時間 (10 秒など) を一時停止し、一時停止期間の中間時間を使用することをお勧めします。 +また、クロック同期ではノード間のクロックを完全に同期させることはできないため、十分な時間 (5秒など) を一時停止し、一時停止期間の中間時間を使用することをお勧めします。 #### トランザクション整合性のあるバックアップを作成するデータベース固有の方法 -**カサンドラ** +**Cassandra** -Cassandra にはレプリケーション メカニズムが組み込まれているため、トランザクション的に一貫性のあるバックアップを常に作成する必要はありません。 -たとえば、レプリケーションが 3 に設定されており、クラスター内の 1 つのノードのデータのみが失われた場合、ノードは通常の (トランザクション的に一貫性のない) スナップショットと、 修復機構。 +Cassandra にはレプリケーションメカニズムが組み込まれているため、トランザクション的に一貫性のあるバックアップを常に作成する必要はありません。 +たとえば、レプリケーションが3に設定されており、クラスター内の1つのノードのデータのみが失われた場合、通常の (トランザクション的に一貫性のない) スナップショットと修復メカニズムを使用してノードを回復できるため、トランザクション的に一貫性のあるバックアップは必要ありません。 ただし、クラスターのノードのクォーラムがデータを失った場合、クラスターを特定のトランザクション整合性のあるポイントに復元するには、トランザクション整合性のあるバックアップが必要です。 -トランザクション的に一貫性のあるクラスター全体のバックアップを作成する場合は、[基本戦略](#basic-strategy-to-create-a-transactionally-consistent-backup) セクションに従ってください。または +トランザクション的に一貫性のあるクラスター全体のバックアップを作成する場合は、[基本戦略](#basic-strategy-to-create-a-transactionally-consistent-backup)セクションに従ってください。または Cassandra クラスターを停止し、クラスターのすべてのノードのコピーを取得して、クラスターを開始します。 -間違いを避けるために、[Cassy](https://github.com/scalar-labs/cassy) を使用することをお勧めします。 -Cassy は [`scalar-admin`](https://github.com/scalar-labs/scalar-admin) とも統合されているため、Cassandra クラスターのアプリケーションに一時停止リクエストを発行できます。 -詳細については、[ドキュメント](https://github.com/scalar-labs/cassy/blob/master/docs/getting-started.md#take-cluster-wide-consistent-backups) を参照してください。 - **Cosmos DB** -ポイントインタイム復元 (PITR) 機能を使用するには、継続バックアップ ポリシーが有効になっている Cosmos DB アカウントを作成する必要があります。 バックアップは有効になった後も継続的に作成されます。 -トランザクション整合性のある復元ポイントを指定するには、[基本戦略](#basic-strategy-to-create-a-transactionally-consistent-backup) の説明に従って、ScalarDL サービスを一時停止してください。 +ポイントインタイムリストア (PITR) 機能を使用するには、継続バックアップポリシーが有効になっている Cosmos DB アカウントを作成する必要があります。バックアップは継続バックアップポリシーが有効になった後に継続的に作成されます。 +トランザクション整合性のある復元ポイントを指定するには、[基本戦略](#basic-strategy-to-create-a-transactionally-consistent-backup)の説明に従って、ScalarDL サービスを一時停止してください。 **DynamoDB** -DynamoDB テーブルのポイントインタイム リカバリ (PITR) 機能を有効にする必要があります。 [ScalarDL Schema Loader](https://github.com/scalar-labs/scalardl-schema-loader) を使用する場合、デフォルトで PITR が有効になります。 -トランザクション整合性のある復元ポイントを指定するには、[基本戦略](#basic-strategy-to-create-a-transactionally-consistent-backup) の説明に従って、ScalarDL サービスを一時停止してください。 +DynamoDB テーブルのポイントインタイムリカバリ (PITR) 機能を有効にする必要があります。[ScalarDL Schema Loader](https://github.com/scalar-labs/scalardl-schema-loader) を使用する場合、デフォルトで PITR が有効になります。 +トランザクション整合性のある復元ポイントを指定するには、[基本戦略](#basic-strategy-to-create-a-transactionally-consistent-backup)の説明に従って、ScalarDL サービスを一時停止してください。 ## Ledger データベースのバックアップを復元する -バックアップを復元するには、[バックアップの復元](https://scalardb.scalar-labs.com/docs/latest/backup-restore#restore-a-backup) セクションに従う必要があります。 +バックアップを復元するには、[バックアップの復元](https://scalardb.scalar-labs.com/docs/latest/backup-restore#restore-a-backup)セクションに従う必要があります。 データベースのバックアップを復元する前に ScalarDL Ledger サービスを停止し、バックアップの復元後に ScalarDL Ledger サービスを開始する必要があります。 ## Auditor データベースのバックアップの作成/復元 Auditor を使用する場合は、Ledger データベースに加えて Auditor データベースのバックアップも作成する必要があります。 -Ledger データベースと Auditor データベースのバックアップの一貫性を保つには、Ledger と Auditor にトランザクション データベースを使用するか非トランザクション データベースを使用するかに関係なく、Ledger クラスターを常に一時停止する必要があります。 +Ledger データベースと Auditor データベースのバックアップの一貫性を保つには、Ledger と Auditor にトランザクショナルデータベースを使用するか非トランザクショナルデータベースを使用するかに関係なく、Ledger クラスターを常に一時停止する必要があります。 バックアップを作成する手順は次のとおりです。 1. Ledgerクラスターを一時停止する diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/ca/caclient-getting-started.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/ca/caclient-getting-started.mdx index 338eac52..fe98c495 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/ca/caclient-getting-started.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/ca/caclient-getting-started.mdx @@ -12,7 +12,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; このドキュメントでは、ScalarDL に登録するための証明書を取得する方法について説明します。 -ScalarDL にはいくつかの種類の認証方法があります。認証方法として `digital-signature` を使用する場合は、秘密鍵と証明書ファイルを用意する必要があります。認証方法の詳細については、[ScalarDL 認証ガイド](../authentication.mdx) を参照してください。 +ScalarDL にはいくつかの種類の認証方法があります。認証方法として `digital-signature` を使用する場合は、秘密鍵と証明書ファイルを用意する必要があります。認証方法の詳細については、[ScalarDL 認証ガイド](../authentication.mdx)を参照してください。 ## 秘密鍵と証明書の要件 @@ -459,7 +459,7 @@ ScalarDL は証明書の有効期限をチェックしません。そのため - [CFSSL サーバー](./caserver-getting-started.mdx) に証明書ファイルの作成を依頼できます。 + [CFSSL サーバー](./caserver-getting-started.mdx)に証明書ファイルの作成を依頼できます。

前提条件

@@ -467,14 +467,14 @@ ScalarDL は証明書の有効期限をチェックしません。そのため

秘密鍵と証明書ファイルを作成する

- 1. CFSSL や OpenSSL などのツールを使用し、[要件](#private-key-and-certificate-requirements) に基づいて秘密鍵と CSR を作成します。[CFSSL](?methods=self-signed&tools=cfssl) タブで `cfssl` コマンドを使用して秘密鍵と CSR を作成する例を確認できます。また、[OpenSSL](?methods=self-signed&tools=openssl) タブで `openssl` コマンドを使用して秘密鍵と CSR を作成する例を確認できます。 + 1. CFSSL や OpenSSL などのツールを使用し、[要件](#private-key-and-certificate-requirements)に基づいて秘密鍵と CSR を作成します。[CFSSL](?methods=self-signed&tools=cfssl) タブで `cfssl` コマンドを使用して秘密鍵と CSR を作成する例を確認できます。また、[OpenSSL](?methods=self-signed&tools=openssl) タブで `openssl` コマンドを使用して秘密鍵と CSR を作成する例を確認できます。 1. CFSSL サーバーから証明書を要求します。 :::note - CFSSL サーバーエンドポイント URI を指定するには、`-remote` オプションが必要です。 - - 出力される鍵ファイルのプレフィックスを指定するには、cfssljson の `-bare` オプションが必要です。 + - 出力されるキーファイルのプレフィックスを指定するには、cfssljson の `-bare` オプションが必要です。 ::: diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/ca/caserver-getting-started.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/ca/caserver-getting-started.mdx index 5558a9ab..fc1e640c 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/ca/caserver-getting-started.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/ca/caserver-getting-started.mdx @@ -40,7 +40,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; } ``` -CSR に基づいて自己署名証明書と秘密キーを生成します。 +CSR に基づいて自己署名証明書と秘密鍵を生成します。 ```console cfssl gencert -initca ca-csr.json | cfssljson -bare ca @@ -56,9 +56,9 @@ CFSSL は現在、MySQL、PostgreSQL、SQLite をサポートしています。 今回は簡単にするために SQLite を使用します。 ```console -go get bitbucket.org/liamstask/goose/cmd/goose +go get bitbucket.org/liamstask/goose/cmd/goose goose -path $GOPATH/src/github.com/cloudflare/cfssl/certdb/sqlite up -``` +``` これにより、現在の場所に certstore_development.db が作成されます。 @@ -106,7 +106,7 @@ goose -path $GOPATH/src/github.com/cloudflare/cfssl/certdb/sqlite up TODO: 設定について詳しく調べる -次に、前のセクションで作成したデータベース ファイルを指すデータベースの構成ファイルを作成します。 +次に、前のセクションで作成したデータベースファイルを指すデータベースの構成ファイルを作成します。 ``` [db-config.json] @@ -147,7 +147,7 @@ cfssl gencert -ca ca.pem -ca-key ca-key.pem -config cfssl-config.json -profile " ### OCSP サーバー証明書を生成する -注記: OCSP は、X.509 デジタル証明書の失効ステータスを取得するために使用されるインターネット プロトコルです。 +注記: OCSP は、X.509 デジタル証明書の失効ステータスを取得するために使用されるインターネットプロトコルです。 ``` [ocsp.csr.json] @@ -174,7 +174,7 @@ cfssl gencert -ca ca-server.pem -ca-key ca-server-key.pem -config cfssl-config.j ## サーバーを起動する -これで準備は完了です。 サーバーを起動しましょう。 +これで準備は完了です。サーバーを起動しましょう。 ### CA サーバー diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/compatibility.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/compatibility.mdx index 9ee13f71..0878cc76 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/compatibility.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/compatibility.mdx @@ -12,11 +12,11 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; :::note -バージョンは `x.y.z` として表されます。`x` はメジャーバージョン、`y` はマイナーバージョン、`z` はパッチバージョンを表します。この形式は [セマンティックバージョニング](https://semver.org/) に従います。 +バージョンは `x.y.z` として表されます。`x` はメジャーバージョン、`y` はマイナーバージョン、`z` はパッチバージョンを表します。この形式は[セマンティックバージョニング](https://semver.org/)に従います。 ::: -## ScalarDL とクライアント SDK の互換性 +## ScalarDL と Client SDK の互換性 | ScalarDL Ledger/Auditor バージョン | ScalarDL Java Client SDK バージョン | | :--------------------------------- | :---------------------------------- | @@ -34,13 +34,13 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; ### バージョンスキューポリシー -- ScalarDL とクライアント SDK の **メジャー** バージョンが異なる場合、互換性がなく、**サポートされません**。 -- ScalarDL とクライアント SDK の **メジャー** バージョンが同じで、**マイナー** バージョンが異なる場合、ScalarDL のバージョンはクライアント SDK のバージョン以上である必要があります。例: - - **サポート対象:** ScalarDL 3.9 とクライアント SDK 3.8 の組み合わせ - - **サポート対象外:** ScalarDL 3.8 とクライアント SDK 3.9 の組み合わせ -- **メジャー** バージョンと **マイナー** バージョンが同じ場合は、ScalarDL とクライアント SDK 間で異なる **パッチ** バージョンを使用できます。例: - - **サポート対象:** ScalarDL 3.9.2 とクライアント SDK 3.9.0 の組み合わせ - - **サポート対象:** ScalarDL 3.9.0 とクライアント SDK 3.9.2 の組み合わせ +- ScalarDL と Client SDK の **メジャー** バージョンが異なる場合、互換性がなく、**サポートされません**。 +- ScalarDL と Client SDK の **メジャー** バージョンが同じで、**マイナー** バージョンが異なる場合、ScalarDL のバージョンは Client SDK のバージョン以上である必要があります。例: + - **サポート対象:** ScalarDL 3.9 と Client SDK 3.8 の組み合わせ + - **サポート対象外:** ScalarDL 3.8 と Client SDK 3.9 の組み合わせ +- **メジャー** バージョンと **マイナー** バージョンが同じ場合は、ScalarDL と Client SDK 間で異なる **パッチ** バージョンを使用できます。例: + - **サポート対象:** ScalarDL 3.9.2 と Client SDK 3.9.0 の組み合わせ + - **サポート対象:** ScalarDL 3.9.0 Client SDK 3.9.2 の組み合わせ ## ScalarDL と ScalarDB Cluster の互換性 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/design.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/design.mdx index 55353107..5b871d2f 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/design.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/design.mdx @@ -8,7 +8,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; -この設計ドキュメントでは、ScalarDL の設計と実装について簡単に説明します。ScalarDL の背景と目的については、[ScalarDL の概要](overview.mdx) を参照してください。 +この設計ドキュメントでは、ScalarDL の設計と実装について簡単に説明します。ScalarDL の背景と目的については、[ScalarDL の概要](overview.mdx)を参照してください。 ## 設計目標 @@ -28,13 +28,13 @@ ScalarDL は、データをアセットの集合として抽象化します。 ## コントラクト -ScalarDL は、コントラクト (スマートコントラクトとも呼ばれます) をデジタル署名されたビジネスロジックとして管理します。コントラクトとその引数は、コントラクト所有者の秘密鍵でデジタル署名され、ScalarDL に渡されます。このメカニズムにより、コントラクトは所有者のみが実行でき、システムはデータの改ざんなどの悪意のあるアクティビティを検出できます。 +ScalarDL は、コントラクト (スマートコントラクトとも呼ばれます) を電子署名されたビジネスロジックとして管理します。コントラクトとその引数は、コントラクト所有者の秘密鍵で電子署名され、ScalarDL に渡されます。このメカニズムにより、コントラクトは所有者のみが実行でき、システムはデータの改ざんなどの悪意のあるアクティビティを検出できます。 -ユーザーは、アセットの読み取りやアセットの書き込みなどのインターフェイスを使用して、コントラクトに任意のビジネスロジックを定義できます。たとえば、銀行アプリケーションでは、口座の作成、預金、引き出し、支払いをコントラクトとして記述できます。詳細については、[シンプルな銀行口座アプリケーションのサンプル](applications/simple-bank-account/README.mdx) を参照してください。 +ユーザーは、アセットの読み取りやアセットの書き込みなどのインターフェースを使用して、コントラクトに任意のビジネスロジックを定義できます。たとえば、銀行アプリケーションでは、口座の作成、預金、引き出し、支払いをコントラクトとして記述できます。詳細については、[シンプルな銀行口座アプリケーションのサンプル](applications/simple-bank-account/README.mdx)を参照してください。 ## いつどのように ScalarDL はビザンチン故障を検知するか -ScalarDL のビザンチン故障検出プロトコルの鍵は、Ledger (プライマリサーバー) と Auditor (セカンダリサーバー) が、分散的かつ並行的にトランザクションの部分的な順序付けについて合意することです。プロトコルは、順序付けフェーズ、コミットフェーズ、検証フェーズの3つのフェーズで構成されます。 +ScalarDL のビザンチン故障検知プロトコルのキーは、Ledger (プライマリサーバー) と Auditor (セカンダリサーバー) が、分散的かつ並行的にトランザクションの部分的な順序付けについて合意することです。プロトコルは、順序付けフェーズ、コミットフェーズ、検証フェーズの3つのフェーズで構成されます。 1. はじめに、順序付けフェーズでは、Auditor がクライアントから与えられたトランザクションを、競合に基づいて部分的に事前順序付けします。 2. 次に、コミットフェーズでは、Ledger は Auditor によって順序付けされたトランザクションを実行してコミットします。 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/getting-started-auditor.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/getting-started-auditor.mdx index 6c33f099..66c3df11 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/getting-started-auditor.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/getting-started-auditor.mdx @@ -14,14 +14,14 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; * [ScalarDL 入門](getting-started.mdx) * [ScalarDL の適切なコントラクトの書き方に関するガイド](how-to-write-contract.mdx) * [ScalarDL ファンクションの書き方ガイド](how-to-write-function.mdx) -* [ScalarDL でアセット プルーフを使用する方法に関するガイド](how-to-use-proof.mdx) +* [ScalarDL でアセットプルーフを使用する方法に関するガイド](how-to-use-proof.mdx) ## ScalarDL Auditor とは何ですか? -ScalarDL Auditor は、Ledger の同一の状態を管理し、クライアントによるビザンチン障害の検出を支援するコンポーネントです。 +ScalarDL Auditor は、Ledger の同一の状態を管理し、クライアントによるビザンチン故障の検知を支援するコンポーネントです。 Auditor を使用すると、セキュリティの観点からは大きなメリットがありますが、追加の処理コストがかかるため、本当に必要な場合は慎重に検討してください。 -Auditor によるビザンチン障害検出を適切に機能させるには、Ledger と Auditor を異なる管理ドメインに展開して管理する必要があります。 +Auditor によるビザンチン故障検知を適切に機能させるには、Ledger と Auditor を異なる管理ドメインに展開して管理する必要があります。 ただし、この入門ガイドでは、それらが同じネットワークに配置され、同じ管理ドメインで管理されることを前提としています。 ## 前提条件 @@ -49,7 +49,7 @@ scalar.dl.ledger.auditor.enabled=true Auditor は [AssetProof](how-to-use-proof.mdx) を使用して機能するため、`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 はその証明書を Ledger に登録する必要があります)、その証明書を使用して Auditor の秘密鍵で署名されたリクエストを検証し、リクエストの送信元を識別します。したがって、証明書所有者 ID (`scalar.dl.ledger.auditor.cert_holder_id`) とバージョン (`scalar.dl.ledger.auditor.cert_version`) も設定する必要があります。 デフォルトでは、Ledger は、Auditor がその証明書を名前 `auditor` 、バージョン `1` で登録すると想定します。 Auditor のプロパティについては、次のエントリを構成する必要があります。 @@ -64,19 +64,19 @@ 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` を適切に設定する必要があります。 +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`) が必要です。 +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` を更新する必要があります。 -詳細については、[設定ファイル](https://github.com/scalar-labs/scalar/blob/master/auditor/conf/auditor.properties) を確認してください。 +詳細については、[設定ファイル](https://github.com/scalar-labs/scalar/blob/master/auditor/conf/auditor.properties)を確認してください。 ## Ledger と Auditor を開始する 独自の方法で Ledger と Auditor を起動してください。 -たとえば、組み込みのコマンド ライン ツールを使用する場合は、次のように実行します。 +たとえば、組み込みのコマンドラインツールを使用する場合は、次のように実行します。 Ledger: @@ -95,7 +95,7 @@ bin/scalar-auditor --properties auditor.properties ## Ledger と Auditor の各証明書を登録します -説明したように、Ledger はその証明書を Auditor に登録する必要があり、Auditor はその証明書を Ledger に登録する必要があります。 これは、次のようにクライアントとして登録することで実行できます。 +説明したように、Ledger はその証明書を Auditor に登録する必要があり、Auditor はその証明書を Ledger に登録する必要があります。これは、次のようにクライアントとして登録することで実行できます。 Ledger がその証明書を Auditor に登録します。 @@ -115,7 +115,7 @@ client/bin/scalardl register-cert --properties client.properties.auditor ## 証明書を登録します -また、Auditor で ScalarDL と対話する前に、クライアントのプロパティ ファイルを更新する必要があります。 +また、Auditor で ScalarDL と対話する前に、クライアントのプロパティファイルを更新する必要があります。 次のエントリを更新してください。 ``` @@ -152,12 +152,12 @@ client/bin/scalardl execute-contract --properties client.properties --contract-i ``` これにより、Ledger と Auditor の間で少し複雑なプロトコルがトリガーされ、お互いを信頼せずに同じ状態になることに注意してください。 -コンポーネントの 1 つに改ざんがある場合、実行中にコンポーネント間の不一致が検出される可能性があります。 +コンポーネントの1つに改ざんがある場合、実行中にコンポーネント間の不一致が検出される可能性があります。 ## Ledger と Auditor の状態を検証する Ledger と Auditor の状態を常に検証して、それらが一貫しているかどうかを確認することもできます。 -ただし、Auditor モードでの状態の検証にはコントラクトの実行が使用されます。 したがって、最初に次のように [ValidateLedger](https://github.com/scalar-labs/scalardl-java-client-sdk/blob/master/src/main/java/com/scalar/dl/client/contract/ValidateLedger.java) コントラクトを登録する必要があります。 `validate-ledger` は、クライアントが検証を行うときに指定するデフォルトのコントラクト ID であることに注意してください。 +ただし、Auditor モードでの状態の検証にはコントラクトの実行が使用されます。したがって、最初に次のように [ValidateLedger](https://github.com/scalar-labs/scalardl-java-client-sdk/blob/master/src/main/java/com/scalar/dl/client/contract/ValidateLedger.java) コントラクトを登録する必要があります。`validate-ledger` は、クライアントが検証を行うときに指定するデフォルトのコントラクト ID であることに注意してください。 ```shell client/bin/scalardl register-contract --properties client.properties --contract-id validate-ledger --contract-binary-name com.scalar.dl.client.contract.ValidateLedger --contract-class-file /path/to/ValdateLedger.class diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/getting-started.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/getting-started.mdx index 7eecdfc4..07b7c6d9 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/getting-started.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/getting-started.mdx @@ -9,14 +9,14 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; このドキュメントでは、Client SDK を使用して最初の簡単なコントラクトを実行して、ScalarDL を開始する方法について説明します。 -ここでは、ScalarDL がすでにインストールされており、ScalarDL Ledger が実行されており、ローカルホスト上の 50051 および 50052 ポートをリッスンしていることを前提としています。 そのような環境がない場合は、[ドキュメント](./installation-with-docker.mdx) に従ってください。 また、コントラクトを実行するために必要な証明書と秘密キーをすでに持っていることも前提としています。 +ここでは、ScalarDL がすでにインストールされており、ScalarDL Ledger が実行されており、ローカルホスト上の 50051 および 50052 ポートをリッスンしていることを前提としています。そのような環境がない場合は、[ドキュメント](./installation-with-docker.mdx)に従ってください。また、コントラクトを実行するために必要な証明書と秘密鍵をすでに持っていることも前提としています。 ## ScalarDL とは何ですか? -ScalarDL は、正確性、スケーラビリティ、およびデータベース不可知性を実現する、トランザクション データベース システム用のスケーラブルで実用的なビザンチン障害検出ミドルウェアです。 +ScalarDL は、正確性、スケーラビリティ、およびデータベース非依存性を実現する、トランザクショナルデータベースシステム用のスケーラブルで実用的なビザンチン故障検出ミドルウェアです。 -ScalarDL は、次の図に示すように、Ledger、Auditor、および Client SDK で構成されます。 ScalarDL Ledger は、ハッシュ チェーンとデジタル署名を使用した独自の方法でアプリケーション データを管理します。 ScalarDL Auditor はオプションのコンポーネントであり、Ledger に依存せずに Ledger データのコピーを管理して、Ledger データと Auditor データの不一致を特定します。 -クライアント SDK は、Ledger および Auditor と対話するためのユーザー向けプログラムのセットです。 詳細については、[設計ドキュメント](design.mdx) および [実装の詳細](implementation.mdx) を参照してください。 +ScalarDL は、次の図に示すように、Ledger、Auditor、および Client SDK で構成されます。ScalarDL Ledger は、ハッシュチェーンと電子署名を使用した独自の方法でアプリケーションデータを管理します。ScalarDL Auditor はオプションのコンポーネントであり、Ledger に依存せずに Ledger データのコピーを管理して、Ledger データと Auditor データの不一致を特定します。 +Client SDK は、Ledger および Auditor と対話するためのユーザー向けプログラムのセットです。詳細については、[設計ドキュメント](design.mdx)および [実装の詳細](implementation.mdx)を参照してください。 ![](images/scalardl.png) @@ -25,7 +25,7 @@ ScalarDL (Ledger and Auditor) はデータを一連のアセットとして抽 ## JDK をインストールする -ScalarDL は Java で記述されているため、Java の使用は ScalarDL アプリケーションを構築する最も簡単な方法の 1 つです。 +ScalarDL は Java で記述されているため、Java の使用は ScalarDL アプリケーションを構築する最も簡単な方法の1つです。 このような場合は、次の Java Development Kit (JDK) のいずれかを環境にインストールする必要があります。 - [Oracle JDK](https://www.oracle.com/java/technologies/downloads/) LTSバージョン (8、11、または17) @@ -33,9 +33,7 @@ ScalarDL は Java で記述されているため、Java の使用は ScalarDL :::warning -ScalarDL は JDK 8 で構築されているため、コントラクトは JDK 8 と互換性のあるバイナリである必要があります。 -JDK 8 以外のバージョンを使用する場合は、JDK 8 と互換性のあるバイナリをビルドするようにビルド ツールを構成する必要があります。 -バイナリ互換性を指定するには、javac の `--release 8` オプションを使用する方法や、次のように JDK 8 ツールチェーンを使用するように Gradle (または Maven) 構成を設定する方法など、いくつかの方法があります。 +ScalarDL は JDK 8 で構築されているため、コントラクトは JDK 8 と互換性のあるバイナリである必要があります。JDK 8 以外のバージョンを使用する場合は、JDK 8 と互換性のあるバイナリをビルドするようにビルドツールを構成する必要があります。バイナリ互換性を指定するには、javac の `--release 8` オプションを使用する方法や、次のように JDK 8 ツールチェーンを使用するように Gradle (または Maven) 構成を設定する方法など、いくつかの方法があります。 ```gradle java { @@ -57,9 +55,9 @@ Gradle および Maven 構成の詳細については、[Toolchains for JVM proj ::: -## クライアント SDK をダウンロードする +## Client SDK をダウンロードする -クライアント SDK ライブラリは、[Maven Central](https://search.maven.org/search?q=a:scalardl-java-client-sdk) で入手できます。 Gradle などのビルド ツールを使用してアプリケーションにインストールできます。 +Client SDK ライブラリは、[Maven Central](https://search.maven.org/search?q=a:scalardl-java-client-sdk) で入手できます。Gradle などのビルドツールを使用してアプリケーションにインストールできます。 たとえば、Gradle では、次の依存関係を build.gradle に追加できます。 ``` @@ -68,9 +66,9 @@ dependencies { } ``` -ここからは、サンプル `build.gradle`、サンプル コントラクト、 迅速なテストのためのツールも含まれます。 +ここからは、サンプル `build.gradle`、サンプルコントラクト、 迅速なテストのためのツールも含まれます。 -まず、使用するバージョン (例: 3.6.0) を指定します。 利用可能なバージョンについては、[タグ](https://github.com/scalar-labs/scalardl-java-client-sdk/tags) を参照してください。 +まず、使用するバージョン (例: 3.6.0) を指定します。利用可能なバージョンについては、[タグ](https://github.com/scalar-labs/scalardl-java-client-sdk/tags)を参照してください。 ```shell VERSION=X.Y.Z @@ -89,8 +87,8 @@ mv scalardl-java-client-sdk-$VERSION client ## プロパティを構成する -最初に行う必要があるのは、クライアント SDK を構成することです。 -次のサンプル プロパティは、Client SDK が ScalarDL Ledger と対話するために最低限必要なプロパティです。 +最初に行う必要があるのは、Client SDK を構成することです。 +次のサンプルプロパティは、Client SDK が ScalarDL Ledger と対話するために最低限必要なプロパティです。 ``` [client.properties] @@ -103,7 +101,7 @@ scalar.dl.client.cert_holder_id=foo # A certificate file path to use. scalar.dl.client.cert_path=/path/to/foo.pem -# A private key file path to use. +# A private key file path to use. scalar.dl.client.private_key_path=/path/to/foo-key.pem ``` @@ -117,7 +115,7 @@ cp conf/client.properties . ## 証明書を登録します -次に、ScalarDL Ledgerに証明書を登録しましょう。 証明書の準備方法については、[caclient-getting-started](ca/caclient-getting-started.mdx)をご確認ください。 +次に、ScalarDL Ledger に証明書を登録しましょう。証明書の準備方法については、[caclient-getting-started](ca/caclient-getting-started.mdx)をご確認ください。 今回は以下のように簡単なツールを使って証明書を登録してみましょう。 @@ -125,12 +123,12 @@ cp conf/client.properties . client/bin/scalardl register-cert --properties client.properties ``` -登録された証明書を使用すると、コントラクトの登録と実行が可能になるほか、データベース内のビザンチン障害の検出にも使用されます。 -セキュリティ上の理由から、追加できるのは新しい証明書のみであり、既存の証明書を更新することはできないことに注意してください。 新しい証明書を追加する場合は、登録ツールを実行する前に `scalar.dl.client.cert_version` をインクリメントします。 +登録された証明書を使用すると、コントラクトの登録と実行が可能になるほか、データベース内のビザンチン故障の検出にも使用されます。 +セキュリティ上の理由から、追加できるのは新しい証明書のみであり、既存の証明書を更新することはできないことに注意してください。新しい証明書を追加する場合は、登録ツールを実行する前に `scalar.dl.client.cert_version` をインクリメントします。 ## コントラクトを作成する -ScalarDL のコントラクトは、事前定義された基本コントラクト クラス ([JacksonBasedContract](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/contract/JacksonBasedContract.html) クラスなど) を拡張し、`invoke` メソッドをオーバーライドする単純な Java クラスです。 アセットを作成し、それにいくつかの状態を関連付ける [StateUpdater.java](https://github.com/scalar-labs/scalardl-java-client-sdk/blob/master/src/main/java/com/org1/contract/StateUpdater.java) コントラクトを詳しく見てみましょう。 +ScalarDL のコントラクトは、事前定義された基本コントラクトクラス ([`JacksonBasedContract`](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/contract/JacksonBasedContract.html) クラスなど) を拡張し、`invoke` メソッドをオーバーライドする単純な Java クラスです。アセットを作成し、それにいくつかの状態を関連付ける [StateUpdater.java](https://github.com/scalar-labs/scalardl-java-client-sdk/blob/master/src/main/java/com/org1/contract/StateUpdater.java) コントラクトを詳しく見てみましょう。 ```java package com.org1.contract; @@ -181,8 +179,8 @@ public class StateUpdater extends JacksonBasedContract { ## コントラクトを登録する -コントラクトを登録しましょう。 ここでも簡単なツールを使用します。 -コントラクトを登録しましょう。 ここでも簡単なツールを使用します。 +コントラクトを登録しましょう。ここでも簡単なツールを使用します。 + ```shell client/bin/scalardl register-contract --properties client.properties --contract-id StateUpdater --contract-binary-name com.org1.contract.StateUpdater --contract-class-file build/classes/java/main/com/org1/contract/StateUpdater.class @@ -190,9 +188,9 @@ client/bin/scalardl register-contract --properties client.properties --contract- コントラクト ID にはグローバルに一意な ID を設定してください (例: 上記コマンドの `StateUpdater`)。 同じコントラクトに異なるコントラクト ID を設定して、改ざん防止の方法で「誰が何をしたか」を明確にすることができます。 -同じコントラクトに異なるコントラクト ID を設定して、改ざん防止の方法で「誰が何をしたか」を明確にすることができます。 -たとえば、投票アプリケーションについて考えてみましょう。 アプリケーションでは、誰でも同じ投票ロジックで投票できるため、同じコントラクトを使用できますが、A の投票と B の投票は適切かつ安全に区別される必要があります。 A は B に投票できませんし、その逆も同様です。 同じコントラクトに異なるコントラクト ID があることを利用して、このようなことを実現できます。 + +たとえば、投票アプリケーションについて考えてみましょう。アプリケーションでは、誰でも同じ投票ロジックで投票できるため、同じコントラクトを使用できますが、A の投票と B の投票は適切かつ安全に区別される必要があります。A は B に投票できませんし、その逆も同様です。同じコントラクトに異なるコントラクト ID があることを利用して、このようなことを実現できます。 ## コントラクトを実行する @@ -213,20 +211,20 @@ client/bin/scalardl validate-ledger --properties client.properties --asset-id="s ``` 検証で行われる内容は、ScalarDL のセットアップおよび構成方法によって異なります。 -簡単に言うと、ScalarDL Ledger のみが使用されている場合、検証はアセットを横断して、アセットが再計算可能であり、有効なハッシュ チェーン構造を持つかどうかを確認します。 -ScalarDL Ledger および Auditor を使用すると、集中調整を行わずに、Ledger と Auditor の状態間の不一致 (つまり、ビザンチン障害) を検証でチェックします。 -Auditor による検証の詳細については、[ScalarDL Auditor 入門](getting-started-auditor.mdx) を参照してください。 +簡単に言うと、ScalarDL Ledger のみが使用されている場合、検証はアセットを横断して、アセットが再計算可能であり、有効なハッシュチェーン構造を持つかどうかを確認します。 +ScalarDL Ledger および Auditor を使用すると、中央集権的な調整なしに、Ledger と Auditor の状態間の不一致 (つまり、ビザンチン故障) を検証でチェックします。 +Auditor による検証の詳細については、[ScalarDL Auditor 入門](getting-started-auditor.mdx)を参照してください。 ## 独自のコントラクトを作成する -上で説明したように、コントラクトを作成するために必要なことは、事前定義された基本コントラクト クラスを拡張し、必要に応じて `invoke` メソッドをオーバーライドすることです。 詳細については、[良いコントラクトの書き方ガイド](how-to-write-contract.mdx)をご覧ください。 -上で説明したように、コントラクトを作成するために必要なことは、事前定義された基本コントラクト クラスを拡張し、必要に応じて `invoke` メソッドをオーバーライドすることです。 詳細については、[良いコントラクトの書き方ガイド](how-to-write-contract.mdx)をご覧ください。 +上で説明したように、コントラクトを作成するために必要なことは、事前定義された基本コントラクトクラスを拡張し、必要に応じて `invoke` メソッドをオーバーライドすることです。詳細については、[良いコントラクトの書き方ガイド](how-to-write-contract.mdx)をご覧ください。 + ## ClientService と対話する アプリケーション内で ScalarDL のコンポーネントとやりとりしたい場合は、Client SDK の API を利用することができます。API は [`ClientService`](https://scalar-labs.github.io/scalardl/javadoc/latest/client/com/scalar/dl/client/service/ClientService.html) と呼ばれるサービス層で提供されます。 -以下は、`ClientService` を使用してコントラクトを実行する方法を示すコード スニペットです。 +以下は、`ClientService` を使用してコントラクトを実行する方法を示すコードスニペットです。 ```java // ClientServiceFactory should always be reused. @@ -252,13 +250,13 @@ Auditor による検証の詳細については、[ScalarDL Auditor 入門](gett `ClientServiceFactory` は、`ClientService` の作成に必要なオブジェクトをキャッシュし、指定された設定に基づいて可能な限り再利用するため、`ClientServiceFactory` オブジェクトは常に再利用する必要があります。 `ClientService` は、ScalarDL コンポーネント (Ledger や Auditor など) と対話して、証明書の登録、コントラクトの登録、コントラクトの実行、データの検証を行うスレッドセーフなクライアントです。 -コントラクトを実行するときは、コントラクトの対応する引数の型を指定する必要があります。 たとえば、コントラクトが JacksonBasedContract を拡張する場合、コントラクトを実行するときに JsonNode 引数を渡す必要があります。 +コントラクトを実行するときは、コントラクトに対応する型の引数を指定する必要があります。たとえば、コントラクトが `JacksonBasedContract` を拡張する場合、コントラクトを実行するときに JsonNode 引数を渡す必要があります。 詳細については、[Javadoc](https://scalar-labs.github.io/scalardl/javadoc/) をご覧ください。 ## コントラクトを実行してテストする -ローカル環境でコントラクトをすばやく実行してテストするには、[ScalarDL サンプル](https://github.com/scalar-labs/scalardl-samples) が役立ちます。 運用環境で ScalarDL を実行するには、詳細については [scalar-kubernetes](https://github.com/scalar-labs/scalar-kubernetes) を参照してください。 +ローカル環境でコントラクトをすばやく実行してテストするには、[ScalarDL サンプル](https://github.com/scalar-labs/scalardl-samples)が役立ちます。運用環境で ScalarDL を実行するには、詳細については [scalar-kubernetes](https://github.com/scalar-labs/scalar-kubernetes) を参照してください。 ## 参考文献 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-handle-errors.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-handle-errors.mdx index 9067e4bb..1bd83fb9 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-handle-errors.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-handle-errors.mdx @@ -12,15 +12,15 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; ## 基本 -ScalarDL は、ユーザーが ScalarDL システムと適切に対話するために [クライアント SDK](implementation.mdx#クライアント-sdk) を使用することを期待しています。 -エラーが発生すると、クライアント SDK はステータス コードとともに例外 (JavaScript ベースの SDK ではエラー) をユーザーに返します。 -ユーザーはステータス コードを確認してエラーの原因を特定する必要があります。 +ScalarDL は、ユーザーが ScalarDL システムと適切に対話するために[Client SDK](implementation.mdx#client-sdk) を使用することを期待しています。 +エラーが発生すると、Client SDK はステータスコードとともに例外 (JavaScript ベースの SDK ではエラー) をユーザーに返します。 +ユーザーはステータスコードを確認してエラーの原因を特定する必要があります。 ## エラー処理の書き方 ここでは、エラーが発生した場合の対処方法を詳しく説明します。 -Java クライアント SDK では、SDK が [ClientException](https://scalar-labs.github.io/scalardl/javadoc/latest/client/com/scalar/dl/client/Exception/ClientException.html) をスローするため、ユーザーは 次のように例外をキャッチしてエラーを処理します。 +Java Client SDK では、SDK が [ClientException](https://scalar-labs.github.io/scalardl/javadoc/latest/client/com/scalar/dl/client/Exception/ClientException.html) をスローするため、ユーザーは次のように例外をキャッチしてエラーを処理します。 ```java ClientService clientService = ...; @@ -31,7 +31,7 @@ try { } ``` -Javascript ベースのクライアント SDK でも同様にエラーを処理できます。 +Javascript ベースの Client SDK でも同様にエラーを処理できます。 ```javascript const clientService = ...; // ClientService object @@ -46,7 +46,7 @@ try { ## ステータスコード -ステータス コードは、HTTP ステータス コードと同様に 5 つのクラスにグループ化されています。 +ステータスコードは、HTTP ステータスコードと同様に5つのクラスにグループ化されています。 * 成功した彫像 (200-299) * 検証エラー (300-399) @@ -54,4 +54,4 @@ try { * サーバーエラー (500-599) * クライアントエラー (600-699) -詳細については、[StatusCode](https://scalar-labs.github.io/scalardl/javadoc/latest/common/com/scalar/dl/ledger/service/StatusCode.html)をご確認ください。 +詳細については、[StatusCode](https://scalar-labs.github.io/scalardl/javadoc/latest/common/com/scalar/dl/ledger/service/StatusCode.html) をご確認ください。 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-use-proof.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-use-proof.mdx index 74d42d3f..1f564abf 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-use-proof.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-use-proof.mdx @@ -19,21 +19,21 @@ ScalarDL の Asset Proof は、アセットレコードに関する一連の情 - アセットレコードを作成する実行リクエストのノンス - アセットレコードの暗号化ハッシュ - 前の時代のアセットレコードの暗号化ハッシュ (存在する場合) -- 上記のエントリのデジタル署名 +- 上記のエントリの電子署名 -## アセット証明の利点 +## アセットプルーフの利点 -アセット証明は Ledger による実行時の証拠であるため、証明と Ledger の状態が異なるため、証拠作成後に Ledger がデータを改ざんすることは困難です。 +アセットプルーフは Ledger による実行時の証拠であるため、証明と Ledger の状態が異なるため、証拠作成後に Ledger がデータを改ざんすることは困難です。 したがって、Asset Proof を適切に利用すれば、データ改ざんのリスクを軽減できる可能性があります。 ## アセットプルーフの使用方法 -結果 ([ ContractExecutionResult](https://scalar-labs.github.io/scalardl/javadoc/latest/common/com/scalar/dl/ledger/model/ContractExecutionResult.html)) SDK の `executeContract` メソッド。 証拠が改ざんされておらず、Ledger からのものである場合は、署名を検証することで証明を検証できます。 +SDK の `executeContract` メソッドの実行結果 ([ContractExecutionResult](https://scalar-labs.github.io/scalardl/javadoc/latest/common/com/scalar/dl/ledger/model/ContractExecutionResult.html)) から[アセットプルーフ](https://scalar-labs.github.io/scalardl/javadoc/latest/common/com/scalar/dl/ledger/asset/AssetProof.html)を取得できます。 改ざんされていない、かつ Ledger からのものである場合は、署名を検証することでアセットプルーフを検証できます。 -一方のドメインでの悪意のあるアクティビティをもう一方のドメインで検出できるように、Ledger が実行されるドメインの外部に証明を保存することをお勧めします。 管理を容易にするために、証拠をクラウド ストレージに保存することを検討する価値があります。 +一方のドメインでの悪意のあるアクティビティをもう一方のドメインで検出できるように、Ledger が実行されるドメインの外部にアセットプルーフを保存することをお勧めします。 管理を容易にするために、アセットプルーフをクラウドストレージに保存することを検討する価値があります。 -実行時に得られた証明は、`validateLedger` を実行するときに利用できます。 `validateLedger` は、Ledger 側の検証を行った後、指定されたアセットレコードの証明も返します。 その後、クライアントはその証拠が以前に Ledger から返されたものと同じであるかどうかを確認できます。 +実行時に得られたアセットプルーフは、`validateLedger` を実行するときに利用できます。 `validateLedger` は、Ledger 側の検証を行った後、指定されたアセットレコードのアセットプルーフも返します。 その後、クライアントはそのアセットプルーフが以前に Ledger から返されたものと同じであるかどうかを確認できます。 -## ScalarDL Auditor +## ScalarDL Auditor -ScalarDL Auditor は、Asset Proofs を利用してビザンチン障害検出機能を実現します。 ScalarDL Auditor の詳細については、[ScalarDL Auditor 入門](getting-started-auditor.mdx) を参照してください。 +ScalarDL Auditor は、アセットプルーフを利用してビザンチン故障検出機能を実現します。ScalarDL Auditor の詳細については、[ScalarDL Auditor 入門](getting-started-auditor.mdx)を参照してください。 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-write-contract.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-write-contract.mdx index 72e43433..751e1a66 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-write-contract.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-write-contract.mdx @@ -12,9 +12,9 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; ## ScalarDL のコントラクトとは何ですか? -ScalarDL のコントラクト (別名スマート コントラクト) は、事前定義された基本コントラクトを拡張する Java プログラムです ([ContractBase](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/contract/ContractBase.html) クラス) は、単一のビジネス ロジックを実装するために記述されています。 コントラクトとその引数は、コントラクト所有者の秘密キーでデジタル署名され、ScalarDL に渡されます。 この仕組みにより、コントラクトは所有者のみが実行できるようになり、データ改ざんなどの悪意のある行為をシステムが検出できるようになります。 +ScalarDL のコントラクト (別名スマートコントラクト) は、単一のビジネスロジックを実装するために記述された、事前定義済みの基本コントラクト (基本コントラクトは [ContractBase](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/contract/ContractBase.html) クラスも拡張する) を拡張する Java プログラムです 。コントラクトとその引数は、コントラクト所有者の秘密鍵で電子署名され、ScalarDL に渡されます。この仕組みにより、コントラクトは所有者のみが実行できるようになり、データ改ざんなどの悪意のある行為をシステムが検出できるようになります。 -このドキュメントを参照する前に、[ScalarDL 入門](getting-started.mdx) を参照して、ScalarDL とは何か、およびその基本用語を理解してください。 +このドキュメントを参照する前に、[ScalarDL 入門](getting-started.mdx)を参照して、ScalarDL とは何か、およびその基本用語を理解してください。 ## 簡単なコントラクトを書く @@ -48,11 +48,11 @@ public class StateUpdater extends JacksonBasedContract { ### 基本コントラクト -Ledger データと Contract 引数の内部表現は String です。 ただし、String を使用した構造化データの処理はエラーが発生しやすく、必ずしも簡単であるとは限りません。 基本コントラクトでは、Ledger データと Contract 引数の他の扱いやすいデータ型を定義します。 また、データ型と文字列間のシリアル化と逆シリアル化も管理します。 +Ledger データと Contract 引数の内部表現は String です。ただし、String を使用した構造化データの処理はエラーが発生しやすく、必ずしも簡単であるとは限りません。基本コントラクトでは、Ledger データと Contract 引数の他の扱いやすいデータ型を定義します。また、データ型と文字列間のシリアル化と逆シリアル化も管理します。 -たとえば、上記の `StateUpdater` コントラクトは、`JacksonBasedContract` と呼ばれる基本コントラクトの 1 つに基づいています。 これにより、[Jackson](https://github.com/FasterXML/jackson) の [JsonNode](https://fasterxml.github.io/jackson-databind/javadoc/2.13/com/fasterxml/jackson/databind/JsonNode.html)形式で Ledger データと Contract 引数を処理できるようになります。 +たとえば、上記の `StateUpdater` コントラクトは、`JacksonBasedContract` と呼ばれる基本コントラクトの1つに基づいています。これにより、[Jackson](https://github.com/FasterXML/jackson) の [JsonNode](https://fasterxml.github.io/jackson-databind/javadoc/2.13/com/fasterxml/jackson/databind/JsonNode.html)形式で Ledger データと Contract 引数を処理できるようになります。 -これを書いている時点では、以下に示す 4 つの基本コントラクトを提供しています。 ただし、開発の生産性とパフォーマンスのバランスを適切に保つには、 `JacksonBasedContract` を使用することをお勧めします。 +これを書いている時点では、以下に示す4つの基本コントラクトを提供しています。ただし、開発の生産性とパフォーマンスのバランスを適切に保つには、 `JacksonBasedContract` を使用することをお勧めします。 | 基本コントラクトクラス | コントラクト引数のタイプ、コントラクトプロパティ、コントラクト出力、およびLedger データ | ライブラリ | | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | @@ -61,26 +61,26 @@ Ledger データと Contract 引数の内部表現は String です。 ただし | [StringBasedContract](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/contract/StringBasedContract.html) | [String](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html) | Java標準ライブラリ | | [Contract](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/contract/Contract.html) (廃止された) | [JsonObject](https://javadoc.io/static/javax.json/javax.json-api/1.1.4/javax/json/JsonObject.html) | [JSONP](https://javaee.github.io/jsonp/) | -古い [Contract](https://scalar-labs.github.io/scalardl/javadoc/ledger/com/scalar/dl/ledger/contract/Contract.html) はまだ利用可能ですが、現在は非推奨となっており、 後のメジャー バージョンでは削除されました。 したがって、上記の新しい (非推奨ではない) コントラクトを基本コントラクトとして使用することを強くお勧めします。 +古い [Contract](https://scalar-labs.github.io/scalardl/javadoc/ledger/com/scalar/dl/ledger/contract/Contract.html) はまだ利用可能ですが、現在は非推奨となっており、今後のメジャーバージョンで削除される予定です。したがって、上記の新しい (非推奨ではない) コントラクトを基本コントラクトとして使用することを強くお勧めします。 ### `invoke` 引数について -上に示したように、オーバーライドされた `invoke` メソッドは [Ledger](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/statemachine/Ledger.html) を受け入れます。 基礎となるデータベース、コントラクト引数の [JsonNode](https://fasterxml.github.io/jackson-databind/javadoc/2.13/com/fasterxml/jackson/databind/JsonNode.html)、およびオプションの [ JsonNode](https://fasterxml.github.io/jackson-databind/javadoc/2.13/com/fasterxml/jackson/databind/JsonNode.html) コントラクトプロパティ。 +上に示したように、オーバーライドされた `invoke` メソッドは、基礎となるデータベースと対話するための [Ledger](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/statemachine/Ledger.html)、コントラクト引数の [JsonNode](https://fasterxml.github.io/jackson-databind/javadoc/2.13/com/fasterxml/jackson/databind/JsonNode.html)、およびコントラクトプロパティ用のオプションである [JsonNode](https://fasterxml.github.io/jackson-databind/javadoc/2.13/com/fasterxml/jackson/databind/JsonNode.html) を受け取ります。 - `Ledger` は一連のアセットを管理するデータベース抽象化であり、各アセットは `asset_id` と呼ばれるキーと `age` と呼ばれる履歴バージョン番号によって識別されるレコードの履歴で構成されます。 `get`、`put`、および `scan` API を使用して `Ledger` と対話できます。 `get` API は、指定されたアセットの最新のアセットレコードを取得するために使用されます。 `put` API は、指定されたアセットに新しいアセットレコードを追加するために使用されます。 `scan` API は、指定されたアセットを走査するために使用されます。 この抽象化を使用して Ledger にアセットレコードを追加できるだけであることに注意してください。 したがって、ScalarDL のコントラクトを作成する前に、抽象化を使用してデータを設計することを常に推奨します。 + `Ledger` は一連のアセットを管理するデータベース抽象化であり、各アセットは `asset_id` と呼ばれるキーと `age` と呼ばれる履歴バージョン番号によって識別されるレコードの履歴で構成されます。`get`、`put`、および `scan` API を使用して `Ledger` と対話できます。`get` API は、指定されたアセットの最新のアセットレコードを取得するために使用されます。`put` API は、指定されたアセットに新しいアセットレコードを追加するために使用されます。`scan` API は、指定されたアセットを走査するために使用されます。この抽象化では Ledger にアセットレコードを追加できるだけであることに注意してください。したがって、ScalarDL のコントラクトを作成する前に、抽象化を使用してデータを設計することを常に推奨します。 -コントラクト引数は、リクエスタによって指定されたコントラクトの実行時引数です。 コントラクト引数は通常、ランタイム変数を定義するために使用されます。 たとえば、銀行アプリケーションでは、支払いコントラクトが実行されるたびに、支払者と受取人が引数としてコントラクトに渡される場合があります。 +コントラクト引数は、リクエスタによって指定されたコントラクトの実行時引数です。コントラクト引数は通常、ランタイム変数を定義するために使用されます。たとえば、銀行アプリケーションでは、支払いコントラクトが実行されるたびに、支払者と受取人が引数としてコントラクトに渡される場合があります。 -コントラクトのプロパティは、コントラクトの静的変数です。 これは、コントラクトのインスタンスごとの静的変数を定義するために使用できます。 たとえば、同意管理アプリケーションでは、同意のためのビジネス ロジックは一般的なコントラクトとして定義できますが、同意条件は実際のアプリケーションによって異なる場合があります。 オプションのプロパティ フィールドを使用すると、コントラクト内でハードコーディングせずに、各コントラクトインスタンスのクォーラムなどのコントラクト条件を定義できます。 +コントラクトのプロパティは、コントラクトの静的変数です。これは、コントラクトのインスタンスごとの静的変数を定義するために使用できます。たとえば、同意管理アプリケーションでは、同意のためのビジネスロジックは一般的なコントラクトとして定義できますが、同意条件は実際のアプリケーションによって異なる場合があります。オプションのプロパティフィールドを使用すると、コントラクト内でハードコーディングせずに、各コントラクトインスタンスのクォーラムなどのコントラクト条件を定義できます。 ### `StateUpdater` ロジックについて -`StateUpdater` コントラクトは、最初に引数に適切な変数があるかどうかをチェックし、アプリケーション コンテキストと一致し、適切に定義されていない場合は `ContractContextException` をスローします。 `ContractContextException` はコントラクトからスロー可能な唯一の例外であり、要件が完全に満たされていないためにコントラクトの実行を再試行しないようシステムに通知するために使用されます。 +`StateUpdater` コントラクトは、最初に引数に適切な変数があるかどうか、およびアプリケーションコンテキストと一致しているかどうかをチェックし、適切に定義されていない場合は `ContractContextException` をスローします。`ContractContextException` はコントラクトからスロー可能な唯一の例外であり、要件が完全に満たされていないためにコントラクトの実行を再試行しないようシステムに通知するために使用されます。 -次に、コントラクトはリクエスタから指定された `asset_id` と `state` を取得し、指定された `asset_id` を持つ Ledger から `asset` を取得します。 また、アセットが存在しない場合、またはアセットの状態が現在の状態と異なる場合は、アセットの状態を更新します。 -Ledger と対話するときにコントラクトは `RuntimeException` に直面する可能性がありますが、コントラクト内でそれを捕らえるべきではありません。 すべての例外は、ScalarDL エグゼキューターによって適切に処理されます。 +次に、コントラクトはリクエスタから指定された `asset_id` と `state` を取得し、指定された `asset_id` を持つ Ledger から `asset` を取得します。また、アセットが存在しない場合、またはアセットの状態が現在の状態と異なる場合は、アセットの状態を更新します。 +Ledger と対話するときにコントラクトは `RuntimeException` に直面する可能性がありますが、コントラクト内でそれを捕らえるべきではありません。すべての例外は、ScalarDL エグゼキューターによって適切に処理されます。 -このコントラクトは、指定されたアセットの状態を作成または更新するだけなので、要求者に何も返す必要はありません。 したがって、この場合は `null` を返すことができます。 リクエスタに何かを返したい場合は、JacksonBasedContract を使用するときに任意の `JsonNode` を返すことができます。 +このコントラクトは、指定されたアセットの状態を作成または更新するだけなので、リクエスタに何も返す必要はありません。したがって、この場合は `null` を返すことができます。リクエスタに何かを返したい、かつ `JacksonBasedContract` を使用する場合は、任意の `JsonNode` を返すことができます。 ### アセットのグループ化 `asset_id` の値は任意に定義できますが、アセットをグループ化する場合は、いくつかのルールを設けることをお勧めします。 @@ -90,27 +90,27 @@ Ledger と対話するときにコントラクトは `RuntimeException` に直 ### 例外処理 上で述べたように `ContractContextException` をスローする場合を除いて、コントラクト内で例外処理を行うべきではないことに注意してください。 -したがって、 `Ledger` は、何らかの理由で続行できない場合に実行時 (チェックされていない) 例外をスローする可能性がありますが、例外はキャッチされるべきではありません。 例外はコントラクト外で適切に処理されます。 +したがって、 `Ledger` は、何らかの理由で続行できない場合に実行時 (チェックされていない) 例外をスローする可能性がありますが、例外はキャッチされるべきではありません。例外はコントラクト外で適切に処理されます。 ### 決定論 -ScalarDL のコントラクトを作成するときに注意すべき非常に重要なことの 1 つは、コントラクトを決定論的にする必要があるということです。 言い換えれば、コントラクトは、特定の入力に対して常に同じ出力を生成する必要があります。 これは、ScalarDL が決定論を利用して改ざんを検出するためです。 +ScalarDL のコントラクトを作成するときに注意すべき非常に重要なことの1つは、コントラクトを決定論的にする必要があるということです。言い換えれば、コントラクトは、特定の入力に対して常に同じ出力を生成する必要があります。これは、ScalarDL が決定論を利用して改ざんを検出するためです。 -たとえば、ScalarDL はアセットを遅延的に走査し、コントラクトを再実行して、期待される結果と Ledger に保存されている実際のデータとの間に矛盾がないかどうかを確認します。 また、決定論を利用して、複数の独立した ScalarDL コンポーネント (つまり、Ledger と Auditor) の状態を同じにします。 +たとえば、ScalarDL はアセットを遅延的に走査し、コントラクトを再実行して、期待される結果と Ledger に保存されている実際のデータとの間に矛盾がないかどうかを確認します。また、決定論を利用して、複数の独立した ScalarDL コンポーネント (つまり、Ledger と Auditor) の状態を同じにします。 -非決定的なコントラクトを作成する一般的な方法の 1 つは、コントラクト内で時間を生成し、Ledger の状態を含む出力が何らかの形でこの時間に依存するようにすることです。 このようなコントラクトは実行されるたびに異なる出力を生成するため、システムは改ざんを検出できなくなります。 コントラクトで時間を使用する必要がある場合は、それを引数としてコントラクトに渡す必要があります。 +非決定的なコントラクトを作成する一般的な方法の1つは、コントラクト内で時間を生成し、Ledger の状態を含む出力が何らかの形でこの時間に依存するようにすることです。このようなコントラクトは実行されるたびに異なる出力を生成するため、システムは改ざんを検出できなくなります。コントラクトで時間を使用する必要がある場合は、それを引数としてコントラクトに渡す必要があります。 ### アセットの削除 -コントラクトを通じて登録されたアセットは、改ざんの証拠を提供するために削除することができません。 ただし、開発するアプリケーションのルールや規制に従うために、一部のアセットを削除したい場合があります。 このようなデータ削除を提供するために、ScalarDL は `Function` と呼ばれる機能をサポートしています。 +コントラクトを通じて登録されたアセットは、改ざんの証拠を提供するために削除することができません。ただし、開発するアプリケーションのルールや規制に従うために、一部のアセットを削除したい場合があります。このようなデータ削除を提供するために、ScalarDL は `Function` と呼ばれる機能をサポートしています。 -Function の詳細については、[ScalarDL ファンクションの書き方](./how-to-write-function.mdx) ガイドを参照してください。 +Function の詳細については、[ScalarDL ファンクションの書き方](./how-to-write-function.mdx)ガイドを参照してください。 ### ファンクションに情報を送信する `JacksonBasedContract` のような非推奨ではないコントラクトでは、`void setContext(T context)` を呼び出すことでファンクションに情報を送信できます。 使用する基本 Contract クラスによって引数の型 `T` が決定されることに注意してください。 -Functions でコントラクトから情報を受け取る方法の詳細については、[コントラクトから情報を受け取る](./how-to-write-function.mdx#receive-information-from-contracts) を参照してください。 +Functions でコントラクトから情報を受け取る方法の詳細については、[コントラクトから情報を受け取る](./how-to-write-function.mdx#receive-information-from-contracts)を参照してください。 ```Java JsonNode context = getObjectMapper().createObjectNode().put(...); @@ -123,10 +123,10 @@ setContext(context); ### ネストされた方法でコントラクトを呼び出す -コントラクトのコードが 100 行を超える場合は、コントラクトで複数のことを実行している可能性があることを示す良い兆候です。 -各コントラクトが 1 つのことだけを実行するモジュール化されたコントラクトを作成し、コントラクトを結合してより複雑なビジネス ロジックを表現することは良い習慣です。 +コントラクトのコードが100行を超える場合は、コントラクトで複数のことを実行している可能性があることを示す良い兆候です。 +各コントラクトが1つのことだけを実行するモジュール化されたコントラクトを作成し、コントラクトを結合してより複雑なビジネスロジックを表現することは良い習慣です。 -以下は、そのようなネストされた呼び出しを実行するコード例です。 指定されたアセットの状態を読み取る `StateReader` がコントラクトIDとして `state-reader` で登録されているものとする。 +以下は、そのようなネストされた呼び出しを実行するコード例です。指定されたアセットの状態を読み取る `StateReader` が `state-reader` というコントラクト ID で登録されているものとします。 ```java public class StateUpdaterReader extends JacksonBasedContract { @@ -155,9 +155,9 @@ public class StateUpdaterReader extends JacksonBasedContract { } ``` -`StateUpdaterReader` は、`StateUpdater` と同じように Ledger を更新し、さらに `state-reader` を使用して別の呼び出しを呼び出して、書き込まれた内容を読み取ります。 この例はあまり説得力がないかもしれませんが、コントラクトをモジュール化する (たとえば、`StateUpdater` を個別に定義する) と、コントラクトを再利用可能にすることができます。 +`StateUpdaterReader` は、`StateUpdater` と同じように Ledger を更新し、さらに別の `invoke` で `state-reader` 呼び出して、書き込まれた内容を読み取ります。この例はあまり説得力がないかもしれませんが、コントラクトをモジュール化する (たとえば、`StateUpdater` を個別に定義する) と、コントラクトを再利用可能にすることができます。 -ネストされた呼び出し内のすべてのコントラクトは、ScalarDL でトランザクション的に (ACID 方式で) 実行されるため、完全に成功するか完全に失敗するかに注意してください。 +ネストされた呼び出し内のすべてのコントラクトは、ScalarDL でトランザクション的に (ACID 方式で) 実行されるため、完全に成功するか完全に失敗するかのどちらかになる点に注意してください。 ### 誰がアセットにアクセスできるかを管理する @@ -193,21 +193,21 @@ public class StateUpdater extends JacksonBasedContract { ## まとめ -ScalarDL の適切なコントラクトを作成するためのベスト プラクティスを次に示します。 +ScalarDL の適切なコントラクトを作成するためのベストプラクティスを次に示します。 * コントラクトを作成する前に、Ledger の抽象化に適合するようにデータを適切に設計します * コントラクトで回復不可能なエラーが発生した場合は `ContractContextException` をスローします * `ContractContextException` をスローする以外の例外処理は行わないでください。 -* コントラクトをモジュール化してそれぞれが 1 つのことだけを実行し、ネストされた呼び出しを使用する +* コントラクトをモジュール化してそれぞれが1つのことだけを実行し、ネストされた呼び出しを使用する * コントラクトを確定的にする * アセットをグループ化する場合は、いくつかのルールを指定して `asset_id` を定義します ## さらなるサンプル -その他のコントラクト サンプルは、[caliper-benchmarks](https://github.com/scalar-labs/caliper-benchmarks/tree/scalardl/src/scalardl/src/main/java/com/example/contract) で見つけることができます。 +その他のコントラクトサンプルは、[caliper-benchmarks](https://github.com/scalar-labs/caliper-benchmarks/tree/scalardl/src/scalardl/src/main/java/com/example/contract) で見つけることができます。 ## 参考文献 * [ScalarDL 入門](getting-started.mdx) -* [ScalarDL設計ドキュメント](design.mdx) +* [ScalarDL 設計ドキュメント](design.mdx) * [Javadoc](https://scalar-labs.github.io/scalardl/javadoc/) diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-write-function.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-write-function.mdx index 2a87043f..54b2b062 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-write-function.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/how-to-write-function.mdx @@ -12,15 +12,15 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; ## ScalarDL のファンクションとは何ですか? -ScalarDL のファンクション(スマートファンクション)は、単一のビジネスロジックを実装するために記述された [JacksonBasedFunction](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/function/JacksonBasedFunction.html) クラスのような定義済みのベースファンクションを拡張する Java プログラムです。単一のビジネス ロジックを実装するために作成されます。 Function は主に ScalarDL アプリケーションのデータを管理し、Contract はデータの証拠を管理します。 これを見る前に、[ScalarDL 入門](getting-started.mdx) と [ScalarDL のコントラクトの書き方](how-to-write-contract.mdx) を参照して、ScalarDL とは何か、ScalarDL とコントラクトで何ができるかを理解してください。 +ScalarDL のファンクション(スマートファンクション)は、単一のビジネスロジックを実装するために記述された [JacksonBasedFunction](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/function/JacksonBasedFunction.html) クラスのような定義済みのベースファンクションを拡張する Java プログラムです。Function は主に ScalarDL アプリケーションのデータを管理し、Contract はデータの証拠を管理します。これを見る前に、[ScalarDL 入門](getting-started.mdx)と [ScalarDL のコントラクトの書き方](how-to-write-contract.mdx)を参照して、ScalarDL とは何か、ScalarDL とコントラクトで何ができるかを理解してください。 ## 背景 -ScalarDL のコントラクトによって管理されるアセットは改ざん防止機能があり、追加のみが可能なため、さまざまなアプリケーションをモデル化する際にそのデータ構造が制限されます。 さらに、改ざん証拠を保証するためにアセットを削除することはできません。 多くの分散 Ledger プラットフォームは、Ledger の前に RDBMS などの別のデータベースを配置して、データベース内のアプリケーションのデータを処理し、証拠として Ledger にログを書き込むことでこの問題に対処しています。 ただし、データベースと Ledger の間のデータの一貫性が常に維持されるとは限らないため、このスキームは理想的ではありません。 致命的な障害により、アプリケーションの Ledger に対応するログが存在しない場合があり、証拠として Ledger にログを書き込む目的が無効になります。 ScalarDL は、アプリケーションのデータを管理するファンクションを導入し、[ScalarDB](https://github.com/scalar-labs/scalardb) で基盤となる分散 ACID トランザクションを利用してコントラクトとファンクションをアトミックに実行することで、別のアプローチで問題を解決します。 +ScalarDL のコントラクトによって管理されるアセットには改ざん検知機能があり、追加のみが可能なため、さまざまなアプリケーションをモデル化する際にそのデータ構造が制限されます。さらに、改ざん証拠を保証するためにアセットを削除することはできません。多くの分散 Ledger プラットフォームは、Ledger の前に RDBMS などの別のデータベースを配置して、データベース内のアプリケーションのデータを処理し、証拠として Ledger にログを書き込むことでこの問題に対処しています。ただし、データベースと Ledger の間のデータの一貫性が常に維持されるとは限らないため、このスキームは理想的ではありません。致命的な障害により、アプリケーションのログが Ledger に存在しない場合があり、証拠として Ledger にログを書き込む目的が無効になります。ScalarDL は、アプリケーションのデータを管理するファンクションを導入し、[ScalarDB](https://github.com/scalar-labs/scalardb) で基盤となる分散 ACID トランザクションを利用してコントラクトとファンクションをアトミックに実行することで、別のアプローチで問題を解決します。 ## ファンクションを書く -ファンクションの書き方をよりよく理解するために、 `Payment` ファンクションを詳しく見てみましょう。 +ファンクションの書き方をよりよく理解するために、`Payment` ファンクションを詳しく見てみましょう。 ```java public class Payment extends JacksonBasedFunction { @@ -89,38 +89,38 @@ public class Payment extends JacksonBasedFunction { } ``` -これは、ScalarDB API で記述された送金アプリケーションであり、指定された口座残高を取得し、2 つの口座残高間で指定された金額を送金し、残高を更新します。 ScalarDB API の詳細については、[ScalarDB ドキュメント](https://scalardb.scalar-labs.com/docs/latest/api-guide) もお読みください。 +これは、ScalarDB API で記述された送金アプリケーションであり、指定された口座残高を取得し、2つの口座残高間で指定された金額を送金し、残高を更新します。ScalarDB API の詳細については、[ScalarDB ドキュメント](https://scalardb.scalar-labs.com/docs/latest/api-guide)もお読みください。 ### 基本ファンクション -事前定義された基本コントラクトと同様に、ScalarDL は事前定義された基本ファンクションも提供します。 たとえば、上記の PaymentFunction は、JacksonBasedFunction と呼ばれる基本ファンクションの 1 つに基づいており、これにより、Jackson の JsonNode 形式でファンクションの入出力を処理できるようになります。 +事前定義された基本コントラクトと同様に、ScalarDL は事前定義された基本ファンクションも提供します。たとえば、上記の PaymentFunction は、JacksonBasedFunction と呼ばれる基本ファンクションの1つに基づいており、これにより、Jackson の JsonNode 形式でファンクションの入出力を処理できるようになります。 -これを書いている時点では、以下に示す 4 つの基本ファンクションが提供されています。 ただし、開発の生産性とパフォーマンスのバランスを適切に保つには、JacksonBasedFunction を使用することをお勧めします。 +これを書いている時点では、以下に示す4つの基本ファンクションが提供されています。ただし、開発の生産性とパフォーマンスのバランスを適切に保つには、JacksonBasedFunction を使用することをお勧めします。 | 基本ファンクションクラス | ファンクションの入力と出力のタイプ | ライブラリ | | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------- | | [JacksonBasedFunction](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/function/JacksonBasedFunction.html) (おすすめ) | [JsonNode](https://fasterxml.github.io/jackson-databind/javadoc/2.13/com/fasterxml/jackson/databind/JsonNode.html) | [Jackson](https://github.com/FasterXML/jackson) | | [JsonpBasedFunction](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/function/JsonpBasedFunction.html) | [JsonObject](https://javadoc.io/static/javax.json/javax.json-api/1.1.4/javax/json/JsonObject.html) | [JSONP](https://javaee.github.io/jsonp/) | -| [StringBasedFunction](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/function/StringBasedFunction.html) | [String](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html) | Java標準ライブラリ | +| [StringBasedFunction](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/function/StringBasedFunction.html) | [String](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html) | Java 標準ライブラリ | | [Function](https://scalar-labs.github.io/scalardl/javadoc/latest/ledger/com/scalar/dl/ledger/function/Function.html) (廃止された) | [JsonObject](https://javadoc.io/static/javax.json/javax.json-api/1.1.4/javax/json/JsonObject.html) | [JSONP](https://javaee.github.io/jsonp/) | The old [Function](https://scalar-labs.github.io/scalardl/javadoc/ledger/com/scalar/dl/ledger/function/Function.html) is still available, but it is now deprecated and will be removed in a later major version. So, it is highly recommended to use the above new (non-deprecated) Functions as a base Function. -古い [ファンクション](https://scalar-labs.github.io/scalardl/javadoc/ledger/com/scalar/dl/ledger/function/Function.html) はまだ利用可能ですが、現在は非推奨となっており、 後のメジャー バージョンでは削除されました。 したがって、上記の新しい (非推奨ではない) ファンクションを基本ファンクションとして使用することを強くお勧めします。 +古い [ファンクション](https://scalar-labs.github.io/scalardl/javadoc/ledger/com/scalar/dl/ledger/function/Function.html)はまだ利用可能ですが、現在は非推奨となっており、今後のメジャーバージョンで削除される予定です。したがって、上記の新しい (非推奨ではない) ファンクションを基本ファンクションとして使用することを強くお勧めします。 ### `invoke` 引数について -コントラクトが `Ledger` オブジェクトを使用してアセットを管理するのと同様に、ファンクションは `Database` オブジェクトを使用して基礎となるデータベースのレコードを管理します。 `Database` は、[ScalarDB](https://github.com/scalar-labs/scalardb) の [データモデル](https://scalardb.scalar-labs.com/docs/latest/design) に基づいてCRUD操作を行うことができるように、ScalarDB インターフェースを実装していることに注意してください。 +コントラクトが `Ledger` オブジェクトを使用してアセットを管理するのと同様に、ファンクションは `Database` オブジェクトを使用して基礎となるデータベースのレコードを管理します。`Database` は、[ScalarDB](https://github.com/scalar-labs/scalardb) の[データモデル](https://scalardb.scalar-labs.com/docs/latest/design)に基づいてCRUD操作を行うことができるように、ScalarDB インターフェースを実装していることに注意してください。 -`functionArgument` は、リクエスタによって指定された Function の実行時引数です。 この引数は、コントラクト引数とは異なりデジタル署名されていないため、データベースに格納されているデータを渡すために使用できますが、後で何らかの理由で削除される可能性があります。 +`functionArgument` は、リクエスタによって指定された Function の実行時引数です。この引数は、コントラクト引数とは異なり電子署名されていないため、データベースに格納されているデータを渡すために使用できますが、後で何らかの理由で削除される可能性があります。 -`contractArgument` と `contractProperties` は、対応するコントラクトの引数とプロパティです。 コントラクト内容を理解するには、[コントラクトの書き方](how-to-write-contract.mdx) を参照してください。 +`contractArgument` と `contractProperties` は、対応するコントラクトの引数とプロパティです。コントラクト内容を理解するには、[コントラクトの書き方](how-to-write-contract.mdx)を参照してください。 ### コントラクトから情報を受け取る `JacksonBasedFunction` のような非推奨ではないファンクションでは、 `T getContractContext()` を呼び出すことでコントラクトから情報を受け取ることができます。 Contracts に何も設定されていない場合、戻り値は null になる可能性があり、使用する基本 Function クラスによって戻り値の型 `T` が決定されることに注意してください。 -コントラクトからファンクションに情報を送信する方法の詳細については、[ファンクションに情報を送信する](./how-to-write-contract.mdx#send-information-to-functions) を参照してください。 +コントラクトからファンクションに情報を送信する方法の詳細については、[ファンクションに情報を送信する](./how-to-write-contract.mdx#send-information-to-functions)を参照してください。 ```Java JsonNode context = getContractContext(); @@ -128,11 +128,11 @@ JsonNode context = getContractContext(); ### ファンクションの使用方法 -Function 機能はデフォルトで有効になっています。 したがって、次のことを除いて、Ledger では何も設定する必要はありません。 この機能を無効にしたい場合は、Ledger のプロパティで `scalar.dl.ledger.function.enabled` を `false` に設定してください。 +Function 機能はデフォルトで有効になっています。したがって、次のことを除いて、Ledger では何も設定する必要はありません。この機能を無効にしたい場合は、Ledger のプロパティで `scalar.dl.ledger.function.enabled` を `false` に設定してください。 #### アプリケーション固有のスキーマを追加する -Functions は ScalarDB CRUD インターフェイスを介して任意のレコードを読み書きできるため、ScalarDL はそれ自体で Function のデータベース スキーマを定義できません。 このようなスキーマを定義してデータベースに適用するのは、アプリケーションの所有者の責任です。データベースの所有者と管理者に応じて、自分で行うか、システム管理者に依頼する必要があります。 ScalarDB のデータベース スキーマの定義の詳細については、[ScalarDB Schema Loader](https://scalardb.scalar-labs.com/docs/latest/schema-loader) を参照してください。 +Functions は ScalarDB CRUD インターフェースを介して任意のレコードを読み書きできるため、ScalarDL はそれ自体で Function のデータベーススキーマを定義できません。このようなスキーマを定義してデータベースに適用するのは、アプリケーションの所有者の責任です。データベースの所有者と管理者に応じて、自分で行うか、システム管理者に依頼する必要があります。ScalarDB のデータベーススキーマの定義の詳細については、[ScalarDB Schema Loader](https://scalardb.scalar-labs.com/docs/latest/schema-loader) を参照してください。 #### ファンクションを登録する @@ -145,7 +145,7 @@ client/bin/scalardl register-function --properties client.properties --function- #### ファンクションを実行する 実行するコントラクトとともに実行するファンクションを指定できます。 -たとえば、コマンドライン ツールを使用して次のようにファンクションを実行できます。 +たとえば、コマンドラインツールを使用して次のようにファンクションを実行できます。 ``` client/bin/scalardl execute-contract --properties client.properties --contract-id test-contract --contract-argument '{...}' --function-id test-function --function-argument '{...}' @@ -157,11 +157,11 @@ client/bin/scalardl execute-contract --properties client.properties --contract-i ContractExecutionResult result = clientService.executeContract(contractId, contractArgument, functionId, functionArgument); ``` -コントラクトと同様に、ファンクションは別のファンクションを呼び出すことができるため、複数のファンクション (および複数のコントラクト) をグループ化できます。 ScalarDL は、一連のコントラクトとファンクションを ACID 方式で実行するため、それらをアトミックかつ一貫性があり、分離された永続的な方法で実行できます。 +コントラクトと同様に、ファンクションは別のファンクションを呼び出すことができるため、複数のファンクション (および複数のコントラクト) をグループ化できます。ScalarDL は、一連のコントラクトとファンクションを ACID 方式で実行するため、それらをアトミックかつ一貫性があり、分離された永続的な方法で実行できます。 ## コントラクトとファンクションを適切に使用する方法 -スキームを意味のあるものにするために、コントラクトとファンクションを適切に使用する必要があります。 基本原則として、改ざん証明が必要なデータの管理にはコントラクトを使用し、更新または削除できるデータ、またはより柔軟なデータ モデルを必要とするデータの管理にはファンクションを使用する必要があります。 グッドプラクティスとして、ファンクションはアプリケーションのデータを管理するために使用され、コントラクトはアプリケーションの実行ログを証拠として管理するために使用されます。 たとえば、支払いアプリケーションでは、ファンクションはユーザーの口座残高を管理し、コントラクトはユーザー間の支払いの証拠を管理します。 +スキームを意味のあるものにするために、コントラクトとファンクションを適切に使用する必要があります。基本原則として、改ざん証明が必要なデータの管理にはコントラクトを使用し、更新または削除できるデータ、またはより柔軟なデータモデルを必要とするデータの管理にはファンクションを使用する必要があります。グッドプラクティスとして、ファンクションはアプリケーションのデータを管理するために使用され、コントラクトはアプリケーションの実行ログを証拠として管理するために使用されます。たとえば、支払いアプリケーションでは、ファンクションはユーザーの口座残高を管理し、コントラクトはユーザー間の支払いの証拠を管理します。 ## 参考文献 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/implementation.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/implementation.mdx index 014edb86..ba8b3eaa 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/implementation.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/implementation.mdx @@ -8,35 +8,35 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; -ScalarDL は、正確性、スケーラビリティ、およびデータベース不可知性を実現する、トランザクション データベース システム用のスケーラブルで実用的なビザンチン障害検出ミドルウェアです。 +ScalarDL は、正確性、スケーラビリティ、およびデータベース非依存性を実現する、トランザクショナルデータベースシステム用のスケーラブルで実用的なビザンチン故障検出ミドルウェアです。 このドキュメントでは、ScalarDL の実装について簡単に紹介します。 -ScalarDL のアーキテクチャ、新規性、およびビザンチン障害検出プロトコルについては、[設計ドキュメント](design.mdx) を参照してください。 +ScalarDL のアーキテクチャ、新規性、およびビザンチン故障検出プロトコルについては、[設計ドキュメント](design.mdx)を参照してください。 ## ScalarDL コンポーネント -ScalarDL はデータベース上で動作するミドルウェアで、主に Java で書かれています。 ScalarDL は、Ledger、Auditor、および Client SDK で構成されます。 各コンポーネントを見てみましょう。 +ScalarDL はデータベース上で動作するミドルウェアで、主に Java で書かれています。ScalarDL は、Ledger、Auditor、および Client SDK で構成されます。各コンポーネントを見てみましょう。 ![](images/scalardl.png) ### Ledger -Ledger は、ビザンチン障害検出プロトコルのコミット フェーズを実装します。 Ledger は、ユーザーがワンショット トランザクションを作成するためのコントラクトと呼ばれるプログラム可能な決定論的関数も管理します。 コントラクトでは、ユーザーは任意のビジネス ロジックを記述し、コントラクトで定義されたインターフェイスを通じてデータベース操作を呼び出すことができます。 ネストされた呼び出し、つまりコントラクトが別のコントラクトを呼び出すことがサポートされているため、ユーザーは複数のコントラクトを使用してアプリケーションのビジネス ロジックをモジュール形式で実装できます。 Ledger は、基盤となるデータベース トランザクションを利用して、ACID 方式で複数のコントラクトを実行します。 各コントラクトは、後で検証できるようにデジタル署名を付けて Java バイトコード形式でデータベースに保存されます。 +Ledger は、ビザンチン故障検出プロトコルのコミットフェーズを実装します。Ledger は、ユーザーがワンショットトランザクションを作成するためのコントラクトと呼ばれるプログラム可能な決定論的機能も管理します。コントラクトでは、ユーザーは任意のビジネスロジックを記述し、コントラクトで定義されたインターフェースを通じてデータベース操作を呼び出すことができます。ネストされた呼び出し、つまりコントラクトが別のコントラクトを呼び出すことがサポートされているため、ユーザーは複数のコントラクトを使用してアプリケーションのビジネスロジックをモジュール形式で実装できます。Ledger は、基盤となるデータベーストランザクションを利用して、ACID 方式で複数のコントラクトを実行します。各コントラクトは、後で検証できるように電子署名を付けて Java バイトコード形式でデータベースに保存されます。 -Ledger は、Bigtable のデータ モデルに似た Key-Value データ モデルに基づいて、基盤となるデータベースを多次元マップとして抽象化します。 さまざまなデータベースやデータ モデルへの幅広い適用性を実現するために、抽象化を選択しました。 レコードは、レコード キー (アプリケーション レベルの主キー)、バージョン、およびレコードの導出に使用される Contract 引数とすべてのレコード値の暗号化ハッシュを含む値のセットで構成されます。 レコード キーとバージョンは主キーを形成し、主キーは値のセットを一意にマップします。 Ledgerは、トレーサビリティを実現するために記録のバージョンを管理します。 また、Ledger は、同じレコード キーを持つレコードのハッシュ チェーンを構築して、レコードの部分的な悪意のある変更を困難にしますが、ScalarDL はビザンチン障害検出機能を提供するためにハッシュ チェーン構造を必要としません。 +Ledger は、Bigtable のデータモデルに似た Key-Value データモデルに基づいて、基盤となるデータベースを多次元マップとして抽象化します。さまざまなデータベースやデータモデルへの幅広い適用性を実現するために、抽象化を選択しました。レコードは、レコードキー (アプリケーションレベルの主キー)、バージョン、およびレコードの導出に使用される Contract 引数とすべてのレコード値の暗号化ハッシュを含む値のセットで構成されます。レコードキーとバージョンは主キーを形成し、主キーは値のセットを一意にマップします。Ledgerは、トレーサビリティを実現するために記録のバージョンを管理します。また、Ledger は、同じレコードキーを持つレコードのハッシュチェーンを構築して、レコードの部分的な悪意のある変更を困難にしますが、ScalarDL はビザンチン故障検出機能を提供するためにハッシュチェーン構造を必要としません。 -Ledger は、データベースに依存しないプロパティを実現するためにデータベース抽象化を使用して検出プロトコルを実装します。 データベースの抽象化を効率的に実装するために、ユニバーサル トランザクション マネージャーである ScalarDB を使用します。 データベース抽象化は現在、PostgreSQL、MySQL、Oracle Database、Microsoft SQL Server、Apache Cassandra、Amazon DynamoDB、Amazon Aurora、Azure Cosmos DB、およびそれらの互換データベースをサポートしています。 Cassandra、HBase、DynamoDB、Cosmos DB などの非 ACID データベースの場合、ScalarDB は、スナップショットの分離と厳密なシリアル化機能をサポートするデータベースに依存しない ACID トランザクション機能を使用してトランザクションを処理します。 これらの ACID データベースに対して、ScalarDB には、トランザクション管理を基盤となるデータベースに委任するか、トランザクション管理を単独で実行するという 2 つのオプションが用意されています。 +Ledger は、データベースに依存しないプロパティを実現するためにデータベース抽象化を使用して検出プロトコルを実装します。データベースの抽象化を効率的に実装するために、ユニバーサルトランザクションマネージャーである ScalarDB を使用します。データベース抽象化は現在、PostgreSQL、MySQL、Oracle Database、Microsoft SQL Server、Apache Cassandra、Amazon DynamoDB、Amazon Aurora、Azure Cosmos DB、およびそれらの互換データベースをサポートしています。Cassandra、HBase、DynamoDB、Cosmos DB などの非 ACID データベースの場合、ScalarDB は、スナップショットの分離と厳密なシリアル化機能をサポートするデータベースに依存しない ACID トランザクション機能を使用してトランザクションを処理します。これらの ACID データベースに対して、ScalarDB には、トランザクション管理を基盤となるデータベースに委任するか、トランザクション管理を単独で実行するという2つのオプションが用意されています。 -Ledger はそれ自体だけでユーザーにサービスを提供できます。 このような場合、ScalarDL は、データベースに依存しないトランザクション機能を除いて、Oracle Blockchain Table や Amazon QLDB と同様に機能します。つまり、ScalarDL は単一の管理ドメイン (AD) でデータベースを管理するため、一部の限られたクラスのビザンチン障害のみを検出します。 +Ledger はそれ自体だけでユーザーにサービスを提供できます。このような場合、ScalarDL は、データベースに依存しないトランザクション機能を除いて、Oracle Blockchain Table や Amazon QLDB と同様に機能します。つまり、ScalarDL は単一の管理ドメイン (AD) でデータベースを管理するため、一部の限られたクラスのビザンチン故障のみを検出します。 -### Auditor +### Auditor -Auditor は、Byzantine 障害検出プロトコルの順序付けフェーズと検証フェーズを実装します。 また、 Auditor は Ledger と同じコントラクトを管理し、Ledger と同じデータベース抽象化を使用するため、 Auditor は基盤となるデータベースとしてさまざまなデータベースを使用できます。 +Auditor は、ビザンチン故障検出プロトコルの順序付けフェーズと検証フェーズを実装します。また、 Auditor は Ledger と同じコントラクトを管理し、Ledger と同じデータベース抽象化を使用するため、 Auditor は基盤となるデータベースとしてさまざまなデータベースを使用できます。 正確性を保証するには、 Auditor を Ledger が配置されている管理ドメインとは別の管理ドメインに配置する必要があります。 -### クライアント SDK +### Client SDK -クライアント SDK は、プロトコルに基づいて Ledger および Auditor と対話します。 Client SDKと統合されたアプリケーションプログラムは、デジタル署名用のキーペア(秘密鍵と証明書)を管理し、コントラクトの実行を認証するためのデジタル署名付き実行リクエストを作成します。 デジタル署名されたリクエストはデータベースにも保存されるため、誰がリクエストを実行したかを特定できるため、システムのセキュリティと追跡可能性がさらに高まります。 クライアント SDK は、クライアントとサーバー間でシークレットを共有することで HMAC 認証を使用することもできます。 ただし、HMAC 署名を追加したリクエストでは、そのような否認防止を提供できません。 -クライアント SDK は、Java、Node.js、ブラウザ内 JavaScript、Go などの複数の言語で作成されています。 +Client SDK は、プロトコルに基づいて Ledger および Auditor と対話します。Client SDK と統合されたアプリケーションプログラムは、電子署名用の鍵ペア (秘密鍵と証明書) を管理し、コントラクトの実行を認証するための電子署名付き実行リクエストを作成します。電子署名されたリクエストはデータベースにも保存されるため、誰がリクエストを実行したかを特定できるため、システムのセキュリティと追跡可能性がさらに高まります。Client SDK は、クライアントとサーバー間でシークレットを共有することで HMAC 認証を使用することもできます。ただし、HMAC 署名を追加したリクエストでは、そのような否認防止を提供できません。 +Client SDK は、Java、Node.js、ブラウザ内 JavaScript、Go などの複数の言語で作成されています。 ## 参考文献 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/installation-with-docker.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/installation-with-docker.mdx index d34b079f..3c84c069 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/installation-with-docker.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/installation-with-docker.mdx @@ -19,7 +19,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; - [Docker](https://www.docker.com/get-started/) 20.10 以降と [Docker Compose](https://docs.docker.com/compose/install/) V2 以降 - お使いのプラットフォームに応じて、Docker Web サイトの指示に従ってください。 + お使いのプラットフォームに応じて、Docker Web サイトのコマンドに従ってください。 ## scalardl-samples リポジトリをクローンする @@ -42,7 +42,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx';

ScalarDL Ledger のライセンスキーを設定する

- + ScalarDL Ledger のライセンスキーを設定する必要があります。`docker-compose.yml` ファイルで、`` をライセンスキーに置き換えてください。例: ```yaml @@ -54,8 +54,8 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx';

ScalarDL Ledger のライセンスキーを設定する

- - ScalarDL Ledger のライセンス キーを設定する必要があります。`docker-compose.yml` ファイルで、`` をライセンス キーに置き換えてください。例: + + ScalarDL Ledger のライセンスキーを設定する必要があります。`docker-compose.yml` ファイルで、`` をライセンスキーに置き換えてください。例: ```yaml services: @@ -81,7 +81,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; :::note -試用ライセンスをお持ちの場合は、この手順をスキップして [ScalarDL を起動](#start-up-scalardl) することができます。 +試用ライセンスをお持ちの場合は、この手順をスキップして [ScalarDL を起動](#start-up-scalardl)することができます。 ::: @@ -90,7 +90,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; この手順では、ScalarDL Ledger の証明書ファイルを設定する必要があります。

ScalarDL Ledger の証明書ファイルを設定する

- + 商用ライセンスを使用する場合は、`docker-compose.yml` ファイルを次のように更新する必要があります。 - 証明書ファイルのパスを変更する前(デフォルト構成): diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/overview.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/overview.mdx index 128985be..f8368ac0 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/overview.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/overview.mdx @@ -12,7 +12,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; ## ScalarDL とは何ですか? -ScalarDL は、トランザクションデータベースシステムにおいて、データ改ざんや悪意のある攻撃などの任意の故障(ビザンチン故障)を検知し、改ざん検知可能なデータベースシステムを実現するためのミドルウェアです。 新しいコンセンサスアルゴリズムにより、他にはないスケーラブルで実用的な方法でこのような検知を実現します。 +ScalarDL は、トランザクショナルデータベースシステムにおいて、データ改ざんや悪意のある攻撃などの任意の故障(ビザンチン故障)を検知し、改ざん検知可能なデータベースシステムを実現するためのミドルウェアです。新しいコンセンサスアルゴリズムにより、他にはないスケーラブルで実用的な方法でこのような検知を実現します。 ScalarDL はデータベースのやり取りに [ScalarDB](https://scalardb.scalar-labs.com/docs/) を使用するため、ScalarDB のデータベースに依存しない性質を継承し、リレーショナルデータベースや NoSQL などの幅広いデータベースで動作します。 @@ -22,38 +22,38 @@ ScalarDB がサポートするデータベースの詳細については、[サ パブリックブロックチェーン、プライベートブロックチェーン、台帳データベースなどのいくつかのソリューションは、データの改ざんや悪意のある攻撃に対処しますが、実用性、拡張性、正確性の点で制限があります。 -- パブリックブロックチェーン (ビットコインやイーサリアムなど) は、データのコピーを共有する個別に管理される多数 (多くの場合、数千) のノードでシステムを構成することにより、ビザンチン故障をマスキングするように設計されています。 ただし、多くのノード間でデータをコピーするため、システムの拡張性が課題があります。 さらに、パブリックピアツーピアネットワークに基づくシステムの管理と運用は、システム管理者が制御できないため、特にエンタープライズ システムでは本質的に困難です。 -- プライベートブロックチェーン (Hyperledger Fabric など) は、データのコピーを共有する少なくとも 4 つの個別に管理されるノード (またはサブシステム) でシステムを構成することにより、企業内のビザンチン故障をマスクするように設計されています。 ただし、多くのノード間でのデータのコピーによりシステムの拡張性が損なわれるだけでなく、個別に管理される 4 つのノードを管理することは、特にエンタープライズ システムでは必ずしも現実的ではありません。 +- パブリックブロックチェーン (ビットコインやイーサリアムなど) は、データのコピーを共有する個別に管理される多数 (多くの場合、数千) のノードでシステムを構成することにより、ビザンチン故障をマスキングするように設計されています。ただし、多くのノード間でデータをコピーするため、システムの拡張性が課題があります。さらに、パブリックピアツーピアネットワークに基づくシステムの管理と運用は、システム管理者が制御できないため、特にエンタープライズシステムでは本質的に困難です。 +- プライベートブロックチェーン (Hyperledger Fabric など) は、データのコピーを共有する少なくとも4つの個別に管理されるノード (またはサブシステム) でシステムを構成することにより、企業内のビザンチン故障をマスクするように設計されています。ただし、多くのノード間でのデータのコピーによりシステムの拡張性が損なわれるだけでなく、個別に管理される4つのノードを管理することは、特にエンタープライズシステムでは必ずしも現実的ではありません。 - 台帳データベース (Amazon QLDB や Oracle Database Blockchain Table など) は、単一の管理ドメインで実行されるように設計されているため、ビザンチン故障への対処が保証されません。 -一方、ScalarDL は、これらのソリューションとは一線を画しています。 個別に管理される 2 つのノード (サブシステム) だけでビザンチン故障を効果的に処理し、他のソリューションには見られない、スケーラブルで実用的で保証されたアプローチを提供します。 +一方、ScalarDL は、これらのソリューションとは一線を画しています。個別に管理される2つのノード (サブシステム) だけでビザンチン故障を効果的に処理し、他のソリューションには見られない、スケーラブルで実用的で保証されたアプローチを提供します。 次の表は、ScalarDL が他のソリューションとどのように異なるかをまとめたものです。 -| | ビザンチン障害に対処する方法 | 管理ドメインの数 | パフォーマンス (TPS) | スケーラビリティ | +| | ビザンチン故障に対処する方法 | 管理ドメインの数 | パフォーマンス (TPS) | スケーラビリティ | | :--: | :--: | :--: | :--: | :--: | | パブリックブロックチェーン (ビットコインやイーサリアムなど) | マスキング (N>2f*) | 数千以上 | 最大100件 | スケーラビリティが低い | | プライベートブロックチェーン (Hyperledger Fabric など) | マスキング (N>3f*) | 4つ以上 | 数千まで | スケーラビリティが低い | -| 台帳データベース (Amazon QLDB や Oracle Database Blockchain Table など) | 保証なし | 1 | 数千まで | スケーラビリティが限られている (スケールアップ アプローチのため) | -| **ScalarDL** | **検出 (N>f\*)** | **2** | **最大数万 (基盤となるコンピューティング リソースによっては、さらに多くなる可能性があります)** | **高い拡張性**| +| 台帳データベース (Amazon QLDB や Oracle Database Blockchain Table など) | 保証なし | 1 | 数千まで | スケーラビリティが限られている (スケールアップアプローチのため) | +| **ScalarDL** | **検出 (N>f\*)** | **2** | **最大数万 (基盤となるコンピューティングリソースによっては、さらに多くなる可能性があります)** | **高い拡張性**| -\* N はシステムを構成するノード (またはサブシステム) の数、f は障害のあるノードの数です。 指定された条件が満たされている限り、システムは正しく動作します。 +\* N はシステムを構成するノード (またはサブシステム) の数、f は障害のあるノードの数です。指定された条件が満たされている限り、システムは正しく動作します。 ## ScalarDL の使用例 -ScalarDL はさまざまな方法で使用できます。 ScalarDL の主な使用例を次に示します。 +ScalarDL はさまざまな方法で使用できます。ScalarDL の主な使用例を次に示します。 ### データの信頼性の保証 -データの信頼性を要求する規制や法律がいくつかあります。 たとえば、データ保護とプライバシーに関する規制 (GDPR や CCPA/CPRA など)、財務および税務関連のデジタル文書に関する法律、知的財産の先使用権、 WP.29での無線 (OTA) による自動車のソフトウェアアップデートに関する規制などです。 +データの信頼性を要求する規制や法律がいくつかあります。たとえば、データ保護とプライバシーに関する規制 (GDPR や CCPA/CPRA など)、財務および税務関連のデジタル文書に関する法律、知的財産の先使用権、WP.29 での無線 (OTA) による自動車のソフトウェアアップデートに関する規制などです。 -ScalarDL は、リアルタイムのビザンチン障害検出機能によりデータの信頼性を保証します。 +ScalarDL は、リアルタイムのビザンチン故障検出機能によりデータの信頼性を保証します。 ### データのトレーサビリティの管理 -データのトレーサビリティは企業にとって不可欠です。 たとえば、多くの業界は、製造業者に製品の原産地と目的地の正確な記録を維持することを義務付ける厳しい規制の対象となっています。 データトレーサビリティシステムにより、メーカーはこれらの規制への準拠を証明できます。 +データのトレーサビリティは企業にとって不可欠です。たとえば、多くの業界は、製造業者に製品の原産地と目的地の正確な記録を維持することを義務付ける厳しい規制の対象となっています。データトレーサビリティシステムにより、メーカーはこれらの規制への準拠を証明できます。 -ScalarDL は、改ざん検知可能な追記専用の台帳を使用してデータを保存します。 したがって、データのトレーサビリティを正しく管理します。 +ScalarDL は、改ざん検知可能な追記専用の Ledger を使用してデータを保存します。したがって、データのトレーサビリティを正しく管理します。 ## 参考文献 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/quickstart-overview.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/quickstart-overview.mdx index 9d2dcc69..987f3b8b 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/quickstart-overview.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/quickstart-overview.mdx @@ -10,4 +10,4 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; このカテゴリでは、Java Client SDK を使用して ScalarDL Ledger を通じて基本的なコントラクトを実行する方法についてのクイックスタートチュートリアルに従うことができます。 -開始するには、[ScalarDL Ledger を通じてコントラクトを実行する](getting-started.mdx) を参照してください。 +開始するには、[ScalarDL Ledger を通じてコントラクトを実行する](getting-started.mdx)を参照してください。 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/requirements.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/requirements.mdx index bd1fb4d7..f1301cb0 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/requirements.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/requirements.mdx @@ -12,9 +12,9 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; このページでは、ScalarDL を正しく使用するために必要なツールとそのバージョンについて説明します。 -## クライアント SDK +## Client SDK -ScalarDL は Java で記述されているため、ScalarDL を操作する最も簡単な方法は、[Java クライアント SDK](getting-started.mdx#クライアント-sdk-をダウンロードする) を使用することです。 +ScalarDL は Java で記述されているため、ScalarDL を操作する最も簡単な方法は、[Java Client SDK](getting-started.mdx#client-sdk-をダウンロードする) を使用することです。 ### Java @@ -111,7 +111,7 @@ ScalarDL は、次のデータベースとそのバージョン上で実行さ | バージョン | SQLite 3 | |:---------------------------------------|:----------| | **ScalarDL 3.9** | ✅ | - | **ScalarDL 3.8.2 以降のパッチバージョン** | ✅ | + | **ScalarDL 3.8.2 以降のパッチバージョン** | ✅ | | **ScalarDL 3.8.0 - 3.8.1** | ❌ |
diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/roadmap.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/roadmap.mdx index 2e2fd739..10c11aee 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/roadmap.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/roadmap.mdx @@ -29,8 +29,8 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; #### クラウドサポート -- **Azure Marketplace でのコンテナー オファリング** - - ユーザーは、Azure コンテナー オファリングを使用して ScalarDL をデプロイできます。これにより、ユーザーは従量課金制のサブスクリプション モデルを使用できます。 +- **Azure Marketplace でのコンテナーオファリング** + - ユーザーは、Azure コンテナーオファリングを使用して ScalarDL をデプロイできます。これにより、ユーザーは従量課金制のサブスクリプションモデルを使用できます。 - **Google Cloud Platform (GCP) サポート** - ユーザーは、GCP の Google Kubernetes Engine (GKE) に ScalarDL をデプロイできます。 @@ -46,8 +46,8 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; - **Red Hat OpenShift サポート** - ユーザーは、OpenShift 環境で ScalarDL 用の Red Hat 認定 Helm Charts を使用できます。 -- **Google Cloud Marketplace のコンテナ サービス** - - ユーザーは、Google Cloud コンテナー サービスを使用して ScalarDL をデプロイできます。これにより、ユーザーは従量課金制のサブスクリプション モデルを使用できます。 +- **Google Cloud Marketplace のコンテナサービス** + - ユーザーは、Google Cloud コンテナーサービスを使用して ScalarDL をデプロイできます。これにより、ユーザーは従量課金制のサブスクリプションモデルを使用できます。 ### CY2025 - diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/scalardl-benchmarks/README.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/scalardl-benchmarks/README.mdx index 87041986..48f408e8 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/scalardl-benchmarks/README.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/scalardl-benchmarks/README.mdx @@ -2,7 +2,7 @@ displayed_sidebar: docsJapanese --- -# ScalarDL ベンチマーク ツール +# ScalarDL ベンチマークツール import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -10,7 +10,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; -このチュートリアルでは、ScalarDL のベンチマーク ツールを実行する方法について説明します。 ベンチマークは、一連の標準に対してシステムがどのように動作するかを評価するのに役立ちます。 +このチュートリアルでは、ScalarDL のベンチマークツールを実行する方法について説明します。ベンチマークは、一連の標準に対してシステムがどのように動作するかを評価するのに役立ちます。 ## ワークロードのベンチマーク @@ -20,51 +20,51 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; ## 前提条件 -- 次の Java 開発キット (JDK) のいずれか: +- 次の Java Development Kit (JDK) のいずれか: - [Oracle JDK](https://www.oracle.com/java/technologies/downloads/) LTS バージョン 8 - [OpenJDK](https://openjdk.org/install/) LTS バージョン 8 - Gradle - [Kelpie](https://github.com/scalar-labs/kelpie) - - Kelpie は、システムのベンチマークや検証などのエンドツーエンドのテストを実行するためのフレームワークです。 [Kelpie Releases](https://github.com/scalar-labs/kelpie/releases) から最新バージョンを入手し、アーカイブ ファイルを解凍します。 + - Kelpie は、システムのベンチマークや検証などのエンドツーエンドのテストを実行するためのフレームワークです。[Kelpie Releases](https://github.com/scalar-labs/kelpie/releases) から最新バージョンを入手し、アーカイブファイルを解凍します。 :::note -現在、ベンチマーク ツールを実行するときに使用できるのは JDK 8 のみです。 +現在、ベンチマークツールを実行するときに使用できるのは JDK 8 のみです。 ::: ### 環境をセットアップする -ベンチマーク ツールには次のものが必要です。 +ベンチマークツールには次のものが必要です。 - ベンチマークを実行するクライアント - 対象の Ledger サーバー - ターゲット Auditor サーバー (オプション) -上記のコンポーネントをセットアップし、次のスタート ガイドに従ってクライアント、Ledger、および Auditor (オプション) のプロパティを構成します。 +上記のコンポーネントをセットアップし、次のスタートガイドに従ってクライアント、Ledger、および Auditor (オプション) のプロパティを構成します。 - [Ledger のみの構成](../getting-started.mdx) - [Ledger と Auditor の構成](../getting-started-auditor.mdx) :::note -クライアント SDK をダウンロードして証明書を手動で登録する必要はありません。 このチュートリアルで後ほど説明するように、ベンチマーク ツールは必要な証明書とコントラクトを自動的に登録します。 +Client SDK をダウンロードして証明書を手動で登録する必要はありません。このチュートリアルで後ほど説明するように、ベンチマークツールは必要な証明書とコントラクトを自動的に登録します。 ::: -## ベンチマーク ツールをセットアップする +## ベンチマークツールをセットアップする -次のセクションでは、ベンチマーク ツールのセットアップ方法について説明します。 +次のセクションでは、ベンチマークツールのセットアップ方法について説明します。 -### ScalarDL ベンチマーク リポジトリのクローンを作成します。 +### ScalarDL ベンチマークリポジトリのクローンを作成します。 -**ターミナル**を開き、次のコマンドを実行して ScalarDL ベンチマーク リポジトリのクローンを作成します。 +**ターミナル**を開き、次のコマンドを実行して ScalarDL ベンチマークリポジトリのクローンを作成します。 ```console git clone https://github.com/scalar-labs/scalardl-benchmarks ``` -次に、次のコマンドを実行して、ベンチマーク ファイルが含まれるディレクトリに移動します。 +次に、以下のコマンドを実行して、ベンチマークファイルが含まれるディレクトリに移動します。 ```console cd scalardl-benchmarks @@ -72,7 +72,7 @@ cd scalardl-benchmarks ### ツールを構築する -ベンチマーク ツールを構築するには、次のコマンドを実行します。 +ベンチマークツールを構築するには、次のコマンドを実行します。 ```console ./gradlew shadowJar @@ -80,13 +80,13 @@ cd scalardl-benchmarks ### ベンチマーク構成ファイルを準備する -ベンチマークを実行するには、ベンチマーク構成ファイルを準備する必要があります。 構成ファイルには、少なくとも実行するワークロード モジュールの場所とクライアント構成が必要です。 +ベンチマークを実行するには、ベンチマーク構成ファイルを準備する必要があります。構成ファイルには、少なくとも実行するワークロードモジュールの場所とクライアント構成が必要です。 -以下は、TPC-C ベンチマークを実行するための設定例です。 `client_config` の下の構成は、[以前にセットアップしたベンチマーク環境](#環境をセットアップする) と一致する必要があります。 +以下は、TPC-C ベンチマークを実行するための設定例です。`client_config` の下の構成は、[以前にセットアップしたベンチマーク環境](#環境をセットアップする)と一致する必要があります。 :::note -あるいは、 `.toml` ファイルで各クライアント構成項目を指定する代わりに、ScalarDL クライアント プロパティ ファイルを使用することもできます。 `config_file` が指定されている場合 (以下でコメントアウトされています)、`client_config` の下にある他のすべての設定は無視されます。 +あるいは、 `.toml` ファイルで各クライアント構成項目を指定する代わりに、ScalarDL クライアントプロパティファイルを使用することもできます。`config_file` が指定されている場合 (以下でコメントアウトされています)、`client_config` の下にある他のすべての設定は無視されます。 ::: @@ -112,7 +112,7 @@ config_file = "//client.properties" #private_key = "//client-key.pem" ``` -構成ファイル内のモジュールに渡すパラメータを定義できます。 詳細については、以下のサンプル構成ファイルと、[共通パラメータ](#共通パラメータ) で使用可能なパラメータを参照してください。 +構成ファイル内のモジュールに渡すパラメータを定義できます。詳細については、以下のサンプル構成ファイルと、[共通パラメータ](#共通パラメータ)で使用可能なパラメータを参照してください。 - **SmallBank:** [`smallbank-benchmark-config.toml`](https://github.com/scalar-labs/scalardl-benchmarks/blob/master/smallbank-benchmark-config.toml) - **TPC-C:** [`tpcc-benchmark-config.toml`](https://github.com/scalar-labs/scalardl-benchmarks/blob/master/tpcc-benchmark-config.toml) @@ -148,10 +148,10 @@ config_file = "//client.properties" さらに、次のオプションが利用可能です。 -- `--only-pre`。 証明書とコントラクトを登録し、データをロードするだけです。 -- `--only-process`。 ベンチマークのみを実行します。 -- `--除く-pre` 証明書とコントラクトの登録とデータのロードを行わずにジョブを実行します。 -- `--プロセスを除く`。 ベンチマークを実行せずにジョブを実行します。 +- `--only-pre`。証明書とコントラクトの登録、およびデータのロードのみを実行します。 +- `--only-process`。ベンチマークのみを実行します。 +- `--except-pre` 証明書とコントラクトの登録とデータのロードを行わずにジョブを実行します。 +- `--except-process`。ベンチマークを実行せずにジョブを実行します。 ## 共通パラメータ @@ -184,7 +184,7 @@ config_file = "//client.properties" | 名前 | 説明 | デフォルト | |:-------------------|:---------------------------------------|:---------| | `record_count` | ベンチマークのレコード数。 | `1000` | - | `payload_size` | 各レコードのペイロード サイズ (バイト単位)。 | `1000` | + | `payload_size` | 各レコードのペイロードサイズ (バイト単位)。 | `1000` | | `ops_per_tx` | 単一トランザクション内の操作の数。 | `2` | | `workload` | ワークロードのタイプ (A、C、または F)。 | `A` | | `load_concurrency` | ロードするスレッドの数。 | `1` | diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/scalardl-command-reference.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/scalardl-command-reference.mdx index cf0275d5..32eb1194 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/scalardl-command-reference.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/scalardl-command-reference.mdx @@ -2,25 +2,25 @@ displayed_sidebar: docsJapanese --- -# ScalarDL クライアント コマンド リファレンス +# ScalarDL クライアントコマンドリファレンス import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; -このページでは、ScalarDL コンポーネントと対話するためのクライアント コマンドである `scalardl` を紹介します。 +このページでは、ScalarDL コンポーネントと対話するためのクライアントコマンドである `scalardl` を紹介します。 ## コマンドの概要 - **ID 情報を登録する** - [`register-cert`](#register-cert): 指定された証明書を登録します。 - [`register-secret`](#register-secret): 指定されたシークレットを登録します。 -- **ビジネス ロジックを登録する** +- **ビジネスロジックを登録する** - [`register-contract`](#register-contract): 指定されたコントラクトを登録します。 - [`register-contracts`](#register-contracts): 指定されたコントラクトを登録します。 - [`register-function`](#register-function): 指定されたファンクションを登録します。 - [`register-functions`](#register-functions): 指定されたファンクションを登録します。 -- **登録されたビジネス ロジックを実行して一覧表示する** +- **登録されたビジネスロジックを実行して一覧表示する** - [`execute-contract`](#register-contract): 指定されたコントラクトを実行します。 - [`list-contracts`](#list-contracts): 登録されたコントラクトを一覧表示します。 - **台帳を検証します** @@ -72,10 +72,10 @@ scalardl register-secret --properties client.properties |:---------------------------|:--------------------------------------------------------------------------------| | `--config`, `--properties` | プロパティ形式の構成ファイル。 | | `--contract-binary-name` | 登録するコントラクトのバイナリ名。 | -| `--contract-class-file` | 登録するコントラクト クラス ファイル。 | +| `--contract-class-file` | 登録するコントラクトクラスファイル。 | | `--contract-id` | 登録するコントラクトの ID。 | -| `--contract-properties` | シリアル化された形式のコントラクト プロパティ。 | -| `--deserialization-format` | コントラクト プロパティの逆シリアル化形式。有効な値: JSON または STRING (デフォルト: JSON) | +| `--contract-properties` | シリアル化された形式のコントラクトプロパティ。 | +| `--deserialization-format` | コントラクトプロパティの逆シリアル化形式。有効な値: JSON または STRING (デフォルト: JSON) | [共通ユーティリティオプション](#共通ユーティリティオプション)も利用できます。 @@ -128,7 +128,7 @@ contract-class-file = "build/classes/java/main/com/org1/contract/StateReader.cla |:---------------------------|:--------------------------| | `--config`, `--properties` | プロパティ形式の設定ファイル。 | | `--function-binary-name` | 登録するファンクションのバイナリ名。 | -| `--function-class-file` | 登録するファンクションクラス ファイル。 | +| `--function-class-file` | 登録するファンクションクラスファイル。 | | `--function-id` | 登録するファンクションの ID。 | [共通ユーティリティオプション](#共通ユーティリティオプション)も利用できます。 @@ -262,6 +262,6 @@ scalardl validate-ledger --properties client.properties --asset-id 'some_asset,0 | オプション | 説明 | |:----------------------|:----------------------------------------------------| -| `-g`, `--use-gateway` | ゲートウェイを使用するためのフラグ。 | -| `-h`, `--help` | コマンドのヘルプ メッセージを表示します。 | -| `--stacktrace` | Java スタック トレースを `stderr` ストリームに出力します。 | +| `-g`, `--use-gateway` | ゲートウェイを使用するためのオプション。 | +| `-h`, `--help` | コマンドのヘルプメッセージを表示します。 | +| `--stacktrace` | Java スタックトレースを `stderr` ストリームに出力します。 | diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/scalardl-java-client-sdk/README.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/scalardl-java-client-sdk/README.mdx index 6efc072f..b498a789 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/scalardl-java-client-sdk/README.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/scalardl-java-client-sdk/README.mdx @@ -2,7 +2,7 @@ displayed_sidebar: docsJapanese --- -# ScalarDL Java クライアント SDK +# ScalarDL Java Client SDK import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; @@ -12,7 +12,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; ## インストール -ライブラリは [Maven Central](https://search.maven.org/search?q=a:scalardl-java-client-sdk) で入手できます。 Gradle などのビルド ツールを使用してアプリケーションにインストールできます。 +ライブラリは [Maven Central](https://search.maven.org/search?q=a:scalardl-java-client-sdk) で入手できます。Gradle などのビルドツールを使用してアプリケーションにインストールできます。 たとえば、Gradle では、次の依存関係を build.gradle に追加できます。 ``` @@ -34,4 +34,4 @@ dependencies { ## ライセンス -ScalarDL クライアント SDK は、AGPL (ルート ディレクトリの LICENSE ファイルにあります) と商用ライセンスの両方に基づいてデュアル ライセンスが付与されています。 必要に応じて、上記のライセンスのいずれかを選択できます。 商用ライセンスについては、[お問い合わせ](https://www.scalar-labs.com/contact/) までお問い合わせください。 +ScalarDL Client SDK は、AGPL (ルートディレクトリの LICENSE ファイルにあります) と商用ライセンスの両方に基づいてデュアルライセンスが付与されています。必要に応じて、上記のライセンスのいずれかを選択できます。商用ライセンスについては、[お問い合わせ](https://www.scalar-labs.com/contact/)までお問い合わせください。 diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/schema-loader.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/schema-loader.mdx index 6d21fbb5..cdea3054 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/schema-loader.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/schema-loader.mdx @@ -8,7 +8,7 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; -[Schema Tool for Scalar DB](https://scalardb.scalar-labs.com/docs/latest/schema-loader) を使用して ScalarDL のデータベース スキーマをロードする Docker イメージ。 +[Schema Tool for ScalarDB](https://scalardb.scalar-labs.com/docs/latest/schema-loader) を使用して ScalarDL のデータベーススキーマをロードする Docker イメージ。 ## 走り方 @@ -26,7 +26,7 @@ docker run --rm [--env SCHEMA_TYPE=auditor] ghcr.io/scalar-labs/scalardl-schema- --dynamo --region -u -p [-r BASE_RESOURCE_UNIT] ``` -### カサンドラの場合 +### Cassandra の場合 ```console docker run --rm [--env SCHEMA_TYPE=auditor] ghcr.io/scalar-labs/scalardl-schema-loader: \ diff --git a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/sdks.mdx b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/sdks.mdx index 596c7a60..9e7ccfd7 100644 --- a/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/sdks.mdx +++ b/i18n/versioned_docs/ja-jp/docusaurus-plugin-content-docs/version-3.9/sdks.mdx @@ -10,4 +10,4 @@ import TranslationBanner from '/src/components/_translation-ja-jp.mdx'; 以下は、ScalarDL の SDK のリストです。 -- [ScalarDL Java クライアント SDK](scalardl-java-client-sdk/README.mdx) +- [ScalarDL Java Client SDK](scalardl-java-client-sdk/README.mdx)