请选择 进入手机版 | 继续访问电脑版
开启辅助访问
链路首页链路财经目前收录 币种 : 4908 交易所 : 310钱包 : 17 24H 交易量 : $6,867,684,359 总市值 : $120,066,425,541
2018
08/26
10:10
分享
评论
  • 黎跃春

    孔壹学院、ChainDesk创始人兼CEO

            从零到壹学习超级账本理论加实战为一个系列,一共23讲,包括超级账本简介、搭建环境、启动网络、测试链码、区块链应用开发等。今天我们将为大家介绍从零到壹学习超级账本理论加实战第四讲:启动网络(手动)。话不多说,马上开启我们的超级账本理论加实战学习之旅。

    孔壹学院
    启动网络(手动)

    启动网络手动实现

    实现步骤

    生成组织关系和身份证书

    确定是在 fabric-samples/first-network 路径下

    $ cd hyfa/fabric-samples/first-network/为fabric

    网络生成指定拓扑结构的组织关系和身份证书

    $ sudo ../bin/cryptogen generate --config=./crypto-config.yaml 

    此命令依赖 crypto-config.yaml 配置文件 

    会有如下输出:

    org1.example.com

    org2.example.com

    证书和密钥(即MSP材料)将被输出到目录 first-network/crypto-config 的目录中

    ordererOrganizations子目录下包括构成Orderer组织(1个Orderer节点)的身份信息

    peerOrganizations子目录下为所有的Peer节点组织(2个组织, 4个节点)的相关身份信息. 其中最关键的是MSP目录, 代表了实体的身份信息

    crypto-config文件目录结构如下

    Cryptogen 按照配置文件中指定的结构生成了对应的组织和密钥、证书文件

    其中最关键的是各个资源下的msp 目录内容,存储了生成的代表MSP 身份的各种证书文件,一般包括:

    admincerts :管理员的身份证书文件 

    cacerts :信任的根证书文件 

    key store :节点的签名私钥文件 

    signcerts :节点的签名身份证书文件 

    tlscacerts: TLS 连接用的证书 

    intermediatecerts (可选):信任的中间证书 

    crls (可选):证书撤销列表 

    config.yaml (可选):记录OrganizationalUnitldentifiers 信息,包括根证书位置和ID信息 

    这些身份文件随后可以分发到对应的Orderer 节点和Peer 节点上,并放到对应的MSP路径下,用于签名使用

    配置环境变量

    告诉configtxgen工具在哪里寻找configtx.yaml 文件

    $ export FABRIC_CFG_PATH=$PWD 

    创建Ordering服务启动初始区块

    指定使用 configtx.yaml 文件中定义的 TwoOrgsOrdererGenesis 模板, 生成Ordering服务系统通道的初始区块文件

    $ sudo ../bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block命令执行后输出如下:

    创建一个应用通道的配置交易

    务必替换$CHANNEL_NAME或设置CHANNEL_NAME为可在整个说明中使用的环境变量

    $ export CHANNEL_NAME=mychannel 

    指定使用 configtx.yaml 配置文件中的 TwoOrgsChannel 模板, 来生成新建通道的配置交易文件, TwoOrgsChannel 

    模板指定了Org1和Org2都属于后面新建的应用通道

    $ sudo ../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME 

    输出如下

    生成锚节点配置更新文件

    锚节点配置更新文件用来对组织的锚节点进行配置

    同样基于 configtx.yaml 配置文件生成新建通道文件, 每个组织都需要分别生成且注意指定对应的组织名称

    $ sudo ../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP

    $ sudo ../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP启动网络

    $ sudo docker-compose -f docker-compose-cli.yaml up -d

    -f: 指定docker-compose文件

    注:

    如果想查看网络的实时日志,则不需要提供 -d 参数

    CLI容器将闲置1000秒。如果在需要时它消失了,可以用一个简单的命令重新启动它:

    $ sudo docker start cli 

    网络启动顺序: 首先启动Orderer节点, 然后启动Peer节点, 日志输出如下:

    Peer节点启动后, 默认情况下没有加入网络中的任何应用通道, 也不会与Orderer服务建立连接.需要通过客户端对其进行操作, 让它加入网络和指定的应用通道中

    进入Docker容器

    执行如下命令进入到CLI容器中(后继操作都在容器中执行)

    $ sudo docker exec -it cli bash 

    如果成功, 命令提示符会变为如下内容:

    root@b240e1643244:/opt/gopath/src/github.com/hyperledger/fabric/peer#

    创建通道

    检查环境变量是否正确设置

    echo $CHANNEL_NAME 

    设置环境变量

    export CHANNEL_NAME=mychannel 

    创建通道

    该命令自动在本地生成与该应用通道同名的初始区块 mychannel.block, 只有拥有该文件才可以加入创建的应用通道中 

    参数说明:

    -o: 指定orderer节点的地址

    -c: 指定要创建的应用通道的名称(必须与在创建应用通道交易配置文件时的通道名称一致)

    -f: 指定创建应用通道时所使用的应用通道交易配置文件

    --tls: 开启TLS验证

    --cafile: 指定TLS_CA证书路径

    查看:

    加入通道

    应用通道所包含组织的成员节点可以加入通道中

    peer channel join -b mychannel.blockjoin

    命令: 将本Peer节点加入到应用通道中

    参数说明:

    -b: 指定当前节点要加入/联接至应用通道

    更新锚点

    使用Org1的管理员身份更新锚节点配置


主题帖 145 关注 0 粉丝 1
情感指数

链路大数据分析置信度 87.13 %

TA的主题帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表