华为云区块链的跨云联通能力构建(一)

  原文标题:华为云区块链的跨云联通能力构建(一)

  区块链本质上是一种团队活动,成功源自相互的开放与协作。真实业务驱动的区块链需要多方服务提供商的参与,而且客户拥有对区块链网络的最终选择权。华为不断探索多云区块链网络的互连和互操作,与合作伙伴共同提供区块链云化解决方案和服务。­­­­

  一. 背景

  为了验证华为云BCS区块链服务云上云下融合部署能力、支持跨云部署能力,以及华为云BCS服务与社区原生Fabric网络的融合部署能力,我们做了如下的部署验证,证明了方案的可行性,完成了部署并实测了invoke交易,过程中顺便验证了下Fabric1.2版本新增的discovery功能,以及已部署好的peer节点进行goleverdb数据库切换couchdb数据库操作。故有本文,欢迎各位华为云BCS服务使用者和关注者,以及Fabric爱好者参与交流。

  跨云部署

  discovery服务

  goleverdb数据库切换couchdb

  云上云下融合部署(华为云BCS服务与社区原生Fabric网络的融合部署)

  二. 跨云部署

  1、背景与步骤

  A云上已经创建好fabric服务,并且已创建好组织org1.huawei及通道silk-road-chain 按照以下步骤,验证Fabric的从A云到华为云的打通部署

  •用A云上Fabric已生成的证书,开源1.2镜像,模拟新peer0加入通道silk-road-chain

  •加入通道后,实例化链码并进行invoke操作

  •更新anchor peer及discovery

  •用新生成的证书,华为1.1镜像,模拟新peer1加入通道silk-road-chain

  2、用A云上Fabric已生成的证书,开源1.2镜像,模拟新peer0加入通道silk-road-chain

  由于A云上已经创建好了组织及通道,只需要直接验证加入通道即可

  • 在华为云上订购一个ECS,并安装docker,然后下载官方1.2peer和cli镜像

  docker pull hyperledger/fabric-peer:1.2.0

  docker pull hyperledger/fabric-tools:1.2.0

  • 修改华为云安全组 由于peer将会运行在7051端口,在ECS对应的安全组里增加7051配置

  • 准备core.yaml配置文件 注意由于镜像是1.2版本,故需要用1.2版本的core.yaml来修改,否则会有问题 开源的core.yaml,修改

  peer.id jdoe --> peer0.org1.huawei.backbonetestnet.baas.dev.icn.engineering

  peer.chaincodeListenAddress # chaincodeListenAddress: 0.0.0.0:7052 --> chaincodeListenAddress: 0.0.0.0:7052

  peer.address 0.0.0.0:7051 --> peer0.org1.huawei.backbonetestnet.baas.dev.icn.engineering:7051

  peer.gossip.bootstrap 127.0.0.1:7051 --> 0.0.0.0:7051

  peer.tls.enabled false --> true

  peer.tls.clientAuthRequired false --> yes

  peer.tls.cert file: tls/server.crt --> file: msp/tls/server.crt

  peer.tls.key file: tls/server.key --> file: msp/tls/server.key

  peer.tls.rootcert file: tls/ca.crt --> file: msp/tls/ca.crt

  peer.tls.clientRootCAs file: - tls/ca.crt --> file: - msp/tls/ca.crt - /home/tlsca.icn.backbonetestnet.baas.dev.icn.engineering-cert.pem

  peer.tls.clientKey file: "" --> file: msp/tls/server.key

  peer.tls.clientCert file: "" --> file: msp/tls/server.crt

  peer.localMspId SampleOrg --> huaweiMSP

  •准备证书

  A云侧已提供的证书见附件crypto-config.zip文件 core.yaml中peer.tls.clientRootCAs配置项需要的证书,order的tls证书/home/tlsca.icn.backbonetestnet.baas.dev.icn.engineering-cert.pem来自crypto-config.zip中ordererOrganizations/icn.backbonetestnet.baas.dev.icn.engineering/tlsca/目录,peer的tls证书msp/tls/ca.crt来自crypto-config.zip中peerOrganizations/org1.huawei.backbonetestnet.baas.dev.icn.engineering/peers/peer0.org1.huawei.backbonetestnet.baas.dev.icn.engineering/tls/ peer节点和cli节点的/home/msp证书需要使用组织的Admin证书,来自crypto-config.zip中peerOrganizations/org1.huawei.backbonetestnet.baas.dev.icn.engineering/users/Admin@org1.huawei.backbonetestnet.baas.dev.icn.engineering/msp路径 peer节点和cli节点的/home/msp/tls证书都需要使用组织节点的tls证书,来自crypto-config.zip中peerOrganizations/org1.huawei.backbonetestnet.baas.dev.icn.engineering/peers/peer0.org1.huawei.backbonetestnet.baas.dev.icn.engineering/tls

  •启动peer容器

  docker run -p 7051:7051 -p 7052:7052 -p 7053:7053 -v /var/run:/host/var/run -e CORE_VM_ENDPOINT="unix:///host/var/run/docker.sock" -e CORE_PEER_ADDRESS="0.0.0.0:7052" -e CORE_PEER_GOSSIP_ORGLEADER=false -e CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.huawei.backbonetestnet.baas.dev.icn.engineering:7051 -e CORE_PEER_GOSSIP_USELEADERELECTION=true -e CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.huawei.backbonetestnet.baas.dev.icn.engineering:7051 -it docker.io/hyperledger/fabric-peer:1.2.0 bash

  配置CORE_VM_ENDPOINT给链码实例化时使用,必须加CORE_PEER_ADDRESS且必须为IP,给链码容器用,否则链码容器没有域名连不上peer GOSSIP相关的四个环境变量是给后面discovery使用的,不配置的话discovery会不正常

标签:区块链 华为云 跨云联通
N本文来源:财经365自媒体综合