Hyperledger CouchDB 原理

一、环境搭建

按照https://blog.csdn.net/frankxixu/article/details/81369411

搭建好单机的环境,会改动docker-peer.yaml文件

./network_setup.sh down

docker rm -f $(docker ps -aq)

(1) cp chaincode 到 fabric/aberic

(2) cp bin 到 fabric/aberic

二、修改配置文件(https://github.com/frank1982/Hyperledger_singleServer/tree/master/couchDB)

1、首先需要修改crypto-config.yaml,重新命名节点foo27.org2

- Name: Org2
    Domain: org2.example.com
    Template:
      Count: 2
    Users:
      Count: 1
    Specs:
      - Hostname: foo
        CommonName: foo27.org2.example.com

2、修改docker-peer.yaml同P201

scp -r /Users/developer/Desktop/git/Hyperledger_singleServer/couchDB/crypto-config.yaml [email protected]:/opt/gopath/src/github.com/hyperledger/fabric/aberic/

scp -r /Users/developer/Desktop/git/Hyperledger_singleServer/couchDB/docker-orderer.yaml [email protected]:/opt/gopath/src/github.com/hyperledger/fabric/aberic/

scp -r /Users/developer/Desktop/git/Hyperledger_singleServer/couchDB/configtx.yaml [email protected]:/opt/gopath/src/github.com/hyperledger/fabric/aberic/

3、执行

./bin/cryptogen generate --config=./crypto-config.yaml

scp -r /Users/developer/Desktop/git/Hyperledger_singleServer/couchDB/docker-peer.yaml [email protected]:/opt/gopath/src/github.com/hyperledger/fabric/aberic/

修改下CA地址,最后上传,上一步生成的

/opt/gopath/src/github.com/hyperledger/fabric/aberic/crypto-config/peerOrganizations/org2.example.com/ca

-----

cd aberic

export FABRIC_CFG_PATH=$PWD

mkdir channel-artifacts

./bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

./bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID indexchannel

docker-compose -f docker-orderer.yaml up -d

docker-compose -f docker-peer.yaml up -d

4、查看couchDB数据

访问47.75.6.252:5984/_utils

可以查看数据库,继续

5、测试数据库的用户名密码设置

由于要修改docker-peer.yaml

我们停止网络

docker-compose -f docker-peer.yaml down

docker-compose -f docker-orderer.yaml down

(1)修改docker-peer.yaml

couchdb:
    container_name: couchdb
    image: hyperledger/fabric-couchdb
    environment:
      - COUCHDB_USER=admin
      - COUCHDB_PASSWORD=123456
    ports:
      - "5984:5984"

重新上传

(2)再次启动

docker-compose -f docker-orderer.yaml up -d

docker-compose -f docker-peer.yaml up -d

(3)47.75.6.252:5984/_utils

提示需要登录啦!

6、执行实例

/opt/gopath/src/github.com/hyperledger/fabric/aberic/crypto-config/peerOrganizations/org2.example.com/ca

更换docker-peer.yaml的CA证书地址,foo27属于org2

加上CA 和 cli的描述

(1)创建channel

docker exec -it cli bash

peer channel create -o orderer.example.com:7050 -c indexchannel -t 50 -f ./channel-artifacts/mychannel.tx

(2)加入channel

peer channel join -b indexchannel.block

(3)安装智能合约

peer chaincode install -n indexcc -p github.com/hyperledger/fabric/aberic/chaincode/go/marbles02 -v 1.0

(4)初始化智能合约

peer chaincode instantiate -o orderer.example.com:7050 -c '{"Args":[]}' -C indexchannel -n indexcc -P "OR ('Org2MSP.member')" -v 1.0

(5) invoke

peer chaincode invoke -C indexchannel -n indexcc -c '{"Args":["initMarble","marble1","blue","35","tom"]}'

invoke successful. result: status:200 

(6) query

peer chaincode query -C indexchannel -n indexcc -c '{"Args":["readMarble","marble1"]}'

(7)继续初始化

peer chaincode invoke -C indexchannel -n indexcc -c '{"Args":["initMarble","marble2","red","50","tom"]}'

peer chaincode invoke -C indexchannel -n indexcc -c '{"Args":["initMarble","marble3","blue","70","tom"]}'

(8)按所有者查询

peer chaincode query -C indexchannel -n indexcc -c '{"Args":["queryMarblesByOwner","tom"]}'

反复提示目前使用的是levelDB,怀疑couchDB的配置地址有错误

修改docker-peer.yaml

environment:
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=47.75.6.252:5984

猜你喜欢

转载自blog.csdn.net/frankxixu/article/details/81570796