Warm tip: This article is reproduced from serverfault.com, please click

hyperledger fabric-错误:任何对等方均未提供有效响应。

(hyperledger fabric - Error: No valid responses from any peers. Failed to execute transaction could not launch chaincode)

发布于 2020-12-08 18:41:44

我正在尝试对提供的asset-transfer-ledger-queries查询文件夹中的app.js文件进行一些修改。

我对asset-transfer-ledger-chaincode.js文件进行了更改,如下所示:

async CreateAsset(ctx, assetID, color, size, owner, appraisedValue) {
    const exists = await this.AssetExists(ctx, assetID);
    if (exists) {
        throw new Error(`The asset ${assetID} already exists`);
    }

    // ==== Create asset object and marshal to JSON ====
    let asset = {
        docType: 'asset',
        assetID: assetID,
        color: color,
        size: size,
        owner: owner,
        appraisedValue: appraisedValue,
        couponID: assetID,
        value: color,
        expiration: size,
        user: sha256(owner),
        uuid: uuid.v5(),
        redeemed: false
    };

基本上,我只是向资产对象添加了一些属性。

更新链码并运行节点app.js后,出现以下错误:

 --> Submit Transaction: InitLedger, function creates the initial set of assets on the ledger
2020-12-08T18:22:27.975Z - error: [Transaction]: Error: No valid responses from any peers. Errors:
    peer=peer0.org1.example.com:7051, status=500, message=error in simulation: failed to execute transaction 3832a02eeafd57382fb4810bc263d41693764f0d8cb76c27e5613c359b14d42f: could not launch chaincode ledger_1.0:7230409065bcd9da163bc285287935a7d6a3799c99ee59b8a77c93883b607bdb: chaincode registration failed: container exited with 1
    peer=peer0.org2.example.com:9051, status=500, message=error in simulation: failed to execute transaction 3832a02eeafd57382fb4810bc263d41693764f0d8cb76c27e5613c359b14d42f: could not launch chaincode ledger_1.0:7230409065bcd9da163bc285287935a7d6a3799c99ee59b8a77c93883b607bdb: chaincode registration failed: container exited with 1
******** initLedger failed :: Error: No valid responses from any peers. Errors:
    peer=peer0.org1.example.com:7051, status=500, message=error in simulation: failed to execute transaction 3832a02eeafd57382fb4810bc263d41693764f0d8cb76c27e5613c359b14d42f: could not launch chaincode ledger_1.0:7230409065bcd9da163bc285287935a7d6a3799c99ee59b8a77c93883b607bdb: chaincode registration failed: container exited with 1
    peer=peer0.org2.example.com:9051, status=500, message=error in simulation: failed to execute transaction 3832a02eeafd57382fb4810bc263d41693764f0d8cb76c27e5613c359b14d42f: could not launch chaincode ledger_1.0:7230409065bcd9da163bc285287935a7d6a3799c99ee59b8a77c93883b607bdb: chaincode registration failed: container exited with 1

如果我不对chaincode文件进行任何更改,它将很好地工作。有人知道我能做什么吗?

Questioner
Jasmine Wong
Viewed
11
myeongkil kim 2020-12-12 11:21:41

我想重现你的情况。

# fabric-samples/test-network
./network.sh down
./network.sh up createChannel -c mychannel -ca
./network.sh deployCC -ccn ledger -ccl javascript
# fabric-samples/asset-transfer-ledger-queries/application-javascript
node -v 
# v12.13.1
npm install
node app.js

你也可以在chaincode容器中查看错误日志

# check <your_chaincode_container_name>
docker ps -a

# view logs
docker logs <your_chaincode_container_name> 

1.导入库[chaincode.js]

#[ERROR CODE] - `node app.js`
--> Submit Transaction: InitLedger, function creates the initial set of assets on the ledger
2020-12-10T00:53:48.061Z - error: [Transaction]: Error: No valid responses from any peers. Errors:
    peer=peer0.org2.example.com:9051, status=500, message=error in simulation: transaction returned with failure: ReferenceError: sha256 is not defined
    peer=peer0.org1.example.com:7051, status=500, message=error in simulation: transaction returned with failure: ReferenceError: sha256 is not defined

做吧

# asset_transfer_ledger_chaincode.js

const {Contract} = require('fabric-contract-api');
const sha256 = require('sha256');         // added
const uuid = require('uuid');             // added
# package.json
    "dependencies": {
        "fabric-contract-api": "^2.0.0",
        "fabric-shim": "^2.0.0",    // added ','
        "sha256": "^0.2.0",         // added
        "uuid": "^8.3.2"            // added
    }

2.修正错误的模块代码

#[ERROR CODE] - `node app.js`
--> Submit Transaction: InitLedger, function creates the initial set of assets on the ledger
2020-12-10T01:03:27.583Z - error: [Transaction]: Error: No valid responses from any peers. Errors:
    peer=peer0.org1.example.com:7051, status=500, message=error in simulation: failed to execute transaction 62c19fbb84394ba1de399745c46f781078134b84de6b3d73419b9f65c5fa692b: could not launch chaincode ledger_1.0:5303ef138ca9cdb054cd3d814835fffca2706aa0c8e387611b93e4d6d1773742: chaincode registration failed: container exited with 1
    peer=peer0.org2.example.com:9051, status=500, message=error in simulation: failed to execute transaction 62c19fbb84394ba1de399745c46f781078134b84de6b3d73419b9f65c5fa692b: could not launch chaincode ledger_1.0:5303ef138ca9cdb054cd3d814835fffca2706aa0c8e387611b93e4d6d1773742: chaincode registration failed: container exited with 1
******** initLedger failed :: Error: No valid responses from any peers. Errors:
    peer=peer0.org1.example.com:7051, status=500, message=error in simulation: failed to execute transaction 62c19fbb84394ba1de399745c46f781078134b84de6b3d73419b9f65c5fa692b: could not launch chaincode ledger_1.0:5303ef138ca9cdb054cd3d814835fffca2706aa0c8e387611b93e4d6d1773742: chaincode registration failed: container exited with 1
    peer=peer0.org2.example.com:9051, status=500, message=error in simulation: failed to execute transaction 62c19fbb84394ba1de399745c46f781078134b84de6b3d73419b9f65c5fa692b: could not launch chaincode ledger_1.0:5303ef138ca9cdb054cd3d814835fffca2706aa0c8e387611b93e4d6d1773742: chaincode registration failed: container exited with 1

uuid.v4()创建版本4(随机)UUID
uuid.v5()创建版本5(名称空间,带有SHA-1)UUID uuid.v5()需要输入参数

做吧

# asset_transfer_ledger_chaincode.js

        // ==== Create asset object and marshal to JSON ====
         let asset = {
            docType: 'asset',
            assetID: assetID,
            color: color,
            size: size,
            owner: owner,
            appraisedValue: appraisedValue,
            couponID: assetID,
            value: color,
            expiration: size,
            user: sha256(owner),
            uuid: uuid.v5('Hello, World!', '1b671a64-40d5-491e-99b0-da01ff1f3341'), // modified
            redeemed: false
        };

3.结果(已解决)

# fabric-samples/asset-transfer-ledger-queries/application-javascript
# node app.js

Loaded the network configuration located at /Users/kmk/Project/src/github.com/hyperledger/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/connection-org1.json
Built a CA Client named ca-org1
Built a file system wallet at /Users/kmk/Project/src/github.com/hyperledger/fabric-samples/asset-transfer-ledger-queries/application-javascript/wallet
Successfully enrolled admin user and imported it into the wallet
Successfully registered and enrolled user appUser and imported it into the wallet

--> Submit Transaction: InitLedger, function creates the initial set of assets on the ledger
*** Result: committed
*** application ending