在CentOS 7中上部署fabric v2.2.0環境和測試網路
一、基本元件安裝
1.docker安裝
2.docker-compose安裝
3.go語言和git安裝
二、fabric v2.2.0環境搭建和部署
1.拉取原始碼
2.環境搭建
三、測試網路
my系統版本:CentOS 7,VMware 15.5
最近在研究區塊鏈相關知識,我是小白,哦不大白,也不太懂,就在網上看了一大堆的教程,一個月前fabric裝的1.2版本,這個版本很舊了,雖然大部分部署好了,但還是會有錯誤,有些自己也沒解決掉,還不好意思總問老師(因為問了我也聽不太懂他說的解決辦法hhh)為了跟組裡的人保持一致,這樣下次遇到錯誤也能一起交流,我就重新建了一個虛擬機器,裝的2.2版本的(我這個菜雞部署1.2版本的建了三個虛擬機器,2.2版本又建了一個,唉太丟人了,推薦大家可以用用虛擬機器的快照功能,快照一下這樣第二天如果把虛擬機器玩壞了還能恢復到以前的樣子)這樣先把基本工作做好,那就是必要的軟體安裝,然後進行部署,廢話說了一堆,下面進入正題haha。
首先安裝VMware workstation,我裝的是15.5版本,然後下載CentOS 7映象,我是用百度網盤下的,下了一天。。。速度比較慢哈。然後就可以進行我們的正式工作啦~
看了很多大佬們的部落格,大概總結一下,怕自己忘掉,好記性不如爛筆頭!!!
如有侵權,請聯絡我,我馬上修改。。
一、基本元件安裝
1.docker安裝
如果下載過docker,需要先解除安裝掉舊版本,執行下條語句,沒下載過docker的請忽略此條
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
(1)更新yum
yum update
(2)yum源配置
yum install -y wget
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum makecache
(3)其他軟體下載
yum install -y curl vim gcc gcc-c++
yum install -y yum-utils device-mapper-persistent-data lvm2
(4)增加docker yum 源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(5)下載docker並檢視版本
yum list docker-ce --showduplicates | sort -r
yum install -y docker-ce
docker --version
docker version
(6)設定docker開機啟動
systemctl start docker
systemctl enable docker
systemctl list-unit-files --all --type=service | grep docker
(7)設定docker images映象源
首先進入阿里雲官方網站:https://www.aliyun.com/
登陸自己的賬號,在搜尋框輸入容器映象服務後回車
點進左下角的映象加速器
按照它提示的操作進行即可,操作文件選擇CentOS
2.docker-compose安裝
yum install -y epel-release
yum makecache
yum install -y docker-compose
docker-compose version
3.go語言安裝
我裝的是1.14.10版本,推薦安裝1.13+,不然後期可能因為版本問題執行某些命令出錯
yum install -y git
cd /opt
mkdir golang
cd golang
wget https://studygolang.com/dl/golang/go1.14.10.linux-amd64.tar.gz
tar -zxvf go1.14.10.linux-amd64.tar.gz
在/etc/profile檔案下增加環境變數
vim /etc/profile
#追加gradle環境變數
export GRADLE_HOME=/home/gradle/gradle-6.5.1
export GRADLE_USER_HOME=/home/gradle/gradle_user_home
export PATH=$PATH:$GRADLE_HOME/bin
#追加golang環境變數
export GOPATH=/opt/gopath
export GOROOT=/opt/golang/go
export PATH=$GOROOT/bin:$PATH
export FABRIC=$GOPATH/src/github.com/hyperledger/fabric
檢視版本
source /etc/profile
go version
go env
二、fabric v2.2.0環境搭建和部署
1.拉取原始碼
mkdir -p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
如果上述github地址下載太慢,可以嘗試下面碼雲上這個地址
git clone https://gitee.com/luxiaojun0605/fabric.git
我用的是碼雲地址
2.環境搭建
下載完成後會得到一個fabric資料夾,進入fabric/scripts目錄可以看到一個bootstrap.sh指令碼,直接執行bootstrap.sh指令碼,就會自動進行fabric相關檔案和映象的下載,因涉及到github上面下載包,所以此過程比較長,我下載了一個小時。。。
進入fabric/scripts資料夾
cd fabric/scripts
執行指令碼進行相關檔案和映象的下載
./bootstrap.sh
此過程比較慢哈,我下載了一個小時,不要著急,這個時候你可以小憩一下,吃點東西。
下載的fabric-samples會在scripts資料夾下,我們們把他放到上一級目錄方便操作
mv fabric-samples ../
/root/go/src/github.com/hyperledger/fabric/fabric-samples
三、測試網路
這裡推薦官方的英文文件,每一步也比較詳細了
連結: https://hyperledger-fabric.readthedocs.io/en/latest/test_network.html.
使用以下命令導航到測試網路目錄:
cd fabric-samples/test-network
在此目錄中,可以找到帶註釋的指令碼, network.sh
該指令碼使用本地計算機上的Docker映像站立在Fabric網路上。
從test-network
目錄內部,執行以下命令以從以前的所有執行中刪除任何容器或工件:
./network.sh down
然後,可以通過發出以下命令來啟動網路
./network.sh up
如果命令成功完成,將看到正在建立的節點的日誌:
部署測試網路後,可能需要一些時間來檢查其元件。執行以下命令以列出計算機上執行的所有Docker容器。應該看到該network.sh指令碼建立的三個節點:
docker ps -a
可以使用network.sh指令碼在Org1和Org2之間建立頻道,並將其對等方加入該頻道。執行以下命令以使用預設名稱建立頻道mychannel:
./network.sh createChannel
如果命令成功執行,則可以在日誌中看到以下訊息:
========= Channel successfully joined ===========
使用network.sh建立頻道後,可以使用以下命令在頻道上啟動鏈碼:
./network.sh deployCC
啟用測試網路後,可以使用peerCLI與網路進行互動。peerCLI允許您從CLI呼叫已部署的智慧合約,更新通道或安裝和部署新的智慧合約。
確保正在從test-network目錄進行操作。使用以下命令將這些二進位制檔案新增到您的CLI路徑:
export PATH=${PWD}/../bin:$PATH
您還需要將設定FABRIC_CFG_PATH為指向儲存庫中的core.yaml檔案fabric-samples:
export FABRIC_CFG_PATH=$PWD/../config/
設定環境變數,以允許您以peer Org1的形式操作CLI:
# Environment variables for Org1
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051
如果您用於安裝和啟動資產轉移(基本)鏈碼,則可以呼叫(Go)鏈碼的功能以在分類帳上放置資產的初始列表。
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"InitLedger","Args":[]}'
如果成功,應該看到類似以下的輸出:
-> INFO 001 Chaincode invoke successful. result: status:200
現在,可以從CLI查詢分類帳。執行以下命令以獲取已新增到渠道分類帳的資產列表:
peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'
如果成功,應該看到以下輸出:
當網路成員要轉移或更改分類帳上的資產時,將呼叫鏈碼。使用以下命令通過呼叫資產轉移(基本)鏈碼來更改分類帳上資產的所有者:
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"TransferAsset","Args":["asset6","Christopher"]}'
如果命令成功,應該看到以下響應:
2019-12-04 17:38:21.048 EST [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Chaincode invoke successful. result: status:200
使用完測試網路後,可以使用以下命令關閉網路:
./network.sh down
該命令將停止並刪除節點和鏈碼容器,刪除組織加密材料,並從Docker登錄檔中移除鏈碼映像。該命令還會從以前的執行中刪除通道工件和docker卷,從而在遇到任何問題時允許您再次執行。
如有錯誤,還請指正,互相學習!!!
相關文章
- 在Ubuntu上部署Hyperledger Fabric環境Ubuntu
- zerorunner 在 Centos 的環境配置和部署CentOS
- 在CentOS7環境下部署weblogic叢集CentOSWeb
- 在CentOS 7上搭建Docker環境CentOSDocker
- 謹以此篇紀錄部署Fabric2.2.0網路環境走的彎路
- fabric網路環境啟動過程詳解
- CentOS7---部署Nginx+uwsgi+Django+python3環境CentOSNginxDjangoPython
- CentOS 7部署Javaweb專案(一)——環境搭建CentOSJavaWeb
- PJzhang:centos7上LNMP方式安裝dvwa漏洞測試環境CentOSLNMP
- windows離線部署VSCode在Centos7上的遠端開發環境WindowsVSCodeCentOS開發環境
- 阿里雲CentOS7下部署Nginx,MySQL,PHP7環境阿里CentOSNginxMySqlPHP
- Hyperledger Fabric部署與測試(Ubuntu)Ubuntu
- CentOS7系統手動部署LNMP環境操作演示CentOSLNMP
- Xcode配置測試環境和線上環境XCode
- CentOS 7上使用Python 3和虛擬環境CentOSPython
- CentOS7搭建Java環境(JDK、MySQL和Tomcat)CentOSJavaJDKMySqlTomcat
- CentOS7 環境配置指南CentOS
- 在公司內部網路如何搭建Python+selenium自動化測試環境Python
- openEuler網路配置+換源+桌面環境ukui等基本環境部署UI
- Linux CentOS7 系統中部署 Nginx + PHP-fpm + MySQL 環境LinuxCentOSNginxPHPMySql
- Linux系統 Centos7 環境基於Docker部署Rocketmq服務LinuxCentOSDockerMQ
- Centos 7 安裝GNOME桌面環境CentOS
- IOS提審ipv6網路相容測試環境搭建iOS
- PCIE XDMA 開發環境搭建以及環路測試開發環境
- centos7環境 nginx轉發ftp請求(親測可用)CentOSNginxFTP
- Centos7下GlusterFS分散式儲存叢集環境部署記錄CentOS分散式
- 在阿里,我們如何管理測試環境阿里
- 配置開發環境、生成環境、測試環境開發環境
- 如何在Linux系統上部署介面測試環境Linux
- 無線網路安全————2、無線路由器配置和選擇測試環境路由器
- Centos7環境變數設定CentOS變數
- Centos7環境下安裝curlCentOS
- paddleocr 在docker環境下部署Docker
- CentOS7搭建Fabric-1.2CentOS
- Centos下Nodejs+npm環境-部署記錄CentOSNodeJSNPM
- CentOS SVN 環境搭建配置跟自動部署CentOS
- Hyperledger超級賬本在Centos7下搭建執行環境CentOS
- 熱部署一般用在測試環境, 生產環境用分散式配置中心熱部署分散式