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条评论
其他心得
Zealot · 14天前 
去年得知蚂蚁金服放出SOFA的部分开源项目, RPC部分号称源于阿里内部的HSF, HSF当年可是把dubbo 1.x踢出局的, 只是没想到京东改造dubbo为JSF, 当当改为dubbox。国内蛮多电商公司实施服务化就直接上dubbo 1.x或dubbox。这应该是阿里没想到的, 所以现在dubbo 2.x又回笼为apache的顶级项目, 把dubbox合并还继续完善。 朋友说他们公司花了千万买了SOFA的商业版, 那么值钱的东西今天抽空过了一下开源部分的SOFAStack和dubbo2.x文档
Zealot · 23天前 
Fabric 1.4.1引入Raft排序服务, 运维界比较出名的etcd实现的orderer服务。后生可畏, etcd是中国一个年轻人的作品, 实现了raft协议, 在k8s等容器化, 虚拟化, 集群化有官方应用。etcd也是go语言编写, fabric开窍了, 直接把etcd和orderer整合了, 相比kafka/zookeeper的排序服务,搭建简单多了,也比kafka这些省了很多资源(kafka默认开的堆是2GB..), 所以个人是强烈推荐使用,尽量出来不久,但在1.4LTS维护,
Luoying web framework Luoying web framework contains a bundle of components to accelerate J2EE development Github地址 https://github.com/zealzeng/luoying-web Maven地址 <dependency> <groupId>com.whlylc</groupId> <artifac
Zealot · 31天前 
Hyperledger Fabric v2.0 Alpha引入两大新功能,新的Fabric链码生命周期和FabToken. 新的链码生命周期 2.0支持链码的去中心化的治理,引入新的流程在节点上安装链码,在通道上启动实例。新的链码生命周期允许多个组织对链码的参数协同达成一致,例如链码的背书策略。新的模型的改进点如下: (1) 多个组织必须确认同意链码的参数 1.x版本里,一个组织拥有修改链码参数的能力,例如修改背书策略,通道的其它成员也被同步而更改。新的链码生命周期更灵活一些,它兼容支
Zealot · 107天前 
1.简介 Fabric 1.4引入operation service即运维服务接口, orderer,peer节点可提供http服务, 方便外部获取节点的运行指标,管理日志级别,健康检查。 2.如何使用运维服务 以fabirc-sample/first-network为例, ./byfn.sh up 2.1 Orderer节点运维服务 启动后连接到orderer容器 docker exec -it -e LINES=$(tput lines) -e COLUMNS=$(tput co