fabric学习笔记3
fabric学习笔记3
20201303张奕博 2023.1.11
Hyperledger Fabric架构设计
分布式帐本
区块链核心概念是分布式帐本,就像下面的图1所示,同样的帐本(全量的交易数据,详见下节)在任意一台节点(不包括客户端)上都有。所以,其优点是数据很难造假,造假后也可以通过追溯记录来追究法律责任。而缺点就是极大的浪费,传统服务每份数据都尽量少存几份,即使存了三份拷贝都已经考虑到诸多异常,并使服务可用性达到N个9了。而区块链这种特性,同时造成的另一个问题是帐本不能太大,至少不能超过区块链网络中最小结点的存储以及处理能力。所以,这制约了总交易数,进而也影响了能写入区块链的单条交易数据的大小。
fabric联盟链的开发人员主要分为三类:底层是系统运维,负责系统的部署与维护;其次是组织管理人员,负责证书、MSP权限管理、共识机制等;最后是业务开发人员,他们负责编写chaincode、创建维护channel、执行transaction交易等。
fabric去中心化设计
去中心化的设计,必然需要通过投票(多数大于少数)来维持数据一致性,而任何投票都必须经历以下三个过程:
有一方先提出议案proposal,该议案有对应的一批投票者需要对该结果背书,这些投票者依据各自的习惯投票,并将结果反馈;
统计投票结果,若获得多数同意,才能进行下一步;
将获得多数同意的议案记录下来,且公之于众。
而这三步fabric当然也少不了,当然它的称法就有所不同,其对应的三步如下:
由client上的CLI或者SDK进行proposal议案的提出。client会依据智能合约chaincode根据背书策略endorse policy决定把proposal发往哪些背书的peer节点,而peer节点进行投票,client汇总各背书节点的结果;
client将获得多数同意的议案连同各peer的背书(包括其投票结果以及背书签名)交给orderring service,而orderer会汇总各client递交过来的trasaction交易,排序、打包。
orderer将交易打包成区块block,然后通知所有commit peer,各peer各自验证结果,最后将区块block记录到自己的ledger账本中。
最新文章
- 使用Mulesoft建立webservice, simple方式,POJO
- Distinct<;TSource>;(IEqualityComparer<;TSource>; comparer) 根据列名来Distinct
- JQuery移除事件
- 【BZOJ】【3261】最大异或和
- Linux无处不在
- UVA 1619 Feel Good(DP)
- A First Exploration Of SolrCloud
- IOS遍历未知对象属性、函数
- Servlet中文乱码处理
- Js获取url传递过来的参数
- Ajax之路
- Leetcode 1-10
- ES系列五、ES6.3常用api之搜索类api
- Hadoop错误集:Journal Storage Directory not formatted
- 搜索旋转排序数组 II
- 第八章 计时器(DIGCLOCK)
- go语言项目汇总
- ajax传参里含有特殊字符的坑
- poj1573 Robot Motion(DFS)
- C#:复选框操作类
热门文章
- transformers 之Trainer对应的数据加载
- allure标题样式错乱处理
- # huawei--流策略+NAT+单臂路由
- iOS开发之各机型屏幕大小与键盘高度整理
- WPF 入门教程DispatcherTimer计时器
- 使用fopen,fscanf等函数报安全性问题的错误,unsafe...
- C# 前台线程 后台线程区别
- Access 时间查询 与 SQL SERVER 不一样的几个地方
- ISP(图像信号处理)算法概述、工作原理、架构、处理流程
- centos8使用kubeadm搭建高可用k8s集群