IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> fabric 2.X 联盟手动维护流程备忘 -> 正文阅读

[系统运维]fabric 2.X 联盟手动维护流程备忘

1. 新增组织
????????生成新组织证书--->?配置新组织的peer节点并启动--->获取最新的配置区块
????????用configtxlator工具把配置区块转换成可编辑格式--->增加新组织的配置信息,configtxlator计算差值,再转换成原来的格式--->对更新的配置文件进行签名--->发送配置更新交易
? ? ? ? --->新增的peer节点加入通道
????????新增的peer节点安装链码 install? & approve 批准链码

2. 新增peer节点
为新节点生成证书--->配置新节点并启动--->新节点加入通道--->新节点安装链码--->批准链码

3. 恢复peer节点
删除peer节点之前的所有容器、链码镜像、卷和backup文件
--->重新启动peer节点--->重新加入通道--->重新安装链码--->批准链码

# ------------------- 现在在 outdir 目录 ------------------

cp -r crypto-config _crypto-config_ ../package/bin/gm1.4.1/cryptogen generate --config=./crypto-config-3.yaml

cp -r crypto-config/peerOrganizations/org3.example.com/ _crypto-config_/peerOrganizations/

rm -rf crypto-config

mv _crypto-config_ crypto-config

mkdir ./channel-artifacts ../package/bin/gm1.4.1/configtxgen -printOrg Org3MSP > ./channel-artifacts/org3.json

mkdir -p org3-artifacts/crypto-config/

export ORDERER_CA=./org3-artifacts/crypto-config/ordererOrganizations/example.com/tlsca/tlsca.example.com-cert.pem

export CHANNEL_NAME=$1 cd Admin@peer0.org1.example.com

# ------------------- 现在在 Admin@peer0.org1.example.com 目录 ------------------

./peer.sh channel fetch config config_block.pb -o orderer.example.com:7050 -c $CHANNEL_NAME --tls --cafile ./tlsca.example.com-cert.pem ../../package/bin/gm1.4.1/configtxlator proto_decode --input config_block.pb --type common.Block | jq .data.data[0].payload.data.config > config.json jq -s '.[0] * {"channel_group":{"groups":{"Application":{"groups": {"Org3MSP":.[1]}}}}}' config.json ../channel-artifacts/org3.json > modified_config.json ../../package/bin/gm1.4.1/configtxlator proto_encode --input config.json --type common.Config --output config.pb ../../package/bin/gm1.4.1/configtxlator proto_encode --input modified_config.json --type common.Config --output modified_config.pb ../../package/bin/gm1.4.1/configtxlator compute_update --channel_id $CHANNEL_NAME --original config.pb --updated modified_config.pb --output org3_update.pb ../../package/bin/gm1.4.1/configtxlator proto_decode --input org3_update.pb --type common.ConfigUpdate | jq . > org3_update.json echo '{"payload":{"header":{"channel_header":{"channel_id":"'$CHANNEL_NAME'", "type":2}},"data":{"config_update":'$(cat org3_update.json)'}}}' | jq . > org3_update_in_envelope.json ../../package/bin/gm1.4.1/configtxlator proto_encode --input org3_update_in_envelope.json --type common.Envelope --output org3_update_in_envelope.pb ./peer.sh channel signconfigtx -f org3_update_in_envelope.pb cp org3_update_in_envelope.pb ../Admin@peer0.org2.example.com

# ------------------- 现在在 Admin@peer0.org2.example.com 目录 ------------------

cd ../Admin@peer0.org2.example.com ./peer.sh channel update -f org3_update_in_envelope.pb -c $CHANNEL_NAME -o orderer.example.com:7050 --tls --cafile ./tlsca.example.com-cert.pem cd ../ # ------------------- 现在在 outdir 目录 ------------------

# ---- 创建 Admin@peer0.org3.example.com ----

mkdir Admin@peer0.org3.example.com cp ./Admin@peer0.org1.example.com/core.yaml ./Admin@peer0.org3.example.com cp ./Admin@peer0.org1.example.com/peer ./Admin@peer0.org3.example.com cp ./Admin@peer0.org1.example.com/tlsca.example.com-cert.pem ./Admin@peer0.org3.example.com cp -r crypto-config/peerOrganizations/org3.example.com/users/Admin@org3.example.com/ ./Admin@peer0.org3.example.com cat > ./Admin@peer0.org3.example.com/peer.sh << EOF #!/bin/bash export FABRIC_CFG_PATH=\`pwd\` export CORE_PEER_ADDRESS=peer0.org3.example.com:7051 export CORE_PEER_LOCALMSPID="Org3MSP" export CORE_PEER_MSPCONFIGPATH=Admin@org3.example.com/msp export CORE_PEER_TLS_ENABLED=true export CORE_PEER_TLS_CERT_FILE=Admin@org3.example.com/tls/client.crt export CORE_PEER_TLS_KEY_FILE=Admin@org3.example.com/tls/client.key export CORE_PEER_TLS_ROOTCERT_FILE=Admin@org3.example.com/tls/ca.crt export FABRIC_LOGGING_SPEC=INFO ./peer \$* EOF chmod 777 ./Admin@peer0.org3.example.com/peer.sh cp ./Admin@peer0.org1.example.com/$CHANNEL_NAME.block ./Admin@peer0.org3.example.com/ # ------------------- 现在在 outdir 目录 ------------------ # ---- 创建 peer0.org3.example.com ---- mkdir peer0.org3.example.com cp -r ./crypto-config/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/msp/ ./peer0.org3.example.com cp -r ./crypto-config/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ ./peer0.org3.example.com cp ./peer0.org1.example.com/core.yaml ./peer0.org3.example.com/ cat > ./peer0.org3.example.com/start.sh << EOF export FABRIC_LOGGING_SPEC=INFO export CORE_PEER_FILESYSTEMPATH=data export CORE_PEER_MSPCONFIGPATH=msp export CORE_LEDGER_STATE_STATEDATABASE=goleveldb export CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=:5984 export CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=admin # export CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=$1 export CORE_PEER_ID=peer0.org3.example.com # export CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=? # export CORE_PEER_NETWORKID=dev export CORE_PEER_ADDRESS=peer0.org3.example.com:7051 export CORE_PEER_LISTENADDRESS=0.0.0.0:7051 export CORE_PEER_CHAINCODEADDRESS=peer0.org3.example.com:7052 export CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052 export CORE_PEER_GOSSIP_USELEADERELECTION=true export CORE_PEER_GOSSIP_ORGLEADER=false export CORE_PEER_PROFILE_ENABLED=false export CORE_PEER_TLS_ENABLED=true export CORE_PEER_TLS_CERT_FILE=tls/server.crt export CORE_PEER_TLS_KEY_FILE=tls/server.key export CORE_PEER_TLS_ROOTCERT_FILE=tls/ca.crt export CORE_PEER_TLS_CLIENTROOTCAS_FILES=[tls/ca.crt] export CORE_PEER_LOCALMSPID=Org3MSP export CORE_PEER_GOSSIP_BOOTSTRAP=127.0.0.1:7051 export CORE_PEER_GOSSIP_ENDPOINT=peer0.org3.example.com:7051 export CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org3.example.com:7051 export CORE_OPERATIONS_LISTENADDRESS=peer0.org3.example.com:9443 #export CORE_CHAINCODE_BUILDER=fuchain/fabric-ccenv:amd64-1.4.1 #export CORE_CHAINCODE_GOLANG_RUNTIME=fuchain/fabric-baseos:amd64-0.4.15 #export CORE_VM_ENDPOINT=http://192.168.1.82:2375 ##export CORE_VM_DOCKER_ATTACHSTDOUT=true nohup ./peer node start >> peer0.org3.example.com.log 2>&1 & EOF chmod 777 ./peer0.org3.example.com/start.sh # 获取 channel 原始配置块 ./peer.sh channel fetch 0 mychannel.block -o orderer.example.com:7050 -c mychannel --tls --cafile ./tlsca.example.com-cert.pem # 获取 channel 最新配置块。可以看到加入的org3的信息 ./peer.sh channel fetch config mychannel_new_c.block -o orderer.example.com:7050 -c mychannel --tls --cafile ./tlsca.example.com-cert.pem # 这样可以加入通道 ./peer channel join -b ${MYCHNAME}.block # peer 参数 export CORE_PEER_GOSSIP_USELEADERELECTION=true export CORE_PEER_GOSSIP_ORGLEADER=false

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 23:03:01  更:2022-03-10 23:05:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:17:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码