mysql grp 添加节点_Fabric中动态添加节点(peer)

本文介绍了在Fabric 1.1版本的balance-transfer示例中如何动态添加节点。详细步骤包括:修改crypto-config.yaml文件生成节点证书,更新docker-compose配置并启动新节点,修改network-config.json,将新节点加入到通道中,以及在新节点上安装智能合约。
摘要由CSDN通过智能技术生成

前言

在实际项目中,因为项目的需求变动,一般都会对fabric网络做一个修改,最常见的变动就是在现有的Fabric网络中增加一个节点,现在以之前搭建的fabric网络(版本1.1),balance-transfer为例做个介绍,整个过程其实也很简单,生成节点证书,增加新节点的docker配置文件并启动相应的服务,然后将新节点加到现有的channel当中,并在节点上安装智能合约(Chaincode),下午详情讲一下具体的操作步骤。

1、修改crypto-config.yaml文件并生成对应的节点证书。

首先我们确认我们需要在Org2里增加节点,那么我们在crypto-config.yaml文件里找到对应Org2的配置,把Template字段里的count参数修改成2,意思就是在此组织下生成两个节点,配置文件如下

- Name: Org2

Domain: org2.xuyao.com

EnableNodeOUs: true

Template:

Count: 2

Users:

Count: 1

修改好配置文件后,我们现在使用cryptogen来生成证书,在在artifacts/channel目录下执行:

./cryptogen extend --config=./crypto-config.yaml

这样我们就为新节点生成了证书,可以到Org2相应的目录上查看,发现已经新生成了一个节点,加上之前那个,一共有两个节点。

peer0.org2.mbasechain.com peer1.org2.mbasechain.com

2、配置docker-compose文件并启动节点容器

接下来我们需要新增一个doceker-compose有配置文件,用来启动一个新节点容器,我们将新节点的配置文件全名为:Org2Peer1.yaml

version: '2'

services:

couchdb:

container_name: couchdb

image: hyperledger/fabric-couchdb:latest

ports:

- "5984:5984"

peer1.org1.xuyao.com:

container_name: peer1.org1.xuyao.com

image: hyperledger/fabric-peer:latest

environment:

- CORE_PEER_ID=peer1.org1.xuyao.com

- CORE_PEER_LOCALMSPID=Org1MSP

- CORE_PEER_ADDRESS=peer1.org1.xuyao.com:7051

- CORE_LEDGER_STATE_STATEDATABASE=CouchDB

- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984

- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock

- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=artifacts_default

- CORE_LOGGING_LEVEL=debug

- CORE_PEER_GOSSIP_USELEADERELECTION=true

- CORE_PEER_GOSSIP_ORGLEADER=false

- GODEBUG=netdns=go

# The following setting skips the gossip handshake since we are

# are not doing mutual TLS

- CORE_PEER_GOSSIP_SKIPHANDSHAKE=true

- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/crypto/peer/msp

- CORE_PEER_TLS_ENABLED=true

- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/crypto/peer/tls/server.key

- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/crypto/peer/tls/server.crt

- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/crypto/peer/tls/ca.crt

working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer

command: peer node start

ports:

- 7051:7051

- 7053:7053

volumes:

- /var/run/:/host/var/run/

- ./channel/crypto-config/peerOrganizations/org1.mbasechain.com/peers/peer0.org1.xuyao.com/:/etc/hyperledger/crypto/peer

- ../mount/peer0.org1.xuyao.com/var/hyperledger/production:/var/hyperledger/production

depends_on:

- couchdb

这个配置文件跟之前的peer节点的配置一样,只要改下相应的参数即可,接下来我们就来启动这个节点。

docker-compose -f Org2Peer1.yaml up -d

启动过程也和之前的一样。

3、修改network-config.json配置文件

启动节点后,我们需要配置network-config.json,让应用与节点之前通信,在peers那块增加一个通讯节点就可以

peer1.org2.xuyao.com:

url: grpcs://127.0.0.1:10051

eventUrl: grpcs://127.0.0.1:10053

grpcOptions:

ssl-target-name-override: peer1.org2.xuyao.com

tlsCACerts:

path: artifacts/channel/crypto-config/peerOrganizations/org4.mbasechain.com/peers/peer1.org2.xuyao.com/tls/ca.crt

修改配置后,我们启动balance-transfer,运行runApp.sh,将项目跑起来。

4、将新节点加入到所需的Channel中

接下来我们需要将新节点加到某个Channel里,首先我们通过注册接口,在Org2里拿到用户的Token,再拿此Token请求中入Channel接口

curl -s -X POST \

http://localhost:4000/channels/mychannel/peers \

-H "authorization: Bearer $ORG2_TOKEN" \

-H "content-type: application/json" \

-d '{

"peers": ["peer1.org2.xuyao.com"]

}'

5、安装Chaincode

加入channel后,peer3已经可以参与记账,但是不能指定该节点进行查询或交易,这时候需要发起请求安装chaincode:

curl -s -X POST \

http://localhost:$PORT/chaincodes \

-H "authorization: Bearer $ORG1_TOKEN" \

-H "content-type: application/json" \

-d '{

"peers": ["peer1.org2.xuyao.com"],

"chaincodeName":"mycc",

"chaincodePath":"github.com/example_cc",

"chaincodeVersion":"v0"

}'

安装成功后指定新节点进行查询或交易操作,会自动生成该节点的chaincode镜像,并启动容器运行chaincode。在已有组织中新加节点的操作到这里就全部完成了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值