用于 Hyperledger Fabric V1.0 网络设置的 yaml 文件中的 Couchdb 端口映射

Couchdb port mapping in yaml file for Hyperledger Fabric V1.0 network setup

谁能解释一下docker-compose-couch.yaml中的端口映射。

请查看以下内容

container_name: couchdb0
-ports:
- "5984:5984"
-- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984

container_name: couchdb1
-ports:
-- "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?它是否使用相同的数据库而不是为每个对等方使用单独的数据库?

同样在进行交易后,当我使用 Fauxton UI 使用以下 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
(192.168.99.100是我在windows7机器上的虚拟机IP)

全部显示相同的数据。

  1. 我的疑问是,它在 Fauxton UI 中显示加密数据或纯文本值?一旦我勾选 Include Docs 复选框,它也会显示该值。根据我的理解,这些值将根据同行签名进行加密(如果我错了请纠正我),那么它如何将值显示为纯文本 jason?

5984 是 couch db 端口号,现在 docker-compose-couchdb.yaml 文件的端口映射简单地定义了从 docker 容器到 docker 的映射主机。由于有 4 个 couchdb 容器(每个对等点一个),您不能将它们全部映射到同一端口号,因此为每个定义不同的映射:分别为 5984、6984、7984 和 8984。所以它不是映射到同一个端口,而是从同一个端口映射到不同的端口。请参考 docker 撰写 docs here.

从 Hyperledger Fabric v1.0 开始,状态数据库中的值没有加密,如果您想继续并加密您的数据,您可以在应用程序级别进行。例如,客户端可以通过提案的瞬态映射字段传递 AES 密钥,链码将根据该密钥对参数进行编码,执行链码业务逻辑,解码结果并存储它们。