主页 > imtoken苹果下载不了 > Fabric Hyperledger 架构的功能图

Fabric Hyperledger 架构的功能图

imtoken苹果下载不了 2023-03-25 07:50:50

Fabric超级账本的基本架构功能、账本结构、源代码和智能合约。

更多区块链技术及应用分类:

区块链应用 区块链开发

其他链条

代币经济|

一、Fabric系统架构

结构图

Fabric超级账本架构功能图示

二、网络拓扑结构 1、节点类型

客户端节点:中介节点

Peer节点:(Anchor(锚节点)或Endorser(背书节点)或Committer(计算节点))

Orderer节点:排序(solo/kafka排序)不支持拜占庭容错机制(恶意节点)

CA:(fabric提供的可选ca组件,或者第三方机构,比如中国的CFCA)

2.拓扑图例

Fabric超级账本架构功能图示

企业级联盟链:排序节点可以暴露在公网中,每个企业实体只暴露一个主节点。

以太坊经典和以太坊_以太坊节点类型_以太坊为什么叫以太坊

三、交易流程

Fabric超级账本架构功能图示

(1) 客户端先去背书节点获取模拟执行结果和背书节点签名,然后向排序节点提交交易(模拟执行结果+签名)

(2) 主节点收到打包好的区块后,回头计算验证某笔交易是否有效。 如果无效,仍会保存在区块账本中,但不会更新状态数据库(无效交易后会浪费磁盘空间,后续版本会过滤掉无效交易)

三、共识机制 1、总体流程

交易背书(模拟-Endorser)

交易排序(Sorting-Orderer)

交易验证(Verification-Committer)

2.交易排序

目的:保证系统事务顺序的一致性(有限状态机)

3、多渠道模式

Fabric超级账本架构功能图示

4.Orderer部分源码

Fabric超级账本架构功能图示

以太坊为什么叫以太坊_以太坊经典和以太坊_以太坊节点类型

三、账本结构 1.Peer 账本存储

Fabric超级账本架构功能图示

Orderer节点的账本存储:只是临时存储,不影响世界状态和历史状态以太坊节点类型,只是块存储。

Peer节点的账本存储:

块存储在文件系统中,需要使用levelDB作为块索引

状态数据库存储区块链上的最新数据,可以复制。 (couchDB可以支持结构化数据存储和模糊查询)

历史状态索引,如果没有状态数据库,可以使用recovery。 只存储状态变化对应的交易ID,不存储状态结果,节省存储空间。

2. 世界状况

事务执行后所有key的最新值

显着提高链码执行效率

世界状态是所有交易日志的快照,可以随时重构

3.历史数据索引(可选)

记录更改操作以太坊节点类型,而不是具体更改

历史阅读-->历史数据索引+区块阅读

以太坊经典和以太坊_以太坊节点类型_以太坊为什么叫以太坊

账本最大容量:64M * 100,0000

块提交:

保存块文件 ==> 更新世界状态 ==> 更新历史状态(可选)

4.源码解读(4部分)

读写集

状态数据

历史世界

块文件

核心 --> 账本 -->

(1)交易模拟执行器代码位置(读写集的实现):

核心\分类账\kvledger\txmgmt\txmgr\lockbasedtxmgr\lockbased_tx_simulator.go

(2)读写集的验证:

核心\分类账\kvledger\txmgmt\验证器\statebasedval\state_based_validator.go

(3)状态数据库:

以太坊为什么叫以太坊_以太坊经典和以太坊_以太坊节点类型

核心\分类账\kvledger\txmgmt\statedb\stateleveldb\stateleveldb.go

// 3 个问题

// 1. 如何关联智能合约键值对与底层存储的键值对数据隔离

// 2. 如何持久化区块的状态信息

// 3. 如何识别最新存储的区块号

(4) 历史数据库

核心\分类账\kvledger\历史\historydb\historyleveldb\historyleveldb.go

(5) 块文件

通用\分类帐\blkstorage\fsblkstorage\fs_blockstore.go

4. 智能合约(链码)

只有背书节点才能执行链码

1.链码生命周期:

安装

以太坊为什么叫以太坊_以太坊节点类型_以太坊经典和以太坊

实例化(只执行一次)

升级

相互作用

2. Chaincode交互流程

Fabric超级账本架构功能图示

ESCC系统链码用于完成系统进程,在节点进程中运行

3.系统链码

LSCC:管理链代码生命周期(部分)

CSCC:配置管理链码

QSCC:查询账本存储

ESCC:交易背书链码

VSCC:用于交易验证

4. Chaincode编程接口

在里面()

调用()

原文链接:Fabric Hyperledger架构功能图