Hyperledger Fabric是最流行的联盟区块链平台。Fabric区块链Python开发详解课程

涵盖Fabric区块链的核心概念、Fabric网络搭建、Node链码开发、Python应用开发等,

并提供关键知识点的预置代码,适合Python工程师快速掌握Fabric区块链应用开发技能。

访问网址:Fabric区块链Python开发详解。

1、Fabric区块链Python开发课程概述

Hyperledger 是一个旨在推动区块链跨行业应用的开源项目, 由 Linux基金会在2015年12月主导发起该项目,

成员包括金融、银行、物联网、供应链、制造和科技等多个行业的领头羊,托管了众多面向企业的区块链

开源框架和工具:

Hyperledger Fabric(后文简称Fabric)是其中发展最好的一个企业级区块链平台,最初由Digital Asset和IBM

贡献,目前已经应用于沃尔玛的食物溯源链(Foodtrust)和马士基的物流跟踪链(TradeLens)中,

代表了当下企业级区块链应用的最高水平。可以认为Fabric是一种联盟链(Consortium Blockchain)平台,

它适合构建跨越多个企业边界的去中心化应用。

由于Fabric项目的目标是应用于相对可信的企业联盟环境,因此其设计思路与比特币、以太坊

等公链平台有明显的差异。Fabric借鉴了区块链的数据结构,但引入了相当多的身份验证与

权限控制机制,以及数据隐私保护机制,以适应企业级应用的要求。同时由于企业联盟环境

要比完全开放的公链环境可控,因此Fabric没有强调其共识体系对拜占庭容错的实现,允许使用

非拜占庭容错算法建立共识,从而可以达到相当实用的交易吞吐量。

2、Fabric的定位与特点

毫无疑问,Fabric是受到比特币的启发而诞生的,因此它借鉴了比特币、以太坊这些公链中的一些

核心特性,例如采用不可篡改的区块链结构来保存数据、采用非对称加密技术来进行身份识别

与认证、支持智能合约等等。

但是Fabric定位于企业级的分布式账本技术(DLT - Distributed Ledger Technology)平台,

它的主要目的是为跨越多个企业边界的活动提供不可篡改的分布式记账平台。例如在食物溯源

应用中,为了让消费者可以了解到所购买食物是否安全,就必须将从农场到加工商、分销商、

零售商乃至监管机构等各个环节的检验与放行信息记录到区块链上,以保证溯源信息的透明与可信:

因此Fabric是一种联盟链(Consortium Blockchain),它适合在多个企业间实现分布式记账,这一

定位使Fabric的实现与以太坊这样的公链有了明显的差异:

分布式账本 vs. 区块链

分布式账本是比区块链更加宽泛的概念,可以认为区块链只是分布式账本的一种实现技术,

其他的分布式账本实现还包括哈希图等。

去中心化 vs. 分布式

Fabric淡化了去中心化(Decentralized),而以分布式(Distributed)代替,这一思路带来了系统设计

与实现上的巨大影响。

例如,在Fabric中,采用中心化的CA机制来发放证书,只有持有有效证书的节点和用户才可以访问区块链

上的账本数据。因此Fabric是许可制 / Permissioned的区块链,这与不需要许可 / Permissionless

的以太坊这样的公链形成了鲜明的对比。

拜占庭容错 vs. 崩溃容错

由于采用许可机制,Fabric也淡化了对不可信(Trustless)环境下共识达成的依赖性,而假设

联盟链中的企业有可能是值得信赖的,因此并不依赖于工作量证明这样的拜占庭容错算法 —— 虽然

Fabric模块化的设计可以支持引入不同的共识算法实现,但目前的产品化方案是Kafka共识,它显然

是不能对抗拜占庭错误的 —— 不过对不可信环境支持的淡化处理有利于提高交易的吞吐量,这对于企

业级应用也是有益的。

数据隐私保护

在另一方面,Fabric强化了隐私保护能力。例如,Fabric支持在同一套企业网络上建立多个不同

的通道 / Channel,每一个通道都有自己的区块链和访问控制,彼此互不影响,这有利于

复用基础设施,例如不同企业间的销售部门可以建立一个通道来分享市场数据,而这些企业间的

研发部门可以建立另一个通道来分享技术数据。

Fabric并不是唯一的联盟链解决方案,但目前可以说是最复杂的企业联盟链实现,这种复杂性

源于设计者对应用场景的假设和推演,以及对Fabric广泛适用性的考量,这是我们在学习过程

中需要换位思考的一点。

3、Fabric区块链Python开发课程内容概述

本课程适合Python开发人员快速掌握超级账本Fabric区块链的设计思路、

核心概念、网络搭建、链码及应用开发等知识点,课程主要内容简述如下:

第一章、课程概述

简介Fabric项目来源、定位特点、适用场景以及其与公链平台的重要区别。

第二章、初识Fabric

创建一个最小CA,搭建一个最小Farbic网络,开发一个最小Fabric链码,用Python

实现一个最小Fabric应用,从零开始学习并掌握Farbic中的核心概念、设计思路、

实用工具与开发模型。

第三章、身份与权限管理机制

深入学习Fabric中的身份验证机制与权限管理机制,理解证书、成员服务提供器、

策略、访问控制清单等核心概念并掌握其创建、部署和使用方法。

第四章、通道配置与更新

深入学习Fabric的通道配置初始化与更新流程、相关数据结构以及配置工具的

操作方法。

第五章、链码开发进阶

学习理解链码运行机制、掌握状态历史跟踪、富查询、Contract API等链码

开发进阶知识。

第六章、Python应用开发进阶

学习掌握通道事件监听、连接配置文件、通道及链码的Python程序化运维等应用开发进阶知识。

python区块链开发_Fabric区块链Python开发详解相关推荐

  1. python 匿名函数示例_扣丁学堂Python3开发之匿名函数用法示例详解

    扣丁学堂Python3开发之匿名函数用法示例详解 2018-07-26 14:01:11 1324浏览 今天扣丁学堂Python培训给大家分享关于Python3匿名函数用法,结合实例形式分析了Pyth ...

  2. python 自动化发送邮件_Python自动化必备发送邮件报告脚本详解

    #!/usr/bin/python3 # -*- coding:UTF-8 -*- import smtplib #smtplib库主要用来连接第三方smtp库,用来发邮件 from email.mi ...

  3. PyKivy入门教程:Kivy Python库的介绍、安装及使用方法详解

    PyKivy入门教程:Kivy Python库的介绍.安装及使用方法详解 Kivy是一个跨平台的Python GUI工具包,可以用于开发能够在多种设备和操作系统上运行的应用程序.Kivy支持触摸输入. ...

  4. Python函数(函数定义、函数调用)用法详解

    函数 函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,不需要编写大量重复的代码. 函数可以提前保存起来,并给它起一个独一无二的名字,只要知道它的名字就能使用这段代码.函数还可以接 ...

  5. 站长在线python精讲:在Python中使用len()函数计算字符串的长度详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用len()函数计算字符串的长度详解>.本知识点主要内容有:在Python中使用len()函数计算字符串在 ...

  6. python代码案例详解-我用Python抓取了7000 多本电子书案例详解

    安装 安装很简单,只要执行: pip install requests-html 就可以了. 分析页面结构 通过浏览器审查元素可以发现这个电子书网站是用 WordPress 搭建的,首页列表元素很简单 ...

  7. python 命令-python解析命令行参数的三种方法详解

    这篇文章主要介绍了python解析命令行参数的三种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python解析命令行参数主要有三种方法: ...

  8. python中requests库的用途-python中requests库session对象的妙用详解

    在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也 ...

  9. python处理excel大数据-Python实现大数据收集至excel的思路详解

    一.在工程目录中新建一个excel文件 二.使用python脚本程序将目标excel文件中的列头写入,本文省略该部分的code展示,可自行网上查询 三.以下code内容为:实现从接口获取到的数据值写入 ...

  10. python怎么读文件夹下的文件夹-python如何获取当前文件夹下所有文件名详解

    前言 本文主要给大家介绍了关于python获取当前文件夹下所有文件名的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 os 模块下有两个函数: os.walk() os.li ...

最新文章

  1. android的各种*.img 文件
  2. 【ABAP增强】基于函数的出口CMOD
  3. 关于全角半角转换(转)
  4. 改变UITableView选中行高亮的颜色
  5. 【NOIP模拟】图论题Graph
  6. 常用matlab函数(不定时更新)
  7. Linux 查看 MySQL 版本的四种方法
  8. java-io流理解
  9. Spark Yarn-cluster与Yarn-client
  10. mex2 Inputs and Outputs
  11. python有趣的代码-分享几款由quot;Python”语言编写的quot;有趣、恶搞、好玩”的程序代码...
  12. LeetCode-2: Add Two Numbers
  13. 显示器不能全屏及开机慢解决方案
  14. 建立可扩展的silverlight 应用框架 step-3
  15. 20200612每日一句
  16. 设计【SPFA】【差分约束】
  17. 计算机面试题100题,精选面试100题及答案.doc
  18. linux 123端口,关闭123端口和1900端口的方法
  19. 自动化测试如何计算ROI
  20. 交互器、linux下的常用命令

热门文章

  1. Python-list中的append()和extend()方法区别
  2. Python面向对象反射,双下方法
  3. python中字典的几种定义方式
  4. linux 不同进程间能否传递指针?(不能,虚拟地址进程私有,被不同进程映射到物理地址不同)
  5. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(2)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅰ
  6. pytorch中的CrossEntropyLoss
  7. python 列表赋值操作可能存在的潜在问题
  8. CentOS搭建Redis-cluster。corrupte cluster config file;redis requires Ruby version;can‘t connect to node
  9. java数据类型常见面试题
  10. asp连接不到我mysql里_ASP连接MYSQL问题点解决