# Fab公链实现企业级应用的统一架构设计之2：基础链（或者说主链）

By [FAB公链讲解员小K](https://paragraph.com/@fab-k) · 2022-07-25

---

我们知道，FAB公链是通过基础区块链(Foundation blockchain)、辅助链(Annex chain)及开放存储架构(Open Storage Architecture)，是根据矛盾错位机制建立在统一底层协议，与共识机制核心规则基础上的开放经济生态的组成部份，分别执行不同的功能，整体上相互协作、相互验证，构成完整的信任保证及价值维护机制，解决了去中心化、可扩展性、安全性三者不可兼得的难题（也就是“三元悖论”）。

![](https://storage.googleapis.com/papyrus_images/5713cab5da9b59caa7b84a031146973fd508d47766ab6b912287d20c885981c4.png)

然而，建立一条开放的公共区块链—基础区块链，是Fab系统的核心，它高度去中心化但难以扩展，必须以最小数据量、最小计算量、最小网络带宽为目标，主要提供基础协议、账本、智能合约、价值体系，拥有最高裁决权，基础区块链的信任合法性来源于全部参与节点。

以实现最大的开放度、最高程度的去中心化、最强的可靠性，这样的系统不可扩展。扩展以辅助链来实现。基础区块链设计采用与生产结合的Proof-of-Production(PoP)共识机制，一种权益证明与生产力证明混合机制，但在具备足够生产力之前，仍采用与比特币类似的PoW共识机制。

**1.1 基础区块链全节点功能构成**

基础区块链全节点除具有通常的区块链、钱包、矿工、路由、虚拟机等功能模块外，特别引入KanBan功能。KanBan是中文“看板”的意思，KanBan向大家提供即时信息，以提示注意事项或特别变更。

![](https://storage.googleapis.com/papyrus_images/d82fbe6d43f377ccb502e60feac365e13eb9706d516bd51fc9431635df42165f.png)

**1.2 KanBan**

KanBan的设计目的是，在不显著增加主区块链负担的情况下，在全局范围提供对辅助链交易状态的实时更新及查询能力，是专为有效防止辅链双花攻击的特殊模块，保证区块链整体的安全性。

Fab公链中，将KanBan设计为GPU内存数据库，

*   一方面，基本不占用节点普通资源，保证其基础区块链作业效率，
    
*   一方面，GPU内存数据库数据处理能力远超计算机主处理器，可以大幅度提高KanBan运行效率，使小批量状态更新及查询操作可以在毫秒级时间内完成。
    

![](https://storage.googleapis.com/papyrus_images/6daf37e16f1310d469c300ac2dc3b6e7b3e79c16f9333a49c206ca8d901223e8.png)

**1.3 kanban功能与流程**

由于KanBan功能，辅助链的交易均以去中心化方式实时全局呈现，可以有效实现防止双花的目的。

KanBan状态的维持与更新是由智能合约控制的，并且KanBan与主、辅链节点及存贮节点之间存在严格的有效性验证确认关系，以确保KanBan数据的准确、合法。

**1.4 kanban流程**

*   KanBan的处理流程是：收到来自辅助链的包→验证包的合法性→验证交易合法性→更新KanBan状态→向辅助链提交收据。
    
*   这样KanBan中终始保存着在辅助链交易的地址或账户的准确状态，如果需要，还可进一步向存储节点核实辅助链上的详细交易记录。
    
*   KanBan在收到辅助链数据包后，验证包及其中交易的合法性，经验证合格后更新相关地址状态，并向辅助链返回收据并通知存储节点，包括节点余额、合约签名，如不合格则拒收并通知辅助链。
    
*   KanBan以实时的方式提供每个地址的当前状态，以防止双花。
    
*   KanBan还提供每个辅助链的当前块的签名存根，以证实辅助链中块的有效性。
    
*   对辅助链上的新交易，系统通过KanBan状态及基础区块链交易状态验证交易的有效性。
    

**1.5 验证交易有效性**

*   对于同一账户或地址有冲突的，时间优先，时间相同的，Hash值优先。
    
*   如果交易发生冲突，对产生冲突的地址或账户设置可疑标识。
    
*   对于KanBan中设置可疑标记的地址，在新交易发生时，要通过开放存储架构节点清查详细交易记录。
    
*   KanBan除了用于快速处理辅助链交易、维护辅助链地址状态外，同时还执行辅助链挖矿任务。
    
*   KanBan还可周期性地向硬盘镜像数据，以备掉电后快速恢复。
    

![](https://storage.googleapis.com/papyrus_images/2eb5069fa3533e55a3095753d39f4e69e9e64b82ddfa512c51dd4c878c5567b6.png)

如果您觉得好，请推荐给您身边的朋友并关注，谢谢您的支持！

---

*Originally published on [FAB公链讲解员小K](https://paragraph.com/@fab-k/fab-2-2)*
