README
ScalarDL Web クライアント SDK
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
これは、アプリケーションが ScalarDL ネットワ ークと対話できる Web アプリケーション用のライブラリです。
開発とテストに使用されるノードのバージョン
このパッケージは、Node LTS v14.16.0 を使用して開発およびテストされています。 名前は「fermium」。 これは、他のノード バージョンを使用する場合、パッケージの通常の動作を保証できないことを意味します。
インストール
パッケージマネージャーを使用してこのライブラリをインストールできます。 たとえば、NPM を使用してインストールするには:
NPM
npm install @scalar-labs/scalardl-web-client-sdk
@scalardl-labs/scalardl-web-client-sdk/dist に静的にインポートできるバンドル scalardl-web-client-sdk.bundle.js
もあります。
方法
ClientService インスタンスを作成する
ClientService
クラスはこのパッケージのメインクラスです。
ScalarDLネットワークをリクエストするために以下の機能を提供します。
名前 | 用途 |
---|---|
registerCertificate | クライアントの証明書を ScalarDL ネットワークに登録するには |
registerContract | ScalarDL ネットワークの登録済みクライアントに契約を登録するには |
listContracts | クライアントの登録されているすべての契約を一覧表示するには |
executeContract | お客様の登録された契約を履行するため |
validateLedger | ScalarDL ネットワークの資産を検証して改ざんされているかどうかを確認するには |
上記のメソッドのい ずれかの実行時にエラーが発生した場合、ClientError
がスローされます。 ClientError.statusCode
は追加のコンテキストを提供します。 ステータス コードの仕様については、以下の 実行時エラー セクションを参照してください。
以下のコード スニペットを使用して、ClientService インスタンスを作成します。
import { ClientService } from '@scalar-labs/scalardl-web-client-sdk';
const clientService = new ClientService(clientProperties);
または、静的リリースを使用している場合は、次のことを試してください。
<head>
<meta charset="utf-8">
<script src="scalardl-web-client-sdk.bundle.js"></script>
</head>
<script>
const clientService = new Scalar.ClientService(clientProperties);
</script>
clientProperties
引数はコンストラクターにとって必須です。
これは、ユーザー foo@example.com
が ScalarDL ネットワークのサーバー scalardl.example.com:50051
に接続するために使用するプロパティの例です。
{
'scalar.dl.client.server.host': 'scalardl.example.com',
'scalar.dl.client.server.port': 50051,
'scalar.dl.client.server.privileged_port': 50052,
'scalar.dl.client.cert_holder_id': 'foo@example.com',
'scalar.dl.client.private_key_pem': "-----BEGIN EC PRIVATE KEY-----\nMHc...",
'scalar.dl.client.cert_pem': "-----BEGIN CERTIFICATE-----\nMIICjTCCAj...n",
'scalar.dl.client.cert_version': 1,
'scalar.dl.client.tls.enabled': false,
}
ScalarDL ネットワークで Auditor 機能が有効になっている場合は、次の例のように追加のプロパティを指定します。 この例では、クライアントは Auditor 機関 scalardl-auditor.example.com
と対話し、契約実行時のデータ改ざんなどのビザンチン障害を検出します。
{
'scalar.dl.client.auditor.enabled': true,
'scalar.dl.client.auditor.host': 'scalardl-auditor.example.com',
'scalar.dl.client.auditor.port': 40051,
'scalar.dl.client.auditor.privileged_port': 40052,
}
以下の説明では、clientService インスタンスがあると仮定します。
証明書を登録する
registerCertificate
関数を使用して、ScalarDL ネットワークに証明書を登録します。
await clientService.registerCertificate();
ステータスの詳細については、下記のステータスコードセクションを参照してください。
契約書を登録する
契約を登録するには、registerContract
関数を使用します。
await clientService.registerContract('contractId', 'com.example.contract.contractName', contractUint8Array, propertiesObject);
関数を登録する
関数を登録するには、registerFunction
関数を使用します。
await clientService.registerFunction('functionId, 'com.example.function.functionName', functionUint8Array);