当前位置: 首页 > 后端技术 > Node.js

HyperledgerFabric区块链开发详解

时间:2023-04-03 20:44:55 Node.js

Hyperledger是一个旨在促进区块链跨行业应用的开源项目。该项目由Linux基金会于2015年12月发起,成员包括金融、银行、物联网、供应链、制造、科技等多个行业的领导者,托管着众多面向企业的区块链开源框架和工具。Hyperledger和Fabric项目概况HyperledgerFabric(以下简称Fabric)是目前发展最好的企业级区块链平台之一,最初由DigitalAsset和IBM共同贡献,并已应用于沃尔玛的食品溯源链(Foodtrust)和马士基的在物流追踪链(TradeLens)中,代表了目前企业级区块链应用的最高水平。可以认为Fabric是一个联盟链平台,适合构建跨多个企业边界的去中心化应用。由于Fabric项目的目标是应用于一个相对可信的企业联盟环境,其设计思路与比特币、以太坊等公链平台有显着差异。Fabric借鉴了区块链的数据结构,但引入了相当多的认证和权限控制机制,以及数据隐私保护机制,以满足企业级应用的需求。同时,由于企业联盟环境比完全开放的公链环境更具可控性,Fabric在其共识体系中并不强调拜占庭容错的实现,而是允许使用非拜占庭容错算法来建立共识,从而可以达到相当实用的交易吞吐量。Fabric的定位和特点毫无疑问,Fabric的诞生受到了比特币的启发,因此借鉴了比特币、以太坊等公链的一些核心特性,比如使用不可篡改的区块链结构来保存数据,使用非对称加密等身份认证技术,支持智能合约等。然而,Fabric定位为企业级分布式账本技术(DLT-DistributedLedgerTechnology)平台,其主要目的是为活动提供一个不可篡改的分布式记账平台跨越多个企业边界。例如在食品溯源应用中,为了让消费者知道所购买的食品是否安全,需要将从农场到加工商、分销商、零售商甚至监管机构的检验放行信息记录到区块链中。确保追溯信息的透明度和可信度。因此,Fabric是一个联盟链(ConsortiumBlockchain),适用于实现多个企业间的分布式记账。这种定位使得Fabric的实现与以太坊等公链有明显区别:分布式账本vs区块链分布式账本是比区块链更广泛的概念。可以认为区块链只是分布式账本的一种实现技术,其他的分布式账本实现还有哈希图等。DecentralizedvsDistributedFabric淡化了去中心化(Decentralized),取而代之的是分布式(Distributed)。这个想法对系统的设计和实现带来了巨大的影响。例如在Fabric中,采用中心化的CA机制颁发证书,只有持有有效证书的节点和用户才能访问区块链上的账本数据。因此,Fabric是一个permissioned/Permissioned的区块链,这与以太坊这种不需要permission/Permissionless的公链形成了鲜明的对比。ByzantineFaultTolerancevs.CrashTolerance因为权限机制,Fabric也淡化了在去信任环境下对共识的依赖,假设联盟链中的企业可能是可信的,所以不依赖于工作量来证明这样一个拜占庭容错算法,虽然Fabric的模块化设计可以支持引入不同的共识算法,但目前产品化方案是Kafka共识,显然不能抵抗拜占庭错误,但不支持不可信环境。有利于提高事务的吞吐量,对企业级应用也有好处。数据隐私保护另一方面,Fabric加强了隐私保护能力。例如Fabric支持在同一个企业网络上建立多个不同的通道/Channel,每个通道都有自己的区块链和访问控制,并且互不影响,有利于基础设施的复用,比如不同企业之间这些企业的销售部门可以建立一个共享市场数据的渠道,这些企业之间的研发部门可以建立另一个共享技术数据的渠道。Fabric并不是唯一的联盟链解决方案,但可以说是目前最复杂的企业联盟链实现。这种复杂性源于设计者对应用场景的假设和推导,以及对Fabric广泛适用性的考虑。这就是我们在学习过程中需要同理心。课程内容概述本课程适合nodejs开发者快速掌握HyperledgerFabric区块链的设计思路、核心概念、网络搭建、链码和应用开发。课程主要内容简述如下:第一章课程概览介绍Fabric项目来源、定位特点、适用场景以及与公链平台的重要区别。第二章,认识Fabric创建一个最小的CA,搭建一个最小的Farbic网络,开发一个最小的Fabric链码,实现一个最小的Fabric应用,从零开始学习和掌握Farbic中的核心概念、设计思想、实用工具和开发模型.第三章,身份和权限管理机制深入学习Fabric中的身份认证机制和权限管理机制,了解证书、成员服务提供者、策略、访问控制列表等核心概念,并掌握其创建、部署和使用方法。Chapter4,ChannelConfigurationandUpdate深入学习了Fabric的通道配置初始化和更新过程,相关数据结构,配置工具的操作方法。Chapter5,ChaincodeDevelopment高级学习和理解chaincode运行机制,掌握statehistorytracking,richquery,ContractAPI等chaincode开发高级知识。第6章应用开发进阶学习掌握通道事件监控、网络API等应用开发进阶知识。想要尽快学习课程,请访问:HyperledgerFabricNode.js区块链开发详解HyperledgerFabricJava区块链开发详解