随着近期Fabric v1.4.1 LTS的发布,Fabric项目目前工作的重点正在向1.4.1和2.0的正式版推进。v2.0.0是2019年的主要目标,重点集中在更多的新特性上,包括增强的链码生命周期管理,raft共识机制,以此来循序渐进地迁移至拜占庭容错算法,以及更强大的token支持。近期发布的2.0版本建议大家仅作为尝鲜之用,生产环境暂时不要考虑。
Hyperledger Fabric v2.0 Alpha引入两大新功能,新的Fabric链码生命周期和FabToken.
Hyperledger Fabric是面向企业应用场景的开源分布式账本平台。Hyperledger Fabric基于模块化设计,各个模块实现特定的功能。企业之间可以组建Fabric联盟链,将相关业务数据通过智能合约方式写入链上,通过背书策略来保证各个企业数据的一致性。由于业务数据的共享,从而加速各项业务的开展,最直接的场景比如清结算等。
因为毕业 Case Study 的项目主要是基于Ethereum公链,也没有面向企业的应用场景,所以之前对Hyperledger Fabric的了解大多只是停留在它的权限管理机制、通道、灵活的智能合约编写等几个特色的概念,对它的架构、各个节点的角色、运行机制等都是一知半解。最近在上 HKU 的<FITE3011 Distributed Ledger and Blockchain>课程,教授对Hyperledger Fabric的工作原理、网络搭建及链码相关的知识做了很详细的讲解,受益匪浅,通过本文来梳理一下,如有错漏,欢迎交流指正。
预计区块链技术将对各种行业产生重大影响。然而,阻碍它们的一个问题是它们有限的交易吞吐量,特别是与诸如分布式数据库系统之类的已建立的解决方在本文中,我们重新构建了一个现代许可的区块链系统Hyperledger Fabric,以将交易吞吐量从每秒3,000次增加到20,000次。我们专注于超出共识机制的性能瓶颈,我们提出架构更改,以减少交易排序和验证期间的计算和I / O开销,从而大大提高吞吐量。值得注意的是,我们的优化是完全即插即用的,不需要对Hyperledger Fabric进行任何界面更改。
本文我们会介绍Hyperledger Fabric的基础知识,并了解如何充分利用这个多功能的区块链框架。
自 Libra 发布以来,沉寂已久的区块链社区又活跃了起来,一些探索区块链业务的公司也在暗地里较劲不甘落后。相信你也注意到了,这些大公司往往都对现有比特币、以太坊等区块链视而不见。这是因为它们深知数据的重要性,因而不会选用比特币、以太坊这些把数据开源公开的公有区块链,而是对可以控制参与者加入的私有区块链情有独钟。
为了满足现代业务需求,IBM与其他公司合作,共同开发了一个开放源代码,可立即投入生产的业务区块链框架,称为Hyperledger Fabric™,这是由LinuxFoundation®托管的8个Hyperledger®项目之一。
参考https://hyperledger-fabric.readthedocs.io/en/release-1.2/fabric_model.html#
Hyperledger Fabric 1.0是一种通用的区块链技术,其设计目的是利用一些成熟的技术实现分布式账本技术(Distributed Ledger Techonlogy DLT)。
先给英文官方原文地址:https://hyperledger-fabric.readthedocs.io/en/latest/overview.html
上一篇文章《Hyperledger Fabric 架构详解》对Fabric的架构和工作原理进行了详细的解读与分析,那作为一个企业级的区块链系统,它是如何根据复杂的业务需求搭建网络,在运行过程中存在哪些安全问题,以及Fabric是如何从机制上进行预防的呢?
01 引言 区块链已成为当下最受关注的技术。从最初比特币的爆红,到基于以太坊的ICO项目遍地开花,大众的目光被各类应运而生的加密货币牵引着,交易投资的热情日益高涨。相比之下,区块链技术相关的企业项目却没有得到太多关注。 然而,国内众多知名企业,如京东、华为等,都在积极部署企业级的区块链项目。并且,他们无一例外地选择了可监管、部分去中心化、高性能的联盟链。 联盟链究竟有何“魅力”,能得到如此多大企业的青睐?今天,小编将通过介绍一个基于联盟链的项目—Hyperledger Fabric,为大家抛砖引玉。
区块链是一个透明的,基于不可变模式的去中心化系统,核心就是一个分布式账本,记录网络上发生的所有交易。
https://github.com/hyperledger/fabric/releases
https://hyperledger-fabric.readthedocs.io/en/release-1.2/peers/peers.html
虽然一直以来都可以从当前状态中删除私人数据,但这一新功能可以清除对等方的私人数据历史,同时保留私人数据的哈希值作为区块链上不可变的证据。
资产既包括有型的资产、也包含无形的资产,Hyperledger使用chainCode去修改用户的资产。
大概 2 年前,碰巧学习区块链(Hyperledger Fabric),便写了一个入门级的项目放在 GitHub 上,公众号有不少读者是通过这个项目关注到我的,也经常问我,有没有区块链这方面的学习资料,有没有这个项目的详细讲解,如何搭建一个区块链网络,林林总总。
何鑫铭,携程技术中心创新研发部区块链技术专家,携程区块链技术平台技术负责人,精通当前主流区块链开源技术框架,热衷于研究区块链底层设计和区块链应用创新。
参考 https://hyperledger-fabric.readthedocs.io/en/release-1.2/ledger/ledger.html
1.分布式存储(Distributed Ledger):所有节点共同维护完全一致的账本数据,区块以保存前一个区块Hash值的方式顺序相连,组成了链式数据结构,保证了数据的不可篡改。
1.环境部署 包括需要的软件环境以及docker镜像,具体参考http://zhayujie.com/fabric/deploy.html
智能合约能够部署和运行在区块链环境中,由一段代码来描述相关的业务逻辑。部署后的智能合约在区块链中无法修改,智能合约的执行完全由代码决定,不受人为因素的干扰。一般来说,参与方通过智能合约规定各自权利和义务、触发合约的条件以及结果,一旦该智能合约在区块链环境中运行就可以得出客观、准确的结果。
Fabric 2.0 alpha里FabToken作为重大新特新引入,它提供了让用户在通道使用令牌环呈现资源的能力。FabToken是一个令牌环管理系统,它使用Unspent Transaction Output(UTXO)模型结合Fabric自身msp架构等发起,转换和赎回采访令牌环, 具体可参考以前文章 Hyperledger Fabric 2.0 Alpha新特性.
节点是区块链的通信主体,是一个逻辑概念。多个不同类型的节点可以运行在同一物理服务器上。有多种类型的节点:客户端、Peer节点、排序服务节点和CA节点。下图为网络节点架构图2-1:
eth挖矿需要读取内存并存储DAG文件,受限内存读取效率限制,传统的增加算力无法提升挖矿效率
Hyperledger Fabric 是一种模块化的,可扩展的开源的用于部署和操作权限的区块链系统。Fabric目前被用于超过400多种原型以及概念证明阶段的分布式账本技术的场景中,如很多生产系统,跨越了不同行业和使用场景。
Hyperledger Fabric private data是1.2版本引入的新特性,fabric private data是利用旁支数据库(SideDB)来保存若干个通道成员之间的私有数据,从而在通道之上又提供了一层更灵活的数据保护机制。本文将介绍如何在链码开发中使用fabric private data。
在Fabric中,智能合约也称为链码(chaincode),分为用户链码和系统链码。系统链码用来实现系统层面的功能,包括系统的配置,用户链码的部署、升级,用户交易的签名和验证策略等;用户链码用于实现用户的应用功能,开发者编写链码应用程序并将其部署到区块链网络上,终端用户通过与网络节点交互的客户端应用程序调用链码。 链码被编译成一个独立的应用程序,运行于隔离的Docker容器中,在链码部署的时候会自动生成链码的Docker镜像。 链码是访问账本的基本方法,一般是用Go等高级语言编写的、实现规定接口的代码。上层应用可以通过调用链码来初始化和管理账本的状态。只要有适当的权限,链码之间也可以互相调用。 链码(Chaincode)是一段由Go语言编写(支持其它编程语言,如Java,NodeJS)并能实现预定义接口的程序。链码运行在一个受保护的Docker容器当中,与背书节点的运行互相隔离。链码可通过客户端提交的交易对账本状态初始化并进行管理。 链码通常处理由网络中的成员一致认可的业务逻辑。链码创建的(账本)状态是与其它链码互相隔离的,因而不能被其它链码直接访问。如果在相同的Fabric网络中,链码在获取相应许可后可以调用其它链码来访问它的账本。 链码被部署在Fabric网络节点上,运行在Docker容器中,并通过gRPC协议与相应的Peer节点进行交互,以操作分布式账本中的数据。
https://hyperledger-fabric.readthedocs.io/en/release-1.2/network/network.html
下载hyperledger-fabric-linux-amd64-1.0.5.tar.gz压缩包
参考https://hyperledger-fabric.readthedocs.io/en/release-1.2/build_network.html
Hyperledger 是当前业界较为认可的联盟链实现,作为其最重要的子项目,Fabric 自然也备受关注。从开始孵化到发展至今,Fabric 的架构设计也在演进过程中逐渐地改进与完善。本文将深入探索 Fabric,对 Fabric 总体架构进行分析,并通过与过往架构对比的方式来探讨 Fabric 新架构的特点和优势。
Hyperledger Fabric是一个开放源代码企业级许可分布式账本技术(DLT)平台,旨在用于企业环境中,是第一个支持以通用编程语言(例如Java,Go和Node.js)而非受约束的领域特定语言(DSL)编写的智能合约编写的分布式分类帐平台。
超级账本是联盟链的代表,而其相对于共链(例如比特币,以太坊)一个较大的区别在于其强大的角色管理和权限把控上,本文主要介绍其角色管理和权限把控的一些核心机制。
Linux基金会于2015年12月启动了名为“超级账本”(Hyperledger)的开源项目,旨在推动各方协作,共同打造基于区块链的企业级分布式账本底层技术,用于构建支撑业务的行业应用和平台。
Hyperledger Fabric是目前主流的开源联盟链产品之一,自2016年5月12日开辟代码仓库之日起,已有快3年的时间了,产品趋于稳定,功能也越来越完善,正在适配不同业务场景下的需求。
随着区块链技术的发展,越来越多的个人及企业也开始关注区块链,而和区块链联系最为紧密的,恐怕就是金融行业了。然而虽然比特币区块链大受热捧,但毕竟比特币区块链是属于公有区块链,公有区块链有着其不可编辑,不可篡改的特点,这就使得公有链并不适合企业使用,毕竟如果某金融企业开发出一个区块链,无法受其主观控制,那对于它的意义就不大。因此私有链就应运而生,但私有链虽然能够解决以上的问题,如果仅仅只是各个企业自己单独建立,那么还将是一个个孤岛。如果能够联合起来开发私有区块链,最好不过,联盟链应运而生。
最近在学习超级账本,概念名词以及架构都比 比特币、以太坊、EOS复杂。 整理一下超级账本的词汇。
本文描述fabric快速部署的步骤,及演示基于官方example02的智能合约进行CLI命令行体验。区块链涉及服务很多,且大量使用docker容器技术,所以请严格遵守以下步骤去部署,以减少各种问题的出现,方便我们先对联盟链有个大概的感觉。本文描述环境是centos7操作系统,请其他版本更正相关的安装工具(如ubuntu操作系统请把yum命令换成apt-get)。
作者 | 杨保华 超级账本Fabric项目自诞生之日起就吸引了全球众多企业的密切关注,已经先后发布了两个大的版本,0.6实验版本(2016年9月)和1.0正式版本(2017年7月)。 目前,超级账本Fabric架构上核心特性主要包括: 解耦了原子排序环节与其他复杂处理环节,消除了网络处理瓶颈,提高可扩展性; 解耦交易处理节点的逻辑角色为背书节点(Endorser)、确认节点(Committer),可以根据负载进行灵活部署; 加强了身份证书管理服务,作为单独的Fabric CA项目,提供更多功能; 支持多通道
行业应用的用户是有一定的范围的,一般限制在一个市场或某一个企业内部。这就要求应用具有身份认证和许可授权的功能。其次,企业往往需要数据在传输过程中不会被窃取。要求应用具有保护交易信息传输的设计。
hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM、Intel、各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量。本文中我们依次讨论:区块链的共通特性、fabric核心概念、fabric的交易执行流程。本文来源于笔者欲对公司部分业务上链而进行培训的PPT,故图多文字少,不要怕太长。
如果把区块链比作一个只能读写,不能删改的分布式数据库的话,那么事务和查询就是对这个数据库进行的最重要的操作。以比特币来说,我们通过钱包或者Blockchain.info进行区块链的查询操作,而转账行为就是Transaction的处理。而HyperLedger Fabric在1.0对系统架构进行了升级,使得事务的处理更加复杂。
博主之前的文章都是教大家怎么快速的搭建一个Fabric的环境,但是其中大量的工作都隐藏到了官方的脚本中,并不方便大家深入理解其中的过程,所以博主这里就将其中的过程一步步分解,方便大家!
领取专属 10元无门槛券
手把手带您无忧上云