wefantasy / FabricLearn

本项目虚拟了一个工作室联盟链需求并将逐步实现,致力于提供一个易理解、可复现的Fabric学习项目,其中项目部署步骤的各个环节都拆解至清晰可见,并且将所有实验打包为脚本使之能够被快速复现在任何一台具备基础环境的主机上。
https://ifantasy.net/tags/fabriclearn/
53 stars 17 forks source link

2_FabricNetworkUpdate 案例中 fabric-contract-api-go v1.1.1 加载失败 #4

Closed ZoomQuiet closed 2 years ago

ZoomQuiet commented 2 years ago

background

无法在 arm64 环境中启动 CA 容器

goal

一个 鲲鹏架构主机中可以快速检验 HLF 智能合约的环境

error

根据提示: [如何用 peer channel 替代 osnadmin 完成通道加入?](https://github.com/wefantasy/FabricLearn/issues/3) 切换为使用 peer channel 指令的案例: 2_FabricNetworkUpdate

但是, 在最后尝试使用 6_ContractGatewayAndSDK 中提供的 chinacode: contract 时出错,

在 ~/.bashrc 中追加代理配置:

export GO111MODULE=on
export GOPROXY=https://proxy.golang.com.cn,direct
export GO_SOURCE_URL=https://github.com/golang/go.git

然后, 删除 go.mod, go.sum 重建新路径中的 mod

$ go mod init $ go mod tidy

go: finding module for package github.com/hyperledger/fabric-contract-api-go/contractapi
go: downloading github.com/hyperledger/fabric-contract-api-go v1.1.1
go: found github.com/hyperledger/fabric-contract-api-go/contractapi in github.com/hyperledger/fabric-contract-api-go v1.1.1
go: github.com/hyperledger/fabric-contract-api-go@v1.1.1 requires
        github.com/cucumber/godog@v0.8.0/go.mod: verifying module: checksum mismatch
        downloaded: h1:FQ2MobPXycdSajAK3inNgLSAKGFmZqbE4S/CExz41Ys=
        sum.golang.org: h1:Cp3tEV1LRAyH/RuCThcxHS/+9ORZ+FMzPva2AZ5Ki+A=

SECURITY ERROR
This download does NOT match the one reported by the checksum server.
The bits may have been replaced on the origin server, or an attacker may
have intercepted the download attempt.

For more information, see 'go help module-auth'.

发生认证失败... 这应该是 fabric-contract-api-go 模块的问题?

ZoomQuiet commented 2 years ago

参考: godog@v0.8.0 checksum mismatch · Issue #731 · elastic/apm-agent-go

尝试: 增补 ~/.bashrc

export GONOSUMDB=github.com/cucumber/godog $ source ~/.bashrc $ go clean -modcache $ go mod tidy

go: finding module for package github.com/hyperledger/fabric-contract-api-go/contractapi
go: finding module for package github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go/chaincode
go: finding module for package github.com/hyperledger/fabric-chaincode-go/shim
go: finding module for package github.com/hyperledger/fabric-protos-go/peer
go: finding module for package github.com/hyperledger/fabric-chaincode-go/pkg/cid
go: finding module for package github.com/hyperledger/fabric-protos-go/ledger/queryresult
go: finding module for package github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go/chaincode/mocks
go: found github.com/hyperledger/fabric-contract-api-go/contractapi in github.com/hyperledger/fabric-contract-api-go v1.1.1
go: found github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go/chaincode in github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go v0.0.0-20220808110548-1e8fd5cd5647
go: found github.com/hyperledger/fabric-chaincode-go/pkg/cid in github.com/hyperledger/fabric-chaincode-go v0.0.0-20220720122508-9207360bbddd
go: found github.com/hyperledger/fabric-protos-go/ledger/queryresult in github.com/hyperledger/fabric-protos-go v0.0.0-20220613214546-bf864f01d75e
go: downloading github.com/golang/protobuf v1.5.2
go: downloading google.golang.org/grpc v1.48.0
go: downloading github.com/stretchr/testify v1.8.0
go: downloading github.com/xeipuuv/gojsonschema v1.2.0
go: downloading github.com/go-openapi/spec v0.19.4
go: downloading google.golang.org/protobuf v1.28.0
go: downloading gopkg.in/yaml.v3 v3.0.1
go: downloading gopkg.in/yaml.v2 v2.2.8
go: downloading golang.org/x/net v0.0.0-20220708220712-1185a9018129
go: downloading github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
go: downloading github.com/gobuffalo/packr v1.30.1
go: downloading google.golang.org/genproto v0.0.0-20220718134204-073382fd740c
go: downloading github.com/go-openapi/jsonreference v0.19.2
go: downloading github.com/go-openapi/jsonpointer v0.19.3
go: downloading github.com/google/go-cmp v0.5.6
go: downloading github.com/go-openapi/swag v0.19.5
go: downloading golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8
go: downloading github.com/gobuffalo/envy v1.7.0
go: downloading github.com/gobuffalo/packd v0.3.0
go: downloading github.com/rogpeppe/go-internal v1.6.1
go: downloading github.com/kr/pretty v0.3.0
go: downloading github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f
go: downloading github.com/PuerkitoBio/purell v1.1.1
go: downloading github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e
go: downloading golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
go: downloading golang.org/x/text v0.3.7
go: downloading github.com/kr/text v0.2.0
go: downloading github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
go: downloading github.com/joho/godotenv v1.3.0

不过, 在 chinacode 目录中, 就没有 vender 目录了...不知道打包出来的代码是否能用...

ZoomQuiet commented 2 years ago

=> 无法安装 chaincode: hyperledger/fabric-ccenv:2.1: no matching manifest for linux/arm64/v8 in the manifest list entries

wefantasy commented 2 years ago

go mod tidy 结束后可以尝试通过 go mod vendor 生成 vendor 目录,这样就可以在运行时完全只依赖在本地