Hyperledger是一个旨在推进区块链跨行业应用的开源项目,由Linux基金会在2015年12月主导发起该项目,成员包括金融、银行、物联网、供应链、制造和科技等多个行业的领头羊,托管了众多面向企业的区块链开源框架和工具。java
Hyperledger Fabric(后文简称Fabric)是其中发展最好的一个企业级区块链平台,最初由Digital Asset和IBM贡献,目前已经应用于沃尔玛的食物溯源链(Foodtrust)和马士基的物流跟踪链(TradeLens)中,表明了当下企业级区块链应用的最高水平。能够认为Fabric是一种联盟链(Consortium Blockchain)平台,它适合构建跨越多个企业边界的去中心化应用。node
因为Fabric项目的目标是应用于相对可信的企业联盟环境,所以其设计思路与比特币、以太坊等公链平台有明显的差别。Fabric借鉴了区块链的数据结构,但引入了至关多的身份验证与权限控制机制,以及数据隐私保护机制,以适应企业级应用的要求。同时因为企业联盟环境要比彻底开放的公链环境可控,所以Fabric没有强调其共识体系对拜占庭容错的实现,容许使用 非拜占庭容错算法创建共识,从而能够达到至关实用的交易吞吐量。git
毫无疑问,Fabric是受到比特币的启发而诞生的,所以它借鉴了比特币、以太坊这些公链中的一些核心特性,例如采用不可篡改的区块链结构来保存数据、采用非对称加密技术来进行身份识别 与认证、支持智能合约等等。算法
可是Fabric定位于企业级的分布式帐本技术(DLT - Distributed Ledger Technology)平台,它的主要目的是为跨越多个企业边界的活动提供不可篡改的分布式记帐平台。例如在食物溯源应用中,为了让消费者能够了解到所购买食物是否安全,就必须将从农场到加工商、分销商、 零售商乃至监管机构等各个环节的检验与放行信息记录到区块链上,以保证溯源信息的透明与可信。安全
所以Fabric是一种联盟链(Consortium Blockchain),它适合在多个企业间实现分布式记帐,这必定位使Fabric的实现与以太坊这样的公链有了明显的差别:网络
分布式帐本是比区块链更加宽泛的概念,能够认为区块链只是分布式帐本的一种实现技术,其余的分布式帐本实现还包括哈希图等。数据结构
Fabric淡化了去中心化(Decentralized),而以分布式(Distributed)代替,这一思路带来了系统设计与实现上的巨大影响。例如,在Fabric中,采用中心化的CA机制来发放证书,只有持有有效证书的节点和用户才能够访问区块链上的帐本数据。所以Fabric是许可制/Permissioned的区块链,这与不须要许可/Permissionless的以太坊这样的公链造成了鲜明的对比。框架
因为采用许可机制,Fabric也淡化了对不可信(Trustless)环境下共识达成的依赖性,而假设联盟链中的企业有多是值得信赖的,所以并不依赖于工做量证实这样的拜占庭容错算法,虽然Fabric模块化的设计能够支持引入不一样的共识算法实现,但目前的产品化方案是Kafka共识,它显然是不能对抗拜占庭错误的,不过对不可信环境支持的淡化处理有利于提升交易的吞吐量,这对于企 业级应用也是有益的。less
在另外一方面,Fabric强化了隐私保护能力。例如,Fabric支持在同一套企业网络上创建多个不一样的通道/Channel,每个通道都有本身的区块链和访问控制,彼此互不影响,这有利于复用基础设施,例如不一样企业间的销售部门能够创建一个通道来分享市场数据,而这些企业间的 研发部门能够创建另外一个通道来分享技术数据。分布式
Fabric并非惟一的联盟链解决方案,但目前能够说是最复杂的企业联盟链实现,这种复杂性源于设计者对应用场景的假设和推演,以及对Fabric普遍适用性的考量,这是咱们在学习过程当中须要换位思考的一点。
本课程适合nodejs开发人员快速掌握超级帐本Fabric区块链的设计思路、 核心概念、网络搭建、链码及应用开发等知识点,课程主要内容简述以下:
简介Fabric项目来源、定位特色、适用场景以及其与公链平台的重要区别。
建立一个最小CA,搭建一个最小Farbic网络,开发一个最小Fabric链码,实现一个最小Fabric应用,从零开始学习并掌握Farbic中的核心概念、设计思路、实用工具与开发模型。
深刻学习Fabric中的身份验证机制与权限管理机制,理解证书、成员服务提供器、 策略、访问控制清单等核心概念并掌握其建立、部署和使用方法。
深刻学习Fabric的通道配置初始化与更新流程、相关数据结构以及配置工具的操做方法。
学习理解链码运行机制、掌握状态历史跟踪、富查询、Contract API等链码开发进阶知识。
学习掌握通道事件监听、Network API等应用开发进阶知识。
但愿尽快学习课程的请访问: