(3)檢查創(chuàng)世塊文件
configtxgen -inspectBlock genesis_block.pb
(4)? 檢查通道文件(fabric2.2及以前會用到)
configtxgen -inspectChannelCreateTx channel.tx
3. 部署節(jié)點(通過docker-compose配置文件)
創(chuàng)建節(jié)點的方式有兩種:
(1)在創(chuàng)建任何節(jié)點之前,必須在本機上自定義其配置文件。對于peer節(jié)點,該文件稱為core.yaml
,而orderer節(jié)點的配置文件稱為orderer.yaml;
(2)使用一個docker容器,將docker節(jié)點跑在一個docker容器里面。
這里使用的是第二種方法,使用docker容器,首先將原來test-network里的compose文件夾下的compose-test-net.yaml和compose文件夾下的docker文件夾里的docker-compose-test-net.yaml兩個文件結(jié)合成一個docker-compose.yaml文件,這里面包含了orderer和peer節(jié)點及相應(yīng)的cli的配置信息,將里面相關(guān)環(huán)境變量的路徑換成自己的路徑
**注意事項?。。?!**在創(chuàng)建peer節(jié)點時,我的peer節(jié)點每次一創(chuàng)建就會自動退出,查看日志說是缺少core文件,但通過docker容器創(chuàng)建節(jié)點時,core.yaml的配置信息其實都是放在了docker-compose.yaml里面的,所以一直找不到原因
最后發(fā)現(xiàn)問題出現(xiàn)在
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com:/etc/hyperledger/fabric
卷映射上。在 Docker 中,當(dāng)使用 - ./some/path:/another/path
這樣的語法時,是在指定一個卷(volume)映射。這意味著 Docker 會將宿主機上的 ./some/path
目錄或文件的內(nèi)容復(fù)制到容器內(nèi)的 /another/path
目錄。注意這里的復(fù)制,嚴格意義來說,它并不是復(fù)制,而是替換。
例如./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com文件夾里有tsl和msp兩個文件夾,而/etc/hyperledger/fabric有msp,tsl,ca等等文件或文件夾,這個映射生效后,/etc/hyperledger/fabric里的文件就只有映射過來的msp和tsl文件夾,其他文件夾和文件會丟失。因此,為了避免意外地覆蓋容器內(nèi)的現(xiàn)有文件和子目錄,應(yīng)該確保每個卷映射都是精確的,只映射確實想要替換的文件或目錄。
在docker-compose.yaml文件夾的節(jié)點?volumes配置里,將上面的內(nèi)容該為下面的
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls
得到了正確的創(chuàng)建效果,節(jié)點也不會自動關(guān)閉退出網(wǎng)絡(luò)。狀態(tài)均為up。
4.將節(jié)點加入通道
4.1 加入orderer節(jié)點進入通道,激活通道
創(chuàng)建了創(chuàng)世塊文件之后,通道相當(dāng)于進行了初始化,但里面什么都沒有,并且也沒有任何節(jié)點加入里面,加入第一個節(jié)點進入通道,類似于激活通道。
export OSN_TLS_CA_ROOT_CERT=${PWD}/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
export ADMIN_TLS_SIGN_CERT=${PWD}/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
export ADMIN_TLS_PRIVATE_KEY=${PWD}/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.key
osnadmin channel join --channelID hellofabric-channel --config-block ./channel-artifacts/genesis_block.pb -o orderer.example.com:7053 --ca-file $OSN_TLS_CA_ROOT_CERT --client-cert $ADMIN_TLS_SIGN_CERT --client-key $ADMIN_TLS_PRIVATE_KEY
因為在這個過程中,我的代碼報了很多錯誤,總是在tls連接時出錯,為此我檢查了很多地方,但總是感覺沒什么問題,弄了很久都沒弄出來。
輔助驗證錯誤的工具
證書檢查
檢查證書是否存在并正確配置
openssl verify -verbose -CAfile $OSN_TLS_CA_ROOT_CERT $ADMIN_TLS_SIGN_CERT
檢查證書的有效性
openssl x509 -text -noout -in /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts/Admin@org1.example.com-cert.pem
網(wǎng)絡(luò)檢查
docker inspect <容器名/容器id>
可以查看到容器的ip配置
然后通過ping和talnet命令來進行檢測
檢查防火墻配置
sudo iptables -L INPUT -n -v | grep :7050
最后查出來原因在于我的-o寫的有問題,端口要和orderer節(jié)點所監(jiān)聽的端口對應(yīng),也不能忘了寫端口。-o這一部分出錯,就會對網(wǎng)絡(luò)配置產(chǎn)生影響,在控制臺就會出現(xiàn)tls握手出錯的問題。
4.2 加入普通節(jié)點
首先要進入容器內(nèi)部來創(chuàng)建通道
docker exec -it cli1 bash
peer channel join -b ./channel-artifacts/genesis_block.pb
我這里是把節(jié)點放在兩個cli容器的
4.3 為通道設(shè)置錨節(jié)點
錨節(jié)點的作用就是讓不同組織底下的節(jié)點互相能夠進行通訊,發(fā)現(xiàn)對方的節(jié)點。
進入cli1容器中,獲取配置文件并輸入到指定文件
peer channel fetch config channel-artifacts/config_block.pb -o orderer.example.com:7050 --ordererTLSHostnameOverride orderer.example.com -c hellofabric-channel --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
進入channel-artifacts文件夾下,使用 configtxlator 工具來進行通道配置任務(wù)(該工具主要由兩個功能,一個是執(zhí)行 protobuf 和 json 兩種數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換,另一個是執(zhí)行配置更新)。
首先,將配置塊信息從 protobuf 類型轉(zhuǎn)換為可讀的 json 類型
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現(xiàn)在。
深知大多數(shù)Linux運維工程師,想要提升技能,往往是自己摸索成長或者是報班學(xué)習(xí),但對于培訓(xùn)機構(gòu)動則幾千的學(xué)費,著實壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年Linux運維全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時減輕大家的負擔(dān)。
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學(xué)習(xí)提升的進階課程,基本涵蓋了95%以上Linux運維知識點,真正體系化!
由于文件比較大,這里只是將部分目錄大綱截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且后續(xù)會持續(xù)更新
如果你覺得這些內(nèi)容對你有幫助,可以添加VX:vip1024b (備注Linux運維獲?。?/strong>
為了做好運維面試路上的助攻手,特整理了上百道 【運維技術(shù)棧面試題集錦】 ,讓你面試不慌心不跳,高薪offer懷里抱!
這次整理的面試題,小到shell、MySQL,大到K8s等云原生技術(shù)棧,不僅適合運維新人入行面試需要,還適用于想提升進階跳槽加薪的運維朋友。
本份面試集錦涵蓋了
- 174 道運維工程師面試題
- 128道k8s面試題
- 108道shell腳本面試題
- 200道Linux面試題
- 51道docker面試題
- 35道Jenkis面試題
- 78道MongoDB面試題
- 17道ansible面試題
- 60道dubbo面試題
- 53道kafka面試
- 18道m(xù)ysql面試題
- 40道nginx面試題
- 77道redis面試題
- 28道zookeeper
總計 1000+ 道面試題, 內(nèi)容 又全含金量又高
- 174道運維工程師面試題
1、什么是運維?
2、在工作中,運維人員經(jīng)常需要跟運營人員打交道,請問運營人員是做什么工作的?
3、現(xiàn)在給你三百臺服務(wù)器,你怎么對他們進行管理?
4、簡述raid0 raid1raid5二種工作模式的工作原理及特點
5、LVS、Nginx、HAproxy有什么區(qū)別?工作中你怎么選擇?
6、Squid、Varinsh和Nginx有什么區(qū)別,工作中你怎么選擇?
7、Tomcat和Resin有什么區(qū)別,工作中你怎么選擇?
8、什么是中間件?什么是jdk?
9、講述一下Tomcat8005、8009、8080三個端口的含義?
10、什么叫CDN?
11、什么叫網(wǎng)站灰度發(fā)布?
12、簡述DNS進行域名解析的過程?
13、RabbitMQ是什么東西?
14、講一下Keepalived的工作原理?
15、講述一下LVS三種模式的工作過程?
16、mysql的innodb如何定位鎖問題,mysql如何減少主從復(fù)制延遲?
17、如何重置mysql root密碼?文章來源:http://www.zghlxwxcb.cn/news/detail-861521.html
一個人可以走的很快,但一群人才能走的更遠。不論你是正從事IT行業(yè)的老鳥或是對IT行業(yè)感興趣的新人,都歡迎掃碼加入我們的的圈子(技術(shù)交流、學(xué)習(xí)資源、職場吐槽、大廠內(nèi)推、面試輔導(dǎo)),讓我們一起學(xué)習(xí)成長!
講一下Keepalived的工作原理?
15、講述一下LVS三種模式的工作過程?
16、mysql的innodb如何定位鎖問題,mysql如何減少主從復(fù)制延遲?
17、如何重置mysql root密碼?
一個人可以走的很快,但一群人才能走的更遠。不論你是正從事IT行業(yè)的老鳥或是對IT行業(yè)感興趣的新人,都歡迎掃碼加入我們的的圈子(技術(shù)交流、學(xué)習(xí)資源、職場吐槽、大廠內(nèi)推、面試輔導(dǎo)),讓我們一起學(xué)習(xí)成長!
[外鏈圖片轉(zhuǎn)存中…(img-ic3laK6k-1712613797973)]文章來源地址http://www.zghlxwxcb.cn/news/detail-861521.html
到了這里,關(guān)于區(qū)塊鏈學(xué)習(xí)筆記(6(1),深入理解Linux運維的核心知識點的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!