hyperledger fabric couchdb

目标
  • 记录fabric 由默认leveldb切换到couchdb(目前fabric仅支持将stateLeveldb切换到couchdb)。
  • 观察数据变化
hyperledger fabric leveldb
  • 默认就是leveldb,速度非常快。
hyperledger fabric couchdb
  • 备用DB,couchdb更倾向于做数据管理:
    • 利用Design documents做高级查询(具体可以看couchdb特性)
    • UI管理
    • MVCC
    • REST
    • 水平扩展性(fabric 每一个peer都需要部署一个statedb,fabric通过orderer deliver同步数据而不是复制)
    • 离线支持(fabric 没什么用处,主要是对移动端数据迁移)couchdb
couchdb View 例子

{
“_id”: “CAR0”,
“_rev”: “1-f7f0dfb1560812b3f92d18c2dcd053ef”,
“colour”: “blue”,
“make”: “Toyota”,
“model”: “Prius”,
“owner”: “Tomoko”,
“~version”: “CgMBAwA=”
}

function (doc) {
  if(doc.make == 'CAR0'){
      emit(doc._id, doc);
  }
}
环境搭建

参考 debug fabric https://blog.csdn.net/kk3909/article/details/104927333

hyperledger fabric leveldb 切换 couchdb

1、启动couchdb并设置好密码
2、修改peer配置文件(core.yaml)
在这里插入图片描述
3、启动orderer
4、启动peer,观察couchdb变化(http://127.0.0.1:5984/utils/#)
在这里插入图片描述
当fabric切换到couchdb时,只是把原先的stateLevelDB数据分成多个库存在couchdb中,具体如下
fabric__internal (记录fabric版本信息)
myc
(通道)couchdb中通道信息
leveldb中通道的信息
myc__lifecycle(通道周期,用于管理chaincode)
在这里插入图片描述
myc__lifecycleKaTeX parse error: Got function '$' with no arguments as subscript at position 16: h_implicit_org_$̲sample$org(组织信息…p_implicit_org_ s a m p l e sample sampleorg(组织信息(channel中包含一个或多个org;org中包含一个或多个peer。))
myc_fabcar(交易的数据)
在这里插入图片描述
myc_lscc(用于创建及初始化channel上的chaincode
lscc负责管理链码的生命周期)

备注:

  • couchdb 源码
    github.com\hyperledger\fabric\core\ledger\kvledger\txmgmt\statedb\statecouchdb

  • leveldb 源码 github.com\hyperledger\fabric\core\ledger\kvledger\txmgmt\statedb\stateleveldb

  • 在couchdb中其实是没有kv的概念,但是在leveldb中都是以kv形式存储,这里的key是不是一样的,couchdb中存的是json(也有一个id类似key),他的id是这样CHANNEL_CONFIG_ENV_BYTES,但是在leveldb中是myc d CHANNEL_CONFIG_ENV_BYTES,这是因为在leveldb中所有信息都存在里面如果有多个channl的时候无法区分,但是在所以需要在key前面加了myc前缀(通道名称),但是在couchdb中已以数据库的方式做了区分,所以只需要存CHANNEL_CONFIG_ENV_BYTES即可;这种情况在fabric中很常见;理论上couchdb中的值都是可以在leveldb中找到的,但是可能存在不同的形式,比如组织信息,leveldb中展示
    在这里插入图片描述
    在couchdb中就是这样的
    在这里插入图片描述

  • fabric中的leveldb自己做了封装(leveldb中本身就有LOOK的机制,这里的mutex sync.RWMutex意义是什么?)
    在这里插入图片描述
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值