Hyperledger Fabric в AWS ECS не создает цепной код - PullRequest
0 голосов
/ 11 октября 2018

Я работаю над настройкой сети Hyperledger Fabric в AWS ECS.Вот моя сеть и сценарии начальной загрузки.

Сеть

  • ca-org0, ca-org1, ca-org2
  • orderer-org0
  • peer1-org1, peer1-org2

Bootstrap sceanrios

  1. Все узлы успешно запущены, создаются криптографические материалы, одноранговые узлы и заказчики регистрируются и регистрируются в CA ...
  2. создать канал 'mychannel'
  3. присоединить peer1-org1, peer1-org2 к 'mychannel'
  4. обновить оба узла как одноранговый узел
  5. установить оба узла 'abac 'sample chaincode
  6. peer1-org1 создает' abac 'chaincode для' mychannel '
  7. тестового вызова и запроса

ECS

для каждого узлаэто сервис ECS с 1 задачей с networkMode awsvpc.и каждый сервис создается с помощью AWS Service Discovery, поэтому каждый сервис можно искать с помощью DNS.В моем случае peer1-org1 можно искать в vpc, используя peer1-org1.ns-t2c, orderer1-org0 в качестве orderer1-org0.ns-t2c ...

кластерная диаграмма ECS

Проблема

Я успешно завершил установку цепного кода (шаг 5 в 'Bootstrap sceanrios'), и контейнер цепного кода создан в EC2

peer1-org1:$ peer chaincode instantiate -C mychannel -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR('org1MSP.member','org2MSP.member')" -o orderer1-org0.ns-test

И этоКоманда экземпляра успешно выполнена без ошибки и контейнер цепного кода создан на EC2

peer1-org1's EC2:$ docker ps
CONTAINER ID        IMAGE                              COMMAND                  CREATED             STATUS              PORTS              NAMES
3f7a488475cb        dev-peer1-org1.ns-t2c-mycc-1.0    "chaincode -peer.add…"   17 seconds ago      Up 16 seconds                         dev-peer1-org1.ns-t2c-mycc-1.0
<below is peer1-org1 container info>

peer1-org1 * Но когда я выполняю peer chaincode list --instantiated -C mychannel, Цепной код не указан

peer1-org1:$ peer chaincode list --instantiated -C mychannel
Get instantiated chaincodes on channel mychannel:
peer1-org1:$

При запросе цепочки кодов 'abac'

peer1-org1$: peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
Error: endorsement failure during query. response: status:500 message:"make sure the chaincode mycc has been successfully instantiated and try again: getccdata mychannel/mycc responded with error: could not find chaincode with name 'mycc'"

А вот определение задачи однорангового узла

{
  "family": "peer1-org1",
  "networkMode": "awsvpc",
  "containerDefinitions" : [
    {
      "name": "peer1-org1",
      "image": "hyperledger/fabric-ca-peer:1.2.0",
      "essential": true,
      "memory": 128,
      "command": ["/bin/bash", "-c", "'/scripts/ecs_start-peer.sh'"],
      "environment": [
        {"name": "FABRIC_CA_CLIENT_HOME", "value": "/data/peers/peer1-org1.ns-t2c"},
        {"name": "FABRIC_CA_CLIENT_TLS_CERTFILES", "value": "/data/org1-ca-chain.pem"},
        {"name": "ENROLLMENT_URL", "value": "http://peer1-org1.ns-t2c:peer1-org1.ns-t2cpw@ica-org1.ns-t2c:7054"},
        {"name": "PEER_NAME", "value": "peer1-org1.ns-t2c"},
        {"name": "PEER_HOME", "value": "/data/peers/peer1-org1.ns-t2c"},
        {"name": "PEER_HOST", "value": "peer1-org1.ns-t2c"},
        {"name": "PEER_NAME_PASS", "value": "peer1-org1.ns-t2c:peer1-org1.ns-t2cpw"},
        {"name": "CORE_PEER_ID", "value": "peer1-org1.ns-t2c"},
        {"name": "CORE_PEER_ADDRESS", "value": "peer1-org1.ns-t2c:7051"},
        {"name": "CORE_PEER_LOCALMSPID", "value": "org1MSP"},
        {"name": "CORE_PEER_MSPCONFIGPATH", "value": "/data/peers/peer1-org1.ns-t2c/msp"},
        {"name": "CORE_VM_ENDPOINT", "value": "unix:///host/var/run/docker.sock"},
        {"name": "CORE_LOGGING_LEVEL", "value": "DEBUG"},
        {"name": "CORE_PEER_TLS_ENABLED", "value": "true"},
        {"name": "CORE_PEER_TLS_CERT_FILE", "value": "/data/peers/peer1-org1.ns-t2c/tls/server.crt"},
        {"name": "CORE_PEER_TLS_KEY_FILE", "value": "/data/peers/peer1-org1.ns-t2c/tls/server.key"},
        {"name": "CORE_PEER_TLS_ROOTCERT_FILE", "value": "/data/org1-ca-chain.pem"},
        {"name": "CORE_PEER_TLS_CLIENTAUTHREQUIRED", "value": "true"},
        {"name": "CORE_PEER_TLS_CLIENTROOTCAS_FILES", "value": "/data/org1-ca-chain.pem"},
        {"name": "CORE_PEER_TLS_CLIENTCERT_FILE", "value": "/data/tls/peer1-org1.ns-t2c-client.crt"},
        {"name": "CORE_PEER_TLS_CLIENTKEY_FILE", "value": "/data/tls/peer1-org1.ns-t2c-client.key"},
        {"name": "CORE_PEER_GOSSIP_USELEADERELECTION", "value": "true"},
        {"name": "CORE_PEER_GOSSIP_ORGLEADER", "value": "false"},
        {"name": "CORE_PEER_GOSSIP_EXTERNALENDPOINT", "value": "peer1-org1.ns-t2c:7051"},
        {"name": "CORE_PEER_GOSSIP_SKIPHANDSHAKE", "value": "true"},
        {"name": "ORG", "value": "org1"},
        {"name": "ORG_ADMIN_CERT", "value": "/data/orgs/org1/msp/admincerts/cert.pem"},
        {"name": "CORE_PEER_ADDRESSAUTODETECT", "value": "true"},
        {"name": "CORE_PEER_CHAINCODELISTENADDRESS", "value": "0.0.0.0:7052"},
        {"name": "CORE_VM_DOCKER_ATTACHSTDOUT", "value": "true"}
      ],
      "mountPoints": [
        {
          "containerPath": "/scripts",
          "sourceVolume": "scripts"
        },
        {
          "containerPath": "/data",
          "sourceVolume" : "data"
        },
        {
          "containerPath": "/host/var/run",
          "sourceVolume": "run"
        }
      ],
      "portMappings": [
        {
          "containerPort": 7051
        },
        {
          "containerPort": 7053
        }
      ]
    }
  ],
  "volumes": [
    {
      "name": "scripts",
      "host": {
        "sourcePath":"/efs/scripts"
      }
    },
    {
      "name": "data",
      "host": {
        "sourcePath": "/efs/data"
      }
    },
    {
      "name": "run",
      "host": {
        "sourcePath": "/var/run"
      }
    }
  ]
}

Я ссылался здесь и здесь для ссылки на одноранговые переменные ENV, но не работает ..

1 Ответ

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

У меня была та же проблема: мой цепной код был успешно установлен и создан, но я также получил ошибку: «не удалось найти цепной код с именем« mycc »» *

Причина в моей ситуации: ЯкорьДля одноранговых узлов было настроено неверное имя хоста в configtx.yaml (пример: Организации> & Org> AnchorPeers> Host)

Для меня было решение установить правильное значение имени хоста.

Надеюсь, это поможеткто-нибудь.

...