《HyperLedger Fabric 开发实战》这本书是一本实践指导书籍,由浅入深,全部动手实践完成后,对 fabric 的基础操作就比较熟悉了。
接收程序员的 8 点技术早餐 人类的历史,即分久必合,合久必分。 2017 年,比特币因行情疯长火热一时。2018 年伊始,其使用的底层技术区块链又迎来狂欢:从国内创投人到硅谷投资者,从 BAT 到互联网企业众生,都纷纷加入这场技术的斗艳中。 在去中心化技术给这个时代带来新革命的同时,区块链也在更多的行业施展拳脚,利用去中心化计算机系统来创建安全、可验证和永久的交易记录,从而解决不透明或非可信问题。从本质上讲,它创建了一个安全的、分布式的信息和交易记录数据库。 对于交易不透明等问题,广告行业存在的欺诈流量、
自 Libra 发布以来,沉寂已久的区块链社区又活跃了起来,一些探索区块链业务的公司也在暗地里较劲不甘落后。相信你也注意到了,这些大公司往往都对现有比特币、以太坊等区块链视而不见。这是因为它们深知数据的重要性,因而不会选用比特币、以太坊这些把数据开源公开的公有区块链,而是对可以控制参与者加入的私有区块链情有独钟。
先给英文官方原文地址:https://hyperledger-fabric.readthedocs.io/en/latest/overview.html
因为毕业 Case Study 的项目主要是基于Ethereum公链,也没有面向企业的应用场景,所以之前对Hyperledger Fabric的了解大多只是停留在它的权限管理机制、通道、灵活的智能合约编写等几个特色的概念,对它的架构、各个节点的角色、运行机制等都是一知半解。最近在上 HKU 的<FITE3011 Distributed Ledger and Blockchain>课程,教授对Hyperledger Fabric的工作原理、网络搭建及链码相关的知识做了很详细的讲解,受益匪浅,通过本文来梳理一下,如有错漏,欢迎交流指正。
Hyperledger Fabric是一种联盟区块链,Fabric区块链也支持智能合约,被称为链码(Chaincode)。Fabric链码就是一个标准的(运行在docker容器中的)操作系统进程,通过gRPC协议与Fabric节点通信。因此理论上可以使用任何语言开发Fabric链码。目前官方提供了三种开发语言的Fabric链码开发工具包:Go、Java和Node.js,本文将介绍如何使用node.js开发Fabric链码。
您需要使用支持的编程语言(如Go、Java、JavaScript等)编写智能合约代码。您可以使用Hyperledger Fabric提供的示例智能合约作为参考,了解智能合约的结构和编写方式。示例智能合约可在Hyperledger Fabric的官方文档中找到。
hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM、Intel、各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量。本文中我们依次讨论:区块链的共通特性、fabric核心概念、fabric的交易执行流程。本文来源于笔者欲对公司部分业务上链而进行培训的PPT,故图多文字少,不要怕太长。
本文描述fabric快速部署的步骤,及演示基于官方example02的智能合约进行CLI命令行体验。区块链涉及服务很多,且大量使用docker容器技术,所以请严格遵守以下步骤去部署,以减少各种问题的出现,方便我们先对联盟链有个大概的感觉。本文描述环境是centos7操作系统,请其他版本更正相关的安装工具(如ubuntu操作系统请把yum命令换成apt-get)。
如果要从一个通道添加或移除组织,必须获取config tree来进行修改,并在调用SimulateConfigTree方法时,必须获取CSCC的背书
Hyperledger Fabric是一个是开源的,企业级的,带权限的分布式账本解决方案的平台。Hyperledger Fabric由模块化架构支撑,并具备极佳的保密性、可伸缩性、灵活性和可扩展性。Hyperledger Fabric被设计成支持不同的模块组件直接拔插启用,并能适应在经济生态系统中错综复杂的各种场景。
智能合约能够部署和运行在区块链环境中,由一段代码来描述相关的业务逻辑。部署后的智能合约在区块链中无法修改,智能合约的执行完全由代码决定,不受人为因素的干扰。一般来说,参与方通过智能合约规定各自权利和义务、触发合约的条件以及结果,一旦该智能合约在区块链环境中运行就可以得出客观、准确的结果。
本文我们会介绍Hyperledger Fabric的基础知识,并了解如何充分利用这个多功能的区块链框架。
我想展示如何将公共区块链(如ARK.io)的功能与私有区块链(如Hyperledger)结合起来。特别是,我们将看到ARK.io上的交易如何触发在Hyperledger Fabric + Burrow中部署的Solidity Smart Contract的执行。
├── assetTransfer.go(应用程序的主要入口文件或资产转移的核心逻辑实现文件。)
为了持续地进行信息的更新,以及对账本进行管理(写入交易,进行查询等),区块链网络引入了智能合约来实现对账本的访问和控制;智能合约在 Fabric 中称之为 链码,是区块链应用的业务逻辑。
01 引言 区块链已成为当下最受关注的技术。从最初比特币的爆红,到基于以太坊的ICO项目遍地开花,大众的目光被各类应运而生的加密货币牵引着,交易投资的热情日益高涨。相比之下,区块链技术相关的企业项目却没有得到太多关注。 然而,国内众多知名企业,如京东、华为等,都在积极部署企业级的区块链项目。并且,他们无一例外地选择了可监管、部分去中心化、高性能的联盟链。 联盟链究竟有何“魅力”,能得到如此多大企业的青睐?今天,小编将通过介绍一个基于联盟链的项目—Hyperledger Fabric,为大家抛砖引玉。
在上一篇文章中分享了智能合约的安装与使用,如果业务有变更代码需要修改怎么办呢?本文分享如何对已安装的合约进行版本更新。
Fabric项目的目标是实现一个通用的权限区块链(Permissioned Chain)的底层基础框架,为了适用于不同的场合,采用模块化架构提供可切换和可扩展的组件,包括共识算法、加密安全、数字资产、记录仓库、智能合约和身份鉴权等服务。Fabric克服了比特币等公有链项目的缺陷,如吞吐量低、无隐私性、无最终确定性以及共识算法低效等问题,使得用户能够方便地开发商业应用。
上一篇文章,已经介绍了Hyperledger Fabric 2.x 环境搭建,参考链接:https://www.cnblogs.com/xiao987334176/p/13969885.html
在Fabric中,chaincode(链码)也称为智能合约,是用高级语言编写的一段代码。代码主要是读取和操作账本上的数据。 智能合约是一座连接用户应用和Fabric账本的桥梁。用户的应用直接和智能合约打交道,智能合约直接和Fabric账本进行交互。
Hyperledger Fabric是目前主流的开源联盟链产品之一,自2016年5月12日开辟代码仓库之日起,已有快3年的时间了,产品趋于稳定,功能也越来越完善,正在适配不同业务场景下的需求。
这是Hyperledger Fabric Java Chaincode的教程。还有Go和NodeJS Chaincodes,我们将来可能会讨论它们。此外,我采用基于帐户的钱包模型作为示例,我们将使用Hyperledger Fabric构建你的第一个网络(BYFN,build your first network),作为我们的测试环境(v1.4网络)。
Hyperledger Fabric是一个开放源代码企业级许可分布式账本技术(DLT)平台,旨在用于企业环境中,是第一个支持以通用编程语言(例如Java,Go和Node.js)而非受约束的领域特定语言(DSL)编写的智能合约编写的分布式分类帐平台。
这个命令将启动一个包含两个组织和四个Peer节点的测试网络。如果一切顺利,可以使用以下命令检查网络是否启动成功:
区块链技术入门,涉及那些编程语言?在本文中,将介绍比特币、超级账本Fabric和以太坊这三种区块链中,分别使用什么开发语言来进行智能合约编程,并提供你进一步学习的资源链接。
Hyperledger Fabric 2.0在1月29日正式发布, 这是自1.0以来的大版本, 也意味着是大变化, 既做了加法增强功能和配置, 也做了减法简化并且去掉了不少历史包袱。一些新的特性和2.0 alpha透露的大多类似,可参考“Hyperledger Fabric 2.0 Alpha新特性”, 我们粗粗看下release note。
在千呼万唤之后,犹抱琵琶的超级账本 Fabric 1.0 GA版即将揭开面纱,翘首以待的社区用户将广泛使用这个版本。本文将介绍如何使用 Docker 容器技术来建立起一个多节点 Fabric 集群,并且描述在集群上如何进行基本的操作,如 chaincode 的生命周期维护等。文中采用 Fabric 1.0 beta 的端到端(e2e_cli)示例作为基础来说明原理。本文提供是手动配置的方法,后续将介绍利用容器平台(如 K8s 等)自动部署超级账本的方式。
资产既包括有型的资产、也包含无形的资产,Hyperledger使用chainCode去修改用户的资产。
随着区块链技术的发展,越来越多的个人及企业也开始关注区块链,而和区块链联系最为紧密的,恐怕就是金融行业了。然而虽然比特币区块链大受热捧,但毕竟比特币区块链是属于公有区块链,公有区块链有着其不可编辑,不可篡改的特点,这就使得公有链并不适合企业使用,毕竟如果某金融企业开发出一个区块链,无法受其主观控制,那对于它的意义就不大。因此私有链就应运而生,但私有链虽然能够解决以上的问题,如果仅仅只是各个企业自己单独建立,那么还将是一个个孤岛。如果能够联合起来开发私有区块链,最好不过,联盟链应运而生。
您或许听说过区块链,但可能不确定它对 Java™ 开发人员有何用。本教程将帮助大家解惑。我将分步展示如何使用 Hyperledger Fabric v0.6 来构建、运行和执行使用 Java 语言编写的智能合约或链代码。您将安装一些工具,定义本地区块链网络,构建并运行一个链代码智能合约。
Hyperledger 是当前业界较为认可的联盟链实现,作为其最重要的子项目,Fabric 自然也备受关注。从开始孵化到发展至今,Fabric 的架构设计也在演进过程中逐渐地改进与完善。本文将深入探索 Fabric,对 Fabric 总体架构进行分析,并通过与过往架构对比的方式来探讨 Fabric 新架构的特点和优势。
大概 2 年前,碰巧学习区块链(Hyperledger Fabric),便写了一个入门级的项目放在 GitHub 上,公众号有不少读者是通过这个项目关注到我的,也经常问我,有没有区块链这方面的学习资料,有没有这个项目的详细讲解,如何搭建一个区块链网络,林林总总。
最近开始研究区块链,对这个新兴的技术有了基本概念上的了解,所以打算基于一个开源项目做做实验。如果是做数字货币,那么比特币的源代码是最好的了,不过这算是区块链1.0吧,已经有很多改进的竞争币和山寨币出来了,所以打算对区块链2.0,也就是智能合约入手。
1、进入gopath目录下,创建目录src/github.com/hyperledger,进到该目录
一、编写智能合约代码HelloWorld.go,go语言实现,代码很简单,每个合约包含两个方法,Init、Invoke。
书接上文,上回书说到如何快速上手「大数据处理框架SMACK」,由于其强大的处理性能和复杂的技术架构,洋洋洒洒复制粘贴了近三千字依然难表其貌,更多详情移步原文地址。
├── CreateContract.go(应用程序的主要入口文件或资产转移的核心逻辑实现文件。)
书接上文,上回书说到如何快速上手「大数据处理框架SMACK」,由于其强大的处理性能和复杂的技术架构,洋洋洒洒复制粘贴了近三千字依然难表其貌,更多详情移步原文地址。 本节云框架将用“两学一做”思想,帮助大家清晰明了理解「基于区块链的智能合约技术」。 1、学习区块链的核心思想 先给大家讲一个发生在象牙山故事,带大家认识认识我们屯里的人.... 特点1:去中心化 传统谢大脚在记账的时候,刘能经常来捣乱说“谢谢谢大脚,你别乱给我加钱,我我我昨天压根就没来买鸡爪子”。 大脚仔细一想发现事情并不简单,之前也遇到过屯里人
mycontract ├── CreateContract.go(应用程序的主要入口文件或资产转移的核心逻辑实现文件。) ├── bo(包含与区块链智能合约相关的文件。) │ ├── WineContract.go (区块链智能合约的实现文件。) ├── go.mod (Go 项目的模块文件,其中定义了项目的依赖关系和版本信息。) ├── go.sum (包含项目依赖项的安全校验和的文件,用于验证下载的包的完整性。) └── vendor(包含项目依赖项的目录,通常在使用特定版本管理工具时会将依赖项放在此目录中。)
在这个例子中,我们通过一个简单的示例程序来了解Fabric应用是如何运行的。在这个例子中使用的应用程序和智能合约(链码)统称为FabCar。这个例子很好地提供了一个开始用于理解Hyperledger Fabric。在这里,你将学会如何开发一个应用程序和智能合约来查询和更新账本,如何利用CA来生成一个应用程序需要的用于和区块链交互的X.509证书。
eth挖矿需要读取内存并存储DAG文件,受限内存读取效率限制,传统的增加算力无法提升挖矿效率
随着探索如何把区块链应用在各种场景,许多人就想到,也许不需要全世界的人共同参与,也不需要挖矿,我们只需要用到区块链的可信任、可追溯特性,通过较少节点达到拜占庭将军容错,于是私有链就诞生了。但私有链仍是中心化的,难以维持去中心化的优势。因此又有了为企业联盟而生的联盟链(consortium blockchain)。
导言: 最近在国内某金融公司做区块链开发,主要负责智能合约开发,使用的是HyperLedger Fabric 1.0,自己也开始学习区块链技术,上周已经学会自己搭建区块链网络,同时自己也写了一个关于数字货币发行和管理的智能合约,特将这段时间的学习分享给大家,希望可以帮到大家。 有可以一起交流可以私信我。
领取专属 10元无门槛券
手把手带您无忧上云