Как установить сертификат при вызове createChannel в Fabric Node SDK - PullRequest
0 голосов
/ 29 июня 2018

Помогите мне пожалуйста с созданием канала. В узле SDK у меня есть

// // extract the channel config bytes from the envelope to be signed
const envelope = fs.readFileSync(`${channelConfigPath+channelName}.tx`),
 channelConfig = client.extractChannelConfig(envelope),
 signature     = client.signChannelConfig(channelConfig);

 // get an admin based transactionID
 // send to orderer
 const request = {
   config: channelConfig,
   signatures: [signature],
   name: channelName,
   txId: client.newTransactionID(true)
 };

client.createChannel(request)

Но я получаю ошибку в docker logs orderer.example.com

-2018-06-26 14:41:04.631 UTC [policies] Evaluate -> DEBU 120 Signature set  did not satisfy policy /Channel/Application/Gov1MSP/Admins
-2018-06-26 14:41:04.631 UTC [policies] Evaluate -> DEBU 121 == Done Evaluating *cauthdsl.policy Policy /Channel/Application/Gov1MSP/
-2018-06-26 14:41:04.631 UTC [policies] func1 -> DEBU 122 Evaluation Failed: Only 0 policies were satisfied, but needed 1 of [ Gov1MSP.Admins ]
-2018-06-26 14:41:04.631 UTC [policies] Evaluate -> DEBU 123 Signature set did not satisfy policy /Channel/Application/ChannelCreationPolicy
-2018-06-26 14:41:04.631 UTC [policies] Evaluate -> DEBU 124 == Done Evaluating *policies.implicitMetaPolicy Policy /Channel/Application/ChannelCreationPolicy
-2018-06-26 14:41:04.631 UTC [orderer/common/broadcast] Handle -> WARN 125 [channel: usachannel] Rejecting broadcast of config message from 172.18.0.1:46638 because of error: Error authorizing update: Error validating DeltaSet: Policy for [Groups] /Channel/Application not satisfied: Failed to reach implicit threshold of 1 sub-policies, required 1 remaining
-2018-06-26 14:41:04.631 UTC [orderer/common/server] func1 -> DEBU 126 Closing Broadcast stream

Итак, как мне установить сертификат из /etc/hyperledger/msp/users/Admin@org1.example.com/msp в Fabric Node SDK?

P.S. с сертификатом выше, я могу создать канал, используя peer channel create

1 Ответ

0 голосов
/ 23 июля 2018

Я использую версию «^ 1.2.0» для Fabric-Client и Fabric-CA-Client.

Чтобы установить подписывающую личность клиента, вам необходимо использовать метод setAdminSigningIdentity .

Для закрытого ключа я использовал закрытый ключ в каталоге keystore папки msp. В моем случае это было: "crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore". А для сертификата я использовал ту же папку, но файл "signcerts/Admin@org1.example.com-cert.pem".

Тогда вам нужно использовать newTransaction (true), потому что если вы этого не сделаете, он будет использовать userContext, который вы не хотите, потому что вы предоставили adminSigningIdentity.

...