前言
不知不觉,研究生三年的时光即将告一段落,毕业在即。回想起当初学习的场景,那时候笔记本上记满了密密麻麻的笔记,如今想要扔掉却又舍不得。因此,我决定将当初刚入门区块链时的学习笔记分享出来。由于是跨考的,所以当时的我对区块链甚至是计算机都一窍不通,直接开始了学习之旅。因此,笔记中可能存在一些错误,仅供参考,切勿直接照搬。希望读者能够在阅读的过程中保持思考,同时,大体逻辑是可靠的。如果发现了任何错误,请务必告知我,我将及时进行修改。
1复制文件
cd /mnt/hgfs/myshare
cp -rf helloworld $GOPATH/src/github.com/hyperledger/fabric
2.修改权限
cd $GOPATH/src/github.com/hyperledger/fabric/helloworld
chmod -R 777 ./bin
3生成公私钥和证书,执行该命令后会生成一个crypto-config文件夹
./bin/cryptogen generate --config=./crypto-config.yaml
4生成创世区块
mkdir channel-artifacts
./bin/configtxgen -profile OneOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
5生成通道配置区块
./bin/configtxgen -profile OneOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID mychannel
8.启动Fabric网络
启动orderer
docker-compose -f docker-orderer.yaml up -d
启动peer
docker-compose -f docker-peer.yaml up -d
启动cli容器
docker exec -it cli bash
创建Channel
ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/mychannel.tx --tls --cafile $ORDERER_CA
Peer加入Channel
peer channel join -b mychannel.block
7、安装与运行智能合约
7.1安装智能合约(路径应该错了)
peer chaincode install -n mycc -p github.com/hyperledger/fabric/helloworld/chaincode/go/helloworld/cmd -v 1.0
7.2实例化智能合约
peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile $ORDERER_CA -C mychannel -n mycc -v 1.0 -c '{"Args":["a","helloworld"]}' -P "OR ('Org1MSP.peer')"
7.3Peer上查询A,显示Helloworld
peer chaincode query -C mychannel -n mycc -c '{"Args":["get","a"]}
7.4若想修改a的值,可以调用set方法
peer chaincode invoke -C mychannel -n mycc -c '{"Args":["set","a","helloha"]}' --tls --cafile $ORDERER_CA
#由helloworld变成了helloha
peer chaincode query -C mychannel -n mycc -c '{"Args":["get","a"]}'
7.5退出,清除网络
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)