登录
首页 >  Golang >  Go问答

Chaincode 实例化时出现包找不到的错误问题

来源:stackoverflow

时间:2024-02-22 23:54:24 160浏览 收藏

哈喽!今天心血来潮给大家带来了《Chaincode 实例化时出现包找不到的错误问题》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我创建了一个链代码并向其中导入了一个包。

import (
"bytes"
"encoding/json"
"fmt"
"strings"
"golang.org/x/crypto/bcrypt"
"github.com/hyperledger/fabric/core/chaincode/shim"
    pb "github.com/hyperledger/fabric/protos/peer")

我可以将该链码安装给所有背书者。但是当我向所有背书者实例化它时,它遇到了错误:

endorser failed with error starting container: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "/chaincode/input/src/github.com/marbles02/marbles_chaincode.go:85:2: cannot find package "golang.org/x/crypto/bcrypt" in any of:
/usr/local/go/src/golang.org/x/crypto/bcrypt (from $GOROOT)
/chaincode/input/src/golang.org/x/crypto/bcrypt (from $GOPATH)
/go/src/golang.org/x/crypto/bcrypt

我尝试将golang.org/x/crypto/bcrypt包复制到根目录下的/usr/local/go/src/,但还是出现同样的错误。


解决方案


尝试使用以下命令在链码目录中安装依赖项:

  1. go mod init 将创建 go.modgo.sum 文件。
  2. go modvendor 用于创建 vendor 目录。

此外,如果使用 fabric:v2.X.X,则 shimpeer 包会移动到不同的库。 因此,将 chaincode.go 文件中的 peershim 包更改为下面的内容。

  1. peer --> github.com/hyperledger/fabric-protos-go/peer
  2. shim --> github.com/hyperledger/fabric-chaincode-go/shim

确保在运行 go mod initcommand 之前添加 peerand shim 更改,或者如果您已经有 vendor 目录,则尝试 go mod tidygo modvendor 命令来更新包。

理论要掌握,实操不能落!以上关于《Chaincode 实例化时出现包找不到的错误问题》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>