【问题标题】:How do I run hyperledger-fabric node js chaincode in dev mode?如何在开发模式下运行 hyperledger-fabric node js 链码?
【发布时间】:2018-04-09 00:55:53
【问题描述】:

我正在尝试按照这里的教程进行操作:hyperledger-chaincode-for-developers 但是当我尝试像这样构建我的链码时:

node main-chaincode.js --peer.address peer:7052

我收到以下错误消息:

错误:字符串类型的名称值元素的非法值:失败时未定义(不是字符串)(/opt/gopath/src/chaincode/lavinias_chaincode/node/node_modules/protobufjs/dist/protobuf.js:1817:23)在 Element.ProtoBuf.Reflect.ElementPrototype.verifyValue (/opt/gopath/src/chaincode/lavinias_chaincode/node/node_modules/protobufjs/dist/protobuf.js:1879:25) 在 Field.ProtoBuf.Reflect.FieldPrototype.verifyValue (/ opt/gopath/src/chaincode/lavinias_chaincode/node/node_modules/protobufjs/dist/protobuf.js:3499:33) 在 Message.setter (/opt/gopath/src/chaincode/lavinias_chaincode/node/node_modules/protobufjs/dist/ protobuf.js:2582:77) 在 Function.start (/opt/gopath/sr c/chaincode/lavinias_chaincode/node/node_modules/fabric-shim/lib/chaincode.js:118:15)在开始时(/opt/gopath/src/chaincode/lavinias_chaincode/node/main-chaincode.js:46:8)在对象。 (/opt/gopath/src/chaincode/lavinias_chaincode/node/main-chaincode.js:49:1) 在 Module._compile (module.js:643:30) 在 Object.Module._extensions..js (module.js :654:10) 在 Module.load (module.js:556:32):654:10) 在 Module.load (module.js:556:32)

这是我的链码:

    'use strict';

const shim = require('fabric-shim');

const Chaincode = class {
  async Init(stub) {
       let ret = stub.getFunctionAndParameters();
       let args = ret.params;
       if(args.length != 2) {
         return shim.error("Error. Invalid call arguments.")
       }
       await stub.putState(args[0], Buffer.from(args[1]));

       return shim.success('Initialized Successfully!');
   }

   async Invoke(stub) {
       let functionAndParams = stub.getFunctionAndParameters();
       if(functionAndParams.fcn === 'get') {
         return get(stub, functionAndParams.params);
       }
       else if(functionAndParams.fcn === 'set'){
         return set(stub, functionAndParams.params);
       }
       return shim.error("Error. Invalid invocation.");
   }
};

function get(stub, params) {
  if(params.length != 1) {
    return shim.error("Error. Invalid invocation call.");
  }
  return stub.getState(params[0]);
}

function set(stub, params) {
  if(params.length != 2) {
    return shim.error("Error. Invalid number of arguments.");
  }
  return stub.putState(params[0], params[1]);
}

var start = function start(){
  var cc = new Chaincode();
  shim.start(cc);
}

start();

超级账本 shim 文档说只需要 peer.address 参数:shim.start

任何帮助将不胜感激

【问题讨论】:

    标签: javascript node.js hyperledger-fabric hyperledger


    【解决方案1】:

    我看了这个视频就知道了:node chaincode
    你应该像这样构建它:

     CORE_CHAINCODE_ID_NAME="mycc:v0" node main-chaincode.js --peer.address peer:7052
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 2022-06-20
      • 1970-01-01
      相关资源
      最近更新 更多