【问题标题】:HyperLedger-Fabric ChainCode Deployment Giving Parse ErrorHyperLedger-Fabric ChainCode 部署导致解析错误
【发布时间】:2016-08-12 13:05:09
【问题描述】:

我已经在 vm 中设置了一个对等点并且它运行良好。我也通过这个向对等方注册了链码

CORE_CHAINCODE_ID_NAME=chaincode_example02 CORE_PEER_ADDRESS=localhost:51011 ./chaincode_example02

它没有显示错误

在此之后,当我尝试使用这个 json 从休息中击中 init 方法时

{
  "jsonrpc": "2.0",
  "method": "deploy",
  "params": {
    "type": 1,
    "chaincodeID":{
        "name": "chaincode_example02",
         "path": "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"
    },
    "ctorMsg": {
        "function":"init",
        "args": ["a","100","b","200"]
    }
  },
  "id": 10
}

我得到这个错误

{
  "jsonrpc": "2.0"
  "error": {
    "code": -32700
    "message": "Parse error"
    "data": "Error unmarshalling chaincode request payload: illegal base64 data at input byte 0"
  }-
  "id": null
}

谁能告诉我我做错了什么?

【问题讨论】:

  • 当我运行此代码时,对等日志显示Failed to init chaincode(handler not found for chaincode chaincode_example02),因此很明显,无论出于何种原因,init 都会失败。当您尝试部署链代码时,您是否会在对等方上弹出相同的错误消息?您能否提供处理此部署的对等日志部分?
  • 不,我没有收到此错误,但对我而言,init 无法处理上述给出的错误,并且在我注册后,我没有收到有关 init、invoke 或任何内容的任何更新。当对等点运行时还有一件事,它在某些间隔后不断给我一条消息,“ grpc:ClientConn.resetTransport 无法创建客户端传输:连接错误:desc =“传输:拨号tcp ipaddr:端口号:getsockopt:否路由到主机"; 重新连接到 ":ipaddr:port no""

标签: unmarshalling blockchain hyperledger peer hyperledger-fabric


【解决方案1】:

我遇到了同样的错误。以下是我所做的并返回了消息。请在随附的屏幕截图中找到 tcpdump 捕获的我的流量日志。除了控制信号

  1. 我在第一个终端控制台中使用此命令启动了一个验证对等方运行 noops 共识

    docker run --name vp0 --rm -it -e CORE_VM_ENDPOINT=unix:///var/run/docker.sock -p 7050:7050 -p 7051:7051 -p 7054:7054 -p 7053:7053 -e CORE_LOGGING_LEVEL=DEBUG -e CORE_PEER_ID=vp0 -e CORE_PEER_ADDRESSAUTODETECT=true hyperledger/fabric-peer peer node start

  2. 我在第二个终端控制台中使用这些命令注册示例链代码

    cd $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

    开始构建

    CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02

  3. 第一个终端控制台显示我的示例链代码已注册

    18:32:12.070 [chaincode] HandleChaincodeStream -> DEBU 061 当前上下文截止日期 = 0001-01-01 00:00:00 +0000 UTC,ok = false

    18:32:12.071 [chaincode] processStream -> DEBU 062 []Received message REGISTER from shim

    18:32:12.071 [chaincode] HandleMessage -> DEBU 063 []Handling ChaincodeMessage of type: REGISTER in state created

    18:32:12.071 [chaincode] beforeRegisterEvent -> DEBU 064 Received REGISTER in state created

    18:32:12.071 [chaincode] registerHandler -> 链码 mycc 的 DEBU 065 注册处理程序完成

    18:32:12.071 [chaincode] beforeRegisterEvent -> DEBU 066 Got REGISTER for chaincodeID = name:"mycc" ,发回 REGISTERED

    18:32:12.071 [chaincode] notifyDuringStartup -> DEBU 067 无需通知(开发模式?)

  4. 第二个终端控制台显示一切正常

    18:32:12.069 [shim] DEBU:对等地址:0.0.0.0:7051

    18:32:12.070 [shim] DEBU:os.Args 返回:[./chaincode_example02]

    18:32:12.070 [shim] DEBU : 注册..发送注册

    18:32:12.071 [shim] DEBU : []Received message REGISTERED from shim

    18:32:12.071 [shim] DEBU : []Handling ChaincodeMessage of type: REGISTERED(state:created)

    18:32:12.071 [shim] DEBU : 已注册,准备调用

  5. 当我将示例链代码部署到对等方时,我收到了错误消息

    peer chaincode deploy -n mycc -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'

    19:03:33.715 [logging] LoggingInit -> DEBU 001 将命令“chaincode”的默认日志记录级别设置为 DEBUG 错误:链码参数错误:输入字节 0 处的 base64 数据非法

【讨论】:

  • 在您调用init或invoke时,您是否在终端注册后获得任何更新?
  • 当您的对等节点像这样运行时,您是否在日志中收到任何类型的消息? " grpc: ClientConn.resetTransport 创建客户端传输失败:连接错误:desc = "transport: dial tcp ipAddr:portNo: getsockopt: no route to host"; 重新连接到 "ippadrr: portNo""
  • 我没有运行“init”或“invoke”,因为它一开始部署失败。我最终从 github 克隆的最新源构建并在开发模式下运行单个对等点。
猜你喜欢
  • 1970-01-01
  • 2023-01-14
  • 1970-01-01
  • 1970-01-01
  • 2020-11-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
相关资源
最近更新 更多