跳到主要内容

入门指南

本指南提供了一个快速、分步的演练,帮助您启动并运行 ocap-libs。只需几分钟,您将安装必要的软件包,创建您的第一个去中心化身份(DID),生成一个兼容的加密钱包,并学习如何使用一些有用的工具函数。

第 1 步:安装软件包

首先,您需要安装核心软件包。您将需要用于 DID 创建、钱包管理、密码学和通用工具的库。

打开您的终端并运行以下命令:

安装命令

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

此命令安装了四个基本软件包:

  • @arcblock/did:用于创建和管理去中心化身份的主要库。
  • @ocap/wallet:用于创建和使用加密钱包进行签名和验证的工具。
  • @ocap/mcrypto:处理底层的加密功能,例如密钥生成。
  • @ocap/util:提供用于数据编码、转换等的共享辅助函数。

第 2 步:创建钱包和 DID

现在软件包已安装,让我们来创建一个钱包及其对应的 DID。钱包持有加密密钥,而 DID 是从这些密钥派生的公共标识符。

创建一个新的 JavaScript 文件(例如 create-did.js)并添加以下代码:

创建钱包和 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 的所有权。这对于身份验证和授权操作至关重要。

让我们在脚本中添加签名和验证功能:

签名和验证

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 步中生成的私钥是一个 Buffer。您可以使用工具将其转换为更易读的格式,如十六进制或 Base58。

使用工具

javascript
// ... (保留第 3 步的代码) ...
const { toHex } = require('@ocap/util');

// 8. 将私钥缓冲区转换为十六进制字符串以便显示或存储
const secretKeyHex = toHex(keyPair.secretKey);
console.log('\nSecret Key (Hex Format):', secretKeyHex);
console.log('✅ Success! Used a utility to format the secret key.');

这个简单的示例展示了工具如何简化常见的数据操作任务。

后续步骤

恭喜!您已成功创建了一个去中心化身份,生成了一个钱包,用它签署并验证了一条消息,并利用了一个工具函数。您现在拥有了将 DID 集成到应用程序中的基本构建模块。

要了解更多信息,请深入研究每个软件包的核心概念和详细的 API 参考: