IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> Hyperledger Fabric2.x的一些基本概念之(一) -> 正文阅读

[区块链]Hyperledger Fabric2.x的一些基本概念之(一)

▲ 点击101链视界,关注不走丢

大家好,我是阿创,这是我的第30篇原创文章。

我比较爱看书,2021年全年我的阅读量大概是20+本书,涵盖法律、哲学、技术、人文。

但是阅读量一上来反而会觉得,单纯的阅读其实是在逃避,所以我决定还是将自己的阅读和思考梳理出来,写一点对大家有帮助的文字。

最近一直在思考自己的核心竞争力在哪里,我发现还是要聚焦到技术领域,经过一段时间的摸索,决定近期聚焦Fabric的源码,写一个系列文章。

虽然网上有很多解读Fabric源码的博客,但我希望写点不一样的。曾经听过张宇老师的课,他在课上介绍了华罗庚先生曾经说过的一句话:“数无形时少直觉,形少数时难入微。”

我对这句话十分认同,因此也想斗胆用图表配上文字来表达自己的思考,希望对你,对我都有帮助。

本系列文章将以Hyperledger Fabric2.x系列为基础进行分析。

Fabric源码解读的第一篇文章,题为:《Hyperledger Fabric2.x的一些基本概念之(一)》,主要介绍交易、区块两个概念。

  1. 交易(Transaction)

交易(Transaction,或称为事务)是Fabric的核心概念,通常是指通过调用链码(智能合约)改变账本状态数据的一次操作。

对账本状态的变更是用交易结果读写集来描述的,将交易集合经过Orderer节点排序后按规则打包到区块中。

图片

图片

(1)普通交易消息封装了变更账本状态的执行交易结果,需要经过排序后打包成区块。

图片

(2)配置交易消息则用于创建新的应用通道或更新通道配置,通常在排序后单独打包成区块,同时将最新配置区块号更新到最新的区块元数据中以便于索引查找。

图片

  1. 区块(Block)

区块(Block)是指一段时间内发生的交易集合,经排序后按规则打包后并添加签名、哈希值、时间戳与其他元数据所构成的数据结构。

图片

区块链就是以区块为基础按照时间顺序连接构成的链状数据结构。

图片

Fabric中的区块结构(Block类型)包括区块头Header、交易数据集合Data以及区块元数据Metadata三个部分。

图片

(1)区块头Header封装了区块号、前一个区块的哈希值、当前区块的哈希值

(2)交易数据集合Data封装了打包的交易集合

(3)区块元数据Metadata封装了如下4个元数据索引项:

  • BlockMetadataIndex_SIGNATURES:区块签名;

  • BlockMetadataIndex_LAST_CONFIG:最新配置区块的区块号;

  • BlockMetadataIndex_TRANSACTIONS_FILTER:最新交易过滤器,封装了交易数据集合Data中所有交易对应的交易验证码,标识其交易的有效性。

  • BlockMetadataIndex_ORDERER:Orderer配置信息,如Kafka共识组件的初始化参数。

实际上,真实的区块数据结构远比上图复杂,本文权当抛砖引玉,为后文的深入介绍打下基础。

这里放出Fabric区块数据结构的代码:github.com/hyperledger/fabric-protos-go/common/common.pb.go

// This is finalized block structure to be shared among the orderer and peer
// Note that the BlockHeader chains to the previous BlockHeader, and the BlockData hash is embedded
// in the BlockHeader.  This makes it natural and obvious that the Data is included in the hash, but
// the Metadata is not.
type Block struct {
   Header               *BlockHeader   `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
   Data                 *BlockData     `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
   Metadata             *BlockMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
   XXX_NoUnkeyedLiteral struct{}       `json:"-"`
   XXX_unrecognized     []byte         `json:"-"`
   XXX_sizecache        int32          `json:"-"`
}

期待后面我们一起对fabric区块数据结构做深入剖析,像剥洋葱一样,循序渐进,由浅入深

如果你觉得写得不错

麻烦给个赞~

关注我,带你了解区块链行业

推荐阅读:

1、一个好用的多方隐私求交算法库MultipartyPSI-Pro

2、区块链产业发展五大趋势:数据安全、科技监管、自主可控、双碳战略、数字经济

3、揭秘北京冬奥会开幕式“数字雪花”背后的区块链技术

4、Web3对于我们普通人意味着什么?

5、最近火爆的数字藏品究竟是什么?

6、《区块链是构建产业互联网的可信基础设施》

7、《隐私计算布局思考》

8、读书 |《数据资产论》:数据如何资产化?

9、区块链产业发展五大趋势:数据安全、科技监管、自主可控、双碳战略、数字经济


提前看到未来的人,
? 和花一辈子都看不清的人,
? 注定是截然不同的命运。

点击下方卡片关注101链视界******,和1000+读者一起**

洞察技术本质

图片

101链视界

区块链、隐私计算与金融科技领域的专业知识分享者。

29篇原创内容

公众号

▲ 点击上方卡片关注101链视界,洞察技术本质

技术交流 | 行业研报 | 前沿洞察?| 转载开白 | 加入社群

请在公众号后台回复 合作

欢迎把文章分享到朋友圈

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 13:08:56  更:2022-02-16 13:10:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:49:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码