fabric compose文件解读(Orderer篇)

orderer在fabric中的作用是排序,另外orderer有点像是管理节点一样,通道之类的都是在orderer的基础之上建立的,有点像比特币,以太坊上面的全节点一样,不过责任比全节点少很多,甚至都不用背书和记录。

同样以一段配置代码来解释:

 1  services:
 2    peer0.Peer_fish.com:
 3      container_name: peer0.Peer_fish.com
 4      image: hyperledger/fabric-peer:2.2
 5      labels:
 6        service: hyperledger-fabric
 7      environment:
 8        - FABRIC_CFG_PATH=/etc/hyperledger/peercfg
 9        # - FABRIC_LOGGING_SPEC=INFO
10        - FABRIC_LOGGING_SPEC=DEBUG
11        - CORE_PEER_TLS_ENABLED=true
12        - CORE_PEER_PROFILE_ENABLED=false
13        - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
14        - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
15        - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
16        # Peer specific variables
17        - CORE_PEER_ID=peer0.Peer_fish.com
18        #指定该组织下其他peer的通信ip和端口
19        - CORE_PEER_ADDRESS=peer1.Peer_fish.com:7053
20        - CORE_PEER_LISTENADDRESS=0.0.0.0:7051
21        - CORE_PEER_CHAINCODEADDRESS=peer0.Peer_fish.com:7052
22        - CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052
23        - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.Peer_fish.com:7051
24 25        - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.Peer_fish.com:7052
26 27        - CORE_PEER_LOCALMSPID=Org1MSP
28        - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/fabric/msp
29        - CORE_OPERATIONS_LISTENADDRESS=peer0.Peer_fish.com:9444
30        - CORE_METRICS_PROVIDER=prometheus
31        - CHAINCODE_AS_A_SERVICE_BUILDER_CONFIG={"peername":"peer0fish"}
32        - CORE_CHAINCODE_EXECUTETIMEOUT=300s
33        - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock                                                       
34        - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=fish
35      volumes:
36          - ../org_crypto_conf/organizations/peerOrganizations/Peer_fish.com/peers/peer0.Peer_fish.com:/etc/hyperledger/fabric
37          - peer0.Peer_fish.com:/var/hyperledger/production
38          - ./peercfg:/etc/hyperledger/peercfg
39          - /var/run/docker.sock:/host/var/run/docker.sock
40      working_dir: /root
41      command: peer node start
42      ports:
43        - 7051:7051
44        - 9444:9444
45      networks:
46        - test

 

1~8行:跟CA篇一样的理解,这里不做解释

10:指定运行的模式,我这里使用了DEBUG,可以在运行时看到详细的过程,用作生产建议使用info

11-15:配置了tls通信用到的证书和认证证书,但是路径是容器里的路径(需要主义的是后面的路径映射,他把容器外的证书目录映射到容器里面了)

17:指定运行时的id

19:指定其他peer的连接域名与端口

20:表示监听仍以ip对本机7051端口的连接,这就是orderer之间连接的方式

21-25:表示连接其他orderer的方法,只要配置怎么连其他的orderer,怎么让其他的orderer连接

27:MSPID,还是orderer间认证是的姓名

28:指定身份文件,下一期详细将orderer之间的身份认证过程

29-32:目前还没想明白

33-34:orderer中的docker映射,在fabric中所有的链码都是跑在容器里面的,所以如果用容器跑节点,那么链码就是跑在容器的容器里面,这里吧外面的容器server映射到容器里面,形成一种嵌套的东西。需要主义orderer一般不会跑用户链码,orderer中跑的是系统链码。

35-39:文件映射,需要主义的是第二个 ./peercfg 这个映射,peercfg这里面放的就是peer的配置文件,前面的大部分配置都可以在这里面写。

40:字面意思

41:指在容器中运行这个命令

总结:orderer在fabric网络中扮演着重要的角色,从他的配置文件可以看到,首先要自生组成网络,其次还要联系上peer节点,实际上在它的创世快中有整个区块链网络的信息,所以所有的关于对区块链的操作都要经过orderer的同意,其中包括应用通道的配置,链码的配置。

关于创世快的配置后面也会出一期来讲一讲。

 
posted @ 2022-09-20 22:46  bighu  阅读(82)  评论(0编辑  收藏  举报