Hyperledger fabric Hyperledger结构:如何向现有Hyperledger Composer单组织结构网络添加新组织和对等组织?
我不熟悉Hyperledger结构 我能够使用一个教程来:Hyperledger fabric Hyperledger结构:如何向现有Hyperledger Composer单组织结构网络添加新组织和对等组织?,hyperledger-fabric,Hyperledger Fabric,我不熟悉Hyperledger结构 我能够使用一个教程来: 安装前提条件和hyperledger composer开发工具 创建结构网络 安装/部署业务网络 创建一个有角度的前端 但是,创建的结构网络只有一个组织和一个对等网络。对于我的POC,我需要三个组织,每个组织有一个对等组织 如何在现有结构网络中添加其他组织和对等方?步骤 A)安装先决条件 (Run in dir - dev5@ubuntu:~$) 1) 您可以从更新和升级包管理器开始 2.安装旋涡 sudo apt-get insta
(Run in dir - dev5@ubuntu:~$)
1) 您可以从更新和升级包管理器开始
2.安装旋涡
sudo apt-get install curl
3检查卷曲版本
curl --version
4安装Go语言
$ cd $HOME/
wget https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz
$ tar -xvf go1.8.1.linux-amd64.tar.gz
$ mkdir $HOME/gopath
$ export GOPATH=$HOME/gopath
$ export GOROOT=$HOME/go
$ export PATH=$PATH:$GOROOT/bin
$ go version
5使用以下命令下载必备文件\
curl -O https://hyperledger.github.io/composer/latest/prereqs-ubuntu.sh
6安装libltdl-dev
apt-get install libltdl-dev
7打开preres-ubuntu.sh文件以供参考。从文件中获取以下命令。检查它们是否匹配。如果没有,则使用文件中的一个
8此命令位于字符串“支持的版本数组”处。运行它
9更新将来使用的代码名变量
if [ -z "$1" ]; then
source /etc/lsb-release || \
(echo "Error: Release information not found, run script passing Ubuntu version codename as a parameter"; exit 1)
CODENAME=${DISTRIB_CODENAME}
else
CODENAME=${1}
fi
10检查是否支持该版本
if echo ${versions[@]} | grep -q -w ${CODENAME}; then
echo "Installing Hyperledger Composer prereqs for Ubuntu ${CODENAME}"
else
echo "Error: Ubuntu ${CODENAME} is not supported"
exit 1
fi
11更新包管理器
sudo apt-get update
12安装Git
sudo apt-get install -y git
13安装nvm依赖项
sudo apt-get -y install build-essential libssl-dev
14执行nvm安装脚本
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
15在不重新启动外壳的情况下设置nvm环境
export NVM_DIR="${HOME}/.nvm"
[ -s "${NVM_DIR}/nvm.sh" ] && . "${NVM_DIR}/nvm.sh"
[ -s "${NVM_DIR}/bash_completion" ] && . "${NVM_DIR}/bash_completion"
16安装节点
nvm install --lts
17配置nvm以使用版本6.9.5
nvm use --lts
nvm alias default 'lts/*'
18安装最新版本的npm
npm install npm@latest -g
19将Docker存储库密钥添加到APT密钥链
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
20 APT将搜索Docker软件包的更新
echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu
${CODENAME} stable" | \
sudo tee /etc/apt/sources.list.d/docker.list
21更新包裹清单
sudo apt-get update
22验证APT是否从正确的存储库中提取
sudo apt-cache policy docker-ce
23安装Docker
sudo apt-get -y install docker-ce
24安装docker compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.13.0/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
25如果需要,安装python v2
set +e
COUNT="$(python -V 2>&1 | grep -c 2.)"
if [ ${COUNT} -ne 1 ]
then
sudo apt-get install -y python-minimal
fi
26安装解压,需要安装hyperledger结构
sudo apt-get -y install unzip
27需要升级docker compose,因为>=1.18
sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker- compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
28从github克隆结构样本
git clone https://github.com/mahoney1/fabric-samples.git
B安装hyperledger composer开发工具(磨合方向-dev5@ubuntu:~$) 1安装CLI工具-
composer-cli npm install -g composer-cli
composer-rest-server npm install -g composer-rest-server
generator-hyperledger-composer npm install -g generator-hyperledger-composer
Yeoman npm install -g yo
2设置您的IDE
https://code.visualstudio.com/download
Open VSCode, go to Extensions, then search for and install the Hyperledger Composer extension from the Marketplace.
C运行结构网络
(Run in dir - dev5@ubuntu:~$ fabric-samples)
1将目录更改为fabric samples
cd fabric-samples
2使用此命令下载平台二进制文件,包括cryptogen(bash命令需要三个参数):
3要使用当前结构级别,请运行以下命令
git checkout multi-org
4检查下载的二进制文件。将目录更改为bin
cd bin
ls
5更改为第一个网络目录
cd ../
cd first-network
ls
6为您的第一个网络生成所需的证书和文章
./byfn.sh -m generate
7开始织物
sudo ./byfn.sh -m up -s couchdb -a
On error - "Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?"
检查docker是否处于活动状态
sudo systemctl is-active docker
如果未激活,则sudo docker图像 sudo usermod-aG docker$(whoami) sudo usermod-a-G docker$USER sudo docker--版本 要启动docker,请运行
sudo service docker restart
8重新开始织物
$ sudo ./byfn.sh -m up -s couchdb -a
9如果网络仍然无法启动,则重新启动通道
sudo ./byfn.sh -m restart -c mychannel
D运行结构网络
*Organization Org1 is represented by Alice
Organization Org2 is represented by Bob*
1创建一个临时工作目录(和子目录),以管理Composer连接配置文件和密钥/证书文件
mkdir -p /tmp/composer/org1
mkdir -p /tmp/composer/org2
2创建一个基本连接配置文件,用于描述可提供给爱丽丝和鲍勃
转到/tmp/composer
cd /
cd tmp
cd composer
Open editor and copy paste the contents of byfn-network.json sheet in the editor and save it as byfn-network.json
nano
3打开byfn-network.json并用ORG1对等节点的CA证书替换文本INSERT_ORG1_CA_CERT的所有实例
composer card import -f PeerAdmin@byfn-network-org1.card --card PeerAdmin@byfn-network-org1
[磨合方向-dev5@ubuntu:~$fabric示例/第一个网络]
3.1运行命令并从生成的.pem文件中获取证书,以便将其嵌入上述连接配置文件中
3.11转到第一个网络文件夹光盘/ cd home/dev5 cd结构示例/第一网络 3.12执行命令生成/tmp/composer/org1/ca-org1.txt
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt > /tmp/composer/org1/ca-org1.txt
3.13开放式ca-org1
3.14复制文件/tmp/composer/org1/ca-org1.txt的内容,并替换.json文件中的文本INSERT_org1_ca_CERT
4在同一.json文件中-您需要将文本INSERT_ORG2_CA_CERT的所有实例替换为ORG2对等节点的CA证书
composer card create -p /tmp/composer/org2/byfn-network-org2.json -u PeerAdmin -c /tmp/composer/org2/Admin@org2.example.com-cert.pem -k /tmp/composer/org2/*_sk -r PeerAdmin -r ChannelAdmin -f PeerAdmin@byfn-network-org2.card
4.1运行命令并从生成的.pem文件中获取证书,以便将其嵌入上述连接配置文件中
4.11执行命令生成/tmp/composer/org1/ca-org2.txt
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt > /tmp/composer/org2/ca-org2.txt
4.12开放式ca-org2
4.13复制文件/tmp/composer/org1/ca-org2.txt的内容并替换文本
INSERT_ORG2_CA_CERT in the .json file
INSERT_ORDERER_CA_CERT with the CA certificate for the orderer node
5替换文本的所有实例
INSERT_ORG2_CA_CERT in the .json file
INSERT_ORDERER_CA_CERT with the CA certificate for the orderer node
5.1运行命令并从生成的.pem文件中获取证书,以便将其嵌入上述连接配置文件中
5.11执行命令生成/tmp/composer/org1/ca-order.txt
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt > /tmp/composer/ca-orderer.txt
5.12打开ca-order.txt
5.13复制文件/tmp/composer/org1/ca-order.txt的内容,并替换.json文件中的文本INSERT_order_ca_CERT
6将此文件另存为/tmp/composer/byfn network.json此连接配置文件现在描述了结构网络设置、网络中的所有对等方、订购方和证书颁发机构,它定义了参与网络的所有组织,还定义了此网络上的通道。{{site.data.conrefs.composer_full}}只能与单个通道交互,因此只能定义一个通道 7自定义Org1的连接配置文件
In the connection profile /tmp/composer/byfn-network.json between the version property and just before the channel property, add this block that specifies the organization that alice belongs to, in a client section with optional timeouts. Save the connection profile file as a NEW file called byfn-network-org1.json in /tmp/composer/org1/
"client": {
"organization": "Org1",
"connection": {
"timeout": {
"peer": {
"endorser": "300",
"eventHub": "300",
"eventReg": "300"
},
"orderer": "300"
}
}
},
composer network install --card PeerAdmin@byfn-network-org1 --archiveFile trade-network.bna
8自定义Org2的连接配置文件在version属性和channel属性之间的connection profile/tmp/composer/byfn-network.json中,在具有
composer card create -p /tmp/composer/org1/byfn-network-org1.json -u PeerAdmin -c /tmp/composer/org1/Admin@org1.example.com-cert.pem -k /tmp/composer/org1/*_sk -r PeerAdmin -r ChannelAdmin -f PeerAdmin@byfn-network-org1.card
composer card create -p /tmp/composer/org2/byfn-network-org2.json -u PeerAdmin -c /tmp/composer/org2/Admin@org2.example.com-cert.pem -k /tmp/composer/org2/*_sk -r PeerAdmin -r ChannelAdmin -f PeerAdmin@byfn-network-org2.card
composer card import -f PeerAdmin@byfn-network-org1.card --card PeerAdmin@byfn-network-org1
composer card import -f PeerAdmin@byfn-network-org2.card --card PeerAdmin@byfn-network-org2
composer network install --card PeerAdmin@byfn-network-org1 --archiveFile trade-network.bna
composer network install --card PeerAdmin@byfn-network-org2 --archiveFile fta-fab-net.bna
The endorsement policy you have just created states that both Org1 and Org2 must endorse transactions in the business network before they can be committed to the blockchain. If Org1 or Org2 do not endorse transactions, or disagree on the result of a transaction, then the transaction will be rejected by the business network.
composer identity request -c PeerAdmin@byfn-network-org1 -u admin -s adminpw -d alice
composer identity request -c PeerAdmin@byfn-network-org2 -u admin -s adminpw -d bob
composer network start -c PeerAdmin@byfn-network-org1 -n fta-fab-net -V 0.1.14 -o endorsementPolicyFile=/tmp/composer/endorsement-policy.json -A alice -C alice/admin-pub.pem -A bob -C bob/admin-pub.pem
composer card create -p /tmp/composer/org1/byfn-network-org1.json -u alice -n fta-fab-net -c alice/admin-pub.pem -k alice/admin-priv.pem
composer card import -f alice@fta-fab-net.card
composer network ping -c alice@fta-fab-net
composer card create -p /tmp/composer/org2/byfn-network-org2.json -u bob -n fta-fab-net -c bob/admin-pub.pem -k bob/admin-priv.pem
composer card import -f bob@fta-fab-net.card
composer network ping -c bob@fta-fab-net
http://localhost:3000/explorer