有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java访问被拒绝:hyperledger结构通道。初始化()

我正在使用java sdk,初始化通道时出错

        Channel mychannel = fabClient.getInstance().newChannel(Config.CHANNEL_NAME);
        Orderer orderer = fabClient.getInstance().newOrderer(Config.ORDERER_NAME, Config.ORDERER_URL);
        Peer peer0_org1 = fabClient.getInstance().newPeer(Config.ORG1_PEER_0, Config.ORG1_PEER_0_URL);
        Peer peer1_org1 = fabClient.getInstance().newPeer(Config.ORG1_PEER_1, Config.ORG1_PEER_1_URL);
        mychannel.addOrderer(orderer);
        mychannel.addPeer(peer0_org1);
        mychannel.addPeer(peer1_org1);
        mychannel.initialize();

我得到以下错误

ERROR Channel - Sending proposal to peer0.org1.example.com failed because of: gRPC failure=Status{code=UNKNOWN, description=access denied: channel [mychannel] creator org [Org1MSP], cause=null} java.lang.Exception: io.grpc.StatusRuntimeException: UNKNOWN: access denied: channel [mychannel] creator org [Org1MSP]

Caused by: org.hyperledger.fabric.sdk.exception.TransactionException: org.hyperledger.fabric.sdk.exception.ProposalException: getConfigBlock for channel mychannel failed with peer peer1.org1.example.com. Status FAILURE, details: Sending proposal to peer1.org1.example.com failed because of: gRPC failure=Status{code=UNKNOWN, description=access denied: channel [mychannel] creator org [Org1MSP], cause=null}


共 (1) 个答案

  1. # 1 楼答案

    这表示结构CA服务器用于颁发证书的签名CA证书与用于进行授权检查的MSP的cacerts或intermediatecerts文件夹中的证书不匹配

    用于进行授权检查的MSP取决于发生错误时正在执行的操作。例如,如果您试图在对等机上安装chaincode,则使用对等机文件系统上的本地MSP;否则,如果您正在执行某些特定于通道的操作,例如在特定通道上实例化链码,则将使用genesis块中的MSP或通道的最新配置块

    发生这种情况的原因有多种,包括:

    • 您使用cryptogen生成密钥材料,但未使用cryptogen生成的签名密钥和证书启动fabric ca服务器 停止结构ca服务器。
    • 将加密配置/对等组织//ca/*pem复制到 $FABRIC\u CA\u SERVER\u HOME/CA-cert.pem
    • 将加密配置/peerOrganizations//ca/*\u sk复制到$FABRIC\u ca\u SERVER\u HOME/msp/keystore/
    • 启动结构ca服务器
    • 删除以前颁发的所有注册证书,并通过再次注册获取新证书
  2. 生成genesis块后,您删除并重新创建了结构CA服务器使用的CA签名密钥和证书。如果Fabric CA服务器在docker容器中运行,容器已重新启动,并且其主目录不在卷装载上,则可能发生这种情况。在这种情况下,结构CA服务器将创建一个新的CA签名密钥和证书