Я пытаюсь взаимодействовать с коллегами из JavaScript, и я продолжаю получать
{ Error: 2 UNKNOWN: access denied: channel [mychannel] creator org [Org1MSP]
at Object.exports.createStatusError (/blockchain-api-js/node_modules/grpc/src/common.js:87:15)
at Object.onReceiveStatus (/blockchain-api-js/node_modules/grpc/src/client_interceptors.js:1188:28)
at InterceptingListener._callNext (/blockchain-api-js/node_modules/grpc/src/client_interceptors.js:564:42)
at InterceptingListener.onReceiveStatus (/blockchain-api-js/node_modules/grpc/src/client_interceptors.js:614:8)
at callback (/blockchain-api-js/node_modules/grpc/src/client_interceptors.js:841:24)
code: 2,
metadata: [Object],
details: 'access denied: channel [mychannel] creator org [Org1MSP]' }
Я использую образец fabric-ca и мне удалось выполнить транзакции из cli и из cli через run-fabric.sh, но я не могу этого сделать из JS, я создал нового пользователя и установить клиента и сертификат с помощью client.setTlsClientCertAndKey(cert, key);
, я даже пытался выдать администраторский сертификат и ключ от /data/orgs/org1/admin/msp/signcerts, /data/orgs/org1/admin/msp/admincerts
и /data/orgs/org1/admin/msp/keystore
, а также ключи от /data/tls/
, но безуспешно
И это часть кода, который я использую:
var channel = this.client.newChannel('mychannel')
let serverCert = fs.readFileSync('/data/org0-ca-chain.pem');
channel.addOrderer(
this.client.newOrderer(
config.orderers['orderer1-org0'].url,
{
pem: Buffer.from(serverCert).toString()
}
)
);
serverCert = fs.readFileSync('/data/org1-ca-chain.pem');
const peer1 = this.client.newPeer(
config.peers['peer1-org1'].url,
{
pem: Buffer.from(serverCert).toString()
}
);
channel.addPeer(peer1);
this.eventhubs = []
this.eventhubs.push(channel.newChannelEventHub(peer1));
serverCert = fs.readFileSync('/data/org2-ca-chain.pem');
const peer2 = this.client.newPeer(
config.peers['peer1-org2'].url,
{
'pem': Buffer.from(serverCert).toString()
}
);
channel.addPeer(peer2);
this.eventhubs.push(channel.newChannelEventHub(peer2));
this.channel = channel;
console.log(this.channel)
return this.channel.sendTransactionProposal(request);
Что-то не так с моим кодом или с тем, как я это делаю? Может кто-нибудь сказать мне, что я делаю не так? Я видел несколько похожих вопросов, но они возникали, когда в основном использовался композитор, и я не мог решить мою проблему с помощью ответов оттуда,