# Fab公链实现企业级应用的统一架构设计之2:基础链(或者说主链) **Published by:** [FAB公链讲解员小K](https://paragraph.com/@fab-k/) **Published on:** 2022-07-25 **URL:** https://paragraph.com/@fab-k/fab-2-2 ## Content 我们知道,FAB公链是通过基础区块链(Foundation blockchain)、辅助链(Annex chain)及开放存储架构(Open Storage Architecture),是根据矛盾错位机制建立在统一底层协议,与共识机制核心规则基础上的开放经济生态的组成部份,分别执行不同的功能,整体上相互协作、相互验证,构成完整的信任保证及价值维护机制,解决了去中心化、可扩展性、安全性三者不可兼得的难题(也就是“三元悖论”)。然而,建立一条开放的公共区块链—基础区块链,是Fab系统的核心,它高度去中心化但难以扩展,必须以最小数据量、最小计算量、最小网络带宽为目标,主要提供基础协议、账本、智能合约、价值体系,拥有最高裁决权,基础区块链的信任合法性来源于全部参与节点。 以实现最大的开放度、最高程度的去中心化、最强的可靠性,这样的系统不可扩展。扩展以辅助链来实现。基础区块链设计采用与生产结合的Proof-of-Production(PoP)共识机制,一种权益证明与生产力证明混合机制,但在具备足够生产力之前,仍采用与比特币类似的PoW共识机制。 1.1 基础区块链全节点功能构成 基础区块链全节点除具有通常的区块链、钱包、矿工、路由、虚拟机等功能模块外,特别引入KanBan功能。KanBan是中文“看板”的意思,KanBan向大家提供即时信息,以提示注意事项或特别变更。1.2 KanBan KanBan的设计目的是,在不显著增加主区块链负担的情况下,在全局范围提供对辅助链交易状态的实时更新及查询能力,是专为有效防止辅链双花攻击的特殊模块,保证区块链整体的安全性。 Fab公链中,将KanBan设计为GPU内存数据库,一方面,基本不占用节点普通资源,保证其基础区块链作业效率,一方面,GPU内存数据库数据处理能力远超计算机主处理器,可以大幅度提高KanBan运行效率,使小批量状态更新及查询操作可以在毫秒级时间内完成。1.3 kanban功能与流程 由于KanBan功能,辅助链的交易均以去中心化方式实时全局呈现,可以有效实现防止双花的目的。 KanBan状态的维持与更新是由智能合约控制的,并且KanBan与主、辅链节点及存贮节点之间存在严格的有效性验证确认关系,以确保KanBan数据的准确、合法。 1.4 kanban流程KanBan的处理流程是:收到来自辅助链的包→验证包的合法性→验证交易合法性→更新KanBan状态→向辅助链提交收据。这样KanBan中终始保存着在辅助链交易的地址或账户的准确状态,如果需要,还可进一步向存储节点核实辅助链上的详细交易记录。KanBan在收到辅助链数据包后,验证包及其中交易的合法性,经验证合格后更新相关地址状态,并向辅助链返回收据并通知存储节点,包括节点余额、合约签名,如不合格则拒收并通知辅助链。KanBan以实时的方式提供每个地址的当前状态,以防止双花。KanBan还提供每个辅助链的当前块的签名存根,以证实辅助链中块的有效性。对辅助链上的新交易,系统通过KanBan状态及基础区块链交易状态验证交易的有效性。1.5 验证交易有效性对于同一账户或地址有冲突的,时间优先,时间相同的,Hash值优先。如果交易发生冲突,对产生冲突的地址或账户设置可疑标识。对于KanBan中设置可疑标记的地址,在新交易发生时,要通过开放存储架构节点清查详细交易记录。KanBan除了用于快速处理辅助链交易、维护辅助链地址状态外,同时还执行辅助链挖矿任务。KanBan还可周期性地向硬盘镜像数据,以备掉电后快速恢复。如果您觉得好,请推荐给您身边的朋友并关注,谢谢您的支持! ## Publication Information - [FAB公链讲解员小K](https://paragraph.com/@fab-k/): Publication homepage - [All Posts](https://paragraph.com/@fab-k/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@fab-k): Subscribe to updates