メインコンテンツへスキップ

はじめに

このガイドでは、ocap-libs を使い始めるための簡単なステップバイステップのウォークスルーを提供します。わずか数分で、必要なパッケージをインストールし、最初の分散型 ID (DID) を作成し、互換性のある暗号ウォレットを生成し、いくつかの便利なユーティリティの使用方法を学びます。

ステップ 1: パッケージのインストール

まず、コアパッケージをインストールする必要があります。DID の作成、ウォレット管理、暗号化、および一般的なユーティリティのためのライブラリが必要です。

ターミナルを開き、次のコマンドを実行します。

Installation Command

bash
pnpm install @arcblock/did @ocap/wallet @ocap/mcrypto @ocap/util

このコマンドは、4 つの必須パッケージをインストールします。

  • @arcblock/did: 分散型 ID を作成および管理するためのメインライブラリ。
  • @ocap/wallet: 署名と検証のために暗号ウォレットを作成および使用するためのユーティリティ。
  • @ocap/mcrypto: 鍵生成などの基盤となる暗号化機能を処理します。
  • @ocap/util: データエンコーディング、変換などのための共有ヘルパー関数を提供します。

ステップ 2: ウォレットと DID の作成

パッケージがインストールされたので、ウォレットとそれに対応する DID を作成しましょう。ウォレットは暗号鍵を保持し、DID はそれらの鍵から派生した公開識別子です。

新しい JavaScript ファイル (例: create-did.js) を作成し、次のコードを追加します。

Create Wallet and DID

javascript
const { fromSecretKey: walletFromSecretKey } = require('@ocap/wallet');
const { fromSecretKey: didFromSecretKey } = require('@arcblock/did');
const Mcrypto = require('@ocap/mcrypto');
const assert = require('assert');

// Mcrypto から必要な型をデストラクチャリングします
const { types } = Mcrypto;

// 1. Ed25519 を使用して新しい暗号鍵ペアを生成します
const keyPair = Mcrypto.Signer.Ed25519.genKeyPair();
console.log('Generated Secret Key (Buffer):', keyPair.secretKey);

// 2. DID とウォレットのプロパティを定義します
// これにより、同じ暗号化設定で生成されることが保証されます。
const spec = {
  role: types.RoleType.ROLE_ACCOUNT, // 標準ユーザーアカウントのロールタイプ
  pk: types.KeyType.ED25519,          // 公開鍵アルゴリズム
  hash: types.HashType.SHA3,         // ハッシュアルゴリズム
};

// 3. 秘密鍵からウォレットインスタンスを作成します
const wallet = walletFromSecretKey(keyPair.secretKey, spec);
console.log('\nWallet Address:', wallet.address);

// 4. 同じ秘密鍵と仕様から DID を作成します
const didAddress = didFromSecretKey(keyPair.secretKey, spec);
const did = `did:abt:${didAddress}`;
console.log('Generated DID:', did);

// 5. ウォレットアドレスと DID アドレスが同一であることを確認します
assert.strictEqual(wallet.address, didAddress, 'Wallet address and DID address should match!');
console.log('\n✅ Success! Wallet address and DID are a match.');

ターミナルからスクリプトを実行します。

bash
node create-did.js

新しく生成された秘密鍵、ウォレットアドレス、および DID がコンソールに出力されます。ウォレットのアドレスが完全な DID 文字列のコアコンポーネントであることに注意してください。

ステップ 3: メッセージの署名と検証

ウォレットの主な機能は、メッセージに署名することによって DID の所有権を証明することです。これは、認証やアクションの承認にとって非常に重要です。

スクリプトに署名と検証を追加しましょう。

Sign and Verify

javascript
// ... (ステップ 2 のコードを維持) ...

// 6. ウォレット/DID の所有権を証明するためにメッセージに署名します
const message = 'Hello, decentralized world!';
const signature = wallet.sign(message);

console.log('\nOriginal Message:', message);
console.log('Generated Signature:', signature);

// 7. 元のメッセージに対して署名を検証します
const isVerified = wallet.verify(message, signature);
assert.ok(isVerified, 'Signature should be verified successfully.');

console.log(`\nIs the signature valid? ${isVerified}`);
console.log('✅ Success! The signature has been verified.');

更新されたスクリプトを実行すると、まずウォレットと DID が作成され、次にメッセージに署名し、署名が有効であることを正常に検証します。

ステップ 4: ユーティリティ関数の使用

@ocap/util パッケージは多くの便利な関数を提供します。たとえば、ステップ 2 で生成された秘密鍵はバッファです。ユーティリティを使用して、それを Hex や Base58 のようなより読みやすい形式に変換できます。

Using Utilities

javascript
// ... (ステップ 3 のコードを維持) ...
const { toHex } = require('@ocap/util');

// 8. 表示または保存のために秘密鍵バッファを 16 進文字列に変換します
const secretKeyHex = toHex(keyPair.secretKey);
console.log('\nSecret Key (Hex Format):', secretKeyHex);
console.log('✅ Success! Used a utility to format the secret key.');

この簡単な例は、ユーティリティが一般的なデータ操作タスクをどのように簡素化できるかを示しています。

次のステップ

おめでとうございます!これで、分散型 ID の作成、ウォレットの生成、メッセージの署名と検証への使用、ユーティリティ関数の活用に成功しました。これで、DID をアプリケーションに統合するための基本的な構成要素が手に入りました。

詳細については、各パッケージのコアコンセプトと詳細な API リファレンスをご覧ください。