超级账本HyperLedger: Fabric 1.2.0使用时遇到的问题

Tags: HyperLedger 

目录

说明

这是“网易云课堂IT技术快速入门学院”使用的素材。操作、配置文件和代码讲解视频在网易云课堂《HyperLeger Fabric进阶实战课》第三章中。

HyperLedger Fabric 1.2.0使用过程中遇到的一些问题。

创建channel时: existing config does not contain element for [Group] /Channel/Application/peers.member2.example.com but was in the read set

在全新部署的Fabric中,第一次创建channel,日志如下:

Error: got unexpected status: BAD_REQUEST -- error authorizing update: error validating ReadSet: existing config does not contain element for [Group]  /Channel/Application/peers.member2.example.com but was in the read set

从日志看,肯能是创世块中没有包含/Channel/Application/peers.member2.example.com

解开创世块的内容,里面没有找到Application:

 ./output/bin/bin/configtxgen -inspectBlock  ./output/example.com/channel-artifacts/genesisblock -configPath ./inventories/example.com/ >genesis.json

解开channel更新文件:

 ./output/bin/bin/configtxgen  -inspectChannelCreateTx ./output/example.com/channel-artifacts/channel.tx  --configPath ./inventories/example.com/ >channel.json

没有看出什么问题。

查看orderer的日志和数据,发现mychannel已经存在了:

$ ls data/chains/
mychannel

orderer启动的时候根据创世块创建的channel名为mychannel:

2018-07-26 03:23:41.824 UTC [orderer/common/server] initializeMultichannelRegistrar -> INFO 025^[[0m Not bootstrapping because of existing chains
2018-07-26 03:23:41.824 UTC [fsblkstorage] newBlockfileMgr -> DEBU 026 newBlockfileMgr() initializing file-based block storage for ledger: mychannel
2018-07-26 03:23:41.824 UTC [kvledger.util] CreateDirIfMissing -> DEBU 027 CreateDirIfMissing [data/chains/mychannel/]
...
2018-07-26 03:23:41.847 UTC [orderer/commmon/multichannel] NewRegistrar -> INFO 0c4 Starting system channel 'mychannel' with genesis block hash 118df032431755f077183ee7f2c1cdbb72d6336879947f2b03ae87b1be59b69f and orderer type solo

之前为了消除configtxgen产生的告警,在生成创世块时指定了channel名称:

# CHANNEL_NAME为mychannel
$BIN_PATH/configtxgen -profile OrdererGenesis -outputBlock $output/genesisblock -channelID $CHANNEL_NAME

修改一下名称:

$BIN_PATH/configtxgen -profile OrdererGenesis -outputBlock $output/genesisblock  -channelID genesis

重新生成创世块,重新部署后成功。

对创世块和channel之间的关系还是不了解,哎..@2018-07-26 12:03:52

Question: What is the orderer system channel?

Answer: The orderer system channel (sometimes called ordering system channel) is the channel the orderer is initially bootstrapped with. It is used to orchestrate channel creation. The orderer system channel defines consortia and the initial configuration for new channels. At channel creation time, the organization definition in the consortium, the /Channel group’s values and policies, as well as the /Channel/Orderer group’s values and policies, are all combined to form the new initial channel definition.

查看node状态时:bad request: Envelope must have a Header

./peer.sh node status
2018-07-26 12:18:37.443 CST [nodeCmd] status -> INFO 001 Error trying to get status from local peer: rpc error: code = Unknown desc = bad request: Envelope must have a Header
status:UNKNOWN
Error: Error trying to connect to local peer: rpc error: code = Unknown desc = bad request: Envelope must have a Header
Usage:

使用1.1版本的peer访问1.2版本的peer的缘故:

依赖的镜像变化, 合约初始化不成功

Fabric 1.2.0的Peer依赖的镜像:

docker pull hyperledger/fabric-ccenv:latest
docker pull hyperledger/fabric-baseos:amd64-0.4.10
docker pull hyperledger/fabric-javaenv:x86_64-1.1.0     #for java
docker pull hyperledger/fabric-baseimage:amd64-0.4.10   #for node.js

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],备注网站合作

友情链接:  李佶澳的博客  系统软件  程序语言  运营经验  关注方向  水库文集  网文收藏  网络课程  发现知识星球  百度搜索 谷歌搜索