【问题标题】:What is the importance of orderer genesis block in Hyperledger Fabric?Hyperledger Fabric 中orderer genesis block 的重要性是什么?
【发布时间】:2019-09-02 05:50:50
【问题描述】:

build your first network documentation.
TwoOrgsOrdererGenesis: generates the genesis block for a Solo ordering service.
TwoOrgsChannel: generates the genesis block for our channel, mychannel.

mychannel.tx 是通道中的创世块,任何想要加入通道的节点都需要这个。

在完整的教程中,一旦创建了 orderer 创世块,它就永远不会使用。除了通道分类账之外,还有其他区块链吗?

这个排序者创世块是否需要系统通道?

【问题讨论】:

    标签: hyperledger-fabric


    【解决方案1】:

    在构建您的第一个网络文档中。

    我先从指向官方文档here开始

    TwoOrgsOrdererGenesis:为 Solo 排序服务生成创世块。 TwoOrgsChannel:为我们的频道 mychannel 生成创世块。

    这里是混乱的根源,实际上TwoOrgsChannel配置文件生成配置事务提交到系统通道,它包括形成新通道所需的配置。例如通道策略和通道联盟的成员,顺便说一下,它们必须是系统通道创世块中定义的联盟的子集。

    mychannel.tx 是通道中的创世块,任何想要加入通道的节点都需要这个。

    这是要提交给排序服务的配置事务,以便它将创建一个新通道并为新通道返回创世块,以便对等方可以使用它来加入它。

    在完整的教程中,一旦创建了 orderer 创世块,它就永远不会使用。除了通道账本之外,还有其他区块链吗?

    它总是用于引导您的排序服务节点,例如在关闭或重启之后。

    这个排序者创世块是否需要系统通道?

    事实上,系统通道是使用这个创世块引导的。现在要完成@Narendranath Reddy 的回答,创世块包含他称之为网络定义的联盟信息,基本上它包含组织根 CA 的所有证书。因此允许初始化通道 MSP 并使用这些根 CA 证书来验证 ACL、背书和客户端签名。

    【讨论】:

      【解决方案2】:

      好问题感谢@Shubham Chadokar

      需要包含频道策略信息的Channel.tx

      在加入时,我们需要包含网络配置的最新块,以便将节点加入通道。

      查看以下详细信息

      声明1

      mychannel.tx 是通道中的创世块和任何节点 想加入频道需要这个。

      回答

      注意mychannel.tx is not the genesis block

      我想强调 genesis.block mychannel.tx

      之间的区别
      • genesis.block 是 HLF 网络的配置(包含网络定义)

      • mychannel.tx >>> 初始二进制配置定义(包含可签名通道定义)

      ordering 系统频道:orderer 维护着所有允许创建频道的组织的长列表。这个组织列表被称为“联盟”,列表本身保存在“orderer系统通道”的配置中。

      现在有趣的部分是 mychannel.tx

      • mychannel.tx 是一个二进制文件
      • 可以使用 protolator 解码此文件 命令:

      Step1:GOTO fabricsamples/bin ./configtxlator start

      Step2:转到 mychannel.tx 文件位置,然后发出以下命令

      curl -X POST --data-binary @mychannel.tx http://127.0.0.1:7059/protolator/decode/common.Envelope > 我的频道.json

      由configtxgen工具生成的common.Envelope文件mychannel.tx的解码结果包含一个common.ConfigUpdate对象。此对象在“payload.data”JSON 对象中具有名称“config_update”。

      这是用于创建新频道的模板源所需的对象。 common.ConfigUpdate 是所有组织都会签名并提交给 orderer 以创建新通道的对象。

      mychannel.tx 包含 mychannel 的读/写集

      结果:

      { "channel_id": "mychannel", "read_set": { “组”:{ “应用”: { “组”:{ “Org1MSP”:{} } } }, “价值观”:{ “财团”:{ “价值”: { “名称”:“样本联盟” } } } }, "write_set": { “组”:{ “应用”: { “组”:{ “Org1MSP”:{} }, "mod_policy": "管理员", “政策”:{ “管理员”:{ “政策”: { “类型”:3, “价值”: { “规则”:“多数”, “sub_policy”:“管理员” } } }, “读者”:{ “政策”: { “类型”:3, “价值”: { “sub_policy”:“读者” } } }, “作家”:{ “政策”: { “类型”:3, “价值”: { “sub_policy”:“作家” } } } }, “版本”:“1” } }, “价值观”:{ “财团”:{ “价值”: { “名称”:“样本联盟” } } } } }


      我对 genesis.block 做了同样的事情,检查这个 http://ideone.com/L1hcRX 包含 genesis.block 为 json 格式 其中包含所有网络信息。


      声明 2: 完整的教程一旦创建了 orderer genesis 块,它就从未使用过。除了通道账本之外,还有其他区块链吗?

      回答

      我希望您现在已经获得了足够的信息。创世块的主要目的是网络配置,一旦网络启动并运行,我们将不会再次使用,除非您加入包含订购者的新组织,您可以使用旧的 genesis.block 稍后它将从其他订购者获取最新配置。


      这个排序者创世块是否需要系统通道?


      是的

      【讨论】:

      • 考虑一个新的组织稍后加入网络。那会是怎样的情景呢? orderer如何获取新组织的信息?
      • 嘿,Orderer 将同步,因为所有都将在一个集群中。两种情况:1)新组织加入没有订购者 2)新组织将加入订购者。如果一个新组织与 Orderer 一起加入现有的联盟,那么新的 Orderer 将通过 Tipis 获取所有区块和账本,如果 Kafka 长老在船尾,那么领导者将确保达到法定人数。如果新组织在没有 Orderer 的情况下加入,那么新组织可以依赖于任何其他组织 Orderer
      • 抱歉,您的回答不适合这个问题。并且订购者不会自行同步。只需创建一个没有订单的新组织,然后尝试创建一个它将无法正常工作的频道。将新组织加入现有频道是另一回事。
      • 嘿,超级账本结构联盟中的@Subham 是顶层。当你创建一个网络意味着你正在创建一个联盟。为了创建频道,新组织必须是联盟的一部分。将新组织添加到联盟的唯一方法是您需要更新频道。一旦你用新的组织更新频道,不管你有没有订单,或者你不是联盟的一员,你就可以创建一个频道。注意:如果频道策略有 MAJORITY Admins >>> 这是另一种情况
      • 这里的术语可能会令人困惑,因为 Fabric 文档并不完全一致。一些文档使用“创世块”仅表示排序者创世块,而其他文档使用“创世块”来描述通道创建交易——从技术上讲,这也是一个创世块。
      【解决方案3】:

      Orderer 创世块是系统通道的创世块,因为它是网络的基本配置块。它是由订购者管理员管理的特殊频道,其中包括允许创建频道的组织列表。

      orderer系统通道的创世块比较特殊:必须创建并包含在节点的配置中才能启动节点

      【讨论】:

      • 添加一些信息:ordering 系统频道:orderer 维护着所有允许创建频道的组织的长列表。这个组织列表被称为“联盟”,列表本身保存在“orderer系统通道”的配置中。
      【解决方案4】:

      最重要的是,订购系统通道包含定义联盟中组织的加密材料:根证书和管理员证书。它们允许组织加入新渠道,而无需每次都提供新的加密材料。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-27
        • 1970-01-01
        • 1970-01-01
        • 2020-04-24
        • 2023-04-02
        • 2019-07-23
        相关资源
        最近更新 更多