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