超级账本HyperLedger: Fabric的Chaincode开发过程中遇到的问题

Tags: HyperLedger 

目录

说明

这是网易云课堂“IT技术快速入门学院”使用的素材。讲解视频位于《HyperLedger Fabric进阶实战课》第四章。演示用的合约代码托管在在Github上:合约代码

相关笔记

视频演示:

文字介绍:

问题汇总:

本地编译报错: undefined: tar.FormatPAX

写完ChainCode后,在本地编译时报错:

go build
# github.com/hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive
../../../hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/archive.go:364:5: hdr.Format undefined (type *tar.Header has no field or method Format)
../../../hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/archive.go:364:15: undefined: tar.FormatPAX
../../../hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/archive.go:1166:7: hdr.Format undefined (type *tar.Header has no field or method Format)
../../../hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/archive.go:1166:17: undefined: tar.FormatPAX
lijiaos-MacBook-Pro:demo lijiao$ cd ../../../hyperledger/fabric/vendor/github.com/docker/docker/pkg/archive/archive.go:364:5: hdr.Format undefined (type *tar.Header has no field or method Format)

报错的代码是docker的代码:

 355 // FileInfoHeader creates a populated Header from fi.
 356 // Compared to archive pkg this function fills in more information.
 357 // Also, regardless of Go version, this function fills file type bits (e.g. hdr.Mode |= modeISDIR),
 358 // which have been deleted since Go 1.9 archive/tar.
 359 func FileInfoHeader(name string, fi os.FileInfo, link string) (*tar.Header, error) {
 360 |   hdr, err := tar.FileInfoHeader(fi, link)
 361 |   if err != nil {
 362 |   |   return nil, err
 363 |   }
 364 |   hdr.Format = tar.FormatPAX

本地使用的go版本是1.9.2:

$ go version
go version go1.9.2 darwin/amd64

查看本地HyperLedger代码,发现是最新的release-1.2的代码:

$ cd ../../../hyperledger/fabric
$ git branch
  release-1.1
* release-1.2

HyperLedger 1.2使用的是go1.10,所以需要升级本地Go版本,或者将HyperLedger代码切换为1.1版本。

使用go get拉取代码时,会直接拉取依赖代码的最新版本,所以直接拉取了Hyperledger 1.2版本的代码。

因为我的目标环境是1.1的,所以将HyperLedger代码切换回到1.1解决:

$ cd ../../../hyperledger/fabric
$ git branch release-1.1 -t origin/release-1.1
$ git checkout release-1.1

参考

  1. 《超级账本HyperLedger:Fabric的Chaincode(智能合约、链码)开发、使用演示》
  2. 《超级账本HyperLedger:Fabric Chaincode(智能合约、链码)开发方法》

HyperLedger

  1. hyperledger fabric 1.3.0 多节点手动部署
  2. 【视频】超级账本HyperLedger: Fabric源码走读(一):项目构建与代码结构
  3. 【视频】超级账本HyperLedger: Fabric Go SDK的使用
  4. 【视频】超级账本HyperLedger: Fabric使用kafka进行区块排序(共识)
  5. 超级账本HyperLedger: Fabric 1.2.0使用时遇到的问题
  6. 超级账本HyperLedger: Fabric的Chaincode开发过程中遇到的问题
  7. 【视频】超级账本HyperLedger: 为Fabric的Peer节点配置CouchDB
  8. 【视频】超级账本HyperLedger: Fabric从1.1.0升级到1.2.0
  9. 【视频】超级账本HyperLedger: Fabric源码走读(零):源代码阅读环境准备
  10. 【视频】超级账本HyperLedger: Fabric的Chaincode(智能合约、链码)开发、使用演示
  11. 超级账本HyperLedger: Fabric Node.js SDK使用时遇到的问题
  12. 超级账本HyperLedger: Fabric Golang SDK使用时遇到的问题
  13. 超级账本HyperLedger: FabricCA的级联使用(InterMediateCA)
  14. 【视频】超级账本HyperLedger: 使用Ansible进行Fabric多节点分布式部署(实战)
  15. 超级账本HyperLedger: Fabric掰开揉碎,一文解惑
  16. 超级账本HyperLedger: Fabric Channel配置的读取转换
  17. 【视频】超级账本HyperLedger: Fabric进阶,在已有的Channel中添加新的组织
  18. 超级账本HyperLedger: 超级账本工作组旗下项目介绍
  19. 超级账本HyperLedger: Fabric Chaincode(智能合约、链码)开发方法
  20. 【视频】超级账本HyperLedger: Fabric-CA的使用演示(两个组织一个Orderer三个Peer)
  21. 超级账本HyperLedger: FabricCA的基本概念与用法讲解
  22. 【视频】超级账本HyperLedger: Fabric的全手动、多服务器部署教程
  23. 超级账本HyperLedger: Explorer安装使用
  24. 【视频】超级账本HyperLedger: Fabric nodejs SDK的使用
  25. 超级账本HyperLedger: Fabric部署过程时遇到的问题汇总
  26. 超级账本HyperLedger: Cello部署和使用
  27. 超级账本HyperLedger: Fabric的基本概念与基础用法

推荐阅读

Copyright @2011-2019 All rights reserved. 转载请添加原文连接,合作请加微信lijiaocn或者发送邮件: [email protected],备注网站合作

友情链接:  系统软件  程序语言  运营经验  水库文集  网络课程  微信网文  发现知识星球