升级原理。就是将fabric的zk,kafka,orderer,peer(我只用的这4个)升级到最新版本;且这几个容器的关键生产数据使用volume簇放置在外面。可以参考《区块链原理、设计与应用》里面配置相关内容。
以下为各容器的关键数据位置:
以下为关键的数据业务(那个时间最好也在外面)
zk:
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
- /opt/fabric_data/fabric_node_01/zk/data:/data
kafka:
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
- /opt/fabric_data/fabric_node_01/kafka/data:/tmp/kafka-logs/
orderer:
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
- /opt/nfs/convoy_fabric/ebaoquan.org/channel-artifacts/genesis.block:/var/hyperledger/orderer/orderer.genesis.block
- /opt/nfs/convoy_fabric/ebaoquan.org/crypto-config/ordererOrganizations/ebaoquan.org/orderers/orderer0.ebaoquan.org/msp:/var/hyperledger/orderer/msp
- /opt/nfs/convoy_fabric/ebaoquan.org/crypto-config/ordererOrganizations/ebaoquan.org/orderers/orderer0.ebaoquan.org/tls/:/var/hyperledger/orderer/tls
- /opt/fabric_data/fabric_node_02/orderer/data/:/var/hyperledger/production/
peer:
volumes:
- /var/run/:/host/var/run/
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
- /opt/nfs/convoy_fabric/ebaoquan.org/crypto-config/peerOrganizations/ebaoquan.org/peers/peer0.ebaoquan.org/msp:/etc/hyperledger/fabric/msp
- /opt/nfs/convoy_fabric/ebaoquan.org/crypto-config/peerOrganizations/ebaoquan.org/peers/peer0.ebaoquan.org/tls:/etc/hyperledger/fabric/tls
- /opt/fabric_data/fabric_node_01/peer/data/:/var/hyperledger/production/
以下是升级:
首先下载镜像到本地:
docker pull hyperledger/fabric-orderer:x86_64-1.1.0-preview
docker pull hyperledger/fabric-peer:x86_64-1.1.0-preview
docker pull hyperledger/fabric-kafka:x86_64-1.1.0-preview
docker pull hyperledger/fabric-zookeeper:x86_64-1.1.0-preview
docker pull hyperledger/fabric-ccenv:x86_64-1.1.0-preview //这个是生成合约执行容器的,要版本对应
然后停服务
删除所有应用,再创建所有应用,然后执行一个测试合约(就是为了生成那个执行合约的容器)。生成好合约执行的容器后,升级完成。
注意点:
1、所有关键数据一定要在volume上
2、停服务,因为换版本后那个合约执行的容器就不能用了,升级后的第一次执行合约又要创建(原来的执行容器要删除掉)