3

私は 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 から、および run-fabric.sh を介して cli からトランザクションを実行できましたが、JS からは実行できないようです。新しいユーザーを作成し、クライアントを設定しましたおよび cert with 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);

私のコードややり方に何か問題がありますか? 誰かが私が間違っていることを教えてもらえますか? 同様の質問をいくつか見たことがありますが、それらは作曲家が主に使用されていたときに発生し、そこからの回答で問題を解決できませんでした。

4

2 に答える 2