1. 程式人生 > >Hyperledger Fabric 實戰(十二): Fabric 源碼本地調試

Hyperledger Fabric 實戰(十二): Fabric 源碼本地調試

yaml releases centos 模塊 usr 分布式 自己 虛擬機啟動 res

  借助開發網絡調試 fabric 源碼本地調試
  
  準備工作
  
  IDE Goland
  
  Go 1.9.7
  
  fabric-samples 模塊 chaincode-docker-devmode
  
  fabric 源碼
  
  步驟
  
  添加本地域名
  
  127.0.0.1 peer
  
  127.0.0.1 orderer
  
  用 ide 打開 $GOPATH 下的fabric源碼目錄
  
  在源碼目錄下添加 dev-network
  
  把 sampleconfig 下的所有文件復制到 dev-network
  
  修改 core.yaml 中 fileSystemPath = fabric源碼目錄下dev-network/production/peer(絕對路徑)
  
  修改 orderer.yaml 中 Location = fabric源碼目錄下dev-network/production/orderer(絕對路徑)
  
  在 dev-network 新建 config,並復制 fabric-samples 模塊 chaincode-docker-devmode下的 myc.tx 和 orderer.block
  
  1,接著調試網絡,用debug模式運行 order 下的 main.go 文件 並添加配置,絕對路徑的地方相對修改,然後運行
  
  Environment:
  
  ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
  
  ORDERER_GENERAL_GENESISMETHOD=file
  
  ORDERER_GENERAL_GENESISFILE=fabric源碼目錄下dev-network/config/orderer.block(絕對路徑)
  
  ORDERER_GENERAL_LOCALMSPID=DEFAULT
  
  ORDERER_GENERAL_LOCALMSPDIR=fabric源碼目錄下dev-network/msp(絕對路徑)
  
  FABRIC_CFG_PATH=fabric源碼目錄下dev-network(絕對路徑)
  
  2,接著調試網絡,用debug模式運行 peer 下的 main.go 文件 並添加配置,絕對路徑的地方相對修改,然後運行
  
  Program arguments:
  
  node start --peer-chaincodedev=true -o 127.0.0.1:7050
  
  Environment:
  
  CORE_PEER_LOCALMSPID=DEFAULT
  
  CORE_PEER_ID=peer
  
  CORE_PEER_MSPCONFIGPATH=fabric源碼目錄下dev-network/msp(絕對路徑)
  
  CORE_PEER_ADDRESS=127.0.0.1:7051
  
  FABRIC_CFG_PATH=fabric源碼目錄下/dev-network(絕對路徑)
  
  3,接著調試網絡,用debug模式運行 peer 下的 main.go 文件 並添加配置,絕對路徑的地方相對修改,然後運行
  
  Program arguments:
  
  channel create -c myc -f fabric源碼目錄下dev-network/config/myc.tx(絕對路徑) -o 127.0.0.1:7050
  
  Environment:
  
  CORE_PEER_LOCALMSPID=DEFAULT
  
  CORE_PEER_ID=cli
  
  CORE_PEER_MSPCONFIGPATH=fabric源碼目錄下dev-network/msp(絕對路徑)
  
  CORE_PEER_ADDRESS=127.0.0.1:7051
  
  FABRIC_CFG_PATH=fabric源碼目錄下/dev-network(絕對路徑)
  
  4,接著調試網絡,用debug模式運行 peer 下的 main.go 文件 並添加配置,絕對路徑的地方相對修改,然後運行
  
  Program arguments:
  
  channel join -b myc.block
  
  Environment:
  
  CORE_PEER_LOCALMSPID=DEFAULT
  
  CORE_PEER_ID=cli
  
  CORE_PEER_MSPCONFIGPATH=fabric源碼目錄下dev-network/msp(絕對路徑)
  
  CORE_PEER_ADDRESS=127.0.0.1:7051
  
  FABRIC_CFG_PATH=fabric源碼目錄下/dev-network(絕對路徑)
  
  5,接著調試網絡,用debug模式運行 peer 下的 main.go 文件 並添加配置,絕對路徑的地方相對修改,然後運行
  
  Program arguments:
  
  chaincode install -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -n mycc -v 1.0
  
  Environment:
  
  CORE_PEER_LOCALMSPID=DEFAULT
  
  CORE_PEER_ID=cli
  
  CORE_PEER_MSPCONFIGPATH=fabric源碼目錄下dev-network/msp(絕對路徑)
  
  CORE_PEER_ADDRESS=127.0.0.1:7051
  
  FABRIC_CFG_PATH=fabric源碼目錄下/dev-network(絕對路徑)
  
  6,打開終端
  
  cd $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
  
  編譯chaincode
  
  go build -o chaincode_example02 接著運行
  
  CORE_PEER_ADDRESS=peer:7052 CORE_CHAINCODE_ID_NAME=mycc:1.0 ./chaincode_example02
  
  7,接著調試網絡,用debug模式運行 peer 下的 main.go 文件 並添加配置,絕對路徑的地方相對修改,然後運行
  
  星際文件系統(InterPlanetary File System,縮寫IPFS)是一個旨在創建持久且分布式存儲和共享文件的網絡傳輸協議,它是一種內容可尋址的對等超媒體分發協議。在IPFS網絡中的節點將構成一個分布式文件系統。
  
  準備兩臺 centos7 虛擬機,設置並網絡連通
  
  192.168.1.210
  
  192.168.1.211
  
  到 https://github.com/ipfs/go-ipfs 下在安裝包 https://www.fengshen157.com/ github.com/ipfs/go-ipfs/releases/tag/v0.4.18
  
  go-ipfs_v0.4.18_linux-amd64.tar.gz
  
  下載並安裝密鑰創建工具
  
  go get -u github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen
  
  將在 $GOPATH/bin/ipfs-swarm-key-gen 和 go-ipfs_v0.www.michenggw.com 4.18_linux-amd64.tar.gz 復制到兩臺虛擬機裏
  
  兩臺虛擬機安裝ipfs
  
  解壓
  
  tar -zxvf go-ipfs_v0.4.18_linux-amd64.tar.gz
  
  移動文件
  
  cd go-ipfs && sudo mv ipfs /usr/local/bin/ipfs
  
  初始化IPFS節點(無需在內網尋找相鄰節點)
  
  ipfs init
  
  在 192.168.1.210 虛擬機裏創建共享密鑰,同一個IPFS私鏈內的所有節點必須共享同一個密鑰才能加入。
  
  創建密鑰:
  
  ./ipfs-swarm-key-gen > /root/.ipfs/swarm.key
  
  創建完密鑰放在了自己的ipfs默認配置文件夾下面(~/.ipfs/)
  
  並清除所有缺省啟動節點
  
  ipfs bootstrap rm all
  
  在 192.168.1.211 裏清除所有缺省啟動節點
  
  ipfs bootstrap rm all
  
  將 192.168.1.210 創建的 /root/.ipfs/swarm.key 復制到 192.168.1.211 的 /root/.ipfs/ www.dasheng178.com swarm.key
  
  在 192.168.1.211 添加 192.168.1.210 為默認節點
  
  ipfs bootstrap add /ip4/192.168.1.210/tcp/4001/ipfs/QmRBWWrTwd7d1QCKEjcLdGgZAvSKtSNgZdQznzF58RBwZ2
  
  兩臺虛擬機啟動IPFS節點
  
  ipfs daemon &
  
  查看peer
  
  ipfs swarm peers
  
  輸出日誌,成功
  
  /ip4/192.168.1.210/tcp/4001/ipfs/QmRBWWrTwd7d1QCKEjcLdGgZAvSKtSNgZdQznzF58RBwZ2

Hyperledger Fabric 實戰(十二): Fabric 源碼本地調試