Я пытаюсь импортировать идентификаторы уже зарегистрированных пользователей в InMemoryWallet. Основная идея заключается в том, чтобы импортировать пользователей из внешнего источника, когда это необходимо приложению (например, БД, в которой хранится вся необходимая информация, например, сертификаты и закрытые ключи для каждого пользователя), чтобы избежать хранения файлов в FS. И загрузить admin
личность, когда мое приложение запустилось. Но не повезло с этим.
// Here I'm using data from wallet files which was created after enroll of admin user
const cert = '-----BEGIN CERTIFICATE-----certificatestring-----END CERTIFICATE-----'
const pk = '-----BEGIN PRIVATE KEY-----privatekeystring-----END PRIVATE KEY-----'
const adminName = 'admin'
adminIdentity = X509WalletMixin.createIdentity('Org1MSP', cert, pk);
wallet = new InMemoryWallet()
await wallet.import(adminName, adminIdentity)
const adminExists = await wallet.exists(adminName);
console.log('adminExists', adminExists) --> Exists!!!
await gateway.connect(ccpPath, { wallet, identity: adminName, discovery: { enabled: true, asLocalhost: true } });
ca = gateway.getClient().getCertificateAuthority();
adminIdentity = gateway.getCurrentIdentity();
// Trying to create User
const userId = 'someId'
const secret = await ca.register({ affiliation: 'org1.department1', enrollmentID: userId, role: 'client' }, adminIdentity);
const enrollment = await ca.enroll({ enrollmentID: userId, enrollmentSecret: secret });
const userIdentity = X509WalletMixin.createIdentity('Org1MSP', enrollment.certificate, enrollment.key.toBytes());
await wallet.import(userId, userIdentity);
UPD: При выполнении я получаю эту ошибку: (node:85462) UnhandledPromiseRejectionWarning: Error: fabric-ca request register failed with errors [[{"code":20,"message":"Authentication failure"}]]
Но когда я делаю то же самое с FileSystemWallet
все работает как и ожидалось ....