一、环境搭建
按照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