0

ポートマッピングをこのdocker-compose-couch.yamlに説明してください。 couchdb0
-ports: - "5984:5984"
Hyperledger Fabric V1.0ネットワーク設定用のyamlファイルのCouchdbポートマッピング

は、以下の

CONTAINER_NAMEに見てください
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb0:5984

CONTAINER_NAME:couchdb1
- ポート:
- "6984:5984"
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb1:5984

CONTAINER_NAME:couchdb2
-ports:
- "7984:5984"
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb2:5984

CONTAINER_NAME:couchdb3
-ports:
- "8984:5984"
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb3:ここでは5984

  1. なぜ同じポート5984へのすべてのアドレスマッピング?ピアごとに別々のDBを使用するのではなく、同じDBを使用していますか?私は以下のURL

    http://192.168.99.100:5984/_utils/#/database/mydemochannel/_all_docs http://192.168.99.100:6984/_utils/#/database/mydemochannel/_all_docs http://192.168.99.100:7984/_utils/#/database/mydemochannel/_all_docs http://192.168.99.100:8984/_utils/#/database/mydemochannel/_all_docs
    を使用してFauxton UIを使用してDBを確認する際に、取引を行った後も

192.168.99.100私の仮想マシンのIPですon windows 7 machine)

はすべて同じデータを示します。

  1. ここでは、暗号化されたデータまたはプレーンテキストの値をFauxton UIに表示していますか? Include Docのチェックボックスをオンにすると、その値も表示されます。私の理解によれば、値はピアの署名に基づいて暗号化されます(私が間違っていれば私を修正してください)、それで平文のジェイソンとして値をどのように表示していますか?

答えて

1

5984はcouch dbのポート番号です。これで、docker-compose-couchdb.yamlファイルのポートのマッピングは、単にドッカーコンテナからドッカーホストマシンへのマッピングを定義します。 4つのcouchdbコンテナ(各ピアに1つ)があるため、同じポート番号でそれらをすべてマップすることはできません。したがって、それぞれ異なるマッピングが定義されています(それぞれ5984,6984,7984および8984)。したがって、同じポートへのマッピングではなく、同じポートから別のポートへのマッピングです。ドッカーの構成docs hereを参照してください。

Hyperbelger Fabric v1.0以降では、データを暗号化してアプリケーションレベルで処理できるようにするには、状態dbに値の暗号化はありません。たとえば、クライアントはプロポーザルの一時的なマップフィールドを介してAESキーを渡すことができ、チェーンコードはそのキーに基づいてパラメータをエンコードし、チェーンコードビジネスロジックを行い、結果をデコードして保存します。

+0

第2部はクリアです。しかし、最初の部分ではまだ疑問が残っています。 実際にこの 'CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb2:5984'なぜ7984の代わりに5984を使用していますか?私の理解は左側のポートを使用して、それから与えられたマッピングに従って右側のポートにマップされるようなものだったからです。したがって、couchdb2:7984は最終的に5984にマップされます。このことを理解すると、ポート5984で実行されているdbインスタンスのみにマッピングされているように混乱してしまいます。結論として私の前提を訂正してください。 – Girish007

+1

環境変数は、同じドッカーネットワークにマップするコンテナ内で有効になるため、内部ポート5984を使用できます。7984はホストマシンのポートマッピングであり、ホストマシンのipではなくコンテナ名を指定する必要があります。 –

関連する問題