- 项目概述
- Fabric的目标是实现一个通胀的权限区块链的底层基础框架。为了适用于不同的场合,采用了模块化结构,提供可切换和可扩展的组件,比如共识算法、加密安全等服务
- 应用场景
- 超级账本有一个很重要的设计原则:按照“用例驱动”的方式实现,所有功能都应该有对应的用例需求。鉴于超级账本是一个通用型框架,无法预先确定将来所有的应用场景、因此先定义出部分典型的用例,可使超级账本先满足这部分代表性的区块链应用需求,然后再用可替换模块来满足其他需求
- 场景
- 金融资产管存
- 公司行为
- 供应链
- 主数据管理
- 分享经济
- 项目架构
- 底层服务构成
- 身份服务
- Fabric与比特币、以太坊等无权限区块链网络最大的区别在于他有身份识别能力。
- 身份服务管理着系统中各种实体、参与者、对象的身份信息,包括参与者的组织,验证者,交易。账本中的资产和智能合约,系统组件以及运行环境。
- 策略服务
- Fabric里面有许多功能需要使用策略方式驱动,因此有独立的策略服务来提供系统的策略配置和管理功能
- 策略服务最重要的是访问控制和授权功能,Fabric交易通常需要参与方具有相关权限才能进行
- 区块链服务
- 区块链服务提供构建分布式账本最基础的能力,实现数据传输、共识达成等底层功能,并且提供了发布/订阅的事件管理框架
- 主要组件
- P2P协议组件:提供区块链节点之间直接双向通信的能力
- 分布式账本组件:管理Fabric的区块链数据
- 共识管理器组件:管理其它Fabric组件所使用的共识接口
- 账本存储组件:提供链外数据的持久化能力,每个链外文档的哈希值保存在区块链上,从而保证数据的完整性
- 智能合约服务
- 智能合约服务也叫链上代码,实质是在验证节点上运行的分布式交易程序,用于自动执行特定的业务规则,最终更新账本状态
- 上层结构
- 编程接口(API)
- 软件开发工具(SDK)
- 命令行工具(CLI)
- 身份服务
- 底层服务构成
- 部署方式
- Fabric的网络节点由身份服务节点、验证节点、非验证节点以及应用节点组成
- 节点分类
- 身份服务节点:负责发放和管理用户及组织的身份,具体来说就是在注册、交易、传输过程中使用的各类数字证书,以及区块链相关的密钥。
- 验证节点:创建以及校验交易,并且维护智能合约的状态。在执行交易时、需要和其它的多数验证节点达成共识,然后才能更新本地账本数据。每个验证节点在本地都保存一份账本的副本。
- 非验证节点:主要是接收客户端的请求,组装交易,并且发往验证节点进行处理,类似于交易预处理器,不负责交易的实际执行。为了回事客户端的查询响应速度,非验证节点在本地也保留一份账本数据的拷贝。
- 应用节点:主要提供用户端(浏览器或者移动设备等)的后台服务,在收到请求之后,把交易请求直接发往(或者由非验证节点转发)验证节点处理
- Fabric有多种部署方式,既可以部署在自己的数据中心,也可以部署在公有云上。在部署的时候应该把通信延迟、网络故障、节点失效、网络恢复、恶意攻击等因素考虑在内
- 交易执行
- 交易分类
- 部署智能合约
- 执行智能合约
- 分发机制:Fabric客户端可以通过API提交应用代码给任意一个验证节点,该验证节点在确认是有效的应用代码后,就会将该应用同步到其它验证节点中。通过止方法,最终,每个验证节点都会保存一份应用代码
- 交易步骤
- 客户端发送执行请求给任意一个验证节点
- 验证节点接收到请求之后 、向本地账本发送启动交易的指令
- 验证节点创建隔离的运行环境,启动智能合约代码
- 在应用的执行过程中、更新本地账本的状态
- 应用完成后、向本地账本确认交易
- 验证节点向其它的验证节点广播交易
- 交易分类