Fabric2.0 外部链码报错:undefined: shim.ChaincodeServer

问题

  Fabric版本:2.0.1
  构建完外部链码时,报错undefined: shim.ChaincodeServer。查阅官方文档,发现写法没有任何问题。去vendor文件夹,查看shim源码发现确实没有ChaincodeServer的定义,但是官方文档上写的2.0确实新增了接口。
Fabric2.0 外部链码报错:undefined: shim.ChaincodeServer_第1张图片
  由此猜测可能是依赖版本的问题。

解决方案

  之前依赖版本:

require (
	github.com/hyperledger/fabric-chaincode-go v0.0.0-20190823162523-04390e015b85
	github.com/hyperledger/fabric-protos-go v0.0.0-20190821214336-621b908d5022
	golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7 // indirect
	golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // indirect
	golang.org/x/text v0.3.2 // indirect
	google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 // indirect
)

  修改后依赖版本(fabric-chaincode-go 版本变更为v0.0.0-20200424173110-d7076418f212):

require (
	github.com/hyperledger/fabric-chaincode-go v0.0.0-20200424173110-d7076418f212
	github.com/hyperledger/fabric-protos-go v0.0.0-20190919234611-2a87503ac7c9
	golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7 // indirect
	golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // indirect
	golang.org/x/text v0.3.2 // indirect
	google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 // indirect
)

  注意如果之前生成了vendor文件夹,先删除,重新执行go mod vendor,然后继续build ,build 成功。

你可能感兴趣的:(Fabric,Hyperledger,2.x,区块链,链码)