hyperledger-fabric FirstNetwork筆記

文檔

https://hyperledger-fabric.readthedocs.io/en/release-1.0/build_network.html

獲取first network

git clone https://github.com/hyperledger/fabric-samples.git
cd fabric-samples

獲取額外的補充文件

cryptogen,
configtxgen,
configtxlator, and
peer

-----------------------------------------------------------------
curl -sSL https://goo.gl/kFFqh5 | bash -s 1.0.6
若是獲取不到可以在瀏覽器中執行https://goo.gl/kFFqh5 獲取相應的sh文件<br>
然後在服務器中fabric-samples目錄下執行,然後在fabric-samples/bin可以找到對於的文件
-------------------------------------------
或者執行
/scripts/bootstrap.sh 即可(建議這個方法)

腳本啓動測試

執行first-network中的命令
./byfn.sh -m generate
./byfn.sh -m up 
./byfn.sh -m down

遇到的大坑

當執行./byfn.sh -m up 時

error getting endorser client for channel: endorser client failed to connect to peer0.org1.example.com:7051: failed to create new connection: context deadline exceeded

解決方法

更新了docker和docker-compose的版本
參考https://www.cnblogs.com/tianhei/p/7802064.html

下方兩個有可能用的上

docker ps -qa | xargs docker stop

docker ps -qa | xargs docker rm

注意:docker的版本問題和權限問題

Crypto Generator 密碼生成器

使用cryptogen工具生成加密材料,負責生成網絡中組織結構和身份文件

一般使用crypto-config.yaml文件進行配置,它網絡的拓撲和需要生成的組織和該組織部件的證書

其生成的證書和密鑰保存在crypto-config文件夾中

cryptogen 命令參數
generate 生成密鑰和證書文件
--output 存放生成密鑰的和證書文件的路徑,默認當前目錄的crypto-config
--config 指定採用的配置模板文件的路徑crypto-config.yaml

configtxgen 生成通道配置

主要功能:

  • 生成啓動Orderer需要的初始化區塊,並支持檢查區塊內容
  • 生成創建應用通道需要的配置交易,並支持檢查交易內容
  • 生成錨點Peer的更新配置交易

命令選項

  • -profilestring:從configtx.yaml中查找到指定的profile來生成配置
  • -channelID string:指定操作的通道名稱
  • -outputBlock:將區塊寫入指定文件
  • -outputAnchorPeersUpdate string:創建跟新錨點peer的配置更新請求,需要同時使用-asOrg來指定組織身份
  • -outputCreateChannelTx string:將通道創建的交易寫入指定文件
  • -asOrg string:以指定的組織身份執行更新配置交易的生成

手動操作

  1. 生成密鑰和證書文件
../bin/cryptogen generate --config=./crypto-config.yaml
  1. 生成Ordering服務啓動初始化塊
export FABRIC_CFG_PATH=$PWD
../bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
  1. 生成新建應用通道的配置交易
export CHANNEL_NAME=mychannel

../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME
  1. 生成錨節點配置更新文件
../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP

../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP
  1. 啓動網絡
CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=60 docker-compose -f docker-compose-cli.yaml up -d

docker exec -it cli bash

進入下方的路徑
root@0d78bb69300d:/opt/gopath/src/github.com/hyperledger/fabric/peer#

peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile /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 join -b mychannel.block

  1. 安裝和初始化鏈碼
peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
這裏需要檢查你的鏈碼存放的路徑是不是這裏不是的話需要自行更換

peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"

  1. 查詢
peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'

  1. invoke
peer chaincode invoke -o orderer.example.com:7050  --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem  -C $CHANNEL_NAME -n mycc -c '{"Args":["invoke","a","b","10"]}'

9.查詢

peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章