一、介绍
在 Hyperledger Fabric 项目中,目前可以支持的状态数据库有两种:
- LevelDB:LevelDB 是嵌入在 Peer 中的默认键值对(key-value)状态数据库。
- CouchDB:CouchDB 是一种可选的替代 LevelDB 的状态数据库。与 LevelDB 键值存储一样,CouchDB 不仅可以根据 key 进行相应的查询,还可以根据不同的应用场景需求实现复杂查询。
F&Q
1、在 Fabric 中,状态数据库使用 LevelDB 与 CouchDB 有什么区别?
如果状态数据库使用 CouchDB 的话,具有最大的一个特点:可以使用富查询实现对状态的检索,但是需要自定义富查询字符串,该字符串必须符合 CouchDB 查询语法结构。
2、如何使用 CouchDB?
在 Hyperledger Fabric 环境中,如果需要使用 CouchDB,那么必须在 docker-compose.yml/docker-compose.yaml或自定义的配置文件中声明 CouchDB 容器,然后在各个 peer 容器中 environment 属性中声明相关环境内容,且在 depends_on 属性中指定声明的 CouchDB 容器的名称。
二、实现
本文环境:centos7,fabric1.4
- 声明couchdb容器
在 docker-compose.yml/docker-compose.yaml或自定义的配置文件中添加如下声明