Ошибка: доступ запрещен для [JoinChain] [mychannel]: [Не удалось проверить, создатель предложения удовлетворяет политике MSP [Администраторы]: [Это удостоверение не является администратором]] - PullRequest
0 голосов
/ 26 февраля 2019

joinChannel.js выдает следующую ошибку:

Successfully loaded peeradmin from persistence
{ block:
   { header:
      { number: [Object],
        previous_hash: [Object],
        data_hash: [Object] },
     data: { data: [Array] },
     metadata: { metadata: [Array] } } }
error: [client-utils.js]: sendPeersProposal - Promise is rejected: Error: access denied for [JoinChain][mychannel]: [Failed verifying that proposal's creator satisfies local MSP principal during channelless check policy with policy [Admins]: [This identity is not an admin]]
not good

Точно, на что жалуется ошибка?У меня возникают проблемы с определением, является ли это личным ключом администратора равноправного администратора, сертификатом равноправного администратора, сертификатом равноправного доступа или другой конфигурацией.Я взял сертификат равноправного администратора, добавил его на панель мониторинга IBP и сделал «Синхронизировать сертификаты».Какие вещи нужно проверить, чтобы убедиться, что я действительно указываю правильные учетные данные для администратора?


var Fabric_Client = require('fabric-client');
var path = require('path');
var fs = require('fs');

var fabric_client = new Fabric_Client();

var ordererTLSCert = fs.readFileSync('./orderercert.pem');

var peerAdminKey = Buffer.from(fs.readFileSync('./keystore-1.pem')).toString();
// var peerAdminCert =  Buffer.from(fs.readFileSync('./admincert-1.pem')).toString()
var peerAdminCert = Buffer.from(fs.readFileSync('./signcert-1.pem')).toString();

fabric_client.setAdminSigningIdentity(peerAdminKey, peerAdminCert, 'org2');

var channel = fabric_client.newChannel('mychannel');
var peer = fabric_client.newPeer('grpcs://169.xx.xx.xx:xxxxx', {
  pem: peerTlsCert,
  'ssl-target-name-override': null,
});
var orderer = fabric_client.newOrderer(
  'grpcs://nfxxx-orderer.us08.blockchain.ibm.com:xxxxx',
  {
    pem: Buffer.from(ordererTLSCert).toString(),
    'ssl-target-name-override': null,
  }
);

channel.addPeer(peer);
channel.addOrderer(orderer);

var tx_id = null;

tx_id = fabric_client.newTransactionID(true);
let g_request = {
  txId: tx_id,
  // orderer,
};
channel
  .getGenesisBlock(g_request)
  .then(block => {
    console.log({ block });
    tx_id = fabric_client.newTransactionID(true);
    let j_request = {
      targets: peer,
      block,
      txId: tx_id,
    };
    return channel.joinChannel(j_request, 30000);
  })
  .then(results => {
    console.log(results);
    if (results && results[0].response && results[0].response.status == 200) {
      // good
      console.log('good');
    } else {
      console.log('not good');
      // not good
    }
  })
  .catch(err => {
    console.error(err);
  });

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Попробуйте:

 tx_id = fabric_client.newTransactionID(true);

Для создания или подключения к каналу вам необходимы права администратора

0 голосов
/ 26 февраля 2019

Когда вы присоединяете одноранговый узел к каналу, транзакция должна быть подписана с использованием равноправного локального администратора.Локальный администратор определяется по его сертификату, находящемуся в папке peer msp / admincerts .

...