fabric 笔记 1 系统框架

本文深入探讨区块链技术核心概念,包括交易、区块与链的基本原理,分析公有链、联盟链及私有链的区别,阐述去中心化、去信任化、数据共享及不可篡改等特性。并介绍了P2P网络、密码学哈希、加解密算法在区块链中的应用,以及fabric框架下的网络拓扑结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

区块链技术名词
区块链离不开一下三个名词
交易 ,所谓交易就是一次状态转移操作
针对比特币来说,是一次转帐,一次操作,在fabric当中可以理解成是一次键值对的增删改查
其次是区块
区块是指交易的集合,在一个区块链网络中,某个节点将它某个时间段内所有的数据打包就行程了一个区块
最后是链
所谓的链是区块的顺序排列,程序员对链是相当熟悉,是单链表,双链表,而区块链是典型的单链表结构, 一个区块有一个哈希,后一个区块包含着前一个区块的哈希,这样的区块顺序排列就形成了区块链这样的单链表排列

区块链类型

公有链
联盟链
私有链

区块链的特点

去中心化

区块链网络中,每个节点都属于不通的服务器,节点数越多,主体越多,这样就达成了去中心化的效果,但是多少个节点就算一个真正意义上的去中心化,是没法定论的

去信任化

在区块链出现以前,多方要达成一笔信任交易,无论要通过双方谈判还是中介是无可避免的,在区块链出现以后,我们只需要信任这个网络就可以了

数据共享

所谓数序共享比较好理解,在区块链中,每个节点的数据都是一致的,自然而然就形成了数据共享的一个效果

不可篡改

经常有人说数据上了链就不能修改,上传时候怎么样,无论什么时候看都是这样子,但是这明显不符合区块链的特点,不可篡改的意思是说只要我发起了一笔交易,这笔交易被全网接收了之后,我就不能单方面的撤销这笔交易,我如果想撤销这笔交易,必须要再次发起一笔交易告诉全网我要撤销之前一笔交易,是这样的一个过程,就是你有能力真正意义上去篡改一笔交易,但是你付出的努力会比你得到的回报更多,得不偿失的效果。

P2P网络协议

点对点网络协议
迅雷用的就是这个。
中心化 传统网络是一个服务端提供服务,N个客户端使用服务,系统的可靠性依赖服务端的可靠性,服务端挂掉,不可用,除非重启服务端。
分布式 恢复能力。还是依赖于服务的提供方,如果提供方作假,篡改数据,我们辛苦的钱可能要打水漂
去中心化 生而平等 所有人都是客户端也是服务端。是消费者也是生产者

密码学 哈希(HASH)

将不定长度的数据转换成固定长度的哈希值
常见的算法有
MD5,SHA1 ,SHA2(SHA2-256)
现在推荐SHA2算法
一个好的哈希算法要满足以下特点
正向快速,逆向困难
输入敏感, 一段数据即便修改很小的值得到的哈希值也应该有很大不同
最后一点就是 能够
抗碰撞 很难很难找到俩段哈希值一样的数据 如果很容易这样子的算法就变得毫无意义
哈希数值通常用于数字摘要,用固定长度的数据代替原始数据,确保数据的真实性
密码术-加解密算法
为了防止数据泄密,我们在银行使用的U盾,就是一种应用。
加密算法分为2种,一种是对称加密,一种是非对称加密
对称加密:密钥相同,易泄露,(AES DES等)

非对称加密:公钥/私钥. 效率低(RSA,椭圆曲线等)

GRPC

fabric 采用异步通信模式开发 可以在链码里面定义某些事件去监听当某个事件触发,我们可以执行之前定义的回调函数(事件 不太理解 怎么使用)

成员服务 注册登录 身份认证 ,这里的成员或者是注册登录并不是我们通常意义上的用户名密码形式,也不是为每个用户在区块链上建立一个身份证,而是能与区块链底层交互的身份管理,一个应用程序可能从头到尾就用一个身份来完成所有与区块链交互的功能,这样的成员里面,每个成员都包含着多个证书,比如用于用户注册的证书,交易签名的证书,以及加密传输所用的TLS证书。

账本管理
对区块的查询,有多种查询方式,比如区块高度,从创始块开始,每个块都有个固定的编号,从1开始,每次都加1,
每个区块都根据,它的区块头,以及这个区块包含的交易,根据哈希算法算出唯一的哈希,基本上这个哈希在整个账本里面是不会重复的,我们可以把这个区块哈希理解为这个区块的主键,或者叫做唯一键。另外可以根据交易ID来查询区块

交易
通过交易模块,提交交易到背书节点,在获得交易背书以后,将交易

整体框架

网络拓扑

客户端节点(应用程序和底层之间 交互的媒介节点 不能够独立存在) 必须与orderer 节点 peer节点 建立连接 才能发挥它的作用
连接到orderer节点 通道创建 ,连接到 peer节点 交易模拟执行 ,在一个基于fabric区块链里面 ,客户端是不可获取的
peer节点 (Anchor/Endorser/Commiteer)
Anchor节点是跟组织紧密关联的 ,一个组织内部可能会有多个peer节点,但只有一个Anchor节点 ,可以翻译成锚节点,是组织内唯一一个与orderer节点通信的节点,锚节点可以由网络最开始时候指定 ,如果这个节点宕机,或者其他原因下线了,组织内部节点可以通过自动选举,选择一个新的节点与Orderer进行连接 ,这个过程是自动化的
Endorser 我们可以把它叫做背书节点 ,也可以理解成担保,作用就是为交易做担保,fabric的共识分为三部,第一步就是客户端发送交易提案到背书节点 进行交易模拟 ,执行完成之后对交易结果执行签名背书,背书节点不是固定的节点类型,是跟fabric的智能合约是绑定的,每个智能合约被安装到区块链上的时候,都会设置专有的背书策略,指定改交易是经过哪些背书节点之后才是有效的,也就是说只有在背书节点上才会运行智能合约,如果一个节点不是背书策略里的一员,那它就是普通的peer节点,也就是commiteer节点,所有的Peer节点都是记账节点,不论他是锚节点,还是背书节点,记账节点的功能是用于从orderer接收的区块,验证区块的有效性以及交易的有效性,验证完成之后记录到本地的账本中,如果交易有效,同时更改区块链的状态数据,这就是我们通常理解的记账,peer节点的三种类型不是排斥的,一个节点可能同时是锚节点,背书节点,记账节点,也可能是其中一种角色或两种角色
Orderer 另外我们重点关注的是orderer,他有2个功能,第一个功能是从客户端接收交易,然后将交易按一定的规则进行排序,第二个功能就是按照固定的时间间隔打包成区块分发给组织的主节点,官方现在支持的有三种排序,solo (适用与开发,单点故障比较严重,),kafka(将排序的功能给kafka集群,每一个orderer都是kafka的生产者和消费者,生产这把从客户端接收到的所有交易 ,发送到kafka集群,同时又从kafka集群里面获取交易,这样获得的交易是排好序列的,但是这俩种的排序都不是那么的区块链)一般情况下我们说的共识都是支持拜占庭容错的,但这俩种都不支持 ,raft
CA 证书颁发机构,主要作用是建立区块链上的一个身份,是否是有效的,是否是合法的,只有被CA机构认可的身份才能在区块上进行交易,否则就会被拒绝,在fabric里面ca机构是可以选择的,可以要,可以不要,

在这里插入图片描述

客户端用4条线与之关联,代表4个不同的操作
每个组织都会有ca的根证书,区块链网络里面如果只有一个ca机构的话,就必须保证这个ca机构的根证书能够被所有机构组织认可

peer节点里面无论有几个节点,都只有一个主节点,从orderer节点接收区块,然后通过gossip协议,在组织内部进行区块扩散,组织之间节点是独立的,不会进行通信,共同的数据来源是排序节点,

排序节点主要有俩个功能,第一个功能是从客户端那里接收交易,然后在排序节点内部排好序之后,打包成区块,广播给其他组织的主节点

fabric的网络拓扑结构更像竖线结构,最上面是orderer节点,其次是peer的主节点,然后是记账节点,fabric的最终目标是企业级联盟链,企业之间组网有很大问题就是,企业的网络控制是比较严格的,重要的数据都保存在内网中,这就为区块链的普及造成了很大障碍,fabric就没有这样的问题,我们可以将orderer节点部署在公网中,然后每个企业主体只暴露一个主节点就可以了,这是我认为设计比较巧妙的地方,不用大动干戈就可以使用区块链

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值