Сопоставление портов Couchdb в файле yaml для настройки сети Hyperledger Fabric V1.0

Может кто-нибудь, пожалуйста, объясните сопоставление портов в этом docker-compose-couch.yaml.

Пожалуйста, посмотрите на следующее

имя контейнера: couchdb0
-ports:
- "5984: 5984"
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984

имя контейнера: couchdb1
-ports:
- "6984:5984"
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb1:5984

имя контейнера: couchdb2
-ports:
- "7984:5984"
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb2:5984

имя контейнера: couchdb3
-ports:
- "8984:5984"
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb3:5984

  1. Вот почему все адреса сопоставляются одному и тому же порту 5984? это использует одну и ту же БД вместо использования отдельной БД для каждого пира?

Также после совершения транзакции, когда я проверяю базу данных с помощью Fauxton UI, используя приведенные ниже URL

http://192.168.99.100:5984/_utils/ http://192.168.99.100:6984/_utils/ http://192.168.99.100:7984/_utils/ http://192.168.99.100:8984/_utils/
(192.168.99.100 - это IP-адрес моей виртуальной машины на компьютере с Windows 7)

все показывают те же данные.

  1. Я сомневаюсь, что в Fauxton UI отображаются зашифрованные данные или значения в виде простого текста? После того, как я установил флажок " Включить документ", он также показывает значение. Насколько я понимаю, значения будут зашифрованы на основе сигнатуры пиров (пожалуйста, исправьте меня, если я ошибаюсь), тогда как это показывает значение в виде простого текста Джейсон?

1 ответ

Решение

5984 - это номер порта базы данных couch, теперь отображение портов из файла docker-compose-couchdb.yaml просто определяет отображение из контейнера докера в хост-машину докера. Поскольку имеется 4 контейнера couchdb (по одному для каждого однорангового узла), вы не можете отобразить все из них на один и тот же номер порта, поэтому для каждого из них определено различное отображение: 5984, 6984, 7984 и 8984 соответственно. Так что это не сопоставление с одним и тем же портом, а с одного и того же порта на разные. Пожалуйста, обратитесь к докеру составить документы здесь.

Начиная с Hyperledger Fabric v1.0, шифрование значений в состоянии db отсутствует, если вы хотите продолжить и зашифровать свои данные, вы можете сделать это на уровне приложения. Например, клиент может передать ключ AES через поле переходной карты предложения, и цепочечный код будет кодировать параметры, основанные на том ключе, который выполняет бизнес-логику цепочечного кода, декодировать результаты обратно и сохранять их.

Другие вопросы по тегам