日韩性视频-久久久蜜桃-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--启动网络手动的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 男生裸体视频 | 久久精品性 | 国产精品日本 | 欧美熟妇精品黑人巨大一二三区 | www.99av | 黄色的网站免费看 | 在线观看免费福利 | 久久99深爱久久99精品 | 色人综合 | 免费在线中文字幕 | 亚洲av成人一区二区国产精品 | 五月婷婷狠狠 | 色偷偷av | 91视频在线 | 不卡影院av | 亚洲欧美字幕 | 亚洲国产精品综合 | 538在线精品视频 | 国产婷婷一区二区三区 | 欧美精品久久久久久久久老牛影院 | 午夜噜噜 | 色婷婷一区二区三区四区 | 一区二区男女 | 亚洲AV无码乱码国产精品牛牛 | 日本十大三级艳星 | 在线观看视频国产 | 娇妻之欲海泛舟无弹窗笔趣阁 | www.99爱| 伊人一区二区三区四区 | 国产又粗又猛又爽又黄的视频一 | 五月香蕉网 | 国产免费av电影 | 欧美性猛交xxxx | 欧美黄频 | 四虎5151久久欧美毛片 | 久久久99精品免费观看 | 韩国视频一区二区 | 婷婷中文网| 中文 日韩 欧美 | 国产三级麻豆 | 亚洲av无码一区二区乱子伦 | 国产chinesehd精品 | 欧洲影院 | 天天插天天狠天天透 | 禁漫天堂下载18 | 涩涩网站免费 | 成人蜜桃视频 | 欧美v日韩| 午夜免费观看视频 | 扒开jk护士狂揉免费 | 亚洲第一色图 | 亚洲男人天堂视频 | 依依成人在线视频 | 黑白配高清国语在线观看 | 四虎色| 日韩av在线播放不卡 | 中文字幕一区二区三区免费视频 | 日韩成人精品一区二区三区 | 欧美在线视频网站 | 欧美日韩国产精品一区 | 一级黄色aa| 夜夜爽影院 | 99人妻少妇精品视频一区 | www欧美色| 成人毛片a| 26uuu欧美日本 | 少妇乱淫36部 | 国产精品av在线播放 | 中文字幕丰满孑伦无码专区 | 天天干天天操天天爽 | 国产成人精品电影 | 色欲一区二区三区精品a片 在线观看黄网站 | 国产乱淫av片免费看 | 美女诱惑一区二区 | 国产做受高潮 | 娇妻被肉到高潮流白浆 | 国产真实乱偷精品视频 | 台湾佬美性中文娱乐网 | 污污免费视频 | 日韩电影在线一区二区 | 亚州黄色网址 | 色老头网址 | 日韩午夜小视频 | 麻豆天天躁天天揉揉av | 午夜精产品一区二区在线观看的 | 芒果视频在线观看免费 | 一区二区三区在线免费观看 | 性生活网址 | 婷婷激情在线 | 在线观看羞羞漫画 | 91网在线| 欧美日韩一区二区在线观看视频 | 黄色特一级| 日韩成人综合 | 欧美动态视频 | 中文综合网 | 国产清纯在线 | 亚洲乱码av | 国产精久 |