Hyperledger Fabric入门到进阶
系统性地讲解基于Hyperledger Fabric平台知识并侧重介绍应用项目开发实战;遵循实践出真知的理念,通过大量动手实践,循序渐近地介绍超级账本技术及相关核心模块
kevin-hf(ID不是微信)
这个作者很懒,什么都没留下…
展开
-
9.2 Hyperledger Fabric状态数据库
目标了解 Hyperledger Fabric 中所支持的数据库掌握 CouchDB 数据库的实现任务实现9.2.1 CouchDB数据库介绍在 Hyperledger Fabric 项目中,目前可以支持的状态数据库有两种:**LevelDB:**LevelDB 是嵌入在 Peer 中的默认键值对(key-value)状态数据库。**CouchDB:**CouchDB 是一种可...原创 2019-03-01 16:46:08 · 3309 阅读 · 0 评论 -
9.1 交易数据的存储
目标了解账本数据组成结构了解区块本身及事务数据的组成结构理解账本数据的存储过程任务实现9.1.1 区块链账本数据分类账本中保存着所有交易变化的记录,具有有序和防篡改的特点。每一次交易链码需要将数据变化记录在分布式账本中,需要记录的数据称为状态, 以键值对( K-V )的形式进行存储。Hyperledger Fabric 账本由两个不同但相关部分组成:世界状态(World St...原创 2019-03-01 16:44:39 · 1912 阅读 · 0 评论 -
8.2 Hyperledger Fabric中数据同步的实现
目标Hyperledger Fabric 中数据传输的实现任务实现Hyperledger Fabric 是一个由N个节点组成的分布式网络,且 HyperLedger Fabric 通过把网络内的节点分解为执行交易(背书和提交)节点和交易排序节点,利用这些分解后的节点来优化区块链网络性能及安全性和可扩展性。但是分解之后网络需要一个安全、可靠、可扩展的数据分发协议来保证数据的完整性和一致性...原创 2019-03-01 11:52:37 · 1291 阅读 · 0 评论 -
8.1 认识Gossip
目标Gossip 协议的概念Gossip 协议的数据传输方式任务实现在分布式网络中,网络节点是否具有高扩展性,节点的可用性,数据如何进行传播,且在一个不稳定的分布式网络环境中,如何保证数据的实时同步,是所有开发人员都需要关注并解决的问题。8.1.1 认识 Gossip协议(Gossip Protocol)Gossip由来Gossip 协议取自人类的"八卦"概念,两个人只要愿意...原创 2019-03-01 11:50:51 · 486 阅读 · 0 评论 -
7.3 多链及多通道实现
目标Hyperledger Fabric 多链&多通道多链&&多通道的实现任务实现7.3.1 多链及多通道在 Hyperledger Fabric 0.6 版本中,所有节点都属于同一个链中,由此产生了数据处理、存储及访问安全的问题。在后期的 Hyperledger Fabric 1.0 版本中,新增加了对多链实现。链是由一个通道 + 一个共享账本 + N个...原创 2019-03-01 11:30:12 · 1066 阅读 · 1 评论 -
7.2 基于Kafka排序服务的实现
目标实现现基于 Kafka 集群的排序服务任务实现在上一节中,我们知道了 Hyperledger Fabric 的共识实现,现在我们使用容器实现一个基于 Kafka 提供排序服务的集群环境。在该网络环境中,我们使用2个 Org 组织,每个 Org 组织下各有2个 peer 节点,4个 orderer节点,后端使用 Kafka 集群实现排序服务,由4个 kafka 节点,3个 zooke...原创 2019-03-01 11:28:56 · 1318 阅读 · 0 评论 -
7.1 Fabric中的共识实现
目标共识算法的实现目的共识算法的分类Hyperledger Fabric所使用的共识算法任务实现7.1.1 概述在区块链网络中,不同的参与者发起的交易必须按照产生的顺序被依次写入到账本中。交易如何在分布式场景下, 所有节点对同一个提案或值达成一致性,是区块链技术中必须考虑并加以解决的一个问题。要实现这一目标,交易顺序必须被正确的建立,并且必须包含对交易被篡改或者恶意提交交易的处理方...原创 2019-03-01 11:26:59 · 1602 阅读 · 0 评论 -
6.4 Fabric-CA的具体使用:Fabric-CA客户端应用
目标Fabric CA 客户端主目录路径Fabric CA客户端的相关命令实现 Fabric CA 对身份的登记及注册任务实现Fabric CA 可以采用客户端命令行或 RESTful API 在内的两种方式与 Fabric-CA 服务端进行交互。其中最方便的方式是通过客户端工具 fabric-ca-client。Fabric CA 客户端的主目录路径设置如下:如果设置了 --...原创 2019-02-27 17:45:24 · 2058 阅读 · 0 评论 -
6.3 如何启动Fabric-CA
目标认识 Fabric CA 服务器端主目录路径启动 Fabric CA 的方式任务实现6.3.1 初始化Fabric CA 服务器的主目录确定如下:如果设置了 -home 命令行选项,则使用其值否则,如果 FABRIC_CA_SERVER_HOME 设置了环境变量,则使用其值否则,如果 FABRIC_CA_HOME 设置了环境变量,则使用其值否则,如果 CA_CFG_PA...原创 2019-02-27 17:43:50 · 1001 阅读 · 1 评论 -
6.2 认识Fabric-CA
目标了解 Fabric CA 结构及在 Hyperledger Fabric 中的作用安装 Fabric CA任务实现6.2.1 Fabric CA简介Hyperledger Fabric CA 是 Hyperledger Fabric 的证书颁发机构(CA),是超级账本 Hyperledger Fabric 内一个可选的 MemberService 组件,对网络内各个实体的身份证书...原创 2019-02-27 17:43:01 · 611 阅读 · 0 评论 -
6.1 走进MSP
目标MSP 概念及作用MSP 的组成结构MSP 在 Hyperledger Fabric 中的应用任务实现数据隐私及安全是区块链技术中的的重要组成部分,联盟链中由多个不同的组织组成,且每一个组织又可以由多个节点组成,那么在 Hyperledger Fabric 中使用了什么且如何确保数据隐私及安全,在这一章中我们来认识一下相关的重要内容。6.1.1 MSP定义及作用在 Hyp...原创 2019-02-27 17:41:54 · 1419 阅读 · 0 评论 -
5.5 动手编码二:链码实现转账
目标简单的分析链码的设计与开发使用链码相关的API实现一个简单的资产管理应用使用开发测试模式测试简单的资产链码应用任务实现下面我们来实现一个使用链码能够实现对账户的查询,转账,删除账户的功能,并且整合完善资产管理应用链码的功能,该链码能够让用户在分类账上创建资产,并通过指定的函数实现对资产的修改与查询。5.5.1 转账链码开发创建目录为 chaincode 应用创建一个...原创 2019-02-26 16:56:12 · 1301 阅读 · 0 评论 -
5.4 动手编码一:链码实现资产管理
目标简单的分析链码的设计与开发使用链码相关的API实现一个简单的资产管理应用使用开发测试模式测试简单的资产链码应用任务实现下面我们来实现一个简单的资产链码应用,该链码能够让用户在分类账上创建资产,并通过指定的函数实现对资产的修改与查询功能。5.4.1 资产链码开发创建目录为 chaincode 应用创建一个名为 test 的目录$ cd ~/hyfa/fabric-s...原创 2019-02-26 16:55:25 · 1193 阅读 · 0 评论 -
5.3 链码实现的Hello World
目标使用链码相关的API实现一个简单的 Hello World 入门应用使用开发测试模式测试 Hello World 应用任务实现前面我们已经接触了与链码相关的内容,下面我们根据已掌握的链码知识实现一个简单的链码应用。该应用需求较为简单:链码在实例化时向账本保存一个初始数据,key 为 Hello, value 为 World,然后用户发出查询请求,可以根据 key 查询到相应的 v...原创 2019-02-26 16:54:17 · 1564 阅读 · 2 评论 -
5.2 如何操作账本数据:熟悉链码相关API
目标掌握与账本进行交互的相关 API 种类熟知与参数、账本状态操作相关的 API任务实现现在我们知道了编写链码的基本接口及所需要的结构,那么实际中对账本数据该如何在什么情况下调用什么 API 进行操作?shim 包提供给链码的相应接口有如下几种类型:**参数解析 API:**调用链码时需要给被调用的目标函数/方法传递参数,与参数解析相关的 API 提供了获取这些参数(包含被调...原创 2019-02-26 16:53:04 · 708 阅读 · 1 评论 -
5.1 如何利用Fabric提供的接口编写链码
目标牢记编写链码所需要的两个重要包开发链码所必须实现的接口及方法开发链码文件的基本结构任务实现开发链码,离不开 Hyperledger Fabric 提供的 SDK ,为了方便诸多不同的应用场景且使用不同语言的开发人员,Hyperledger Fabric 提供了许多不同的 SDK 来支持各种编程语言。如:Hyperledger Fabric Node SDK:https://g...原创 2019-02-26 16:51:33 · 1548 阅读 · 0 评论 -
4.4 开发模式下的测试:简化我们对链码的测试过程
目标熟练掌握链码的 dev 开发测试模式任务实现从之前对链码操作来看,我们需要在相关操作(安装、实例化、升级、调用、查询)命令中加入大量的参数,尤其是开启 TLS 验证之后指定 TLS 证书时的那一长串路径会让人不厌其烦。如果每次都需要输入那么内容,我想大部分人都会崩溃掉的。那么我们现在就来掌握一种能够快速对链码进行测试而不需要输入那些烦琐的内容,从而简化我们对链码的测试。正常情况...原创 2019-02-26 16:48:19 · 1067 阅读 · 1 评论 -
4.3 链码的其它操作:实现对链码的打包升级
目标实现如何对链码打包签名链码升级的实现任务实现链码部署除了正常的安装、实例化操作步骤之外,还有一种部署方式,即先将链码进行打包,然后对已打包的文件进行签名,最后再进行安装与实例的操作。4.3.1 链码打包及签名4.3.1.1 打包通过将链码相关数据(如链码名称、版本、实例化策略等信息)进行封装,可以实现对其进行打包和签名的操作。chaincode 包具体包含以下三个部分:...原创 2019-02-26 16:47:09 · 1285 阅读 · 0 评论 -
4.2 链码如何使用:实现对链码的安装、实例化及调用
目标链码的安装及实例化调用链码实现交易处理任务实现我们对链码已经有了一个基础的认识,下面我们利用 fabric-samples 提供的示例链码来进行实践;如何安装、实例化及调用链码处理交易。首先确认网络是否处于开启状态,利用 docker ps 命令查看容器是否处于活动状态,$ sudo docker ps如果没有活动的容器,则先使用 docker-compose 命令启...原创 2019-02-26 16:45:57 · 2208 阅读 · 0 评论 -
4.1 初识链码:链码概念与原理
目标认识 Hyperledger Fabric 中的链码(智能合约)明确系统链码的种类及作用熟知链码的生命周期管理任务实现能走到这一步,您离成功已经越来越近了,真的很不容易,中间经过了多少的大难、小难已经数不清了。而您的聪慧与无人可及的毅力让我不得不说一个大写的:服!下面我们进入正题。4.1.1 链码概念网络运行环境我们已经启动完成,现在我们从开发者的角度来认识一下完成交易...原创 2019-02-26 16:43:29 · 6770 阅读 · 0 评论 -
3.4 以最快的方式完成应用通道的创建
目标掌握应用通道创建的命令及其必须指定的参数所表示的含义实现将节点加入到指定的应用通道中任务实现网络已经启动成功,准备等待处理交易信息,但为了保证交易安全,实现不相干的实体成员不能访问其无权限访问的数据,所以我们需要做出进一步的设置–>创建应用通道来实现交易及数据的隔离。3.4.1 如何创建应用通道在创建及使用应用通道之前,我们先理解一下 channel(通道) 的概念及...原创 2019-02-22 15:29:21 · 1696 阅读 · 1 评论 -
3.3 一分钟启动我们的分布式网络
目标深入理解 Hyperledger Fabric 网络启动过程掌握网络启动命令及其所需参数任务实现网络启动之前所需的所有内容我们已经准备就绪,下面我们深入分析网络中各节点运行时所需要指定的必备信息3.3.1 网络服务如何配置启动网络,就是启动提供网络服务的各个节点。那么这些节点如何启动,需要哪些信息,由于要启动多个网络节点,Hyperledger Fabric 采用了容器技术...原创 2019-02-22 15:27:16 · 738 阅读 · 0 评论 -
3.2 不可或缺的配置文件
目标理解 configtx.yaml 配置文件中的各项含义掌握创建 Orderer 服务启动初始区块的命令及参数掌握创建应用通道交易配置文件的命令及参数任务实现3.2.1 configtx.yaml配置文件指定哪些核心内容创建服务启动初始区块及应用通道交易配置文件需要指定 Orderer 服务的相关配置以及当前的联盟信息, 这些信息定义在一个名为 configtx.yaml 文件中...原创 2019-02-22 15:24:04 · 728 阅读 · 0 评论 -
3.1 生成组织结构与身份证书
目标明确生成组织结构及身份证书所需的配置文件及其内容含义如何使用命令生成对应的组织结构信身份证书任务实现自动化脚本 byfn.sh 可以自动帮我们创建网络环境运行时所需的所有内容,但在一些特定情况之下,我们根据不同的需求需要自定义一些设置。现在,我们来实现最重要的环节,哪些配置文件的相关设置会影响创建 Hyperledger Fabric 网络环境运行时所需要的相应内容。3.1...原创 2019-02-22 15:22:03 · 1112 阅读 · 0 评论 -
2.3 确保安全的Fabric交易流程分析
目标Hyperledger Fabric 网络中的节点分类熟知 Hyperledger Fabric 交易流程任务实现现在我们深入 Hyperledger Fabric 内部,详细了解 Hyperledger Fabric 的交易实现流程,理解相应的核心内容。区块链技术最重要特征之一就是能够保证实现安全的交易。Hyperledger Fabric 与公有链的交易实现又有很大的区别...原创 2019-02-21 16:09:18 · 839 阅读 · 0 评论 -
2.2 Fabric核心配置文件的理解
目标了解Hyperledger Fabric对Peer节点的核心配置信息了解Hyperledger Fabric对orderer节点的核心配置信息任务实现在Hyperledger Fabric中, 有两个示例配置文件,一个为Peer节点的示例配置文件,一个为Orderer节点的示例配置文件,理解这两个配置文件的内容对于我们而言,会更进一步的理解Hyperledger Fabric运行...原创 2019-02-21 16:05:38 · 1673 阅读 · 2 评论 -
2.1 扒开Fabric架构:抽象的逻辑架构与实际的运行时架构
目标理解Hyperledger Fabric超级账本的逻辑架构。理解Hyperledger Fabric超级账本的实际运行时架构。任务实现进步非常快。现在我们结合图形,然后根据对应的解释全面理解Hyperledger Fabric的架构。2.1.1 比较抽象的逻辑架构Fabric从1.X开始,在扩展性及安全性上面有了大大的提升,且新增了诸多的新特性:多通道:支持多通道,提...原创 2019-02-21 16:03:25 · 8010 阅读 · 1 评论 -
1.4 测试Hyperledger Fabric网络
目标熟悉 byfn.sh 脚本的相关命令能够自动实现你的第一个Fabric网络环境任务实现恭喜你,年青人,你经过了漫长的苦修,且经过了诸多的煎熬之后,终于可以进入Fabric的世界,成功已经微笑着向你招手了。Hyperledger Fabric 网络环境的构成较为复杂,由N个节点组成一个分布式网络,每个节点都有自己的实体身份标识;而且 Hyperledger Fabric 还可以...原创 2019-02-21 15:53:23 · 1358 阅读 · 0 评论 -
1.3 搭建Hyperledger Fabric环境
目标顺利下载Hyperledger Fabric明确bootstrap.sh脚本做了哪些事任务实现年青人,关键时刻到了,这门神功必须要有大毅力且拥有常人所不具备的耐性的人才能练成,所以这一步就是为了考验你的毅力及耐性而设置的。要想学好神功,必须先有相应的利器,而这把利器就只能由自己根据那些妖孽留下的线索来锻造。1.3.1 下载Fabric-samples与二进制文件为了方便后...原创 2019-02-21 15:52:18 · 1562 阅读 · 2 评论 -
1.2 Hyperledger Fabric环境搭建-前期准备
目标检查操作系统检查并安装所需工具可选安装Node及npm任务实现1.2.1 操作系统学习,必须要有一个好的场地,我们耗费精力给你挑选好了一个安全又方便的场地。但是该场地有一些硬性条件,请一定要注意。推荐使用的操作系统为64位的 Ubuntu 16.04 LTS,系统内核为 GNU/Linux 4.13.0-36-generic x86_64。硬件资源要求:内存最低为2GB...原创 2019-02-21 15:45:43 · 1243 阅读 · 0 评论 -
1.1 Hyperledger Fabric简介
目标了解超级账本的由来及特点清楚超级账本的类别划分了解Fabric的特点任务实现年青人,我看你聪慧绝伦,且拥有非常人所具备的耐性及韧性,现将这个世界上由几大顶级门派的一些绝世妖孽人物共同创出的一门神功传授于你。当你将这门神功练至炉火纯青之日,便是你在IT界称霸之时。少年,如何…下面我们开始进入正题,内容不多且有点琐碎,但是请注意我们所描述的重点。1.1.1 超级账本的由来当...原创 2019-02-21 15:41:31 · 1126 阅读 · 0 评论