欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Fabric 博客分类: 区块链  

程序员文章站 2024-03-18 22:16:16
...
Fabric(纺织品)项目的目标是实现一个通用的权限区块链(Permissioned Chain)的底层基础框架.为了适用于不同的场合,采用模块化架构,提供可切换和可扩展的组件,包括共识算法,加密安全,数字资产,记录仓库,智能合约和身份鉴权等服务

项目架构:
1.身份服务:Fabric是权限区块链(Permissioned Chain),与比特币,以太坊这类匿名的无权限区块链网络最大的区别就是具有身份识别能力.在Fabric账本各类事件和交易中,参与者和对象都具有明确的身份信息.
身份服务管理系统中各种实体,参与者和对象的身份信息,包括参与的组织,验证者和交易者,账本中的资产和智能合约,系统组件(网络,服务器)以及运行环境.验证者在Fabric网络建立的时候可以确定参加交易的权限级别

2.策略服务:访问控制和授权功能,Fabric的交易通常要求参与方具有相关权限才能进行.其他的策略还包括加入和退出网络的策略,身份的注册,验证,隐私和保密的策略,共识策略等

3.区块链服务:
a.P2P协议组件
b.分布式账本组件
c.共识管理器组件
d.账本存储组件

4.智能合约服务:
智能合约分为公开,保密和访问控制几种类型.公开合约可供任何一个成员调用,保密合约只能由验证成员发起,访问控制型合约允许某些批准过的成员调用,

5.应用编程接口
主接口采用REST API,基本与Fabric服务相对应,API分为身份,策略,区块链,交易(对应区块链服务)和智能合约等几类.

网络组成:
1.身份服务节点:负责发放和管理用户组织的身份,具体来说就是在注册,交易,传输过程中使用各类数字证书,以及区块链相关的密钥

2.验证节点:创建和校验交易,并且维护智能合约的状态.在执行交易时,一般需要和其他多数的验证节点达成共识(取决于共识算法),然后才能更新本地的账本数据.每个验证节点在本地都保存一份账本的副本

3.非验证节点:主要是接收客户端的请求,组装交易,并发往验证节点处理,从这个角度看,非验证节点像交易预处理器,并不负责交易的实际执行.为了加速客户端的查询响应速度,非验证节点在本地也保留一份账本数据的拷贝.

4.应用节点:主要提供用户端(例如浏览器或移动设备)的后台服务,在收到请求后,把交易请求直接发往(或经由非验证节点转发)验证节点处理.

交易的执行:
1.客户端发送执行请求给任意一个验证节点
2.验证节点收到请求后,向本地账本(ledger)发送启动交易的指令
3.验证节点创建隔离的运行环境,启用应用(智能合约)的代码
4.应用执行过程中,更新本地账本的状态
5.应用完成后,验证节点向本地账本确认交易
6.验证节点向其他验证节点广播交易