家蛙树

Hyperledger fabric-couchdb镜像版本的坑

Zealot
区块链
2018-11-21

Hyperledger Ledger从1.2升到1.3之后,同事反馈同样的脚本,创建通道或加入通道,部分人没问题,部分人一直有问题。 有问题的同事发现是peer对应的couchdb没起来,把持久化配置的映射卷取消才行, 否则一直提示./data/_users.couch没有权限。

笔者最终在一台fabric 1.2的机器重现该问题。 stackoverflow有少量这样的问题,不过没有很好解决方案。

docker images查询了下hyperledger/fabric-couchdb版本都是latest.
具体使用docker inspect hyperledger/fabric-couchdb 才查询到实际版本为
“.base.version”: “amd64-0.4.14”,

这个是当前最新的版本,查看fabric安装脚本boostrap.sh

# if version not passed in, default to latest released version
export VERSION=1.3.0
# if ca version not passed in, default to latest released version
export CA_VERSION=$VERSION
# current version of thirdparty images (couchdb, kafka and zookeeper) released
export THIRDPARTY_IMAGE_VERSION=0.4.13

对应的版本应该是0.4.13, fabric1.2使用的couchdb对应是0.4.10. 而我们平常写的docker-compose.yaml都是没带镜像的版本的。 笔者猜测是镜像版本不配套, 强制指定版本。

couchdb:
    container_name: couchdb
    image: hyperledger/fabric-couchdb:0.4.10

使用docker-compose -f docker-compose.yml up couchdb多次测试, 出现的问题得到解决。

实际上hyperledger fabric-couchdb 0.4.14镜像使用的couchdb版本为2.2.0比较新了。
而hyperledger fabric-coudb 0.4.13镜像使用的couchdb为2.1.1。应该是版本变化有些大。

所以docker compose脚本编写的一个最佳实践是, 镜像务必带上版本号, 版本号参考fabric安装脚本bootstrap.sh为准, 不随便升级。

如果不指定版本号, 可能默认就是latest版本, 如果不小心对本机的镜像进行了清理,下次使用镜像的时候可能就自动pull latest版本。

最近更新较慢,但是忙完这阵子会给大家一些干货。 有问题也可到公众号留言。

Chin Up

t_b7a47ae5de734e57b1a702733459e294.png

点赞 0
0条评论
其他心得
编写过一些链码的人可能会觉得是在操作一个简单的key-value数据库, 就是GetState和PutState去操作键值对,而对复杂些的一对多,多对多等实体关系和数据模型不知怎么设计。我们先从官方的例子入手一起探讨下。 1.简单转账例子 /fabric-samples/chaincode/chaincode_example02/go/chaincode_example02.go 假设链码调用peer chaincode invoke … -c ‘{“Args”:[“invoke”,”a
Zealot · 22天前 
区块链的真实数据依赖于物联网和智能设备,记一次折腾的android无线调试经历。 Android 4.2.2定制版智能硬件, USB口能插鼠标键盘, 但是不能USB调试。供应商两个方案, 要么开壳找到USB OTG排座, USB口自己接线, 但是开壳会导致硬件功能无法使用; 要么手工打包apk安装到硬件慢慢的toast。 摸索出第三条路。 搜索android无线调试, 基本都需要第一次USB调试线, adb tcpip 5555开启android设备端口监听, 之后adb connect ip
武汉珞樱联创Luoying-server和Fabric-REST开源 https://github.com/zealzeng/luoying-server https://github.com/zealzeng/fabric-rest Luoying Server Framework Luoying server是一个轻量级的服务器开发框架,方便开发者快速的定制多种协议的服务器,servlet style的API和简单的容器注入模式让开发者专注于业务实现。 Maven地址
Zealot · 34天前 
Fabric打鸡血了, 1.3正式版发布一个月1.4的RC版出来了,按照惯例在两个月内1.4正式版会发布,我们先预览下新特性。官方文档链接参考 https://hyperledger-fabric.readthedocs.io/en/release-1.4/whatsnew.html 自1.0版本开始, Fabric日渐成熟。1.4版本专注于提高运维和开发的易用性,主要包括两方面。 (1)可维护性和可操作性 1.4大大的改进了日志,服务健康检查和可操作的度量指标, 持续的修复bug和提供系
分享些干货,吸点人气,2018年区块链技术大会的部分PPT放出。建立开源的安全区块链生态系统(PPT下载) http://cbc.dbw.org.cn/documents/%E5%A4%A7%E4%BC%9A%E6%8A%A5%E5%91%8A/%E5%AE%B9%E6%B7%B3%E9%93%AD.pdf企业区块链(PPT下载) http://cbc.dbw.org.cn/documents/%E5%A4%A7%E4%BC%9A%E6%8A%A5%E5%91%8A/%E7%99%BD%E7%