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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> fabric2.3之动态加入组织机构(addOrg3) -> 正文阅读

[系统运维]fabric2.3之动态加入组织机构(addOrg3)

一、启动测试网络

请参考Hyperledger Fabric2.3 环境搭建及Fabric 测试网络使用_xiaohanshasha的博客-CSDN博客

二、addOrg3

Adding an Org to a Channel — hyperledger-fabricdocs main documentation

1、执行./addOrg3.sh up

./addOrg3.sh up

出现下图则表示成功

2、配置领导选举

注意:在初始通道配置完成后,将组织添加到网络时,本节作为了解领导者选举设置的参考。此示例为动态领导者选举,需要所有peer在网络中共同设置。

1.选用动态选举模式

CORE_PEER_GOSSIP_USELEADERELECTION=true 

CORE_PEER_GOSSIP_ORGLEADER=false

2.选择静态领导模式,配置一个peer成为组织的领导:

CORE_PEER_GOSSIP_USELEADERELECTION=false
CORE_PEER_GOSSIP_ORGLEADER=true

3、安装,定义和调用链码

脚本会在Org1和Org2上安装Fabcar,为Org1和Org2审议了链码定义,然后提交链码定义到通道。一旦链码定义被提交到通道,链码会初始化并调用账本数据。下面的命令假设我们仍在使用通道mychannel。

链码部署后我们可以使用以下几步来作为以Org3身份调用链码。这些步骤全都在目录test-network中,不必非进入Org3CLI容器中,复制和黏贴接下来的环境变量

export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org3MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org3.example.com/users/Admin@org3.example.com/msp
export CORE_PEER_ADDRESS=localhost:11051

第一步是打包 Basic 链码:

peer lifecycle chaincode package basic.tar.gz --path ../asset-transfer-basic/chaincode-go/ --lang golang --label basic

此命令将创建一个名为 的链代码包basic.tar.gz,我们可以将其安装在 Org3 对等节点上。如果通道正在运行用 Java 或 Node.js 编写的链代码,请相应地修改命令。发出以下命令来安装链码包peer0.org3.example.com

peer lifecycle chaincode install basic.tar.gz

下一步是审议链码定义。Org3需要审议和Org1和Org2一样的链码定义并提交到通道中。为了调用链码,Org3需要包含定义标识在链码定义中。你可以通过peer查询来找链码标识?

peer lifecycle chaincode queryinstalled

您应该会看到类似于以下内容的输出:

?以后会用到package ID,所以将其放入环境变量中,注意更换成你自己的Packge?ID

export CC_PACKAGE_ID=basic_1.0:2a4f0075e234f0b69dd4fb68310e033023187fe1c4b4619c25d8d5730c13616c

Org3审议链码定义

peer lifecycle chaincode approveformyorg -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" --channelID mychannel --name basic --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1

peer lifecycle chaincode approveformyorg -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" --channelID mychannel --name basic --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1
2022-03-11 19:47:56.801 PST [chaincodeCmd] ClientWait -> INFO 001 txid [4abb1d6a02c40703b27ff001c5adf82374db8ddee9c1cf2ed7d9eef1433f5779] committed with status (VALID) at localhost:11051
root@ubuntu:/home/hanlw/go/src/hyperleger/fabric-2.3.0/scripts/fabric-samples/test-network# peer lifecycle chaincode queryinstalled
Installed chaincodes on peer:
Package ID: basic_1.0:2a4f0075e234f0b69dd4fb68310e033023187fe1c4b4619c25d8d5730c13616c, Label: basic_1.0

?使用peer?lifecycle?chaincode?querycommitted命令查询审议过的链码定义是否以被提交到通道。

peer lifecycle chaincode querycommitted --channelID mychannel --name basic --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem"

peer lifecycle chaincode querycommitted --channelID mychannel --name basic --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem"
Committed chaincode definition for chaincode 'basic' on channel 'mychannel':
Version: 1.0, Sequence: 1, Endorsement Plugin: escc, Validation Plugin: vscc, Approvals: [Org1MSP: true, Org2MSP: true, Org3MSP: true]

Org3可以使用自己已经审议且链码定义早已提交到通道的链码,链码定义使用默认的背书策略,需要大多数组织认可一项交易。这意味着,如果将组织添加到通道或从通道中删除,则会自动更新背书策略。之前需要Org1和Org2背书(2/2),现在需要三个组织中的两个(2/3).

查询账本确保链码已经在Org3节点运行。注意我们此时需要链码容器启动

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":[]}'
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:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" --peerAddresses localhost:11051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/tls/ca.crt" -c '{"function":"InitPeople","Args":[]}'
2022-03-11 19:50:22.905 PST [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Chaincode invoke successful. result: status:200?

peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllPeoples"]}'
[{"ID":"1","name":"韩帅","Sex":"男","age":29},{"ID":"2","name":"田色","Sex":"男","age":90},{"ID":"3","name":"曾博士","Sex":"女","age":23},{"ID":"4","name":"李世民","Sex":"男","age":23},{"ID":"5","name":"李世民s","Sex":"男","age":23},{"ID":"6","name":"李ddd世民s","Sex":"男","age":23},{"ID":"7","name":"wwd世民s","Sex":"男","age":23}]
?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 22:13:16  更:2022-03-13 22:16:25 
 
开发: 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 2:25:48-

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