首页 文章

Composer请求来自不同主机的身份

提问于
浏览
1

我正在遵循本教程中的修改,以便从不同的主机添加组织 . https://medium.com/@mahoney_33893/hyperledger-composer-adding-another-organization-to-an-existing-running-multi-organization-fff5c8104a82

我试图将一个新组织添加到来自不同主机的现有 Channels (比如Org3) . 我已经成功地将org3中的peer加入了该 Channels . 我有运行org3的CA.

然后我使用修改后的connectionprofile创建并导入了PeerAdmin卡 .

但是,当我运行作曲家身份请求时,我收到错误消息错误:无法请求身份 . 尝试注册用户并返回证书时出错 . 错误:注册失败,错误[[{“code”:19,“message”:“CA'ca.org1.example.com'不存在”}]] . 请注意,为org1运行我的ca的端口是打开的 .

然后我试图从我org3 CA获取日志才发现(POST / API / V1 /招收404 19“CA‘ca.org1.example.com’不存在) . 为什么我的CA从org3需要与org1中的ca进行通信?为什么它说org1的ca在实际启动并运行时不存在?任何帮助都非常感谢

Currenty使用hyperledger composer,hyperledger fabric v 1.2.1 . 目前没有使用TLS .

{
"name": "hlfv1",
"x-type": "hlfv1",
"x-commitTimeout": 300,
"version": "1.0.0",
"client": {
    "organization": "Org3",
    "connection": {
        "timeout": {
            "peer": {
                "endorser": "300",
                "eventHub": "300",
                "eventReg": "300"
            },
            "orderer": "300"
        }
    }
},
"channels": {
    "composerchannel": {
        "orderers": [
            "orderer.example.com"
        ],
        "peers": {
            "peer0.org1.example.com": {},
            "peer0.org3.example.com":{}
        }
    }
},
"organizations": {
    "Org1": {
        "mspid": "Org1MSP",
        "peers": [
            "peer0.org1.example.com"
        ],
        "certificateAuthorities": [
            "ca.org1.example.com"
        ]
    },
    "Org3":{
        "mspid": "Org3MSP",
        "peers": [
            "peer0.org3.example.com"
        ],
        "certificateAuthorities": [
            "ca.org3.example.com"
        ]
    }
},
"orderers": {
    "orderer.example.com": {
        "url": "grpc://{{hostmachineurl}}:7050"
    }
},
"peers": {
    "peer0.org1.example.com": {
        "url": "grpc://{{hostmachineurl}}:7051"
    },
    "peer0.org3.example.com": {
        "url": "grpc://{{localmachineurl}}:11051"
    }
},
"certificateAuthorities": {
    "ca.org1.example.com": {
        "url": "http://{{hostmachineurl}}:7054",
        "caName": "ca.org1.example.com"
    },
    "ca.org3.example.com": {
        "url": "http://{{localmachineurl}}:9054",
        "caName": "ca.org1.example.com"
    }
}

}

我的docker创建了peer org3

version: '2'

volumes:
  peer0.org3.example.com:

networks:
  byfn:

services:

  peer0.org3.example.com:
    container_name: peer0.org3.example.com
    extends:
      file: peer-base.yaml
      service: peer-base
    environment:
      - CORE_PEER_ID=peer0.org3.example.com
      - CORE_PEER_ADDRESS=peer0.org3.example.com:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org3.example.com:7051
      - CORE_PEER_LOCALMSPID=Org3MSP
    volumes:
        - /var/run/:/host/var/run/
        - ~/fabric-samples/first-network/org3-artifacts/crypto-config/peerOrganizations/org3.example.com/users/Admin@org3.example.com/msp:/etc/hyperledger/fabric/msp
        - ~/fabric-samples/first-network/org3-artifacts/crypto-config/peerOrganizations/org3.example.com/users/Admin@org3.example.com/tls:/etc/hyperledger/fabric/tls
        - peer0.org3.example.com:/var/hyperledger/production
    ports:
      - 11051:7051
      - 11053:7053
    networks:
      - byfn

1 回答

  • 0

    看看你上面的 connection.json - 我可以看到为什么它会从Org1 CA(而不是Org 3的CA)请求:

    “certificateAuthorities”下的这一部分应为“ca.org3.example.com”(见下文//):

    "certificateAuthorities": {
        "ca.org1.example.com": {
            "url": "http://{{hostmachineurl}}:7054",
            "caName": "ca.org1.example.com"
        },
        "ca.org3.example.com": {
            "url": "http://{{localmachineurl}}:9054",
            "caName": "ca.org1.example.com" // change this line
        }
    }
    

    您可能需要检查其他条目 .

相关问题