Hyperledger Fabric中有序生成模块的重要性是什么?

时间:2019-08-19 13:02:10

标签: hyperledger-fabric

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是频道中的创世块,任何想加入频道的对等体都需要此。

在完整的教程中,一旦创建了顺序生成框,就永远不会使用它。还有,除了通道分类帐以外,是否还存在其他区块链?

此订购者创始块是否需要系统通道?

4 个答案:

答案 0 :(得分:3)

  

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

让我从指向官方文档here

开始
  

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

这是造成混乱的根源,实际上TwoOrgsChannel概要文件会生成配置事务,该事务将提交给系统通道,并且它包含形成新通道所需的配置。例如渠道策略和渠道联盟的成员,顺便说一句,它们必须是在系统渠道的创世块内定义的联盟的子集。

  

mychannel.tx是频道中的创世块,任何想加入频道的对等方都需要此。

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

  

在完整的教程中,一旦创建了顺序生成框,就永远不会使用它。还有除了通道分类帐之外还存在其他区块链吗?

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

  

此订购者创始块是否需要系统通道?

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

答案 1 :(得分:1)

好的问题,谢谢@Shubham Chadokar

需要Channel.tx,其中包含渠道政策信息

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

请参阅下面的详细信息

Statement1

  

mychannel.tx是频道以及任何对等   想要加入频道需要

答案

注意mychannel.tx is not the genesis block

我想强调 genesis.block mychannel.tx

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

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

订购系统渠道:订购者维护了允许创建渠道的所有组织的详细清单。该组织列表称为“联盟”,该列表本身保留在“订购者系统渠道”的配置中。

  

现在有趣的部分是 mychannel.tx

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

第1步:GOTO fabricsamples / bin ./configtxlator开始

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

  

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

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

这是需要用作创建新通道的模板源的对象。 common.ConfigUpdate是将由所有组织签名并提交给订购者以创建新渠道的对象。

mychannel.tx包含mychannel的读/写集

结果:

  

{“ channel_id”:“ mychannel”,“ read_set”:{       “组”:{         “应用程序”:{           “组”:{             “ Org1MSP”:{}           }         }       },       “值”:{         “财团”:{           “值”:{             “名称”:“ SampleConsortium”           }         }       }},“ write_set”:{       “组”:{         “应用程序”:{           “组”:{             “ Org1MSP”:{}           },           “ mod_policy”:“管理员”,           “政策”:{             “管理员”:{               “政策”:{                 “类型”:3,                 “值”:{                   “ rule”:“ MAJORITY”,                   “ sub_policy”:“管理员”                 }               }             },             “读者”:{               “政策”:{                 “类型”:3,                 “值”:{                   “ sub_policy”:“读者”                 }               }             },             “作家”:{               “政策”:{                 “类型”:3,                 “值”:{                   “ sub_policy”:“作家”                 }               }             }           },           “ version”:“ 1”         }       },       “值”:{         “财团”:{           “值”:{             “名称”:“ SampleConsortium”           }         }       }}


  

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


声明2 : 完整的教程一旦创建了订购者创始块,就永远不会使用。还有除了通道分类帐之外还存在其他区块链吗?

答案

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


此订购者创始块是否需要系统通道?


答案 2 :(得分:0)

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

订购者系统通道的创始块很特殊:必须先创建它并将其包含在节点的配置中,然后才能启动该节点

答案 3 :(得分:0)

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