排序器创世区块在Hyperledger Fabric中的重要性是什么?



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

TwoOrgsOrdererGenesis: generates the genesis block for a Solo ordering service.TwoOrgsChannel: generates the genesis block for our channel, mychannel.

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

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

此排序器创世块是否需要系统通道?

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

让我从这里的官方文档开始

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

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

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

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

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

它始终用于引导排序服务节点,例如在关闭或重新启动后。

此排序器创世块是否需要系统通道?

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

好问题感谢@Shubham查多卡尔

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

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

请参阅以下详细信息

声明1

mychannel.tx 是频道中的创世区块,也是任何同行 想要加入频道需要这个。

mychannel.tx is not the genesis block

我想强调genesis.blockmychannel.tx之间的区别

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

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

订购系统渠道:排序者维护允许创建渠道的所有组织的长列表。这个组织列表被称为"联盟",列表本身保存在"排序者系统通道"的配置中。

现在mychannel.tx中存在的有趣部分

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

步骤1:转到织物样本/bin ./configtxlator start

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

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

解码文件mychannel.tx的结果,这是一个常见的。由 configtxgen 工具生成的信封包含一个公共包。配置更新对象。此对象在"payload.data"JSON 对象中具有名称">config_update"。

这是需要作为用于创建新渠道的模板源的对象。共同的。ConfigUpdate 是所有组织将签名并提交给排序者以创建新通道的对象。

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 作为 JSON 格式的 http://ideone.com/L1hcRX 其中包含所有网络信息。


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

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


此排序器创世块是否需要系统通道?


是的

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

排序器系统通道的创世块是特殊的:必须先创建它并将其包含在节点的配置中,然后才能启动节点

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

最新更新