可在节点,通道和联盟级别上配置。
一个Fabric网络中能够运行多个账本,每个通道间的逻辑相互隔离不受影响,如下图所示,每种颜色的线条代表一个逻辑上的通道,每个Peer节点可以加入不同的通道,每个通道都拥有独立的账本、世界状态、链码以及Kafka中的Topic,通道间消息是隔离的,互不影响的。
每个Peer节点可以配置加入到多个不同的通道,不同业务的交易存储在不同的通道对应的节点中
Fabric的Peer模块的提供了一些可以查询Fabric的系统信息的子命令,比如可以通过命令peerchannel list查看当前Peer节点加入的通道。
配置文件
Fabric网络在启动之前,需要提前生成一些用于启动的配置文件,主要包括MSP相关文件(msp/)、TLS相关文件(tls/)、系统通道初始区块(orderer.genesis.block)、新建应用通道交易文件(businesschannel.tx)、锚节点配置更新交易文件Org1MSPanchors.tx和Org2MSPanchors.tx)等。
信道 | 渠道 -》 通道
订购服务 -》 排序服务
Fabric网络实际上支持连接到同一订购服务的多个区块链。 每个这样的区块链都称为一个通道,并且其成员可能具有不同的对等方。 可以使用渠道来划分区块链网络的状态,但是不协调渠道之间的共识,并且每个渠道中的交易总顺序彼此分开。 将所有订购者视为受信任的某些部署也可能实现对等方的按通道访问控制。 在下文中,我们仅简要提及渠道,并仅关注一个渠道。
在获得适当许可的情况下,链码可以调用另一个链码以访问其在同一通道内的状态。
在较高的层次上,订购服务的接口仅支持以下两个操作,这些操作由对等方调用并由通道标识符隐式参数化
订购服务可确保在一个通道上交付的模块全部被订购。 更具体地说,订购可确保每个通道具有以下安全属性
订购服务还可以执行访问控制检查,以查看是否允许客户端在给定频道上广播消息或接收块。 订购服务的此功能和其他功能将在第4.2节中进一步说明。
订购服务管理多个渠道。 在每个频道上,它提供以下服务:
(1)原子广播,用于建立交易顺序,实现广播和传送呼叫(第3.3节)。
(2)通道的重新配置,当其成员通过广播配置更新事务来修改通道时(第4.6节)。
(3)可选地,在订购服务充当受信任实体的那些配置中,访问控制将交易的广播和块的接收限制到指定的客户端和对等方。
订购服务在系统通道上以创世模块引导。 该块进行配置事务,该事务定义了订购服务的功能。
当前的生产实现由订购服务节点(OSN)组成,这些服务节点执行此处描述的操作并通过系统通道进行通信。
Fabric是通过通道配置和特殊的链码(称为系统链码)定制的。
回忆Fabric中的每个通道都形成一个逻辑区块链。 通道的配置在保留在特殊配置块中的元数据中维护。 每个配置块均包含完整的通道配置,并且不包含任何其他事务。 每个区块链都以称为创世块的配置块开始,该配置块用于引导通道。 通道配置包括:(1)参与节点的MSP定义,(2)OSN的网络地址,(3)共识实现和订购服务的共享配置,例如批大小和超时,(4 ),用于管理对订购服务操作(广播和交付)的访问的规则,以及(5)用于对频道配置的各个部分进行修改的规则。
可以使用信道配置更新事务来更新信道的配置。 此事务包含要对配置进行的更改的表示形式,以及一组签名。 订购服务节点通过使用当前配置来评估更新是否有效,以验证是否使用签名授权了修改。 然后订购者生成一个新的配置块,该块嵌入新的配置和配置更新事务。 接收此块的对等方会根据当前配置验证是否对配置更新进行了授权; 如果有效,他们将更新其当前配置。
事务大小,订购服务和共识实现及其参数,网络中节点的网络参数和拓扑,节点运行的硬件,节点和通道的数量,其他配置参数以及网络动态。 因此,对Fabric的深入性能评估被推迟到以后的工作中。
- 往期精彩回顾:
- 区块链知识系列
- 密码学系列
- 零知识证明系列
- 共识系列
- 公链调研系列
- BTC系列
- 以太坊系列
- EOS系列
- Filecoin系列
- 联盟链系列
- Fabric系列
- 智能合约系列
- Token系列