多机部署需要有N个固定的IP服务器地址,把order节点和peer节点放在不同的服务器上,如图所示
1.首先,更改配置文件crypto-config.yaml
OrdererOrgs:- Name: OrdererDomain: example.com
PeerOrgs:- Name: Org1Domain: org1.example.comEnableNodeOUs: trueTemplate:Count: 5Users:Count: 1- Name: Org2Domain: org2.example.comEnableNodeOUs: trueTemplate:Count: 5Users:Count: 1

2.修改peer.yaml文件

# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#version: '2'services:couchdb:container_name: couchdbimage: hyperledger/fabric-couchdb:x86_64-0.4.6# Comment/Uncomment the port mapping if you want to hide/expose the CouchDB service,# for example map it to utilize Fauxton User Interface in dev environments.ports:- "5984:5984"peer0.org1.example.com:container_name: peer0.org1.example.comimage: hyperledger/fabric-peerenvironment:- CORE_LEDGER_STATE_STATEDATABASE=CouchDB- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=192.168.0.2:5984- CORE_PEER_ID=peer0.org1.example.com- CORE_PEER_NETWORKID=fabric- CORE_PEER_ADDRESS=peer0.org1.example.com:7051- CORE_PEER_CHAINCODEADDRESS=peer0.org1.example.com:7052- CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051- CORE_PEER_LOCALMSPID=Org1MSP- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock# the following setting starts chaincode containers on the same# bridge network as the peers# https://docs.docker.com/compose/networking/- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=fabric_default- CORE_VM_DOCKER_TLS_ENABLED=false# - CORE_LOGGING_LEVEL=ERROR- CORE_LOGGING_LEVEL=DEBUG- CORE_PEER_GOSSIP_SKIPHANDSHAKE=true- CORE_PEER_GOSSIP_USELEADERELECTION=true- CORE_PEER_GOSSIP_ORGLEADER=false- CORE_PEER_PROFILE_ENABLED=true- CORE_PEER_TLS_ENABLED=true- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crtvolumes:- /var/run/:/host/var/run/- ./chaincode/go/:/opt/gopath/src/github.com/hyperledger/fabric/chaincode/go- ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp- ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tlsworking_dir: /opt/gopath/src/github.com/hyperledger/fabric/peercommand: peer node startports:- 7051:7051- 7052:7052- 7053:7053depends_on:- couchdbextra_hosts:- "orderer.example.com:192.168.0.1"cli:container_name: cliimage: hyperledger/fabric-toolstty: trueenvironment:- GOPATH=/opt/gopath- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock# - CORE_LOGGING_LEVEL=ERROR- CORE_LOGGING_LEVEL=DEBUG- CORE_PEER_ID=cli- CORE_PEER_ADDRESS=peer0.org1.example.com:7051- CORE_PEER_LOCALMSPID=Org1MSP- CORE_PEER_LOCALMSPTYPE=bccsp- CORE_PEER_TLS_ENABLED=true- CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.crt- CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/server.key- CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt- CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/mspworking_dir: /opt/gopath/src/github.com/hyperledger/fabric/peervolumes:- /var/run/:/host/var/run/- ./chaincode/go/:/opt/gopath/src/github.com/hyperledger/fabric/chaincode/go- ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/- ./config:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifactsdepends_on:- peer0.org1.example.comextra_hosts:- "orderer.example.com:192.168.0.1"- "peer0.org1.example.com:192.168.0.2"

其他的peer节点修改peer名称和ip地址就可以了

 extra_hosts:- "orderer.example.com:192.168.0.1"- "peer0.org1.example.com:192.168.0.2"

3.重新生成配置文件
生成证书
./bin/cryptogen generate --config=./crypto-config.yaml
生成创世区块
./bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./config/genesis.block
生成通道凭证
./bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./config/mychannel.tx -channelID mychannel

4.启动order节点命令

docker-compose -f docker-compose-orderer.yaml up -d

5.启动peer节点命令,然后进入cli容器,创建Channel,生成mychannel.block文件,其他peer节点复制mychannel.block文件,启动peer节点后加入Channel即可,实现如下:

docker-compose -f docker-compose-peer.yaml up -d

启动cli容器

docker exec -it cli bash

创建Channel

ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

peer channel create -o orderer0.example.com:7050 -c mychannel -f ./channel-artifacts/mychannel.tx --tls --cafile $ORDERER_CA

Peer加入Channel

peer channel join -b mychannel.block

用docker cp命令把mychannel.block文件复制到指定文件下,然后在复制到其他服务器

exit

docker cp xxxxxxxx:/opt/gopath/src/github.com/hyperledger/fabric/peer/mychannel.block  /opt/gopath/src/github.com/hyperledger/fabric/config

6.进行智能合约部署,其他节点直接新建智能合约就可以了,不用实例化智能合约

新建智能合约voucher

peer chaincode install -n mycc  -v 1.0 -p github.com/hyperledger/fabric/chaincode/go/chaincode_example02

实例化智能合约

ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer0.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

peer chaincode instantiate -o orderer0.example.com:7050 --tls --cafile $ORDERER_CA -C mychannel -n mycc -v 1.0 -c '{"Args":["init","A","200","B","400"]}' -P "OR('Org1MSP.member','Org2MSP.member')"

查询操作

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","A"]}'

转账操作

peer chaincode invoke --tls --cafile $ORDERER_CA -C mychannel -n mycc -c '{"Args":["invoke","A","B","20"]}'

阿里云多机部署Fabric 1order节点多个peer节点相关推荐

  1. 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...

  2. 阿里云centos7.2部署tomcat10

    tomcat的介绍和工作原理及阿里云centos7.2部署tomcat10 tomcat tomcat的介绍 tomcat的工作原理 tomcat的安装及配置 tomcat安装方式介绍 二进制安装 t ...

  3. 阿里云k8s一键部署有状态StatefulSet nacos2.0.3

    阿里云k8s一键部署有状态StatefulSet nacos2.0.3 项目目录 centos 配置连接集群 kubectl 客户端执行k8s脚本 kubectl 执行结果,一键生成StatefulS ...

  4. Fabric实战(四)-多机部署fabric网络-solo

    ####多机部署fabric(solo模式) 本案例为: 一个orderer节点 两个peer节点 三台物理机: orderer:192.168.2.148peer0org1:192.168.2.10 ...

  5. 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)

    阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...

  6. 阿里云申请和部署项目

    阿里云申请和部署项目 一.申请阿里云服务器 1. 申请阿里云服务器,如果已经有淘宝.支付宝等账户,可以直接登录.不需要注册!! 2. 如果没有,可以进行注册.访问http://www.aliyun.c ...

  7. 阿里云Linux服务器部署Mysql,JDK以及Tomcat教程

    阿里云Linux服务器部署Mysql,JDK以及Tomcat教程 最近趁着阿里云服务器优惠在阿里云租用了一个轻型应用服务器,本来可以选择已经搭配好的服务器类型,但自己选择了ubantu Linux系统 ...

  8. 阿里云服务器CentOS部署Minio服务实现远程访问

    阿里云服务器CentOS部署Minio服务实现远程访问 1.下载 1.1 建立文件夹 mkdir /usr/local/minio mkdir /usr/local/minio/data 1.2下载 ...

  9. 亲测 阿里云虚拟主机部署FastAadmin

    话不多说上流程,阿里云虚拟主机部署步骤: 第一步.上传FA代码包,并解压 第二步.切换网站根目录 第三步.填写数据库配置,安装软件 使用临时域名打开程序,运行时可能报错. 之前有其他服务商配置的经验, ...

最新文章

  1. 重庆事业单位计算机职称评定,看效果 | 重庆事业单位改革 职称评定不再“终身制”...
  2. Android官方技术文档翻译——Gradle 插件用户指南(7)
  3. 英伟达宣布全面支持ARM高性能计算,三周打造全球排名第22超算
  4. Bitlocker and BitLocker To Go
  5. 前端学习(556):margin与容器的尺寸
  6. php 文章列表,ThinkPHP初学者:主页,获取一个文章列表
  7. java中socket类_Java中的Socket的用法
  8. 随想录(虚拟机实现)
  9. C#实现WebService服务 项目完整总结
  10. SQL Server 2008 R2 建立数据库,建立表,建立存储过程
  11. 3. Carla导入openDRIVE地图
  12. svn切换项目地址(外网 > 内网)
  13. mmWave AWR1x Interference Detection - A crucial step to effective mitigation
  14. android 日期控件计算星座,21. “我”模块(二)之星座选择
  15. 线代 | 矩阵的迹 向量内积如何转化为迹
  16. sqlmap挂马命令
  17. DellR740制作Raid0
  18. Unity 3D PC平台发布|| Unity 3D Web 平台发布||Unity 3D Android平台发布
  19. oracle 创建索引和视图
  20. 虚拟IP注册Nacos的问题

热门文章

  1. python画太极八卦图_太极八卦图的正确画法
  2. html6与html5的区别,XHTML和HTML5的区别
  3. vb.net 局域网传文件_没网盘咋传输文件?全平台高效传输方案一网打尽!
  4. 税控盘抄报税显示服务器为空,税控盘显示离线是什么原因造成的?怎么处理?...
  5. html中间大两边小轮播代码,vue使用swiper实现中间大两边小的轮播图效果
  6. win10 安装Pytorch GPU版+CUDA+cuDNN(篇幅较长保姆教程) (含CUDA11.1与cuDNN8.0.4安装包)
  7. 鸿蒙系统手机现在有什么,华为鸿蒙手机迟迟未来 手机操作系统面临的难点有哪些...
  8. python笛卡尔_用Python 3来模拟笛卡尔积
  9. 位运算判断奇偶数_基础拾遗:除了amp;和amp;amp;的区别,你还要知道位运算的这5个运算符...
  10. 编辑bpmn_最好用的流程编辑器bpmnjs系列之ContextPad