问题一:
Is not a valid endorsement system chaincode
原因:
fabric-ca和fabric-ca-client版本与fabric版本不匹配(我用的是fabric v1.0)
解决方法:
npm install grpc@1.10.1 fabric-ca-client@1.1.0 fabric-client@1.1.0
问题二:
这是在运行e2e案例出现的错误:
network e2ecli_default not found
原因:
配置文件中默认的名称与要创建的网络名称不一样
解决方法:
将peer-base.yaml文件中的
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2ecli_default
改为
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default
问题三
链码可以成功部署,但是运行的时候总是显示网络错误或者执行超时
原因
链码代码有问题,虽然链码没有语法错误,但是逻辑有问题。
解决方法
首先定位到是那一个功能函数出的问题,之后检查该函数的变量赋值。变量是否赋值为空,参数传入是否正确,比如传入了3个参数,但是在变量赋值时却出现a=args[4]的情况,明显传入的参数不存在args[4]。如果使用了切片,检查是否超出数组大小范围,比如b=“test”,后面却出现slice=[4:],明显b的长度只有4,不会出现[4:],所以slice超出了数组大小。
2020 7-17
fabric 2.2版本
问题一
got unexpected status: SERVICE_UNAVAILABLE – no Raft leader
原因
通过查看orderer日志发现我的原因是orderer之间的通信有问题,显示其它节点和当前节点的通信不可信。造成这样的原因是我为每一个节分别生成了证书等文件,而这些节点应该使用同样的证书。
解决
选择一个节点生成证书等文件,然后把这些证书复制到其它节点