10 第四章,Fabric快速入门4.4自己手动使用本地编译,出现问题,求助作者

麻烦作者帮我看看我的步骤是否有啥问题?
我是按照书中所述敲出来的,重复试了好几次花了快一周时间还是没弄出来,特意来问问


1、创建目录并下载源代码

mkdir -p $GOPATH/src/github.com/hyperledger

cd $GOPATH/src/github.com/hyperledger

git clone http://gerrit.hyperledger.org/r/fabric


cd $GOPATH/src/github.com/hyperledger/fabric

make release


拷贝工具到bin中

sudo cp $GOPATH/src/github.com/hyperledger/fabric/release/linux-amd64/bin/* /usr/local/bin


sudo chmod -R 775 /usr/local/bin/configtxgen

sudo chmod -R 775 /usr/local/bin/configtxlator

sudo chmod -R 775 /usr/local/bin/cryptogen

sudo chmod -R 775 /usr/local/bin/peer

sudo chmod -R 775 /usr/local/bin/orderer


2、快速运行一个简单的fabric网络

把所有的配置文件和数据文件都存放在目录/opt/hyperledger

sudo mkdir -p /opt/hyperledger

生成fabric需要的证书文件

sudo mkdir -p /opt/hyperledger/fabricconfig

udo chmod 777 /opt/ -R

使用cryptogen生成所需要的配置文件crypto-config.yaml存放到/opt/hyperledger/fabricconfig

内容如下:

OrdererOrgs:

  - Name: Orderer

    Domain: qklszzn.com

    Specs:

      - Hostname: orderer

PeerOrgs:

  - Name: Org1

    Domain: org1.qklszzn.com

    Template:

      Count: 3

    Users:

      Count: 3


  - Name: Org2

    Domain: org2.qklszzn.com

    Template:

      Count: 2

    Users:

      Count: 2


cd /opt/hyperledger/fabricconfig

执行命令生成文件夹

cryptogen generate --config=crypto-config-yaml --output ./crypto-config

配置hosts文件

修改sudo vi /etc/hosts文件,填入如下内容

127.0.0.1 orderer.qklszzn.com

127.0.0.1 peer0.org1.qklszzn.com

127.0.0.1 peer1.org1.qklszzn.com

127.0.0.1 peer2.org1.qklszzn.com

127.0.0.1 peer0.org2.qklszzn.com

127.0.0.1 peer1.org2.qklszzn.com


生成创始块

创建configtxgen模块相关配置文件的文件夹

mkdir -p /opt/hyperledger/order

拷贝模板文件到该目录中

cd /opt/hyperledger/order

cp -r $GOPATH/src/github.com/hyperledger/fabric/sampleconfig/configtx.yaml .

内容如下:
Profiles:
    TestTwoOrgsOrdererGenesis:
        Orderer:
            <<: *OrdererDefaults
            Organizations:
                - *OrdererOrg
        Consortiums:
            SampleConsortium:
                Organizations:
                    - *Org1
                    - *Org2

    TestTwoOrgsChannel:
        Consortium: SampleConsortium
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2

Organizations:
    - &OrdererOrg
        Name: OrdererOrg
        ID: OrdererMSP
        MSPDir: /opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qklszzn.com/msp

    - &Org1
        Name: Org1MSP
        ID: Org1MSP
        MSPDir: /opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.qklszzn.com/msp
        AnchorPeers:
            - Host: peer0.org1.qklszzn.com
              Port: 7051
    - &Org2
        Name: Org2MSP
        ID: Org2MSP
        MSPDir: /opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org2.qklszzn.com/msp
        AnchorPeers:
            - Host: peer0.org2.qklszzn.com
              Port: 7051
              
Orderer: &OrdererDefaults
    OrdererType: solo
    Addresses:
        - orderer.qklszzn.com:7050
    BatchTimeout: 2s
    BatchSize:
        MaxMessageCount: 10
        AbsoluteMaxBytes: 99 MB
        PreferredMaxBytes: 512 KB

    Kafka:
        Brokers:
            - 127.0.0.1:9092
    Organizations:
    
Application: &ApplicationDefaults
    Organizations:

生成区块配置信息

configtxgen -profile TestTwoOrgsOrdererGenesis -outputBlock ./orderer.genesis.block


账本初始块的生成
创建channel

configtxgen -profile TestTwoOrgsChannel -outputCreateChannelTx ./roberttestchannel.tx -channelID roberttestchannel


生成锚点文件,目录

configtxgen -profile TestTwoOrgsChannel -outputAnchorPeersUpdate ./Org1MSPanchors.tx -channelID roberttestchannel -asOrg Org1MSP

configtxgen -profile TestTwoOrgsChannel -outputAnchorPeersUpdate ./Org2MSPanchors.tx -channelID roberttestchannel -asOrg Org2MSP


orderer节点的启动

复制配置文件到orderer文件夹中

cd /opt/hyperledger/order

cp -r $GOPATH/src/github.com/hyperledger/fabric/sampleconfig/orderer.yaml .

内容如下:
General:
    LedgerType: file
    ListenAddress: 0.0.0.0
    ListenPort: 7050

    TLS:
        Enabled: false
        PrivateKey: /opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn.com/tls/server.key
        Certificate: /opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn.com/tls/server.crt
        RootCAs:
          - /opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn.com/tls/ca.crt
        ClientAuthRequired: false
        ClientRootCAs:
    LogLevel: debug
    LogFormat: '%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}'

    GenesisMethod: file
    GenesisProfile: TestOrgsOrdererGenesis
    GenesisFile: /opt/hyperledger/order/orderer.genesis.block
    LocalMSPDir: /opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qklszzn.com/orderers/orderer.qklszzn.com/msp
    LocalMSPID: OrdererMSP

    Profile:
        Enabled: false
        Address: 0.0.0.0:6060

    BCCSP:
        Default: SW
        SW:
            Hash: SHA2
            Security: 256
            FileKeyStore:
                KeyStore:

FileLedger:
    Location: /opt/hyperledger/order/production/orderer
    Prefix: hyperledger-fabric-ordererledger

RAMLedger:
    HistorySize: 1000

Debug:
    BroadcastTraceDir:
    DeliverTraceDir:

创建一个文件FileLedger

mkdir -p /opt/hyperledger/order/production/orderer

在配置文件orderer.yaml所在的目录中执行如下命令启动orderer

在当前终端下执行orderer start


peer节点的启动

创建存储peer模块的配置文件和区块链数据的文件夹,并复制示例配置文件

目录/home/zeng/MyGo/src/github.com/hyperledger/peer

mkdir -p /opt/hyperledger/peer

cd /opt/hyperledger/peer

cp -r $GOPATH/src/github.com/hyperledger/fabric/sampleconfig/core.yaml .

内容如下:

logging:

    level:       info

    cauthdsl:   warning

    gossip:     warning

    grpc:       error

    ledger:     info

    msp:        warning

    policies:   warning

    peer: debug

    gossip: warning

    format: '%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}'


peer:

    id: peer0.org1.qklszzn.com

    networkId: dev

    listenAddress: 0.0.0.0:7051

    chaincodeListenAddress: 0.0.0.0:7052

    address: peer0.org1.qklszzn.com:7051

    addressAutoDetect: false

    gomaxprocs: -1

    gossip:

        bootstrap: 127.0.0.1:7051

        useLeaderElection: true

        orgLeader: false

        endpoint:

        maxBlockCountToStore: 100

        maxPropagationBurstLatency: 10ms

        maxPropagationBurstSize: 10

        # Number of times a message is pushed to remote peers

        propagateIterations: 1

        # Number of peers selected to push messages to

        propagatePeerNum: 3

        # Determines frequency of pull phases(unit: second)

        pullInterval: 4s

        # Number of peers to pull from

        pullPeerNum: 3

        # Determines frequency of pulling state info messages from peers(unit: second)

        requestStateInfoInterval: 4s

        # Determines frequency of pushing state info messages to peers(unit: second)

        publishStateInfoInterval: 4s

        # Maximum time a stateInfo message is kept until expired

        stateInfoRetentionInterval:

        # Time from startup certificates are included in Alive messages(unit: second)

        publishCertPeriod: 10s

        # Should we skip verifying block messages or not (currently not in use)

        skipBlockVerification: false

        # Dial timeout(unit: second)

        dialTimeout: 3s

        # Connection timeout(unit: second)

        connTimeout: 2s

        # Buffer size of received messages

        recvBuffSize: 20

        # Buffer size of sending messages

        sendBuffSize: 200

        # Time to wait before pull engine processes incoming digests (unit: second)

        digestWaitTime: 1s

        # Time to wait before pull engine removes incoming nonce (unit: second)

        requestWaitTime: 1s

        # Time to wait before pull engine ends pull (unit: second)

        responseWaitTime: 2s

        # Alive check interval(unit: second)

        aliveTimeInterval: 5s

        # Alive expiration timeout(unit: second)

        aliveExpirationTimeout: 25s

        # Reconnect interval(unit: second)

        reconnectInterval: 2s

        # This is an endpoint that is published to peers outside of the organization.

        # If this isn't set, the peer will not be known to other organizations.

        externalEndpoint: peer0.org1.qklszzn.com:7051

        # Leader election service configuration

        election:

            # Longest time peer waits for stable membership during leader election startup (unit: second)

            startupGracePeriod: 15s

            # Interval gossip membership samples to check its stability (unit: second)

            membershipSampleInterval: 1s

            # Time passes since last declaration message before peer decides to perform leader election (unit: second)

            leaderAliveThreshold: 10s

            # Time between peer sends propose message and declares itself as a leader (sends declaration message) (unit: second)

            leaderElectionDuration: 5s


        pvtData:

            maxPeers:3

            minAck:3


    # EventHub related configuration

    events:

        address: 0.0.0.0:7053

        buffersize: 100

        timeout: 10ms

    tls:

        enabled:  false

        cert:

            file: /opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.qklszzn.com/peers/peer0.org1.qklszzn.com/tls/server.crt

        key:

            file: /opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.qklszzn.com/peers/peer0.org1.qklszzn.com/tls/server.key

        rootcert:

            file: /opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.qklszzn.com/peers/peer0.org1.qklszzn.com/tls/ca.crt

    fileSystemPath: /opt/hyperledger/peer/production


    BCCSP:

        Default: SW

        SW:

            # TODO: The default Hash and Security level needs refactoring to be

            # fully configurable. Changing these defaults requires coordination

            # SHA2 is hardcoded in several places, not only BCCSP

            Hash: SHA2

            Security: 256

            # Location of Key Store

            FileKeyStore:

                # If "", defaults to 'mspConfigPath'/keystore

                # TODO: Ensure this is read with fabric/core/config.GetPath() once ready

                KeyStore:


    # Path on the file system where peer will find MSP local configurations

    mspConfigPath: /opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.qklszzn.com/peers/peer0.org1.qklszzn.com/msp

    localMspId: Org1MSP

    profile:

        enabled:     false

        listenAddress: 0.0.0.0:6060


    handlers:

        authFilters:

          -

            name: "DefaultAuth"

        decorators:

          -

            name: "DefaultDecorator"


vm:

    endpoint: unix:///var/run/docker.sock

    docker:

        tls:

            enabled: false

            ca:

                file: docker/ca.crt

            cert:

                file: docker/tls.crt

            key:

                file: docker/tls.key


        attachStdout: false


        hostConfig:

            NetworkMode: host

            Dns:

            LogConfig:

                Type: json-file

                Config:

                    max-size: "50m"

                    max-file: "5"

            Memory: 2147483648



chaincode:

    id:

        path:

        name:

    builder: $(DOCKER_NS)/fabric-ccenv:$(ARCH)-$(PROJECT_VERSION)

    golang:

        runtime: $(BASE_DOCKER_NS)/fabric-baseos:$(ARCH)-$(BASE_VERSION)

        dynamicLink: false

    car:

        runtime: $(BASE_DOCKER_NS)/fabric-baseos:$(ARCH)-$(BASE_VERSION)

    java:

        Dockerfile:  |

            from $(DOCKER_NS)/fabric-javaenv:$(ARCH)-$(PROJECT_VERSION)

    node:

        runtime: $(BASE_DOCKER_NS)/fabric-baseimage:$(ARCH)-$(BASE_VERSION)

    startuptimeout: 300s

    executetimeout: 30s

    mode: dev

    keepalive: 0

    system:

        cscc: enable

        lscc: enable

        escc: enable

        vscc: enable

        qscc: enable

        rscc: disable

    systemPlugins:

    logging:

      level:  info

      shim:   warning

      format: '%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}'


ledger:

  blockchain:

  state:

    stateDatabase: goleveldb

    couchDBConfig:

       couchDBAddress: 127.0.0.1:5984

       username:

       password:

       maxRetries: 3

       maxRetriesOnStartup: 10

       requestTimeout: 35s

       queryLimit: 10000


  history:

    enableHistoryDatabase: true


创建一个输出文件夹

mkdir -p /opt/hyperledger/peer/production

在配置文件core.yaml所在的文件夹中执行以下命令启动order节点

在当前终端下执行peer node start


另外起一个终端

创建通道

cd /opt/hyperledger/order

第一步,创建通道

export set CORE_PEER_LOCALMSPID=Org1MSP

 

export set CORE_PEER_MSPCONFIGPATH=/opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.qklszzn.com/users/Admin@org1.qklszzn.com/msp

 

peer channel create -t 50 -o orderer.qklszzn.com:7050 -c roberttestchannel -f /opt/hyperledger/order/roberttestchannel.tx


第二步,让已经运行的peer加入通道

cd /opt/hyperledger/peer

 

export set CORE_PEER_LOCALMSPID=Org1MSP

 

export set CORE_PEER_ADDRESS=peer0.org1.qklszzn.com:7051

 

export set CORE_PEER_MSPCONFIGPATH=/opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.qklszzn.com/users/Admin@org1.qklszzn.com/msp

 

peer channel join -b /opt/hyperledger/order/roberttestchannel.block


第三步,更新锚节点

peer channel update -o orderer.qklszzn.com:7050 -c roberttestchannel -f /opt/hyperledger/order/Org1MSPanchors.tx



chaincode的部署和调用
Chaincode相关的测试一共有四个步骤

第一步:部署chaincode代码!!!!!

export set CORE_PEER_LOCALMSPID=Org1MSP

 

export set CORE_PEER_ADDRESS=peer0.org1.qklszzn.com:7051

 

export set CORE_PEER_MSPCONFIGPATH=/opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.qklszzn.com/users/Admin@org1.qklszzn.com/msp

 

#在这里一直过不过

peer chaincode install -n r_test_cc7 -v 1.0 -p $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

#执行以上的命令时当前终端出现

fabric-node3@fabric-node3:/opt/hyperledger/peer$ peer chaincode install -n r_test_cc7 -v 1.0 -p $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

2018-07-10 19:30:02.550 CST [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc

2018-07-10 19:30:02.550 CST [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc

Error: Error endorsing chaincode: rpc error: code = Unknown desc = chaincode error (status: 500, message: EOF)

Usage:

  peer chaincode install [flags]

可以看到peer的终端出来下面的提示
2018-07-10 19:33:09.853 CST [ccprovider] ExtractStatedbArtifactsFromCCPackage -> ERRO 033 Failure opening codepackage gzip stream: EOF
2018-07-10 19:33:09.853 CST [endorser] ProcessProposal -> ERRO 034 [][37040658] simulateProposal() resulted in chaincode name:"lscc"  response status 500 for txid: 37040658615fc14616f605ce2dc6bf644faf02b7804110844650421e30903f52

orderer的提示是这样的:
2018-07-10 19:32:36.825 CST [orderer/common/server] Deliver -> DEBU 12e Starting new Deliver handler
2018-07-10 19:32:36.825 CST [common/deliver] Handle -> DEBU 12f Starting new deliver loop for 10.0.8.49:47940
2018-07-10 19:32:36.825 CST [common/deliver] Handle -> DEBU 130 Attempting to read seek info message from 10.0.8.49:47940
2018-07-10 19:32:36.827 CST [policies] Evaluate -> DEBU 131 == Evaluating *policies.implicitMetaPolicy Policy /Channel/Readers ==
2018-07-10 19:32:36.827 CST [policies] Evaluate -> DEBU 132 This is an implicit meta policy, it will trigger other policy evaluations, whose failures may be benign
2018-07-10 19:32:36.827 CST [policies] Evaluate -> DEBU 133 == Evaluating *policies.implicitMetaPolicy Policy /Channel/Application/Readers ==
2018-07-10 19:32:36.827 CST [policies] Evaluate -> DEBU 134 This is an implicit meta policy, it will trigger other policy evaluations, whose failures may be benign
2018-07-10 19:32:36.827 CST [policies] Evaluate -> DEBU 135 == Evaluating *cauthdsl.policy Policy /Channel/Application/Org1MSP/Readers ==
2018-07-10 19:32:36.827 CST [msp] DeserializeIdentity -> INFO 136 Obtaining identity
2018-07-10 19:32:36.828 CST [msp/identity] newIdentity -> DEBU 137 Creating identity instance for cert -----BEGIN CERTIFICATE-----
MIICGTCCAcCgAwIBAgIRAPN1G0RMsvFx27gNc5F4QFswCgYIKoZIzj0EAwIwczEL
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEucWtsc3p6bi5jb20xHDAaBgNVBAMTE2Nh
Lm9yZzEucWtsc3p6bi5jb20wHhcNMTgwNzEwMDYxNzU5WhcNMjgwNzA3MDYxNzU5
WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzEfMB0GA1UEAxMWcGVlcjAub3JnMS5xa2xzenpuLmNvbTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABIWFZKMpZ3AeyHK5fzXPhiV+FHYeyaeA
eQXdtwV2+9dymGMgfKdz+bDfJrEoiSiivT5cF/AvqaSx8Eku2ouV2I2jTTBLMA4G
A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAID9p+EmtDUgm
blQ/upFou1Xv9SlcFuScy5ob91wOSoupMAoGCCqGSM49BAMCA0cAMEQCIBubeVam
skBuOPKmtlcdXlPlVKXA+xj6v7diq8fYvtfNAiA8jrqp155sVuqmZHpY2obXHKRb
ty9hvNQNIjxdvELpXQ==
-----END CERTIFICATE-----
2018-07-10 19:32:36.829 CST [cauthdsl] func1 -> DEBU 138 0xc4201421b8 gate 1531222356829146896 evaluation starts
2018-07-10 19:32:36.829 CST [cauthdsl] func2 -> DEBU 139 0xc4201421b8 signed by 0 principal evaluation starts (used [false])
2018-07-10 19:32:36.829 CST [cauthdsl] func2 -> DEBU 13a 0xc4201421b8 processing identity 0 with bytes of 0a074f7267314d53501296062d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d4949434754434341634367417749424167495241504e314730524d737646783237674e6335463451467377436759494b6f5a497a6a304541774977637a454c0a4d416b474131554542684d4356564d78457a415242674e5642416754436b4e6862476c6d62334a7561574578466a415542674e564241635444564e68626942470a636d467559326c7a593238784754415842674e5642416f54454739795a7a457563577473633370366269356a623230784844416142674e5642414d5445324e680a4c6d39795a7a457563577473633370366269356a623230774868634e4d5467774e7a45774d4459784e7a55355768634e4d6a67774e7a41334d4459784e7a55350a576a42624d517377435159445651514745774a56557a45544d4245474131554543424d4b5132467361575a76636d3570595445574d4251474131554542784d4e0a5532467549455a795957356a61584e6a627a45664d4230474131554541784d576347566c636a417562334a6e4d5335786132787a656e70754c6d4e766254425a0a4d424d4742797147534d34394167454743437147534d34394177454841304941424957465a4b4d705a33416579484b35667a58506869562b46485965796165410a65515864747756322b3964796d474d67664b647a2b6244664a72456f6953696976543563462f41767161537838456b75326f75563249326a5454424c4d4134470a41315564447745422f775145417749486744414d42674e5648524d4241663845416a41414d437347413155644977516b4d434b41494439702b456d744455676d0a626c512f7570466f7531587639536c634675536379356f623931774f536f75704d416f4743437147534d343942414d43413063414d455143494275626556616d0a736b42754f504b6d746c6364586c506c564b58412b786a3676376469713866597674664e416941386a727170313535735675716d5a487059326f6258484b52620a74793968764e514e496a786476454c7058513d3d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a
2018-07-10 19:32:36.829 CST [msp] SatisfiesPrincipal -> DEBU 13b Checking if identity satisfies MEMBER role for Org1MSP
2018-07-10 19:32:36.829 CST [msp] Validate -> DEBU 13c MSP Org1MSP validating identity
2018-07-10 19:32:36.830 CST [cauthdsl] func2 -> DEBU 13d 0xc4201421b8 principal matched by identity 0
2018-07-10 19:32:36.830 CST [msp/identity] Verify -> DEBU 13e Verify: digest = 00000000  4f c5 5c 13 c5 f4 c9 3e  e7 3f 31 2d ca c1 cd a6  |O.\....>.?1-....|
00000010  b7 8f 0d 01 f6 43 b5 96  2a 28 7f 69 dc 10 70 bc  |.....C..*(.i..p.|
2018-07-10 19:32:36.830 CST [msp/identity] Verify -> DEBU 13f Verify: sig = 00000000  30 45 02 21 00 d3 7c ae  a0 3d a9 02 ac b0 31 63  |0E.!..|..=....1c|
00000010  7c d4 f8 b3 11 35 b7 02  84 6d 84 08 05 47 c5 0f  ||....5...m...G..|
00000020  16 d7 be 93 a2 02 20 1d  80 b9 ca 16 da e2 c5 08  |...... .........|
00000030  b5 b2 8d 92 06 3b ec fb  d2 27 d6 de d9 1b 6c 77  |.....;...'....lw|
00000040  a3 5d 51 4e 84 2c 5d                              |.]QN.,]|
2018-07-10 19:32:36.831 CST [cauthdsl] func2 -> DEBU 140 0xc4201421b8 principal evaluation succeeds for identity 0
2018-07-10 19:32:36.831 CST [cauthdsl] func1 -> DEBU 141 0xc4201421b8 gate 1531222356829146896 evaluation succeeds
2018-07-10 19:32:36.831 CST [policies] Evaluate -> DEBU 142 Signature set satisfies policy /Channel/Application/Org1MSP/Readers
2018-07-10 19:32:36.831 CST [policies] Evaluate -> DEBU 143 == Done Evaluating *cauthdsl.policy Policy /Channel/Application/Org1MSP/Readers
2018-07-10 19:32:36.831 CST [policies] Evaluate -> DEBU 144 Signature set satisfies policy /Channel/Application/Readers
2018-07-10 19:32:36.831 CST [policies] Evaluate -> DEBU 145 == Done Evaluating *policies.implicitMetaPolicy Policy /Channel/Application/Readers
2018-07-10 19:32:36.831 CST [policies] Evaluate -> DEBU 146 Signature set satisfies policy /Channel/Readers
2018-07-10 19:32:36.831 CST [policies] Evaluate -> DEBU 147 == Done Evaluating *policies.implicitMetaPolicy Policy /Channel/Readers
2018-07-10 19:32:36.831 CST [common/deliver] deliverBlocks -> DEBU 148 [channel: roberttestchannel] Received seekInfo (0xc4202a6480) start:<specified:<number:2 > > stop:<specified:<number:18446744073709551615 > >  from 10.0.8.49:47940
2018-07-10 19:32:36.832 CST [fsblkstorage] waitForBlock -> DEBU 149 Going to wait for newer blocks. maxAvailaBlockNumber=[1], waitForBlockNum=[2]
请先 登录 后评论

1 个回答

沈吉 Jason - 区块链产品经理/长跑爱好者

peer chaincode install -n r_test_cc7 -v 1.0 -p $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

改成

fabric/examples/chaincode/go/chaincode_example02


请先 登录 后评论
  • 1 关注
  • 0 收藏,803 浏览
  • thinkpadx 提出于 2018-07-10 19:38

相似问题