资讯专栏INFORMATION COLUMN

Fabric学习笔记(三) - Fabric v1.0.5 使用CouchDB

liangzai_cool / 3598人阅读

摘要:前言默认的为功能有限现在把它该归它提供了丰富的查询功能拉取使用启动利用上节教程使所有添加至改用安装请把环境变量都改为的实例化创建一些并交易

前言

默认的state DB为goleveldb,功能有限,现在把它该归CouchDB.它提供了丰富的查询功能

拉取coundb image
docker pull hyperledger/fabric-couchdb:x86_64-1.0.5
docker tag hyperledger/fabric-couchdb:x86_64-1.0.5 hyperledger/fabric-couchdb
使用couchDB启动docker-compose
CHANNEL_NAME=mumubin TIMEOUT=1000 docker-compose -f docker-compose-cli.yaml -f docker-compose-couch.yaml up 
利用上节教程使所有peers添加至channel chaincode改用marbles02 安装chaincode(请把环境变量都改为peer0.org1.example.com的)
peer chaincode install -o orderer.example.com:7050 -n marbles -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/marbles02
实例化marbles02
peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n marbles -v 1.0 -c "{"Args":["init"]}" -P "OR ("Org0MSP.member","Org1MSP.member")"
Invoke 创建一些marble并交易
peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA -C $CHANNEL_NAME -n marbles -c "{"Args":["initMarble","marble1","blue","35","tom"]}"
peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA  -C $CHANNEL_NAME -n marbles -c "{"Args":["initMarble","marble2","red","50","tom"]}"
peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA  -C $CHANNEL_NAME -n marbles -c "{"Args":["initMarble","marble3","blue","70","tom"]}"
peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA  -C $CHANNEL_NAME -n marbles -c "{"Args":["transferMarble","marble2","jerry"]}"
peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA  -C $CHANNEL_NAME -n marbles -c "{"Args":["transferMarblesBasedOnColor","blue","jerry"]}"
peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA  -C $CHANNEL_NAME -n marbles -c "{"Args":["delete","marble1"]}"
CouchDB可以通过浏览器访问 ssh映射端口
ssh -L5984:127.0.0.1:5984 root@10.0.0.157
打开浏览器查询CouchDB

通过query接口程序
peer chaincode query -C $CHANNEL_NAME -n marbles -c "{"Args":["readMarble","marble2"]}"
Query Result: {"color":"red","docType":"marble","name":"marble2","owner":"jerry","size":50}
peer chaincode query -C $CHANNEL_NAME -n marbles -c "{"Args":["getHistoryForMarble","marble1"]}"

Query Result: [{"TxId":"823617c460250583550d5998d1919653181b4044bea2219947da7d50795c5c8e", "Value":{"docType":"marble","name":"marble1","color":"blue","size":35,"owner":"tom"}, "Timestamp":"2018-01-18 05:50:16.228066078 +0000 UTC", "IsDelete":"false"},{"TxId":"b734917a08f8211bdd554a210c0e1ae8f02067584e3dadd9a96c0bec05b831bf", "Value":{"docType":"marble","name":"marble1","color":"blue","size":35,"owner":"jerry"}, "Timestamp":"2018-01-18 05:50:43.550703802 +0000 UTC", "IsDelete":"false"},{"TxId":"78d8a148aa07d913a45372a9d6ae4ef5ad0369364bc88cc3b855940219028dfd", "Value":null, "Timestamp":"2018-01-18 05:50:48.935805386 +0000 UTC", "IsDelete":"true"}]
2018-01-18 05:52:59.188 UTC [main] main -> INFO 007 Exiting.....
peer chaincode query -C $CHANNEL_NAME -n marbles -c "{"Args":["queryMarblesByOwner","jerry"]}"

Query Result: [{"Key":"marble2", "Record":{"color":"red","docType":"marble","name":"marble2","owner":"jerry","size":50}},{"Key":"marble3", "Record":{"color":"blue","docType":"marble","name":"marble3","owner":"jerry","size":70}}]
注意

如果数据持久化想在peer 容器或者CouchDB容器进行,需要挂载一个目录至docker.

挂载至peer container,修改docker-compose-base.yaml

volumes:
 - /var/hyperledger/couchdb0:/opt/couchdb/data

挂载至CouchDB container,修改docker-compose-couch.yaml

volumes:
 - /var/hyperledger/peer0:/var/hyperledger/production

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23948.html

相关文章

  • Fabric学习笔记(二) - Docker下手工启动Fabric v1.0.5网络

    摘要:前言安装笔记中的是一站式的运行例子具体做了什么我们这里一步一步分开来看参考资料网络拓扑生成组织关系和身份证书设置环境变量检查环境变量的生成确保自己在目录下生成密钥文件查看生成的密钥目录生成服务启动区块设 前言 Fabric v1.0.5安装笔记 中的network_setup.sh up是一站式的运行,e 2e cli例子.具体做了什么,我们这里一步一步分开来看 参考资料: end-...

    ad6623 评论0 收藏0
  • SegmentFault 技术周刊 Vol.41 - 深入学习区块链

    摘要:和比特币协议有所不同的是,以太坊的设计十分灵活,极具适应性。超级账本区块链的商业应用超级账本超级账本是基金会下的众多项目中的一个。证书颁发机构负责签发撤 showImg(https://segmentfault.com/img/bV2ge9?w=900&h=385); 从比特币开始 一个故事告诉你比特币的原理及运作机制 这篇文章的定位会比较科普,尽量用类比的方法将比特币的基本原理讲出来...

    qianfeng 评论0 收藏0
  • Hyperledger Fabric(构建你的第一个网络)

    摘要:构建你的第一个网络方案提供了一个包含两个组织的示例网络,每个组织维护两个对等节点,以及一个独立排序服务。它还将启动一个容器来运行脚本执行,该执行将对等点连接到一个通道,部署和实例化链码并驱动针对部署的链码执行交易。 构建你的第一个网络 这些说明已经过验证,可以与最新的稳定Docker镜像和提供的tar文件中预编译的安装实用程序一起工作,如果使用当前主分支中的镜像或工具运行这些命令,则可...

    XUI 评论0 收藏0
  • Hyperledger Fabric(目录)

    摘要:企业区块链平台企业级许可的分布式分类账平台,为广泛的行业用例提供模块化和多功能性。这些节点通过应用已经由共识协议验证的交易来维护分类帐的副本,该交易被分组为包括将每个块绑定到前一个块的散列的块中。 企业区块链平台 企业级许可的分布式分类账平台,为广泛的行业用例提供模块化和多功能性。 介绍 一般而言,区块链是一个不可变的交易分类账,维护在一个分布式对等节点网络中。这些节点通过应用已经由共...

    trigkit4 评论0 收藏0
  • Fabric环境搭建

    摘要:环境搭建快速入门前提安装安装安装安装查看版本信息输出安装查看版本信息输出版本要求版本要求上传解压文件编辑环境变量文件添加如下内容输出如果系统中有旧版本的则使用如下命令卸载旧版本的然后再重新安装 环境搭建 快速入门: http://hyperledger-fabric.rea... 前提 安装git $ sudo apt update $ sudo apt install git 安装...

    fou7 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<