错误:出现意外状态:FORBIDDEN - 无法达到1个子策略的隐含阈值,需要1个剩余:权限被拒绝

Jim*_*een 10 hyperledger-fabric

我的结构版本是1.1.0预览版,同伴,订购者,configtxgen是新生成的.

当我执行configtxgen工具时:

configtxgen -profile SoloOrdererGenesis -outputBlock genesis.block 
configtxgen -profile mych -outputCreateChannelTx channel-artifacts/mych.tx -channelID mych
Run Code Online (Sandbox Code Playgroud)

它生成genesis.block和mych.tx,channelName是mych.

然后orderer以genesis.block开头,执行以下命令:

peer channel create -f mych.tx -o orderer.example.com:7050 -c mych
Run Code Online (Sandbox Code Playgroud)

它抛出错误,

错误:出现意外状态:FORBIDDEN - 无法达到1个子策略的隐含阈值,需要1个剩余:权限被拒绝

哪一步错了?

我的configtx.yaml文件是:

---
Profiles:
    SoloOrdererGenesis:
        Orderer:
            <<: *OrdererDefaults
            Organizations:
                - *OrdererOrg
        Consortiums:
            SampleConsortium4:
                Organizations:
                    - *Org1
                    - *Org2
                    - *Org3
                    - *Org4
            SampleConsortium3:
                Organizations:
                    - *Org1
                    - *Org2
                    - *Org3
            SampleConsortium2:
                Organizations:
                    - *Org1
                    - *Org2
            SampleConsortium1:
                Organizations:
                    - *Org1
    mych4:
        Consortium: SampleConsortium4
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2
                - *Org3
                - *Org4
    mych3:
        Consortium: SampleConsortium3
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2
                - *Org3

    mych2:
        Consortium: SampleConsortium2
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2

    mych1:
        Consortium: SampleConsortium1
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
Organizations:
    - &OrdererOrg
        Name: OrdererOrg
        ID: OrdererMSP
        MSPDir: orderer/msp

    - &Org1
        Name: Org1MSP
        ID: Org1MSP
        MSPDir: org1/peer/msp
        AnchorPeers:
            - Host: peer.org1.example.com
              Port: 17051
    - &Org2
        Name: Org2MSP
        ID: Org2MSP
        MSPDir: org2/peer/msp
        AnchorPeers:
            - Host: peer.org2.example.com
              Port: 27051            
Orderer: &OrdererDefaults
    OrdererType: solo
    Addresses:
        - orderer.example.com:7050
    BatchTimeout: 2s
    BatchSize:
        MaxMessageCount: 10
        AbsoluteMaxBytes: 99 MB
        PreferredMaxBytes: 512 KB
    Organizations:

Application: &ApplicationDefaults
    Organizations:
Run Code Online (Sandbox Code Playgroud)

Vin*_*ane 26

当我遇到这个问题时,我的解决方案很简单..我已经开始使用我的网络了

/byfn.sh -m up
Run Code Online (Sandbox Code Playgroud)

忘了它,并试图通过生成加密然后使用相同的命令来启动它.我第一次使用旧网络时,问题就解决了

/byfn.sh -m down
Run Code Online (Sandbox Code Playgroud)

并使用相同的向上命令再次启动.


Pat*_*lla 5

文件路径错误很简单。生成mych.tx文件时,将其写入其中,channel-artifacts/mych.tx但是尝试创建通道时,将channel-artifacts目录遗漏了。你可以试试peer channel create -f channel-artifacts/mych.tx -o orderer.example.com:7050 -c mych

就是说,我只是有一个类似的问题,但有相同的错误。我正在测试一个新创建的创世块和加密货币。就我而言,这是我先前的测试之一将先前的加密和通道存储在Docker卷中的结果。您可能不是这样,因为您说您正在创建一个新的对等点和订购者。

您可以通过使用连接到对等方之一(或cli容器,如果有的话)来进行检查docker exec -it <container name> bash,然后运行peer channel list。如果您收到类似的信息,那就是您的问题:

root@4cf873123669:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer channel list
2018-04-05 14:09:40.734 UTC [msp] GetLocalMSP -> DEBU 001 Returning existing local MSP
2018-04-05 14:09:40.734 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2018-04-05 14:09:40.739 UTC [channelCmd] InitCmdFactory -> INFO 003 Endorser and orderer connections initialized
2018-04-05 14:09:40.740 UTC [msp/identity] Sign -> DEBU 004 Sign: plaintext: 0AAE070A5C08031A0C08A4DC98D60510...631A0D0A0B4765744368616E6E656C73
2018-04-05 14:09:40.740 UTC [msp/identity] Sign -> DEBU 005 Sign: digest: 93EFB49DD86ABB5568DE1E2C8FC53FA99AB52929AFA24D7B317C270DE8CDC80B
Channels peers has joined:
mych
2018-04-05 14:09:40.743 UTC [main] main -> INFO 006 Exiting.....
Run Code Online (Sandbox Code Playgroud)

如果您没有mych在“频道同行已加入:”下看到列出的内容,那么我的答案与您无关。(但可能是别人!)

这是将本地Hyperledger Docker实例还原到干净状态的方法:

docker-compose -f docker-compose.yaml down --volumes
Run Code Online (Sandbox Code Playgroud)

--volumes告诉泊坞窗,除去与配置文件中的容器关联的所有卷。

从好的方面来说,我只是将所有内容(所有 Docker容器和卷-这是一个测试系统)抹成了一片空白,并从头开始了整个过程:

docker-compose -f docker-compose.yaml down --volumes
docker rm $(docker ps -aq)
docker volume prune
rm genesis.block channel-artifacts/mych.tx
Run Code Online (Sandbox Code Playgroud)

一旦删除了这些,并开始备份Fabric,就可以创建通道而不会出现该错误。

如果不起作用,将采取sudo service docker restart一切手段重启所有docker服务,例如docker系统,网络和卷。