有人可以解释一下docker-compose-couch.yaml中的端口映射。
请查看以下内容
container_name:couchdb0
-ports:
- “5984:5984”
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb0:5984container_name:couchdb1
-ports:
- “6984:5984”
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb1:5984container_name:couchdb2
-ports:
- “7984:5984”
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb2:5984container_name:couchdb3
-ports:
- “8984:5984”
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS = couchdb3:5984
此外,在进行交易后,当我使用 Fauxton UI 使用以下网址检查数据库时
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 是我在 Windows 7 机器上的虚拟机IP)
都显示相同的数据。
答案 0 :(得分:1)
5984是沙发数据库端口号,现在来自docker-compose-couchdb.yaml文件的端口映射只是定义了从docker容器到docker主机的映射。由于有4个couchdb容器(每个对等一个),因此无法在同一端口号上映射所有这些容器,因此每个定义的不同映射分别为:5984,6984,7984和8984。所以它没有映射到同一个端口,而是从同一个端口映射到不同的端口。请参阅docker撰写docs here。
从Hyperledger Fabric v1.0开始,状态db中没有值的加密,如果您想继续并加密数据,您可以在应用程序级别执行此操作。例如客户端可以通过提议的瞬态映射字段传递AES密钥,链代码将基于该密钥编码params做链代码业务逻辑,解码结果并存储它们。