2017-11-08 18 views
1

現在、Hyperedgerファブリックネットワークのドッカー作成設定をKubernetesに移植しようとしています。このエラーは、cliコンテナからチェーンコードをインスタンス化する際に、生地の実施例に提供ツー・エンドのシナリオ:HyperbandgerファブリックネットワークのKubernetes設定でチェーンコードインスタンシエーションが失敗する

2017-11-07 20:49:55.476 UTC [shim] userChaincodeStreamGetter -> ERRO 001 Error trying to connect to local peer: x509: certificate signed by unknown authority (possibly because of "x509: ECDSA verification failure" while trying to verify candidate authority certificate "tlsca.org0.example.com") 
Error starting Simple chaincode: Error trying to connect to local peer: x509: certificate signed by unknown authority (possibly because of "x509: ECDSA verification failure" while trying to verify candidate authority certificate "tlsca.org0.example.com") 

ここでは、私の暗号config.ymlです:

OrdererOrgs: 
    - Name: Orderer 
    Domain: example.com 
    Specs: 
     - Hostname: orderer 

PeerOrgs: 
    - Name: Org0 
    Domain: org0.example.com 
    Specs: 
     - Hostname: peer0 
     - Hostname: peer1 
     - Hostname: ca 
    Users: 
     Count: 2 

そして、ここでは、私は、ピアのマニフェスト私Kubernetesに使用してきた環境変数ですポッド:

env: 
    - name: CORE_PEER_ID 
     value: peer0.org0.example.com 
    - name: CORE_PEER_ADDRESS 
     value: peer0.org0.example.com:7051 
    - name: CORE_PEER_ADDRESSAUTODETECT 
     value: "true" 
    - name: CORE_PEER_TLS_SERVERHOSTOVERRIDE 
     value: peer0.org0.example.com 
    - name: CORE_PEER_GOSSIP_EXTERNALENDPOINT 
     value: peer0.org0.example.com:7051 
    - name: CORE_PEER_LOCALMSPID 
     value: Org0MSP 
    - name: CORE_LEDGER_STATE_STATEDATABASE 
     value: CouchDB 
    - name: CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS 
     value: localhost:5984 
    - name: CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME 
     value: 
    - name: CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD 
     value: 
    - name: CORE_VM_ENDPOINT 
     value: unix:///host/var/run/docker.sock 
    - name: CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE 
     value: bridge 
    - name: CORE_LOGGING_LEVEL 
     value: DEBUG 
    - name: CORE_PEER_TLS_ENABLED 
     value: "true" 
    - name: CORE_PEER_GOSSIP_USELEADERELECTION 
     value: "true" 
    - name: CORE_PEER_GOSSIP_ORGLEADER 
     value: "false" 
    - name: CORE_PEER_PROFILE_ENABLED 
     value: "true" 
    - name: CORE_PEER_TLS_CERT_FILE 
     value: /etc/hyperledger/fabric/tls/server.crt 
    - name: CORE_PEER_TLS_KEY_FILE 
     value: /etc/hyperledger/fabric/tls/server.key 
    - name: CORE_PEER_TLS_ROOTCERT_FILE 
     value: /etc/hyperledger/fabric/tls/ca.crt 

チェインコードのインスタンシエーションの段階まで、チャンネル作成、チャンネルへのピアの参加、アンカーピアのアップデート、チェーンコードのインストールはすべてうまくいっていました。

答えて

0

Fabricが大きく変更され、ソースコードの一部が再検索されないため、ソースコードに対してまだ検証できませんでした。このエラーを生成するが、私は最終的にそれを把握することができたと確信しています。

だから、このエラーは状況の非常に特定のセットの下で発生する可能性があります:あなたは本命の正しいセットを生成した

  • 、その後、(ポッドをスピンアップし、エンドツーエンドのシナリオを実行しようとしました成功しているかもしれないかもしれない)。
  • あなたは、その後、cryptogenを使用して本命のセットを再生しポッドの新しいセットをスピンアップし、最初に既存のchaincode画像を削除せずに再びエンドツーエンドのシナリオを実行しようとしました。何が起こる

はchaincodeイメージが焼きCORE_*環境変数の一部としてだけでなく(TLSのrootcertを使用して作成されている。しかし、あなたは、エンドツーエンドの実行の間本命のセットを再生成する場合チェーンコードイメージを削除せずに、チェインコードコンテナが作成されたチェインコードイメージに焼き付けられた古いrootcertに対して新しいエンドエンティティ証明書を検証しようとします。

私は、次の手順を実行して、エンドユーザー側から正常に検証しました。

  1. Minikube(またはKubernetesを実行しているクラスタ)からすべてのチェーンコードコンテナを削除します
  2. 新しい一連のポッドを回転させてエンドツーエンドシナリオを実行します。そうでない場合、これはあなたが持っているものとは異なる問題です。
  3. ポッドを壊します。証明書を再生成する。
  4. ポッドをもう一度スピンアップします。エンドツーエンドのシナリオを再実行します。今回はエラーが表示されます。

TL; DRあなたがcryptogenを使用して本命の新しいセットを再生成する場合は、あなたのchaincodeコンテナの画像を削除することを忘れないでください。

関連する問題