本文主要内容如下,爱看不看~
前面我们已经把必要的材料生成好了,可以启动网络节点了。
启动orderer节点
准备材料
按之前的规划,准备linux服务三台:
内网IP 内网端口 访问域名 外网端口 172.31.10.10 7050 order0.mid.org 7050 172.31.10.11 7050 order1.mid.org 7051 172.31.10.12 7050 order2.mid.org 7052 将msp和创世块文件拷贝到对应的服务器上:
❝
「创世块」
❞
源文件:system-genesis-block/genesis.block
目标文件:/var/hyperledger/orderer/orderer.genesis.block
注意:该文件三台服务器都需要拷贝。❝
「msp文件」
❞
源文件:
organizations/ordererOrganizations/mid.org/orderers/orderN.mid.org/msp
目标文件:/var/hyperledger/orderer/msp
注意:每个节点的源文件不同❝
「tls文件」
❞
源文件:
organizations/ordererOrganizations/mid.org/orderers/orderN.mid.org/tls
目标文件:/var/hyperledger/orderer/tls
注意:每个节点的源文件不同orderer可执行程序文件:
参考《操作指南》
配置环境
启动orderer程序需要配置信息。
配置信息有三种来源,读取顺序为:
- orderer.yaml (当前目录或FABRIC_CFG_PATH指定目录)
- 环境变量
- 命令行参数(目前不支持)
我们采用环境变量的方式来配置:
FABRIC_LOGGING_SPEC=INFO
# 输出日志级别
ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
# 服务监听地址
ORDERER_GENERAL_LISTENPORT=7050
# 服务监听端口
ORDERER_GENERAL_BOOTSTRAPMETHOD=file
# 启动方法
ORDERER_GENERAL_BOOTSTRAPFILE=/var/hyperledger/orderer/orderer.genesis.block
# 启动方法为file时指定创世块文件路径
ORDERER_GENERAL_LOCALMSPID=MidMSP
# 节点所属组织的MSP唯一标识,需与系统通道配置中的保持一致
ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
# msp文件所在目录
ORDERER_GENERAL_TLS_ENABLED=true
# 启用TLS通讯
ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
# TLS私钥文件
ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
# TLS服务端证书文件
ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
# 信任的TLS CA根证书,校验客户端证书用
ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/var/hyperledger/orderer/tls/server.crt
# 客户端证书文件,访问其他orderer节点时需要TLS双向认证。
ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/var/hyperledger/orderer/tls/server.key
# 客户端私钥文件
ORDERER_GENERAL_CLUSTER_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
# 集群可信的TLS CA根证书,可省略不配
❝「NOTE」
❞
环境变量的方式来配置程序,适合容器环境。
如果你是运行在物理机或虚拟机环境,建议采用配置文件或脚本启动。
启动程序
去服务器上执行如下命令:
orderer
然后,观察输出日志信息是否有报错。
到此,Fabric网络就正式诞生啦!
启动peer节点
网络已启动,但还没有参与者加入呢。
❝- 别急,联盟成员们,先把你们自己的peer节点启动起来先!
- 好~!
❞
骚瑞,我又犯2了~
Peer节点的类型
操作peer前,还有几个概念要弄清楚。
peer按功能分为4种类型:
- 提交节点(Commiter)
- 背书节点(Endorser)
- 主节点(Leader)
- 锚节点(Anchor)
!!!WTF,怎么这么多破概念???
Fabric就是这样,它将每一个功能都模块化,而且拆得还很细,这必然要引入一些新词来解释它。
这几个概念也不难理解。 但首先要知道,在组织内和组织间,peer节点相互交换数据是通过goosip协议实现的。
那什么是goosip呢?
我是2流程序员,我们下次再贱!
本文使用 mdnice 排版