【Fabric】各种难搞bug解决(一)

Golang安装链码相关

  1. 安装链码时go mod vendor会出现“Error returned from build: 2……”错误

整体错误:

create chaincode lifecycle error: %v installCC error: LifecycleInstallCC error: Multiple errors occurred: - Transaction processing for endorser [peer0.org1.med.com:7051]: Chaincode status Code: (500) UNKNOWN. Description: failed to invoke backing implementation of 'InstallChaincode': could not build chaincode: docker build failed: docker image build failed: docker build failed: Error returned from build: 2 "google.golang.org/protobuf/internal/flags
google.golang.org/protobuf/internal/set
golang.org/x/sys/internal/unsafeheader
google.golang.org/protobuf/internal/detrand
google.golang.org/protobuf/internal/pragma
google.golang.org/protobuf/internal/version
golang.org/x/net/internal/timeseries
google.golang.org/grpc/backoff
golang.org/x/sys/unix
google.golang.org/protobuf/internal/errors
google.golang.org/grpc/internal/grpclog
google.golang.org/protobuf/encoding/protowire
golang.org/x/net/trace
google.golang.org/grpc/grpclog
google.golang.org/protobuf/reflect/protoreflect
google.golang.org/grpc/connectivity
google.golang.org/grpc/attributes
google.golang.org/grpc/internal/credentials
google.golang.org/grpc/serviceconfig
google.golang.org/grpc/metadata
google.golang.org/grpc/internal/grpcrand
google.golang.org/protobuf/internal/encoding/messageset
google.golang.org/protobuf/internal/strs
google.golang.org/protobuf/internal/genid
google.golang.org/protobuf/internal/order
google.golang.org/protobuf/reflect/protoregistry
google.golang.org/protobuf/internal/encoding/text
google.golang.org/protobuf/runtime/protoiface
google.golang.org/protobuf/internal/descfmt
google.golang.org/protobuf/proto
google.golang.org/protobuf/internal/descopts
google.golang.org/protobuf/internal/encoding/json
google.golang.org/protobuf/internal/encoding/defval
google.golang.org/grpc/codes
google.golang.org/grpc/encoding
google.golang.org/grpc/internal/backoff
google.golang.org/grpc/internal/balancerload
google.golang.org/grpc/internal/grpcutil
google.golang.org/grpc/internal/buffer
google.golang.org/grpc/internal/grpcsync
google.golang.org/protobuf/encoding/prototext
google.golang.org/protobuf/internal/filedesc
google.golang.org/grpc/internal/envconfig
golang.org/x/text/transform
golang.org/x/text/unicode/bidi
golang.org/x/text/unicode/norm
golang.org/x/net/http2/hpack
golang.org/x/text/secure/bidirule
google.golang.org/protobuf/internal/encoding/tag
google.golang.org/protobuf/encoding/protojson
google.golang.org/grpc/internal/syscall
google.golang.org/grpc/keepalive
google.golang.org/protobuf/internal/impl
google.golang.org/grpc/stats
golang.org/x/net/idna
google.golang.org/grpc/tap
med/chaincode/go/m
golang.org/x/net/http/httpguts
golang.org/x/net/http2
# golang.org/x/net/http2
vendor/golang.org/x/net/http2/transport.go:416:45: undefined: os.ErrDeadlineExceeded
google.golang.org/protobuf/internal/filetype
google.golang.org/protobuf/runtime/protoimpl
google.golang.org/protobuf/types/known/emptypb
google.golang.org/protobuf/types/known/timestamppb
google.golang.org/protobuf/types/known/anypb
google.golang.org/protobuf/types/descriptorpb
github.com/golang/protobuf/ptypes/timestamp
github.com/golang/protobuf/ptypes/empty
github.com/golang/protobuf/ptypes/any
google.golang.org/protobuf/types/known/durationpb
google.golang.org/genproto/googleapis/rpc/status
github.com/golang/protobuf/ptypes/duration
google.golang.org/protobuf/reflect/protodesc
github.com/golang/protobuf/proto
github.com/hyperledger/fabric-protos-go/ledger/rwset
google.golang.org/grpc/credentials
github.com/golang/protobuf/jsonpb
github.com/hyperledger/fabric-protos-go/msp
google.golang.org/grpc/encoding/proto
github.com/golang/protobuf/ptypes
google.golang.org/grpc/internal/channelz
github.com/hyperledger/fabric-protos-go/common
google.golang.org/grpc/credentials/insecure
google.golang.org/grpc/internal/pretty
google.golang.org/grpc/binarylog/grpc_binarylog_v1
google.golang.org/grpc/channelz
google.golang.org/grpc/resolver
google.golang.org/grpc/internal/status
google.golang.org/grpc/internal
google.golang.org/grpc/status
google.golang.org/grpc/balancer
google.golang.org/grpc/internal/metadata
google.golang.org/grpc/balancer/grpclb/state
google.golang.org/grpc/internal/binarylog
google.golang.org/grpc/internal/resolver/passthrough
google.golang.org/grpc/balancer/base
google.golang.org/grpc/internal/serviceconfig
google.golang.org/grpc/internal/resolver/dns
google.golang.org/grpc/balancer/roundrobin
google.golang.org/grpc/internal/balancer/gracefulswitch
google.golang.org/grpc/internal/resolver
google.golang.org/grpc/internal/transport/networktype
google.golang.org/grpc/peer
github.com/hyperledger/fabric-protos-go/ledger/queryresult
google.golang.org/grpc/internal/resolver/unix

这个bug乍一看很像是go代理没设置好的问题,但是仔细看错误,会发现:

{% asset_img bug-3.2.1.1.png This is an image %}

图中标红的地方是2,而网上较多的那个错误是1,也就是设置一下go代理即可解决。

但是试验过后发现对这个问题没有用,仔细看错误,发现中间的错误为:

{% asset_img bug-3.2.1.1.png This is an image %}

这是说在vendor中的这个依赖找不到定义,一般情况下都是版本问题,在查阅资料后,发现通常是说这个依赖于1.17及以上的go版本,但是我是1.18,按理说不应该存在这个问题,这个时候想起来go.mod中有版本号,之前的版本号都没问题,于是我决定把之前版本号copy过来

解决方法

即把go.mod中golang.org/x/net的版本号改为v0.0.0-20210405180319-a5a99cb37ef4,之后在运行就成功了。

整个错误还是比较简单的,但是第一次见这种,而且网上没有针对性的解决方法,还是比较恼火的,搞了一下午终于搞好了,以后要注意仔细看错误。

但是原理是什么还真不清楚,估计是版本高了不兼容了?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值