## 网络拓扑

下图是一个简单的 Fabric 网络拓扑示意。

![](_images/network_topo.png)

Fabric 在生产环境的部署可以包括一个区块链网络、一个成员管理服务、一个或多个应用程序及对应的链码（即智能合约）。其中，区块链网络由若干验证节点和非验证节点构成。

每个验证节点都包含链码执行环境，用于独立处理接收到的交易。这里所说的交易是指对链码进行的操作，比如部署一个链码、或调用已部署的链码中的某一个方法。每个验证节点同时存储着当前完整的账本拷贝，账本中记录着历史交易记录和链码中定义的数据。虽然每个验证节点独立执行在网络中扩散的新交易，但他们彼此相连并传输消息，通过共识模块确保所有节点的账本内容一致。

非验证节点只拥有验证节点的部分功能。通常，非验证节点同样存储着完整的账本拷贝供应用程序进行本地查询操作，但不包含链码执行环境，不具备独立执行链码和参与共识的能力。非验证节点会与验证节点相连，通常为验证节点分担一部分工作，如负责处理API请求和处理事件等。

当然，开发者也可以构建一个仅有单个验证节点的最简单 Fabric “网络”。由于仅有一个节点，该“网络”不需要共识算法。开发者可以用该单点网络方便地进行链码和应用程序的开发。
