ScalarDL ノード クライアント SDK
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
これは、アプリケーションが ScalarDL ネットワークと対話できるようにする Node.js アプリケーション用のライブラリです。
開発とテストに使用されるノードのバージョン
このパッケージは、Node LTS v14.16.0 を使用して開発およびテストされています。 名前は fermium
。
これは、他のノード バージョンを使用する場合、パッケージの通常の動作を保証できないことを意味します。
インストール
このライブラリをインストールするには、任意の NPM パッケージ マネージャーを使用できます。 たとえば、NPM を使用してインストールするには:
npm install @scalar-labs/scalardl-node-client-sdk
方法
ClientService インスタンスを作成する
ClientService
クラスはこのパッケージのメインクラスです。
ScalarDLネットワークをリクエストするために以下の機 能を提供します。
名前 | 用途 |
---|---|
registerCertificate | ScalarDL ネットワークにクライアントの証明書を登録するには |
registerContract | ScalarDL ネットワークに (登録済みクライアントの) 契約を登録するには |
listContracts | クライアントの登録済み契約を一覧表示するには |
execute と executeContract (将来廃止される) | 顧客が登録した契約を履行するため |
validateLedger | ScalarDL ネットワーク上の資産を検証して、改ざんされているかどうかを確認するには |
上記のメソッドのいずれかの実行時にエラーが発生した場合、ClientError
がスローされます。 ClientError.code
は追加のエラー コンテキストを提供します。 ステータス コードの仕様については、以下の 実行時エラー セクションを参照してください。
以下のコード スニペットを使用して、ClientService インスタンスを作成します。
const { ClientService } = require('@scalar-labs/scalardl-node-client-sdk');
const clientService = new ClientService(clientProperties);
clientProperties
引数はコンストラクターにとって必須です。
これは、ユーザー foo@example.com
が ScalarDL ネットワークのサーバー scalardl-server.example.com:50051
に接続するため に使用するプロパティの例です。
{
'scalar.dl.client.server.host': 'scalardl-server.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.private_key_path is applied when scalar.dl.client.private_key_pem is not given
'scalar.dl.client.private_key_path': 'path-to-key-file',
'scalar.dl.client.cert_pem': '-----BEGIN CERTIFICATE-----\nMIICjTCCAj...\n',
// scalar.dl.client.cert_path is applied when scalar.dl.client.cert_pem is not given
'scalar.dl.client.cert_path': 'path-to-certificate-file',
'scalar.dl.client.cert_version': 1,
'scalar.dl.client.tls.enabled': false,
'scalar.dl.client.tls.ca_root_cert_pem': '-----BEGIN CERTIFICATE-----\n...\n',
// scalar.dl.client.tls.ca_root_cert_path is applied when scalar.dl.client.tls.ca_root_cert_pem is not given
'scalar.dl.client.tls.ca_root_cert_path': 'path-to-ca-root-certificate-file',
'scalar.dl.client.authorization.credential': '...',
'scalar.dl.client.proxy.server': '...',
}
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);