экземпляр равноправного цепочки - нарушение политики создания: набор подписей не удовлетворяет политике - PullRequest
0 голосов
/ 24 августа 2018

Я использую Hyperledger Fabric v1.2.Я пытаюсь создать цепной код для одного партнера, и у меня есть только одна организация и организация-заказчик, указанные в моем configtx.yaml для моей сети.Я не вносил никаких изменений в ACL в моем configtx.yaml, поэтому его значение установлено по умолчанию.

Когда я запускаю эту команду:

./peer chaincode instantiate -o orderer1.example.com:7050  -C devchannel -n jmo01 -v 1.0 -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('SampleOrgMSP.member')" --cafile /etc/hyperledger/fabric/msp/peer1/msp/cacerts/cert.pem

Выдает следующую ошибкув узле:

Error: could not assemble transaction, err Proposal response was not successful, error code 500, msg instantiation policy violation: signature set did not satisfy policy

Профили в configtx.yaml:

Profiles:
    # SampleDevModeKafka defines a configuration that differs from the
    # SampleDevModeSolo one only in that it uses the Kafka-based orderer.
    SampleOrgGenesis:
        <<: *ChannelDefaults
        Orderer:
            <<: *OrdererDefaults
            OrdererType: kafka
            Organizations:
                - <<: *SampleOrg
                  Policies:
                      <<: *SampleOrgPolicies
                      Admins:
                          Type: Signature
                          Rule: "OR('SampleOrgMSP.member')"
        Consortiums:
            SampleConsortium:
                Organizations:
                    - <<: *SampleOrg
                      Policies:
                          <<: *SampleOrgPolicies
                          Admins:
                              Type: Signature
                              Rule: "OR('SampleOrgMSP.member')"

    MyChannel:
        Consortium: SampleConsortium
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *SampleOrg

Раздел организаций в верхней части configtx.yaml:

Organizations:
    - &SampleOrdererOrg
        Name: SampleOrdererOrg
        ID: SampleOrdererOrgMSP
        MSPDir: /etc/hyperledger/msp/orderer1/msp
        Policies:
            Readers:
                Type: Signature
                Rule: "OR('SampleOrdererOrgMSP.member')"
            Writers:
                Type: Signature
                Rule: "OR('SampleOrdererOrgMSP.member')"
            Admins:
                Type: Signature
                Rule: "OR('SampleOrdererOrgMSP.admin')"
            BlockValidation:
                Type: Signature
                Rule: "OR('SampleOrdererOrgMSP.member')"
    - &SampleOrg
        Name: SampleOrgMSP
        ID: SampleOrgMSP

        # MSPDir is the filesystem path which contains the MSP configuration.
        MSPDir: /etc/hyperledger/org/msp
        Policies: &SampleOrgPolicies
            Readers:
                Type: Signature
                Rule: "OR('SampleOrgMSP.member')"
            Writers:
                Type: Signature
                Rule: "OR('SampleOrgMSP.member')"
            Admins:
                Type: Signature
                Rule: "OR('SampleOrgMSP.admin')"
        AnchorPeers:
            - Host: peer1.example.com
              Port: 7051
            - Host: peer2.example.com
              Port: 7051
            - Host: peer3.example.com
              Port: 7051

Ядумая, что это как-то связано с тем, как я делаю команду создания экземпляров, и, возможно, у меня неправильно настроена политика.Одна из политик требует, чтобы конкретный тип пользователя org завершил создание экземпляра, но я не уверен, какой это, где находится его член или администратор, а затем какой org msp я должен указать.

1 Ответ

0 голосов
/ 25 августа 2018

Запрос на создание экземпляра должен быть подписан администратором организации.Из приведенной выше конфигурации вам нужно будет подписать личный ключ, соответствующий общедоступному ключу администратора, в /etc/hyperledger/org/msp (свойство MSPDir SampleOrg в вашей конфигурации выше).

При запуске peer вВ режиме CLI необходимо убедиться, что вы установили два ключевых свойства.Мы будем использовать переменные среды, чтобы упростить процесс:

CORE_PEER_LOCALMSPID - этот идентификатор MSP для вашей организации.В вашем случае выглядит так: SampleOrgMSP.

CORE_PEER_MSPCONFIGPATH - это каталог, содержащий идентификатор, который будет использоваться для подписания транзакций.В каталоге будет использоваться структура MSP X509:

admincerts
cacerts
keystore
signcerts

Поскольку вы действуете как клиент, keystore и signcerts являются наиболее важными.keystore содержит закрытый ключ, а signcerts содержит соответствующий открытый ключ.Открытый ключ в signcerts должен совпадать с открытым ключом в admincerts в /etc/hyperledger/org/msp (информация MSP для org в определении канала.

...