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账本中。

最新文章

  1. 使用Mulesoft建立webservice, simple方式,POJO
  2. Distinct<TSource>(IEqualityComparer<TSource> comparer) 根据列名来Distinct
  3. JQuery移除事件
  4. 【BZOJ】【3261】最大异或和
  5. Linux无处不在
  6. UVA 1619 Feel Good(DP)
  7. A First Exploration Of SolrCloud
  8. IOS遍历未知对象属性、函数
  9. Servlet中文乱码处理
  10. Js获取url传递过来的参数
  11. Ajax之路
  12. Leetcode 1-10
  13. ES系列五、ES6.3常用api之搜索类api
  14. Hadoop错误集:Journal Storage Directory not formatted
  15. 搜索旋转排序数组 II
  16. 第八章 计时器(DIGCLOCK)
  17. go语言项目汇总
  18. ajax传参里含有特殊字符的坑
  19. poj1573 Robot Motion(DFS)
  20. C#:复选框操作类

热门文章

  1. transformers 之Trainer对应的数据加载
  2. allure标题样式错乱处理
  3. # huawei--流策略+NAT+单臂路由
  4. iOS开发之各机型屏幕大小与键盘高度整理
  5. WPF 入门教程DispatcherTimer计时器
  6. 使用fopen,fscanf等函数报安全性问题的错误,unsafe...
  7. C# 前台线程 后台线程区别
  8. Access 时间查询 与 SQL SERVER 不一样的几个地方
  9. ISP(图像信号处理)算法概述、工作原理、架构、处理流程
  10. centos8使用kubeadm搭建高可用k8s集群