请帮助我解决这个问题,当我实例化我的链码时发生错误:
当前,我猜是与shim软件包有关的问题,因为我已将其删除到utils软件包中,成功实例化了。
import (
"bytes"
"encoding/hex"
"encoding/json"
"fmt"
"strconv"
"github.com/golang/protobuf/proto"
"github.com/hyperledger/fabric/core/chaincode/shim"
"github.com/hyperledger/fabric/protos/msp"
pb "github.com/hyperledger/fabric/protos/peer"
"github.com/myproj/models"
"github.com/myproj/packages/utils"
)
APIstub shim.ChaincodeStubInterface
...
username, _ = utils.GetCurrentUser(APIstub)
...
package utils
import (
"github.com/hyperledger/fabric/core/chaincode/shim"
"golang.org/x/crypto/bcrypt"
)
func GetCurrentUser(stub shim.ChaincodeStubInterface) (string, error) {
cert, err := GetCreatorCert(stub)
return cert.Subject.CommonName, err
}
错误:认可链码时出错:rpc错误:代码=未知desc = 错误启动容器:无法生成特定于平台的泊坞窗 内部版本:从内部版本返回错误:2“# 〜vendor / github.com / hyperledger / fabric / vendor / github.com / docker / docker / pkg / archive 〜vendor / github.com / hyperledger / fabric / vendor / github.com / docker / docker / pkg / archive / archive.go:364:5: hdr.Format未定义(类型* tar.Header没有字段或方法格式) 〜vendor / github.com / hyperledger / fabric / vendor / github.com / docker / docker / pkg / archive / archive.go:364:15: 未定义:tar.FormatPAX 〜/ vendor / github.com / hyperledger / fabric / vendor / github.com / docker / docker / pkg / archive / archive.go:1166:7: hdr.Format未定义(类型* tar.Header没有字段或方法格式) 〜/ vendor / github.com / hyperledger / fabric / vendor / github.com / docker / docker / pkg / archive / archive.go:1166:17: 未定义:tar.FormatPAX
织物版本1.1.0
转到1.9.2版
答案 0 :(得分:1)
将Fabric升级到1.2.0后,我遇到了同样的问题。 Fabric 1.2.0需要go1.10.x。所以我将go lang升级到1.10.3,它像一个魅力一样工作。
答案 1 :(得分:0)
这可能是因为您在hyperledger / fabric文件夹中的某些文件中具有旧版本。
如果您正在遵循链码教程,则只需删除hyperledger / fabric文件夹即可。
致谢
答案 2 :(得分:0)
通过遵循文档,我遇到了同样的问题。 切换到分支“ release-1.1”即可解决该问题。
克隆存储库后,继续:
hyperleger$ cd fabric
hyperledger/fabric$ git fetch
hyperledger/fabric$ git checkout release-1.1