HyperledgerFabricjava区块链开发详解
我们为希望尽快学习Hyperledger fabric 的java⼯程师上线了⼀门教程,课程⾯向初学者,内容即包含Hyperledger Fabric的⾝份证书与MSP服务、权限策略、频道配置与启动、链码通信接⼝等核⼼概念,也包含Fabric⽹络设计、java链码与应⽤开发的操作实践,是java⼯程师学习Fabric区块链开发的最佳选择。
Hyperledger是⼀个旨在推动区块链跨⾏业应⽤的开源项⽬,由Linux基⾦会在2015年12⽉主导发起该项⽬,成员包括⾦融、银⾏、物联⽹、供应链、制造和科技等多个⾏业的领头⽺,托管了众多⾯向企业的区块链开源框架和⼯具。
Hyperledger及Fabric项⽬概述
Hyperledger Fabric(后⽂简称Fabric)是其中发展最好的⼀个企业级区块链平台,最初由Digital Asset和IBM贡献,⽬前已经应⽤于沃尔玛的⾷物溯源链(Foodtrust)和马⼠基的物流跟踪链(TradeLens)中,代表了当下企业级区块链应⽤的最⾼⽔平。可以认为Fabric是⼀种联盟链(Consortium Blockchain)平台,它适合构建跨越多个企业边界的去中⼼化应⽤。
由于Fabric项⽬的⽬标是应⽤于相对可信的企业联盟环境,因此其设计思路与⽐特币、以太坊等公链平台有明显的差异。Fabric借鉴了区块链的数据结构,但引⼊了相当多的⾝份验证与权限控制机制,以及数据隐私保护机制,以适应企业级应⽤的要求。同时由于企业联盟环境要⽐完全开放的公链环境可控,因此Fabric没有强调其共识体系对拜占庭容错的实现,允许使⽤ ⾮拜占庭容错算法建⽴共识,从⽽可以达到相当实⽤的交易吞吐量。
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⼴泛适⽤性的考量,这是我们在学习过程中需要换位思考的⼀点。
课程内容概述
本课程适合nodejs开发⼈员快速掌握超级账本Fabric区块链的设计思路、 核⼼概念、⽹络搭建、链码及应⽤开发等知识点,课程主要内容简述如下:
第⼀章、课程概述
简介Fabric项⽬来源、定位特点、适⽤场景以及其与公链平台的重要区别。
第⼆章、初识Fabric
创建⼀个最⼩CA,搭建⼀个最⼩Farbic⽹络,开发⼀个最⼩Fabric链码,实现⼀个最⼩Fabric应⽤,从零开始学习并掌握Farbic中的核⼼概念、设计思路、实⽤⼯具与开发模型。
第三章、⾝份与权限管理机制
深⼊学习Fabric中的⾝份验证机制与权限管理机制,理解证书、成员服务提供器、 策略、访问控制清单等核⼼概念并掌握其创建、部署和使⽤⽅法。
第四章、通道配置与更新
深⼊学习Fabric的通道配置初始化与更新流程、相关数据结构以及配置⼯具的操作⽅法。
第五章、链码应⽤开发进阶
学习理解链码运⾏机制、掌握状态历史跟踪、富查询、通道事件监听等链码与应⽤ 开发进阶知识。
课程详细⽬录:
1.课程概述
1.1 Hyperledger及Fabric项⽬概述
1.2 Fabric的定位与特点
1.3 课程内容概述
2.初识Fabric
2.1 Fabric架构概述
2.2 ⾝份标识与验证机制
2.3 使⽤OpenSSL构建⼩型CA
2.4 MSP:成员服务提供器
2.5 启动最⼩Fabric⽹络
2.6 通道初始化与节点加⼊
2.7 开发计数器链码
2.8 链码⽅法的路由
2.9 链码的安装与激活
2.10 在应⽤中访问链码
java源代码加密2.11 User接⼝实现类
2.12 通道访问参数设置
2.13 链码查询
2.14 链码交易
2.15 使⽤WIZ开发⼯具箱
3.⾝份与权限管理机制
3.1 ⾮对称密码学
3.2 PKI体系与MSP机制
3.3 使⽤cryptogen配置本地MSP
3.4 从个体⾝份到安全主体
3.5 通道MSP配置
3.6 通道资源访问策略
3.7 策略的DSL描述语⾔
3.8 通道访问控制清单
3.9 通道链码背书策略
4.通道配置与更新
4.1 系统通道的启动与配置块获取
4.2 标准通道的启动与配置块获取
4.3 深⼊通道配置区块
4.4 通道配置更新交易
4.5 通道配置更新流⽔线
5.链码与应⽤开发进阶
5.1 链码运⾏机制概述
5.2 跟踪状态变迁历史
5.3 使⽤复合键
5.4 使⽤CouchDB状态库
5.5 监听通道事件
5.6 使⽤连接配置⽂件
======================================================================
分享⼀些以太坊、EOS、⽐特币等区块链相关的交互式在线编程实战教程:
,主要是针对java和android程序员进⾏区块链以太坊开发的web3j详解。
,主要是介绍使⽤php进⾏智能合约开发交互,进⾏账号创建、交易、转账、开发以及过滤器和交易等内容。
,主要是针对python⼯程师使⽤web3.py进⾏区块链以太坊开发的详解。
,主要介绍智能合约与dapp应⽤开发,适合⼊门。
,主要是介绍使⽤node.js、mongodb、区块链、ipfs实现去中⼼化电商DApp实战,适合进阶。
,课程以⼀个数字艺术品创作与分享DApp的实战开发为主线,深⼊讲解以太坊⾮同质化通证的概念、标准与开发⽅案。内容包含ERC-721标准的⾃主实现,讲解OpenZeppelin合约代码库⼆次开发,实战项⽬采⽤Truffle,IPFS,实现了通证以及去中⼼化的通证交易所。
,主要讲解如何使⽤C#开发基于.Net的以太坊应⽤,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
,本课程帮助你快速⼊门EOS区块链去中⼼化应⽤的开发,内容涵盖EOS⼯具链、账户与钱包、发⾏、智能合约开发与部署、使⽤代码与智能合约交互等核⼼知识点,最后综合运⽤各知识点完成⼀个便签DApp的开发。
,本课程以⼿机EOS钱包的完整开发过程为主线,深⼊学习EOS区块链应⽤开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS 区块链的核⼼概念,同时也讲解如何使⽤eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应⽤中集成对EOS区块链的⽀持。课程内容深⼊浅出,⾮常适合前端⼯程师深⼊学习EOS区块链应⽤开发。
,
本课程⾯向初学者,内容即涵盖⽐特币的核⼼概念,例如区块链存储、去中⼼化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成⽐特币⽀持功能,例如创建地址、管理钱包、构造裸交易等,是Java⼯程师不可多得的⽐特币开发学习课程。
,本课程⾯向初学者,内容即涵盖⽐特币的核⼼概念,例如区块链存储、去中⼼化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成⽐特币⽀持功能,例如创建地址、管理钱包、构造裸交易等,是Php⼯程师不可多得的⽐特币开发学习课程。
,本课程⾯向初学者,内容即涵盖⽐特币的核⼼概念,例如区块链存储、去中⼼化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成⽐特币⽀持功能,例如创建地址、管理钱包、构造裸交易等,是C#⼯程师不可多得的⽐特币开发学习课程。
,本课程适合希望使⽤tendermint进⾏区块链开发的⼯程师,课程内容即包括tendermint应⽤开发模型中的核⼼概念,例如ABCI接⼝、默克尔树、多版本状态库等,也包括发⾏等丰富的实操代码,是go语⾔⼯程师快速⼊门区块链开发的最佳选择。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论