0

nodeJS で記述されたアプリケーションが nodeJS で記述されたチェーンコード関数を呼び出す、Hyperledger Fabric を使用してアプリケーションを開発しています。このチェーン コード関数は、Python スクリプトを呼び出し、何かを実行し、結果をチェーンコード関数に書き込む必要があります。このチェーンコード関数は、Python スクリプトによって返された結果を台帳に保存し、保存の成功ステータスを呼び出し元のアプリケーションに返す必要があります。次の方法でnodeJSによって提供された子プロセスモジュールを使用してこれを実行しようとしました-

async mergeModel(ctx, modelNumber1, modelNumber2) {
    console.info('============= START : Merge Model ===========');
    const modelAsBytes1 = await ctx.stub.getState(modelNumber1); // get the model from chaincode state
    const modelAsBytes2 = await ctx.stub.getState(modelNumber2); // get the model from chaincode state

    if (!modelAsBytes1 || modelAsBytes1.length === 0) {
        throw new Error(`${modelNumber1} does not exist`);
    }
    if (!modelAsBytes2 || modelAsBytes2.length === 0) {
        throw new Error(`${modelNumber2} does not exist`);
    }
    const spawn = require('child_process').spawn;
    const pythonProcess = spawn('python',['mergeModel.py', modelAsBytes1, modelAsBytes2]);
    pythonProcess.stdout.on('data', (data) => {
        console.log(data);
    });
}

Python スクリプトの mergeModel.py は、チェーンコードと同じディレクトリに格納されています。しかし、これは期待どおりに python スクリプトを呼び出していません。私が欠けているものはありますか?ありがとう。

4

1 に答える 1