【问题标题】:Migrate to 2.0 Lifecycle, Hyperledger Fabric EVM迁移到 2.0 生命周期,Hyperledger Fabric EVM
【发布时间】:2020-04-09 02:02:23
【问题描述】:

我正在尝试编译来自https://github.com/hyperledger/fabric-chaincode-evm 的 Hyperledger Fabric 打包的 EVM 链代码,但运气不佳

我们需要将它编译为分类帐的 2.0.1 版本,因为这是我们的网络使用的,一切运行良好,我设法使用 go.mod 依赖文件中的 fabric v2.0.0 依赖进行编译,后来使用

拉出缺少的 1.4.0 依赖项(peer、shim)
go get github.com/hyperledger/fabric/protos/peer
go get github.com/hyperledger/fabric/core/chaincode/shim

还更改了 integration/vendor/github.com/hyperledger/fabric/protos/common/configuration.proto 从 1 到 2,像这样:

message Capabilities {
    map<string, Capability> capabilities = 2;
}

但是,在进行实例化时出现错误:

Error: could not assemble transaction, err proposal response was not successful, error code 500, msg Channel 'evm' has been migrated to the new lifecycle, LSCC is now read-only

我不确定在哪里可以更改标志以使用 EVM 链代码中的新生命周期,我不是围棋专家,所以我最好把这个问题作为一个问题并依赖更多的专家开发人员。

如何升级到新的生命周期?

我想我缺少命令参数来批准网络内所有对等点的链码,我正在尝试

peer lifecycle chaincode approveformyorg -o orderer.example.com:7050 --channelID evm --name evmcc --version ${EVM_VERSION} --init-required --package-id ${PACKAGE_ID} --sequence ${EVM_VERSION} --waitForEvent

但我不知道如何从已安装的链码包中提取包 ID。

提前致谢。

【问题讨论】:

    标签: hyperledger-fabric hyperledger ethereum


    【解决方案1】:

    通过调用解决了。

    我们不是先对组织进行实例化,然后再为网络中的每个对等方调用。像这样:

    
    export PEER_CONN_PARMS="--peerAddresses $ORG1_PEER0_CORE_PEER_ADDRESS --peerAddresses $ORG1_PEER1_CORE_PEER_ADDRESS --peerAddresses $ORG2_PEER0_CORE_PEER_ADDRESS --peerAddresses $ORG2_PEER1_CORE_PEER_ADDRESS --tlsRootCertFiles $ORG1_PEER0_CORE_PEER_TLS_ROOTCERT_FILE --tlsRootCertFiles $ORG1_PEER1_CORE_PEER_TLS_ROOTCERT_FILE --tlsRootCertFiles $ORG2_PEER0_CORE_PEER_TLS_ROOTCERT_FILE --tlsRootCertFiles $ORG2_PEER1_CORE_PEER_TLS_ROOTCERT_FILE"
    
    echo $PEER_CONN_PARMS
    
    peer lifecycle chaincode package evmcc.tar.gz --path ${CC_SRC_PATH} --lang ${CC_RUNTIME_LANGUAGE} --label evmcc_${VERSION} >&log.txt
    cat log.txt
    
    setGlobals 1 0
    
    peer lifecycle chaincode install evmcc.tar.gz --peerAddresses $ORG1_PEER0_CORE_PEER_ADDRESS  --tlsRootCertFiles $ORG1_PEER0_CORE_PEER_TLS_ROOTCERT_FILE >&log.txt
    cat log.txt
    
    setGlobals 1 1
    
    peer lifecycle chaincode install evmcc.tar.gz --peerAddresses $ORG1_PEER1_CORE_PEER_ADDRESS --tlsRootCertFiles $ORG1_PEER1_CORE_PEER_TLS_ROOTCERT_FILE >&log.txt
    cat log.txt
    
    setGlobals 2 0
    
    peer lifecycle chaincode install evmcc.tar.gz --peerAddresses $ORG2_PEER0_CORE_PEER_ADDRESS --tlsRootCertFiles $ORG2_PEER0_CORE_PEER_TLS_ROOTCERT_FILE >&log.txt
    cat log.txt
    
    setGlobals 2 1
    
    peer lifecycle chaincode install evmcc.tar.gz --peerAddresses $ORG2_PEER1_CORE_PEER_ADDRESS --tlsRootCertFiles $ORG2_PEER1_CORE_PEER_TLS_ROOTCERT_FILE >&log.txt
    cat log.txt
    
    peer lifecycle chaincode queryinstalled >&log.txt
    PACKAGE_ID=$(sed -n "/evmcc_${VERSION}/{s/^Package ID: //; s/, Label:.*$//; p;}" log.txt)
    
    cat log.txt
    
    echo $PACKAGE_ID
    
    setGlobals 1 0
    
    peer lifecycle chaincode approveformyorg -o orderer.example.com:7050 --ordererTLSHostnameOverride orderer.example.com --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA --channelID $CHANNEL_NAME --name evmcc --version ${VERSION} --init-required --package-id ${PACKAGE_ID} --sequence ${SEQUENCE}  >&log.txt
    cat log.txt 
    
    setGlobals 2 0
    
    peer lifecycle chaincode approveformyorg -o orderer.example.com:7050 --ordererTLSHostnameOverride orderer.example.com --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA --channelID $CHANNEL_NAME --name evmcc --version ${VERSION} --init-required --package-id ${PACKAGE_ID} --sequence ${SEQUENCE}  >&log.txt
    cat log.txt 
    
    
    ORGAPPROVAL=$(peer lifecycle chaincode checkcommitreadiness -o orderer.example.com:7050 --channelID ${CHANNEL_NAME} --tls --cafile $ORDERER_CA --name evmcc --version ${VERSION} --init-required --sequence ${SEQUENCE} --output json | jq -r '.approvals') 
    
    
    ORG1APPROVAL=$(echo $ORGAPPROVAL | jq -r --arg key "$ORG1_MSP" '.[$key]')
    ORG2APPROVAL=$(echo $ORGAPPROVAL | jq -r --arg key "$ORG2_MSP" '.[$key]')
    
    if [ "$ORG1APPROVAL" = true ] ; then
        if [ "$ORG2APPROVAL" = true ] ; then
            peer lifecycle chaincode commit -o orderer.example.com:7050 --ordererTLSHostnameOverride orderer.example.com --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA --channelID $CHANNEL_NAME --name evmcc $PEER_CONN_PARMS --version ${VERSION} --sequence ${SEQUENCE} --init-required >&log.txt
            cat log.txt
    
        fi
    
    fi
    
    setGlobals 1 0
    
    #peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile $ORDERER_CA -C ${CHANNEL_NAME} -n evmcc -v ${VERSION} -c '{"Args":["init"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer')"
    
    peer chaincode invoke -o orderer.example.com:7050 --ordererTLSHostnameOverride orderer.example.com --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n evmcc $PEER_CONN_PARMS --isInit -c '{"function":"Init","Args":[]}' >&log.txt
    cat log.txt
    
    
    setGlobals 1 1
    
    peer chaincode invoke -o orderer.example.com:7050 --ordererTLSHostnameOverride orderer.example.com --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n evmcc $PEER_CONN_PARMS --isInit -c '{"function":"Init","Args":[]}' >&log.txt
    cat log.txt
    
    setGlobals 2 0
    
    peer chaincode invoke -o orderer.example.com:7050 --ordererTLSHostnameOverride orderer.example.com --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n evmcc $PEER_CONN_PARMS --isInit -c '{"function":"Init","Args":[]}' >&log.txt
    cat log.txt
    
    setGlobals 2 1
    
    peer chaincode invoke -o orderer.example.com:7050 --ordererTLSHostnameOverride orderer.example.com --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n evmcc $PEER_CONN_PARMS --isInit -c '{"function":"Init","Args":[]}' >&log.txt
    cat log.txt
    

    【讨论】:

      猜你喜欢
      • 2021-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      相关资源
      最近更新 更多