区块链网络搭建(二)

这篇具有很好参考价值的文章主要介绍了区块链网络搭建(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Orderer模块启动之前需要生成一个创世块文件和Orderer模块所需的配置文件。创世块是Fabric的第一个区块,主要存储相关的配置信息。

configtx.yaml案例文件:

1.Organizations部分

组织配置,用来定义不同的组织机构实体,以便后续配置中引用。例如以下配置文件中,定义了三个机构:OrdererOrg、Org1、Org2

Organizations:
 
    - &OrdererOrg
        # 组织名称
        Name: OrdererOrg
 
        # 组织ID,ID是引用组织的关键
        ID: OrdererMSP
 
        # 组织的MSP证书路径
        MSPDir: ../organizations/ordererOrganizations/hmw.com/msp
 
        # 定义本层级的组织策略,其权威路径为 /Channel/<Application|Orderer>/<OrgName>/<PolicyName>
        Policies:
            Readers:
                Type: Signature
                Rule: "OR('OrdererMSP.member')"
            Writers:
                Type: Signature
                Rule: "OR('OrdererMSP.member')"
            Admins:
                Type: Signature
                Rule: "OR('OrdererMSP.admin')"
 
        OrdererEndpoints:
            - orderer0.hmw.com:7050
            - orderer1.hmw.com:7052
            - orderer2.hmw.com:7054
 
    - &Org1
        Name: Org1MSP
 
        ID: Org1MSP
 
        MSPDir: ../organizations/peerOrganizations/org1.hmw.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')"
            Endorsement:
                Type: Signature
                Rule: "OR('Org1MSP.peer')"
 
    - &Org2
        Name: Org2MSP
 
        ID: Org2MSP
 
        MSPDir: ../organizations/peerOrganizations/org2.hmw.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')"
            Endorsement:
                Type: Signature
                Rule: "OR('Org2MSP.peer')"

2 Capabilities 通道能力配置部分 

Capabilities段定义了fabric程序要加入网络所必须支持的特性。

例如,如果添加了一个新的MSP类型,那么更新的程序可能会根据该类型识别并验证签名,但是老版本的程序就没有办法验证这些交易。这可能导致不同版本的fabric程序中维护的世界状态不一致。

Capabilities:
    # 通道capabilities适用于orderers和peers,并且两者都必须支持。
    # 将该配置项设置为ture表明要求节点具备该能力。
    Channel: &ChannelCapabilities
        # V2_0 能力确保orderers和peers按照 v2.0 通道capabilities行事。 来自先前版本的 
        # orderers和peers的行为方式不兼容,因此无法以 v2.0 的capabilities参与通道。在启用 
        # V2.0 通道capabilities之前,请确保通道上的所有订购者和对等方都处于 v2.0.0 或更高版 
        # 本。
        V2_0: true
 
    # orderer capabilities 仅适用于orderers,并且可以安全地与先前版本的peers一起使用。 
    # 将该配置项设置为ture表明要求节点具备该能力。
    Orderer: &OrdererCapabilities
        # V2_0 orderer capability 确保orderer根据 v2.0 orderer capability 行事。 来自先前 
        # 版本的orderer的行为方式不兼容,因此无法以 v2.0 的orderer capability 参与通道。在启 
        # 用 V2.0 orderer能力之前,请确保通道上的所有orderer都处于 v2.0.0 或更高版本。 
        V2_0: true
 
    # 应用程序功能仅适用于peer网络,并且可以安全地与先前发布的orderer一起使用。
    # 将该配置项设置为ture表明要求节点具备该能力
    Application: &ApplicationCapabilities
        # V2_0 应用能力确保peer的行为符合 v2.0 应用能力。 来自先前版本的peer的行为方式不兼 
        # 容,因此无法以 v2.0 应用程序功能参与通道。在启用 V2.0 应用程序功能之前,请确保通道 
        # 上的所有peer均处于 v2.0.0 或更高版本。
        V2_0: true

3 Application 应用通道配置部分

Application配置段用来定义要写入创世区块或配置交易的应用参数

Application: &ApplicationDefaults
 
    # 组织是定义为网络应用程序端参与者的组织列表
    Organizations:
 
    Policies:
        Readers:
            Type: ImplicitMeta
            Rule: "ANY Readers"
        Writers:
            Type: ImplicitMeta
            Rule: "ANY Writers"
        Admins:
            Type: ImplicitMeta
            Rule: "MAJORITY Admins"
        LifecycleEndorsement:
            Type: ImplicitMeta
            Rule: "MAJORITY Endorsement"
        Endorsement:
            Type: ImplicitMeta
            Rule: "MAJORITY Endorsement"
    # Capabilities配置描述应用层级的能力需求,这里直接引用
    # 前面Capabilities配置段中的ApplicationCapabilities配置项
    Capabilities:
        <<: *ApplicationCapabilities

4 Orderer 排序节点配置部分

Orderer配置段用来定义要编码写入创世区块或通道交易的排序节点参数

Orderer: &OrdererDefaults
 
    # Orderer 类型: 要启动的Orderer实现类型
    # 定义order共识机制
    OrdererType: etcdraft
 
    # 地址曾经是Client和peer可以连接到的orderer地址列表。 但是,这不允许client关联orderer地 
    # 址和orderer组织,这对于诸如 TLS 验证之类的事情很有用。 现在,指定订购者地址的首选方法是 
    # 在您的组织定义中包含 OrdererEndpoints 项
    Addresses:
        - orderer0.hmw.com:7050
        - orderer1.hmw.com:7052
        - orderer2.hmw.com:7054
    # 定义了EtcdRaft排序类型被选择时的配置
    EtcdRaft:
        Consenters:
        - Host: orderer0.hmw.com
          Port: 7050
          ClientTLSCert: ../organizations/ordererOrganizations/hmw.com/orderers/orderer0.hmw.com/tls/server.crt
          ServerTLSCert: ../organizations/ordererOrganizations/hmw.com/orderers/orderer0.hmw.com/tls/server.crt
        - Host: orderer1.hmw.com
          Port: 7052
          ClientTLSCert: ../organizations/ordererOrganizations/hmw.com/orderers/orderer1.hmw.com/tls/server.crt
          ServerTLSCert: ../organizations/ordererOrganizations/hmw.com/orderers/orderer1.hmw.com/tls/server.crt
        - Host: orderer2.hmw.com
          Port: 7054
          ClientTLSCert: ../organizations/ordererOrganizations/hmw.com/orderers/orderer2.hmw.com/tls/server.crt
          ServerTLSCert: ../organizations/ordererOrganizations/hmw.com/orderers/orderer2.hmw.com/tls/server.crt
 
    # 区块打包的最大超时时间 (到了该时间就打包区块)
    BatchTimeout: 2s
 
    # 区块打包的最大包含交易数(orderer端切分区块的参数)
    BatchSize:
 
        # 一个区块里最大的交易数
        MaxMessageCount: 10
 
        # 一个区块的最大字节数,任何时候都不能超过
        AbsoluteMaxBytes: 99 MB
 
        # 一个区块的建议字节数,如果一个交易消息的大小超过了这个值, 就会被放入另外一个更大的区 
        # 块中
        PreferredMaxBytes: 512 KB
 
    # 参与维护Orderer的组织,默认为空
    Organizations:
 
    Policies:
        Readers:
            Type: ImplicitMeta
            Rule: "ANY Readers"
        Writers:
            Type: ImplicitMeta
            Rule: "ANY Writers"
        Admins:
            Type: ImplicitMeta
            Rule: "MAJORITY Admins"
        # BlockValidation 指定了必须在来自 orderer 的块中包含哪些签名,以便对等方对其进行验# 
        # 证。
        BlockValidation:
            Type: ImplicitMeta
            Rule: "ANY Writers"

5 Channel 通道配置部分 

Channel配置段用来定义要写入创世区块或配置交易的通道参数

Channel: &ChannelDefaults
    # 定义本层级的通道访问策略,推荐路径为 /Channel/<PolicyName> 
    Policies:
        # 谁可能调用'Deliver' API
        Readers:
            Type: ImplicitMeta
            Rule: "ANY Readers"
        # Writes策略定义了调用Broadcast API提交交易的许可规则
        Writers:
            Type: ImplicitMeta
            Rule: "ANY Writers"
        # Admin策略定义了修改本层级配置的许可规则
        Admins:
            Type: ImplicitMeta
            Rule: "MAJORITY Admins"
 
    # 前面Capabilities配置段中的ChannelCapabilities配置项,这里直接引用(Capabilities配置描通道 
    # 层级的能力需求)
    Capabilities:
        <<: *ChannelCapabilities

6 Profiles 配置入口

Profiles配置段用来定义用于configtxgen工具的配置入口。包含联盟(consortium)的配置入口可以用来生成排序节点的创世区块。

Profiles:
    # # TwoOrgsOrdererGenesis用来生成orderer启动时所需的block,用于生成创世区块,名字可以任意
    TwoOrgsApplicationGenesis:
        <<: *ChannelDefaults
        # 指定Orderer系统通道自身的配置信息
        Orderer:
            <<: *OrdererDefaults
            Organizations:
                - *OrdererOrg  # 引用 Orderer 部分的配置 &OrdererDefaults
            Capabilities: *OrdererCapabilities  #引用&OrdererCapabilities
        Application:
            <<: *ApplicationDefaults
            Organizations:
                - *Org1
                - *Org2
            Capabilities: *ApplicationCapabilities

生成创世区块的命令

# 创建创世区块:
configtxgen -profile TwoOrgsApplicationGenesis -outputBlock ./orderer.genesis.block

configtxgen命令执行完成后会在根目录下生成创世块文件orderer.gensis.block文章来源地址https://www.toymoban.com/news/detail-439153.html

到了这里,关于区块链网络搭建(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链网络搭建(二)

    Orderer模块启动之前需要生成一个创世块文件和Orderer模块所需的配置文件。创世块是Fabric的第一个区块,主要存储相关的配置信息。 组织配置,用来定义不同的组织机构实体,以便后续配置中引用。例如以下配置文件中,定义了三个机构:OrdererOrg、Org1、Org2 Capabilities段定义了

    2024年02月03日
    浏览(28)
  • 搭建区块链网络(ubantu)

    1.搭建联盟链 前提 curl 一种命令行工具,能够进行网络数据传输 创建操作目录, 下载安装脚本 搭建4节点联盟链 其中-p选项指定起始端口,分别p2p_port,channel_port,jsonrpc_port 启动4节点联盟链 检查操作 检查进程是否启动 检查日志输出 检查是否存在共识 2.配置及使用控制台 前提 安

    2024年02月15日
    浏览(29)
  • 区块链网络搭建

    1.1 基础开发环境 1)nodejs,版本低于12,口令node -v 2)docker,口令 docker --version 3)docker-compose 口令 docker-compose version 1.2 网络部署 区块链是一个动态的网络,需要时刻运行,因此自己买了一个阿里云服务器 1)拉取联盟链框架 pull tag 2)查看是否拉取成功 口令 docker images 3) 上传

    2024年01月16日
    浏览(28)
  • 搭建 Hyperledger Fabric区块链网络

    这里以下载最新版为例,得益于官网文档;网址为:教程 或者使用该命令下载指定版本  wget https://studygolang.com/dl/golang/go1.19.linux-amd64.tar.gz 之后解压到指定文件,一般为 /usr/local/下 ,需要配置环境变量

    2024年01月20日
    浏览(58)
  • 区块链网络搭建之Peer结点

    目录 一、利用Fabric源码中提供的core.yaml文件进行修改 1.Peer section 2.VM section 3.Chaincode section 4.Ledger section 5.Operations section 6.Metrics section 二、创建一个目录保存修改好的core.yaml文件 1.创建目录 2.启动命令     创建命令:mkdir -p /var/qklszzn/peer 在core.yaml目录下执行以下命令来启动pee

    2024年02月05日
    浏览(36)
  • 2.1 搭建第一个区块链网络流程说明

    区块链技术正在迅速发展,成为创新和改变的关键驱动力。在此,我将向您介绍 如何在Ubuntu操作系统下搭建您的第一个区块链网络 。无论您是初学者还是有一定经验的开发者,通过本指南,您将了解搭建区块链网络的基本步骤和必要工具。     首先,确保您的计算机具备足

    2024年02月09日
    浏览(33)
  • 区块链学习笔记(6)-搭建fabric开发网络

    使用cryptogen模板,修改配置 EnableNodeOUs:表示是否在组织底下设置组织单元,将false改为true。将文件保存到crypto-config.yaml. ca :该文件夹包含证书颁发机构(Certificate Authority)相关的文件,用于生成和管理证书。 msp :该文件夹包含成员服务提供者(Membership Service Provider)相关的

    2024年03月26日
    浏览(54)
  • FISCO BCOS搭建多机区块链网络

    我使用两台虚拟机,IP地址分别是192.168.217.132,192.168.217.128,每台配置一个节点。 1. 生成区块链网络配置文件 2. 基于配置文件生成区块链节点配置 命令执行成功会输出 All completed 。如果执行出错,请检查 nodes/build.log 文件中的错误信息。 至此,成功生成了多机4节点配置,每

    2024年02月02日
    浏览(49)
  • 搭建第一个区块链网络与一键部署WeBASE步骤

    搭建第一个区块链网络 — FISCO BCOS v2 v2.9.0 文档 (fisco-bcos-documentation.readthedocs.io) 一键部署 — WeBASE v1.5.5 文档 (webasedoc.readthedocs.io) 默认如MySQL、Python、java等依赖已经引入 创建操作目录 cd ~ mkdir -p fisco cd fisco 下载国内脚本 curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BC

    2024年02月04日
    浏览(41)
  • 【区块链 | IPFS】IPFS cluster私有网络集群搭建

    对于联盟链的业务中搭建一个私有网络的 IPFS 集群还是很有必要的,私有网络集群允许 IPFS 节点只连接到拥有共享密钥的其他对等节点,网络中的节点不响应来自网络外节点的通信。 IPFS-Cluster 是一个独立的应用程序和一个 CLI 客户端,它跨一组 IPFS 守护进程分配、复制和跟踪

    2024年02月08日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包