Как запустить промежуточный ca с помощью docker-compose? - PullRequest
0 голосов
/ 20 сентября 2018

Шаги, которые я выполнил:

1) начали ткань с 1-ca (который является корневым ca), 1-заказчиком, 1-peer и 1-couchdb

2) Я прикрепил оболочку к ca, которая является root, и запустил 2 команды для регистрации промежуточного ca.

  fabric-ca-client enroll -u http://admin:adminpw@localhost:7054
  fabric-ca-client register --id.name ica --id.attrs '"hf.Registrar.Roles=user,peer",hf.Revoker=true,hf.IntermediateCA=true' --id.secret icapw

3) Я запустил контейнер ca1 следующим образом:

services:
  ca1.example.com:
    image: hyperledger/fabric-ca:x86_64-1.1.0
    environment:
      - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
      - FABRIC_CA_SERVER_PORT=8054
      - FABRIC_CA_SERVER_CA_NAME=ca1.example.com
    ports:
      - "8054:8054"
    command: sh -c 'fabric-ca-server start -b admin:adminpw -u http://ica:icapw@ca.example.com:7054'
    container_name: ca1.example.com
    networks:
      - basic

Но он всегда создает сертификаты по умолчанию, поэтому я удаляю все из контейнера, а затем снова запускаю команду запуска и при попыткечтобы зарегистрировать администратора с использованием этого промежуточного кода ca, я получаю следующую ошибку:

signed certificate with serial number 619423114660023963149266564884451731119475746692
ca1.example.com    | 2018/09/20 06:38:53 [INFO] 127.0.0.1:47144 POST /enroll 500 0 "Certificate signing failure: Failed to insert record intodatabase: attempt to write a readonly database"

Я не уверен в процессе, которому следовал.Поэтому предложите мне точные шаги, которые нужно выполнить, и если шаги верны, то причина этой ошибки.

Я следовал документации: https://hyperledger -fabric-ca.readthedocs.io / en /последний / пользователей-guide.htm

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Допустим, у вас запущен и работает сервер Root Fabric-CA (назовем его RCA).

Насколько я понимаю, вы пытаетесь запустить сервер Intermediate Fabric-CA, который будет подключен к RCA выше.

Я попробовал следующее:

version: '2'
networks:  fabric-ca:

services:

ica:
container_name: ica
image: hyperledger/fabric-ca
command: /bin/bash -c '/scripts/start-intermediate-ca.sh 2>&1 | tee /data/logs/ica.log'
environment:
  - FABRIC_CA_SERVER_HOME=/etc/hyperledger/fabric-ca
  - FABRIC_CA_SERVER_CA_NAME=ica
  - FABRIC_CA_SERVER_INTERMEDIATE_TLS_CERTFILES=/data/rca-ca-cert.pem
  - FABRIC_CA_SERVER_CSR_HOSTS=ica
  - FABRIC_CA_SERVER_TLS_ENABLED=true
  - FABRIC_CA_SERVER_DEBUG=true
  - BOOTSTRAP_USER_PASS=ica-admin:ica-adminpw
  - PARENT_URL=https://rca-admin:rca-adminpw@rca:7054
  - TARGET_CHAINFILE=/data/ica-ca-chain.pem
volumes:
  - ./data:/data
  - ./scripts:/scripts
  - ./data/fabric_ca_test/ica:/etc/hyperledger/fabric-ca
networks:
  - fabric-ca
ports:
  - 10.10.10.101:7055:7054

Обратите внимание на использование скрипта start-intermediate-ca.sh

#!/bin/bash
#
set -e

# Initialize the intermediate CA
fabric-ca-server init -b $BOOTSTRAP_USER_PASS -u $PARENT_URL

# Copy the intermediate CA's certificate chain to the data directory to be used by others
cp $FABRIC_CA_SERVER_HOME/ca-chain.pem $TARGET_CHAINFILE

# Start the intermediate CA
fabric-ca-server start --config $FABRIC_CA_SERVER_HOME/fabric-ca-server-config.yaml

Это также доступно впример, который присутствует в примерах Hyperledger Fabric. Fabric CA Образцы в github-хранилище образцов тканей

Пройдите через него.Это всеобъемлющий пример.

Вы должны быть в состоянии немного его настроить, чтобы справиться со своим сценарием.

0 голосов
/ 06 октября 2018

Ну, во-первых, если у вас возникли проблемы такого рода, я настоятельно рекомендую остановить и очистить все контейнеры, выполнив следующие команды Docker:

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

Я буду основывать свое объяснение например basic-network .

После этого вы должны запустить ваши контейнеры, называя вас start.sh ir startFabric.sh , который обычно имеет скриптdocker-compose up, который отвечает за запуск ваших док-контейнеров.

Я не уверен, что вы имеете в виду сертификаты по умолчанию, но если у вас есть проблемы с ними, вы можете восстановить их.Возможно, у вас есть сценарий generate.sh , который генерирует новый crypto-config и genesis.block и config , этотоснован на двух файлах configtx.yaml и crypto-config.yaml .

. Убедитесь, что ваша версия инструмента для криптографии являетсяКак и версия, которую вы используете, очень часто указывают на более старую версию инструмента шифрования , которая генерирует поврежденные сертификаты, которые не будут работать.

Хорошо, если любой изэти решения не работают, может быть, вам стоит начать заново, на этом примере я написал руководство ( basic-network ) о том, как настроить Hyperledger Fabric на нескольких физических хостах, возможно, вы можете проверить это.

Настройка Hyperledger Fabric на нескольких физических машинах

...