2017-09-27 456 views
0

有人可以請解釋此docker-compose-couch.yaml中的端口映射。yaml文件中的Couchdb端口映射用於Hyperledger Fabric V1.0網絡設置

請查看以下

CONTAINER_NAME:couchdb0
-ports:
- 「5984:5984」
- 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?它是否使用相同的數據庫而不是爲每個對等使用單獨的數據庫?

而且進行交易,當我使用下面的網址

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
192.168.99.100是我的虛擬機IP查詢使用Fauxton UI數據庫後on windows 7 machine)

全部顯示相同的數據。

  1. 我的疑問是,它顯示加密數據或純文本值在Fauxton UI?一旦我勾選包括文檔的複選框,它也顯示值。根據我的理解,這些值將根據同行簽名進行加密(如果我錯了,請糾正我),那麼它是如何顯示作爲純文本jason的價值的?

回答

1

5984是沙發數據庫端口號,現在docker-compose-couchdb.yaml文件中的端口映射只是定義從碼頭容器到碼頭主機的映射。由於有4個couchdb容器(每個對等體有一個容器),因此不能將它們映射到相同的端口號上,因此每個容器分別定義了不同的映射:5984,6984,7984和8984。所以它不是映射到相同的端口,而是從相同的端口映射到不同的端口。請參考碼頭組成docs here

從Hyperledger Fabric v1.0開始,如果您希望繼續並加密您的數據,您可以在應用程序級別進行數據加密,則不會對狀態數據庫中的值進行加密。例如,客戶端可以通過提案的瞬態地圖字段傳遞AES密鑰,並且鏈碼將基於該關鍵碼對參數進行編碼,然後解碼結果並存儲它們。

+0

第二部分很明確。但是第一部分仍然存在一些疑問。 其實這個'CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb2:5984'爲什麼在這裏使用5984而不是7984?因爲我的理解是應該使用左側端口,然後根據給定的映射將它映射到右側的端口。所以couchdb2:7984最終會映射到5984.有了這個理解,我就會感到困惑,因爲所有的映射都只映射到運行在5984端口上的db實例。所以作爲結論,請糾正我的這個假設,然後我可以將它標記爲接受的答案。 – Girish007

+1

環境變量在映射到同一個docker網絡的容器內生效,因此它可以使用內部端口5984. 7984是託管機器上的端口映射,爲了解決它,您需要指定主機機器ip而不是容器名稱。 –