我创建了一个链码,并将一个包导入其中。
services.AddAutoMapper(config =>
{
var enumMapper = config.Mappers.Single(m => m is AutoMapper.Mappers.EnumToEnumMapper);
config.Mappers.Remove(enumMapper);
}, typeof(Startup));
我可以将该链码安装到所有背书人。但是当我实例化给所有背书人时,它遇到了错误:
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
,但是它具有相同的错误。
答案 0 :(得分:2)
尝试使用以下命令在chaincode目录中安装依赖项:
go mod init
将创建go.mod
和go.sum
文件。go mod vendor
用于创建vendor
目录。此外,如果使用fabric:v2.X.X
,则shim
和peer
软件包将移至其他库。
因此,请在chaincode.go文件中将peer
和shim
软件包更改为下面的内容。
peer
-> github.com/hyperledger/fabric-protos-go/peer
。shim
-> github.com/hyperledger/fabric-chaincode-go/shim
在运行peer
命令之前,请确保添加shim
和go mod init
更改,或者如果您已经有vendor
目录,请尝试go mod tidy
然后再{ {1}}命令来更新软件包。