Hyperledger Fabric 从 Node.js SDK 2.2 版本获取用户私钥
Hyperledger Fabric get User Private Key from Node.js SDK 2.2 version
我正在构建一个 Node.js 应用程序,它使用与区块链网络交互的 Hyperledger Fabric SDK 2.2 版本。
我想要实现的是,在检索到钱包身份后,从 Node.js 应用程序中检索发出请求的用户的私钥。
// Create a new file system based wallet for managing identities.
const walletPath = path.join(process.cwd(), 'wallet');
const wallet = await Wallets.newFileSystemWallet(walletPath);
logger.info(`API/` + requestType + `: Wallet path: ${walletPath}`);
// Check to see if we've already enrolled the user.
const userExists = await wallet.get(in_username);
if (!userExists) {
logger.info('API/` + requestType + `: An identity for the user: '+in_username+' does not exist in the wallet');
//return 'An identity for the user: "'+in_username+'" does not exist in the wallet';
throw new Error('An identity for the user: "'+in_username+'" does not exist in the wallet');
}
if (userExists && userExists.type === 'X.509') {
console.log("userPrivateKey 1 : " + userExists.type);
const privateKey = (userExists as X509Identity).credentials.privateKey;
console.log("userPrivateKey 1 : " + privateKey);
}
因此,我从文档中看到了上述检索私钥的示例。我成功检索到身份并获得真正X509的证书类型。
但在那之后,我无法将身份转换或转换为 X509 身份以检索私钥。
起初我无法继续,因为该行出现此错误:
const privateKey = (userExists as X509Identity).credentials.privateKey;
错误:
Type assertion expressions can only be used in TypeScript files.
我不是 Node.js 方面的专家,我被告知这可能无法“投射”。但是我很困惑,因为我在 Hyperledger Fabric Node SDK 的文档中看到了这一点。
有人知道这方面的任何解决方案,甚至是关于如何继续的提示吗?
谢谢
我说得太复杂了!
由于 X509 的接口是从 Identity 接口扩展而来的,所以下面的代码是有效的:
const privateKey = userExists.credentials.privateKey;
比看起来容易,但也很棘手。感谢您的宝贵时间!
我正在构建一个 Node.js 应用程序,它使用与区块链网络交互的 Hyperledger Fabric SDK 2.2 版本。
我想要实现的是,在检索到钱包身份后,从 Node.js 应用程序中检索发出请求的用户的私钥。
// Create a new file system based wallet for managing identities.
const walletPath = path.join(process.cwd(), 'wallet');
const wallet = await Wallets.newFileSystemWallet(walletPath);
logger.info(`API/` + requestType + `: Wallet path: ${walletPath}`);
// Check to see if we've already enrolled the user.
const userExists = await wallet.get(in_username);
if (!userExists) {
logger.info('API/` + requestType + `: An identity for the user: '+in_username+' does not exist in the wallet');
//return 'An identity for the user: "'+in_username+'" does not exist in the wallet';
throw new Error('An identity for the user: "'+in_username+'" does not exist in the wallet');
}
if (userExists && userExists.type === 'X.509') {
console.log("userPrivateKey 1 : " + userExists.type);
const privateKey = (userExists as X509Identity).credentials.privateKey;
console.log("userPrivateKey 1 : " + privateKey);
}
因此,我从文档中看到了上述检索私钥的示例。我成功检索到身份并获得真正X509的证书类型。
但在那之后,我无法将身份转换或转换为 X509 身份以检索私钥。
起初我无法继续,因为该行出现此错误:
const privateKey = (userExists as X509Identity).credentials.privateKey;
错误:
Type assertion expressions can only be used in TypeScript files.
我不是 Node.js 方面的专家,我被告知这可能无法“投射”。但是我很困惑,因为我在 Hyperledger Fabric Node SDK 的文档中看到了这一点。
有人知道这方面的任何解决方案,甚至是关于如何继续的提示吗?
谢谢
我说得太复杂了!
由于 X509 的接口是从 Identity 接口扩展而来的,所以下面的代码是有效的:
const privateKey = userExists.credentials.privateKey;
比看起来容易,但也很棘手。感谢您的宝贵时间!