日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Fabric--启动网络手动

發布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Fabric--启动网络手动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

啟動網絡手動實現

實現步驟

生成組織關系和身份證書

確定是在 fabric-samples/first-network 路徑下

$ cd hyfa/fabric-samples/first-network/

為fabric網絡生成指定拓撲結構的組織關系和身份證書

$ sudo ../bin/cryptogen generate --config=./crypto-config.yaml

此命令依賴 crypto-config.yaml 配置文件

會有如下輸出:

org1.example.com org2.example.com

證書和密鑰(即MSP材料)將被輸出到目錄 first-network/crypto-config 的目錄中

ordererOrganizations子目錄下包括構成Orderer組織(1個Orderer節點)的身份信息

peerOrganizations子目錄下為所有的Peer節點組織(2個組織, 4個節點)的相關身份信息. 其中最關鍵的是MSP目錄, 代表了實體的身份信息

crypto-config文件目錄結構如下

crypto-config
├── ordererOrganizations
│?? └── example.com
│?? ├── ca
│?? │?? ├── ca.example.com-cert.pem
│?? │?? └── df69b6d2aea8038270c5340d358bfe34eee039a8e16d4a849e67ec27a8ed53bd_sk
│?? ├── msp
│?? │?? ├── admincerts
│?? │?? │?? └── Admin@example.com-cert.pem
│?? │?? ├── cacerts
│?? │?? │?? └── ca.example.com-cert.pem
│?? │?? └── tlscacerts
│?? │?? └── tlsca.example.com-cert.pem
│?? ├── orderers
│?? │?? └── orderer.example.com
│?? │?? ├── msp
│?? │?? │?? ├── admincerts
│?? │?? │?? ├── cacerts
│?? │?? │?? ├── keystore
│?? │?? │?? ├── signcerts
│?? │?? │?? └── tlscacerts
│?? │?? └── tls
│?? │?? ├── ca.crt
│?? │?? ├── server.crt
│?? │?? └── server.key
│?? ├── tlsca
│?? │?? ├── 138f1cfd2708bca1e9e525773af410d46cef12736c3673ed787d7bbc38f013a4_sk
│?? │?? └── tlsca.example.com-cert.pem
│?? └── users
│?? └── Admin@example.com
│?? ├── msp
│?? │?? ├── admincerts
│?? │?? ├── cacerts
│?? │?? ├── keystore
│?? │?? ├── signcerts
│?? │?? └── tlscacerts
│?? └── tls
│?? ├── ca.crt
│?? ├── client.crt
│?? └── client.key
└── peerOrganizations
├── org1.example.com # 第一個組織的相關材料,每個組織會生成單獨的根證書
│?? ├── ca #存放組織的根證書和對應的私鑰文件,默認采用EC 算法,證書為自簽名。組織內的實體將基于該根證書作為證書根。
│?? │?? ├── 9b78dd1cc0570c9ef3f3fa31a1b343e7a6c0f157a2cc17f75412e12f2936898c_sk
│?? │?? └── ca.org1.example.com-cert.pem
│?? ├── msp # 存放代表該組織的身份信息
│?? │?? ├── admincerts # 組織管理員的身份驗證證書,被根證書簽名
│?? │?? │?? └── Admin@org1.example.com-cert.pem
│?? │?? ├── cacerts # 組織的根證書,同ca 目錄下文件
│?? │?? │?? └── ca.org1.example.com-cert.pem
│?? │?? ├── config.yaml
│?? │?? └── tlscacerts # :用于TLS 的CA 證書,自簽名
│?? │?? └── tlsca.org1.example.com-cert.pem
│?? ├── peers # 存放屬于該組織的所有Peer 節點
│?? │?? ├── peer0.org1.example.com # 第一個peer 的信息,包括其msp 證書和tls 證書兩類
│?? │?? │?? ├── msp
│?? │?? │?? │?? ├── admincerts # 組織管理員的身份驗證證書。Peer 將基于這些證書來認證交易簽署者是否為管理員身份
│?? │?? │?? │?? ├── cacerts # 存放組織的根證書
│?? │?? │?? │?? ├── config.yaml
│?? │?? │?? │?? ├── keystore # 本節點的身份私鑰,用來簽名
│?? │?? │?? │?? ├── signcerts # 驗證本節點簽名的證書,被組織根證書簽名
│?? │?? │?? │?? └── tlscacerts # TLS 連接用的身份證書,即組織TLS 證書
│?? │?? │?? └── tls # 存放tls 相關的證書和私鑰
│?? │?? │?? ├── ca.crt # 組織的根證書
│?? │?? │?? ├── server.crt # 驗證本節點簽名的證書,被組織根證書簽名
│?? │?? │?? └── server.key # 本節點的身份私鑰,用來簽名
│?? │?? └── peer1.org1.example.com # 第二個peer 的信息,與peer0.org1.example.com結構類似
│?? │?? ├── msp
│?? │?? │?? ├── admincerts
│?? │?? │?? ├── cacerts
│?? │?? │?? ├── config.yaml
│?? │?? │?? ├── keystore
│?? │?? │?? ├── signcerts
│?? │?? │?? └── tlscacerts
│?? │?? └── tls
│?? │?? ├── ca.crt
│?? │?? ├── server.crt
│?? │?? └── server.key
│?? ├── tlsca
│?? │?? ├── cf4587814bc05f9f81ac3d990c365660dedf1479e60f737c7e9e707727a27168_sk
│?? │?? └── tlsca.org1.example.com-cert.pem
│?? └── users # 存放屬于該組織的用戶的實體
│?? ├── Admin@org1.example.com # 管理員用戶的信息,包括其msp 證書和tls 證書兩類
│?? │?? ├── msp
│?? │?? │?? ├── admincerts # 管理身份驗證證書
│?? │?? │?? ├── cacerts # 存放組織的根證書
│?? │?? │?? ├── keystore # 本用戶的身份私鑰,用來簽名
│?? │?? │?? ├── signcerts # 管理員用戶的身份驗證證書,被組織根證書簽名。要被某個Peer認可,則必須放到該Peer 的msp/admincerts 下
│?? │?? │?? └── tlscacerts # TLS 連接用的身份證書,即組織TLS 證書
│?? │?? └── tls # 存放tls 相關的證書和私鑰
│?? │?? ├── ca.crt # 組織的根證書
│?? │?? ├── client.crt # 管理員的用戶身份驗證證書,被組織根證書簽名
│?? │?? └── client.key # 管理員用戶的身份私鑰,用來簽名
│?? └── User1@org1.example.com # 第一個用戶的信息,包括msp 證書和tls 證書兩類
│?? ├── msp
│?? │?? ├── admincerts # 管理身份驗證證書
│?? │?? ├── cacerts # 存放組織的根證書
│?? │?? ├── keystore # 本用戶的身份私鑰,用來簽名
│?? │?? ├── signcerts # 驗證本用戶簽名的身份證書,被組織根證書簽名
│?? │?? └── tlscacerts # TLS 連接用的身份證書,即組織TLS 證書
│?? └── tls # 存放tls 相關的證書和私鑰
│?? ├── ca.crt # 組織的根證書
│?? ├── client.crt # 驗證用戶簽名的身份證書,被組織根證書簽名
│?? └── client.key # 用戶的身份私鑰,用來簽名
└── org2.example.com # 第二個組織的信息,與org1.example.com結構類似
├── ca
│?? ├── 91fd76daf883a57066303fb6842ff4fb07c6793dbc8fbbca6303efea455884b2_sk
│?? └── ca.org2.example.com-cert.pem
├── msp
│?? ├── admincerts
│?? │?? └── Admin@org2.example.com-cert.pem
│?? ├── cacerts
│?? │?? └── ca.org2.example.com-cert.pem
│?? ├── config.yaml
│?? └── tlscacerts
│?? └── tlsca.org2.example.com-cert.pem
├── peers
│?? ├── peer0.org2.example.com
│?? │?? ├── msp
│?? │?? │?? ├── admincerts
│?? │?? │?? ├── cacerts
│?? │?? │?? ├── config.yaml
│?? │?? │?? ├── keystore
│?? │?? │?? ├── signcerts
│?? │?? │?? └── tlscacerts
│?? │?? └── tls
│?? │?? ├── ca.crt
│?? │?? ├── server.crt
│?? │?? └── server.key
│?? └── peer1.org2.example.com
│?? ├── msp
│?? │?? ├── admincerts
│?? │?? ├── cacerts
│?? │?? ├── config.yaml
│?? │?? ├── keystore
│?? │?? ├── signcerts
│?? │?? └── tlscacerts
│?? └── tls
│?? ├── ca.crt
│?? ├── server.crt
│?? └── server.key
├── tlsca
│?? ├── d3c3e6e37d306992bc9fb826415ed77971031418db48c195d5a24521916f32f3_sk
│?? └── tlsca.org2.example.com-cert.pem
└── users
├── Admin@org2.example.com
│?? ├── msp
│?? │?? ├── admincerts
│?? │?? ├── cacerts
│?? │?? ├── keystore
│?? │?? ├── signcerts
│?? │?? └── tlscacerts
│?? └── tls
│?? ├── ca.crt
│?? ├── client.crt
│?? └── client.key
└── User1@org2.example.com
├── msp
│?? ├── admincerts
│?? ├── cacerts
│?? ├── keystore
│?? ├── signcerts
│?? └── tlscacerts
└── tls
├── ca.crt
├── client.crt
└── client.key

Cryptogen 按照配置文件中指定的結構生成了對應的組織和密鑰、證書文件

其中最關鍵的是各個資源下的msp 目錄內容,存儲了生成的代表MSP 身份的各種證書文件,一般包括:

  • admincerts :管理員的身份證書文件
  • cacerts :信任的根證書文件
  • key store :節點的簽名私鑰文件
  • signcerts :節點的簽名身份證書文件
  • tlscacerts: TLS 連接用的證書
  • intermediatecerts (可選):信任的中間證書
  • crls (可選):證書撤銷列表
  • config.yaml (可選):記錄OrganizationalUnitldentifiers 信息,包括根證書位置和ID信息

這些身份文件隨后可以分發到對應的Orderer 節點和Peer 節點上,并放到對應的MSP路徑下,用于簽名使用

配置環境變量

告訴configtxgen工具在哪里尋找configtx.yaml 文件

$ export FABRIC_CFG_PATH=$PWD

創建Ordering服務啟動初始區塊

指定使用 configtx.yaml 文件中定義的 TwoOrgsOrdererGenesis 模板, 生成Ordering服務系統通道的初始區塊文件

$ sudo ../bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

命令執行后輸出如下:

10:49:21.181 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration 10:49:21.207 CST [msp] getMspConfig -> INFO 002 Loading NodeOUs 10:49:21.208 CST [msp] getMspConfig -> INFO 003 Loading NodeOUs 10:49:21.210 CST [common/tools/configtxgen] doOutputBlock -> INFO 004 Generating genesis block 10:49:21.211 CST [common/tools/configtxgen] doOutputBlock -> INFO 005 Writing genesis block

創建一個應用通道的配置交易

務必替換$CHANNEL_NAME或設置CHANNEL_NAME為可在整個說明中使用的環境變量

$ export CHANNEL_NAME=mychannel

指定使用 configtx.yaml 配置文件中的 TwoOrgsChannel 模板, 來生成新建通道的配置交易文件, TwoOrgsChannel 模板指定了Org1和Org2都屬于后面新建的應用通道

$ sudo ../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME

輸出如下

11:13:24.984 CST [common/tools/configtxgen] main -> INFO 001 Loading configuration 11:13:24.992 CST [common/tools/configtxgen] doOutputChannelCreateTx -> INFO 002 Generating new channel configtx 11:13:24.993 CST [msp] getMspConfig -> INFO 003 Loading NodeOUs 11:13:24.994 CST [msp] getMspConfig -> INFO 004 Loading NodeOUs 11:13:25.016 CST [common/tools/configtxgen] doOutputChannelCreateTx -> INFO 005 Writing new channel tx

生成錨節點配置更新文件

錨節點配置更新文件用來對組織的錨節點進行配置

同樣基于 configtx.yaml 配置文件生成新建通道文件, 每個組織都需要分別生成且注意指定對應的組織名稱

$ sudo ../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP$ sudo ../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP

啟動網絡

$ sudo docker-compose -f docker-compose-cli.yaml up -d

-f: 指定docker-compose文件

注:

如果想查看網絡的實時日志,則不需要提供 -d 參數

CLI容器將閑置1000秒。如果在需要時它消失了,可以用一個簡單的命令重新啟動它:

? $ sudo docker start cli

網絡啟動順序: 首先啟動Orderer節點, 然后啟動Peer節點, 日志輸出如下:

...... orderer.example.com | 02:48:25.080 UTC [orderer/common/server] initializeServerConfig -> INFO 002 Starting orderer with TLS enabled orderer.example.com | 02:48:25.101 UTC [fsblkstorage] newBlockfileMgr -> INFO 003 Getting block information from block storage orderer.example.com | 02:48:25.138 UTC [orderer/commmon/multichannel] NewRegistrar -> INFO 004 Starting system channel 'testchainid' with genesis block hash 67662e918ab76b4a8863cc625d67fcc31e9cb3a7c3c4f9f707af1c05ba5be686 and orderer type solo orderer.example.com | 02:48:25.138 UTC [orderer/common/server] Start -> INFO 005 Starting orderer: ......

Peer節點啟動后, 默認情況下沒有加入網絡中的任何應用通道, 也不會與Orderer服務建立連接.需要通過客戶端對其進行操作, 讓它加入網絡和指定的應用通道中

進入Docker容器

執行如下命令進入到CLI容器中(后繼操作都在容器中執行)

$ sudo docker exec -it cli bash

如果成功, 命令提示符會變為如下內容:

? root@b240e1643244:/opt/gopath/src/github.com/hyperledger/fabric/peer#

創建通道

檢查環境變量是否正確設置

echo $CHANNEL_NAME

設置環境變量

export CHANNEL_NAME=mychannel

創建通道

peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --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

該命令自動在本地生成與該應用通道同名的初始區塊 mychannel.block, 只有擁有該文件才可以加入創建的應用通道中

參數說明:

-o: 指定Orderer服務的地址

-c: 指定創建的通道的名稱

-f: 指定通道配置交易文件所在路徑

–tls: 指定是否開啟TLS

–cafile: 指定MSP CA證書路徑

查看:

root@086adb802655:/opt/gopath/src/github.com/hyperledger/fabric/peer# ll total 36 drwxr-xr-x 5 root root 4096 Apr 29 03:34 ./ drwxr-xr-x 3 root root 4096 Apr 29 02:48 ../ drwxr-xr-x 2 root root 4096 Apr 29 02:47 channel-artifacts/ drwxr-xr-x 4 root root 4096 Apr 29 02:35 crypto/ -rw-r--r-- 1 root root 15660 Apr 29 03:34 mychannel.block drwxr-xr-x 2 root root 4096 Apr 29 02:13 scripts/

加入通道

應用通道所包含組織的成員節點可以加入通道中

peer channel join -b mychannel.block

join命令: 將本Peer節點加入到某個應用通道中

參數含義

-b: 初始區塊文件的路徑信息

執行成功后, Peer連接到該應用通道的Ordering服務上, 開始接收區塊信息

更新錨點

使用Org1的管理員身份更新錨節點配置

peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org1MSPanchors.tx --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

使用Org2的管理員身份更新錨節點配置

CORE_PEER_LOCALMSPID="Org2MSP" CORE_PEER_ADDRESS=peer0.org2.example.com:7051 CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org2MSPanchors.tx --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

手動配置網絡完成, 可以測試Chaincode

切換為pee1.org1.example.com

CORE_PEER_ADDRESS=peer1.org1.example.com:7051

CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp

CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls/ca.crt

總結

以上是生活随笔為你收集整理的Fabric--启动网络手动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩欧美国产高清91 | 午夜精品福利一区二区 | 日本黄色短片 | 国产超碰自拍 | 国产成人无码aa精品一区 | 亚洲国产成人精品女人久久 | 天堂av2020| 偷拍第1页 | 婷婷激情社区 | 91插插插插 | 亚洲无av在线中文字幕 | 久久一道本 | 天堂在线视频 | 大奶毛片| 4色av| 亚洲精品中文字幕乱码无线 | 人妻少妇一区二区三区 | 一区二区免费av | av自拍偷拍 | 欧美人与性动交a欧美精品 日韩免费高清视频 | 肉大捧一进一出免费视频 | 中文字幕欧美一区 | 体内射精一区二区 | 免费黄网站在线 | 最近最经典中文mv字幕 | 国产老熟女伦老熟妇露脸 | 一级成人免费 | 男男大尺度 | 久久精品人人 | 97人人爽人人爽人人爽 | 三级黄在线观看 | 超碰免费公开在线 | 久久久久久91亚洲精品中文字幕 | 亚洲50p| 国产精品免费av一区二区三区 | 天天干天天色 | 99小视频| 国产精品嫩草av | 91精品人妻一区二区三区四区 | 蜜臀免费av | 女女综合网 | 国产毛片毛片毛片毛片毛片毛片 | 69精品视频 | 男女69视频| 亚洲精品免费观看 | 99国产精品久久久久久久久久久 | 天堂资源地址在线 | 97人人艹 | 午夜神器在线观看 | 日韩精品中文字 | 婷婷色综合网 | 91新网站| 精品久久久久成人码免费动漫 | 丨国产丨调教丨91丨 | 欧洲精品久久久 | 成人av毛片 | 亚洲乱码国产乱码精品 | 好男人www社区| 精品久久久久亚洲 | 极品粉嫩小仙女高潮喷水久久 | 国产自在线拍 | 蜜桃视频无码区在线观看 | 韩国一级片在线观看 | 外国一级片 | 人人妻人人澡人人爽欧美一区 | 91亚洲成人 | 亚洲呦呦| 亚洲av无码国产精品久久不卡 | 国模无码视频一区 | 麻豆婷婷| 成年人视频在线免费观看 | 久久99婷婷 | 一区二区视频在线观看免费 | 爆操av | 天天操天天干天天操 | 五月婷婷色 | 国产精品无码免费专区午夜 | 中国女人毛茸茸 | 成年人小视频在线观看 | 波多野结衣视频网站 | 国产重口老太伦 | xnxx国产| 欧美一及片 | 北条麻妃一区二区三区 | 欧美做爰猛烈床戏大尺度 | 成人免费黄色大片v266 | 欧美精品区 | 红桃成人网 | 成人av免费在线看 | 久久久精品一区 | 在线观看免费视频a | 你懂的在线视频网站 | 日本九九视频 | 看片久久| 4438全国最大成人网 | 久久午夜电影网 | 69精品丰满人妻无码视频a片 | 成人美女免费网站视频 | 无罩大乳的熟妇正在播放 |