创建自己的区块链网络 三

前言

上次我们修改了peer-base.yaml文件,接下来我们还需要修改configx.yaml文件。这个配置文件是用来创建创世区块以及通道的配置文件。

系列文章直通车

名称链接
创建自己的区块链网络 一点击此处
创建自己的区块链网络 二点击此处
创建自己的区块链网络 三点击此处
创建自己的区块链网络 四点击此处
创建自己的区块链网络 五点击此处

修改configtx.yaml文件

明确文件信息

我们首先需要知道他文件内容的作用才能去修改它,那么文件信息如下:

  1. Organizations部分指定OrdererOrg与PeerOrg的组织信息,其核心目的是指定各组织的名称、唯一ID及MSP的目录所在路径。
  2. Capabilities部分指定通道的权限信息。
  3. Application部分指定初始加入通道的组织。
  4. Orderer部分指定Orderer节点的信息。
    1. OrdererType指定共识排序服务的实现方式,目前有两种选择(solo及Kafka)。
    2. Addresses指定Orderer节点的服务地址与端口号。
    3. BatchSize指定与消息相关的批处理大小,如最大交易数量、最大字节数及建议字节数。
  5. Profiles部分指定了两个模板:TwoOrgsOrdererGenesis与TwoOrgsChannel。
    1. TwoOrgsOrdererGenesis模板用来生成Orderer服务的初始区块文件,该模板由3部分组成。
      1. Capabilities:指定通道的权限信息。
      2. Orderer:指定Orderer服务的信息(OrdererOrg)及权限信息。
      3. Consortiums:定义联盟组成成员(Org1、Org2)。
    2. TwoOrgsChannel模板用来生成应用通道交易配置文件,由两部分组成。
      1. Consortium:指定联盟信息。
      2. Application:指定组织及权限信息。

来源1

那么到这里我们已经明确了此配置文件的作用,还有文件内容的详细信息,那么我们现在就可以取修改还文件了。

修改文件

1、删除不必要内容

那么我们先来看看官方文件。


---

Organizations:
    - &OrdererOrg
        Name: OrdererOrg
        ID: OrdererMSP
        MSPDir: crypto-config/ordererOrganizations/example.com/msp
        Policies:
            Readers:
                Type: Signature
                Rule: "OR('OrdererMSP.member')"
            Writers:
                Type: Signature
                Rule: "OR('OrdererMSP.member')"
            Admins:
                Type: Signature
                Rule: "OR('OrdererMSP.admin')"
    - &Org1
        Name: Org1MSP
        ID: Org1MSP
        MSPDir: crypto-config/peerOrganizations/org1.example.com/msp
        Policies:
            Readers:
                Type: Signature
                Rule: "OR('Org1MSP.admin', 'Org1MSP.peer', 'Org1MSP.client')"
            Writers:
                Type: Signature
                Rule: "OR('Org1MSP.admin', 'Org1MSP.client')"
            Admins:
                Type: Signature
                Rule: "OR('Org1MSP.admin')"
        AnchorPeers:
            - Host: peer0.org1.example.com
              Port: 7051
    - &Org2
        Name: Org2MSP
        ID: Org2MSP
        MSPDir: crypto-config/peerOrganizations/org2.example.com/msp
        Policies:
            Readers:
                Type: Signature
                Rule: "OR('Org2MSP.admin', 'Org2MSP.peer', 'Org2MSP.client')"
            Writers:
                Type: Signature
                Rule: "OR('Org2MSP.admin', 'Org2MSP.client')"
            Admins:
                Type: Signature
                Rule: "OR('Org2MSP.admin')"
        AnchorPeers:
            - Host: peer0.org2.example.com
              Port: 9051
Capabilities:
    Channel: &ChannelCapabilities
        V1_4_3: true
        V1_3: false
        V1_1: false

   
    Orderer: &OrdererCapabilities
        V1_4_2: true
        V1_1: false

    Application: &ApplicationCapabilities
        V1_4_2: true
        V1_3: false
        V1_2: false
        V1_1: false
Application: &ApplicationDefaults
    Organizations:
    Policies:
        Readers:
            Type: ImplicitMeta
            Rule: "ANY Readers"
        Writers:
            Type: ImplicitMeta
            Rule: "ANY Writers"
        Admins:
            Type: ImplicitMeta
            Rule: "MAJORITY Admins"

    Capabilities:
        <<: *ApplicationCapabilities
Orderer: &OrdererDefaults
    OrdererType: solo

    Addresses:
        - orderer.example.com:7050
    BatchTimeout: 2s
    BatchSize:
        MaxMessageCount: 10
        AbsoluteMaxBytes: 99 MB
        PreferredMaxBytes: 512 KB

    Kafka:
        Brokers:
            - 127.0.0.1:9092
    EtcdRaft:
        Consenters:
            - Host: orderer.example.com
              Port: 7050
              ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
              ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
            - Host: orderer2.example.com
              Port: 7050
              ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt
              ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt
            - Host: orderer3.example.com
              Port: 7050
              ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt
              ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt
            - Host: orderer4.example.com
              Port: 7050
              ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt
              ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt
            - Host: orderer5.example.com
              Port: 7050
              ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer5.example.com/tls/server.crt
              ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer5.example.com/tls/server.crt
    Organizations:
    Policies:
        Readers:
            Type: ImplicitMeta
            Rule: "ANY Readers"
        Writers:
            Type: ImplicitMeta
            Rule: "ANY Writers"
        Admins:
            Type: ImplicitMeta
            Rule: "MAJORITY Admins"
        BlockValidation:
            Type: ImplicitMeta
            Rule: "ANY Writers"
Channel: &ChannelDefaults
    Policies:
        Readers:
            Type: ImplicitMeta
            Rule: "ANY Readers"
        Writers:
            Type: ImplicitMeta
            Rule: "ANY Writers"
        Admins:
            Type: ImplicitMeta
            Rule: "MAJORITY Admins"
    Capabilities:
        <<: *ChannelCapabilities
Profiles:

    TwoOrgsOrdererGenesis:
        <<: *ChannelDefaults
        Orderer:
            <<: *OrdererDefaults
            Organizations:
                - *OrdererOrg
            Capabilities:
                <<: *OrdererCapabilities
        Consortiums:
            SampleConsortium:
                Organizations:
                    - *Org1
                    - *Org2
    TwoOrgsChannel:
        Consortium: SampleConsortium
        <<: *ChannelDefaults
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2
            Capabilities:
                <<: *ApplicationCapabilities

    SampleDevModeKafka:
        <<: *ChannelDefaults
        Capabilities:
            <<: *ChannelCapabilities
        Orderer:
            <<: *OrdererDefaults
            OrdererType: kafka
            Kafka:
                Brokers:
                - kafka.example.com:9092

            Organizations:
            - *OrdererOrg
            Capabilities:
                <<: *OrdererCapabilities
        Application:
            <<: *ApplicationDefaults
            Organizations:
            - <<: *OrdererOrg
        Consortiums:
            SampleConsortium:
                Organizations:
                - *Org1
                - *Org2

    SampleMultiNodeEtcdRaft:
        <<: *ChannelDefaults
        Capabilities:
            <<: *ChannelCapabilities
        Orderer:
            <<: *OrdererDefaults
            OrdererType: etcdraft
            EtcdRaft:
                Consenters:
                - Host: orderer.example.com
                  Port: 7050
                  ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
                  ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/tls/server.crt
                - Host: orderer2.example.com
                  Port: 7050
                  ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt
                  ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/server.crt
                - Host: orderer3.example.com
                  Port: 7050
                  ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt
                  ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer3.example.com/tls/server.crt
                - Host: orderer4.example.com
                  Port: 7050
                  ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt
                  ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer4.example.com/tls/server.crt
                - Host: orderer5.example.com
                  Port: 7050
                  ClientTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer5.example.com/tls/server.crt
                  ServerTLSCert: crypto-config/ordererOrganizations/example.com/orderers/orderer5.example.com/tls/server.crt
            Addresses:
                - orderer.example.com:7050
                - orderer2.example.com:7050
                - orderer3.example.com:7050
                - orderer4.example.com:7050
                - orderer5.example.com:7050

            Organizations:
            - *OrdererOrg
            Capabilities:
                <<: *OrdererCapabilities
        Application:
            <<: *ApplicationDefaults
            Organizations:
            - <<: *OrdererOrg
        Consortiums:
            SampleConsortium:
                Organizations:
                - *Org1
                - *Org2

是不是很长,我还把注释给删除了,还有这么多,但是我们不需要这么多。
相必大家都看到了TLS加密传输我们都不需要,全部删了,我们只需要如下内容

  1. Organizations (里面的Policies全部不需要)
  2. Application/Organizations
  3. Orderer/OrdererType
  4. Orderer/Addresses
  5. Orderer/BatchTimeout
  6. Orderer/BatchSize
  7. Profiles/TwoOrgsOrdererGenesis
  8. Profiles/TwoOrgsChannel

我们只需要这么多内容其它的全部删除掉
然后删除完后会有爆红的,我们把他删除就行了
在这里插入图片描述
在这里插入图片描述
这样就不会爆红了,那么删除完成了我们现在就应该真正的修改它了

2、真正的修改配置文件

那么接下来我们就来真正的修改配置文件,修改完成后是这个样子的


---
# 1--Ctrl+R 查找example 替换为slzce 
# 2--Ctrl+R 查找 org1 替换为 organization1 org2 替换为 organization1 (Organizations内的)
# 3--Ctrl+R 查找peer0 替换为node2 指定的背书节点
# 4-- 我们有三个组织所以需要复制一个 不要忘记修改
# 5-- 修改三个组织的监听端口为7051 

Organizations:
    - &OrdererOrg
        Name: OrdererOrg
        ID: OrdererMSP
        MSPDir: crypto-config/ordererOrganizations/slzce.com/msp
    - &Org1
        Name: Org1MSP
        ID: Org1MSP
        MSPDir: crypto-config/peerOrganizations/organization1.slzce.com/msp
        AnchorPeers:
            - Host: node2.organization1.slzce.com
              Port: 7051
    - &Org2
        Name: Org2MSP
        ID: Org2MSP
        MSPDir: crypto-config/peerOrganizations/organization2.slzce.com/msp
        AnchorPeers:
            - Host: node2.organization2.slzce.com
              Port: 7051
    - &Org3
        Name: Org3MSP
        ID: Org3MSP
        MSPDir: crypto-config/peerOrganizations/organization3.slzce.com/msp
        AnchorPeers:
            - Host: node2.organization3.slzce.com
              Port: 7051
Application: &ApplicationDefaults
    Organizations:
Orderer: &OrdererDefaults
    OrdererType: solo

    Addresses:
        - orderer.slzce.com:7050
    BatchTimeout: 2s
    BatchSize:
        MaxMessageCount: 10
        AbsoluteMaxBytes: 99 MB
        PreferredMaxBytes: 512 KB
        
Profiles:
    TwoOrgsOrdererGenesis:
        Orderer:
            <<: *OrdererDefaults
            Organizations:
                - *OrdererOrg
        Consortiums:
            SampleConsortium:
                Organizations:
                    - *Org1
                    - *Org2
                    - *Org3
#                   注意这里要加上Org3
    TwoOrgsChannel:
        Consortium: SampleConsortium
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2
                - *Org3
#                   注意这里要加上Org3

那么到这里我们这个文件就修改完成了,那么下次我们就可以修改docker-compose-base.yaml文件了。

结语

到这一步距离网络搭建还有一段路程,我们只需要再修改一个yaml文件就可以编写命令来跑通网络了,
创作不易,多多支持,谢谢。

在这里插入图片描述


  1. 以上表格内容来源于《Hyperledger Fabric 菜鸟进阶攻略》 ↩︎

区块链网络层节点是区块链系统中的基本组成部分,负责维护整个网络的数据传输和区块链的同步。在区块链网络中,节点主要有以下几种类型: 1. 全节点(Full Node):全节点是存储完整区块链数据的节点,它们参与验证交易和区块,并维护整个区块链的副本。全节点负责验证和传播区块,确保区块链的一致性和安全性。任何新加入网络的节点都会从全节点那里下载区块链数据。 2. 轻节点(Light Node):轻节点不存储整个区块链的数据,而是只存储少量网络信息,比如区块头信息。轻节点依赖于全节点来验证交易的有效性。由于轻节点不存储所有区块链数据,它们节省了存储空间和带宽,但需要信任全节点提供的信息。 3. 矿工节点(Mining Node):矿工节点是参与区块创建和验证的节点。它们利用计算资源解决复杂的数学难题,来创建新的区块,并通过网络广播,其他节点验证后将其加入区块链。矿工节点通常也是全节点,因为它们需要验证交易和区块的正确性。 4. 超级节点(Super Node):超级节点是一种特殊的全节点,通常拥有更高的性能和更多的资源,如更快的处理速度、更大的带宽和更高的存储能力。超级节点可以处理更多的交易,并为其他节点提供数据同步服务,提高网络的整体性能。 区块链网络层节点的功能和角色对于整个网络的运行至关重要,它们共同确保了交易的安全、数据的准确性和网络的健康。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

患孤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值