Fabric中LevelDB转CouchDB

tech2022-10-25  112

一、介绍

在 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或自定义的配置文件中添加如下声明: couchdb0: container_name: couchdb0 image: hyperledger/fabric-couchdb:0.4.21 environment: - COUCHDB_USER= - COUCHDB_PASSWORD= ports: - "5984:5984" networks: - main

根据个人使用的fabric版本,需要指定不同版本的couchdb镜像,否则会报错。这里我使用了fabric1.4,查阅bootstrap.sh文件可知,fabric1.4需要使用0.4.21版本的couchdb

在各 peer 容器中声明couchdb环境 在各 peer 节点的environment 属性中添加如下内容,且在 depends_on 属性中指定声明的couchdb容器的名称 - CORE_LEDGER_STATE_STATEDATABASE=CouchDB - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984 - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME= - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD= depends_on: - couchdb0 访问couchdb网址 重启网络 进入http://localhost:5984/_utils/即可查看couchdb

部分引用: 9.2 Hyperledger Fabric状态数据库

最新回复(0)