自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 6. 实现自动化测试

从零到壹构建基于fabric-sdk-node的项目开发实战之六自动化测试之前的方式,需要我们每次都要输入命令,这样操作的话比较麻烦,所以现在我们对其进行简化,没有必要每次都输入一长串的命令来执行,而是将命令写在指定的脚本文件中,以后直接执行该脚本文件即可,此方式大大简化了测试步骤,提高效率。终端窗口 1进入项目根目录:$ cd $HOME/kevin-fabric-sdk-node...

2019-03-16 14:03:27 646

原创 5. 测试fabric-sdk-node应用

从零到壹构建基于fabric-sdk-node的项目开发实战之五运行示例程序一切就绪,现在可以开始测试我们的应用程序了。终端窗口 1进入项目根目录:$ cd $HOME/kevin-fabric-sdk-node使用 docker-compose 命令启动网络$ docker-compose -f artifacts/docker-compose.yaml up终端...

2019-03-16 14:02:41 928

原创 4.2. 链码调用

从零到壹构建基于fabric-sdk-node的项目开发实战之四使用 fabric-sdk-node-链码调用事务 invoke-transaction.jsinvoke-transaction.js 主要完成事务操作,通过调用指定链码实现对账本状态的操作。创建 invoke-transaction.js 文件并编辑:$ vim invoke-transaction.jsinvoke...

2019-03-16 14:01:07 753

原创 4.1. 链码安装及实例化

从零到壹构建基于fabric-sdk-node的项目开发实战之四使用 fabric-sdk-node在项目根目录下创建一个 app 的文件夹,做为所有的 JS 代码文件的存放目录,具体文件如下:helper.jscreate-channel.jsjoin-channel.jsinstall-chaincode.jsinstantiate-chaincode.jsinvoke-tr...

2019-03-16 14:00:20 1326

原创 3. 配置网络信息

从零到壹构建基于fabric-sdk-node的项目开发实战之三创建配置 fabric-sdk-nodenetwork-config.yaml进入项目的 artifacts 目录中,创建 network-config.yaml 文件并编辑$ cd $HOME/kevin-fabric-sdk-node/artifacts/$ vim network-config.yamlnetwor...

2019-03-16 13:59:04 784

原创 2. 链码实现

从零到壹构建基于fabric-sdk-node的项目开发实战之二编写链码对于一个完整的应用而言,操作账本状态是通过链码来实现的,所以我们必须编写链码来实现对账本状态的操作在此,我们不去考虑多么复杂的业务,只是实现一个简单的转账及余额查询的功能另外,链代码可以使用不同的语言来编写实现,我们在示例中使用 Golang其它语言,如: node、java 等语言如何编写链代码在此我们不讨论...

2019-03-16 13:58:04 1076

原创 1. 环境搭建

文章目录从零到壹构建基于fabric-sdk-node的项目开发实战之一先决条件和安装设置:安装 vim、git安装docker安装docker-compose安装Golang安装 Node配置网络环境下载Docker images配置 docker-compose.yaml创建 base.yaml 文件并编辑创建 docker-compose.yaml 文件并编辑Artifacts测试网络环境参...

2019-03-16 13:56:40 909

原创 6. 交互演示

6.1 启动Web服务最后编辑 main.go ,以便启动Web界面实现Web应用程序$ vim main.go添加如下内容:import( [......] "github.com/kongyixueyuan.com/education/web/controller" "github.com/kongyixueyuan.com/education/web")func m...

2019-03-06 16:23:41 1291

原创 5. 视图层实现

5.1 目录结构在项目的web目录下新创建一个名为 static 的目录,用来存放Web应用视图层的所有静态内容$ cd $GOPATH/src/github.com/kongyixueyuan.com/education$ mkdir web/staticweb/static目录下包括四个子目录,分别为:web/static/css :用于存放控制页面布局及显示样式所需的 CSS...

2019-03-06 16:20:15 1200

原创 4. 控制层实现

4.1 设置系统用户通过业务层已经实现了利用 fabric-sdk-go 调用链码查询或操作分类账本状态,接下来,我们开始实现Web应用层,应用层将其分为两个部分,控制层视图层在项目根目录下新创建一个名为 web 的目录,用来存放Web应用层的所有内容$ cd $GOPATH/src/github.com/kongyixueyuan.com/education$ mkdir -p...

2019-03-06 16:19:05 1523

原创 3. 业务层实现

3.1 事件处理在项目根目录下创建一个 service 目录作为业务层,在业务层中,我们使用 Fabric-SDK-Go 提供的接口对象调用相应的 API 以实现对链码的访问,最终实现对分类账本中的状态进行操作。$ cd $GOPATH/src/github.com/kongyixueyuan.com/education$ mkdir service在 service 目录下创建 dom...

2019-03-06 16:17:46 1713 2

原创 2. SDK与链码实现

2.1 创建 config.yaml 文件确认 Hyperledger Fabric 基础网络环境运行没有问题后,现在我们通过创建一个新的 config.yaml 配置文件给应用程序所使用的 Fabric-SDK-Go 配置相关参数及 Fabric 组件的通信地址进入项目的根目录中创建一个 config.yaml 文件并编辑$ cd $GOPATH/src/github.com/kongyi...

2019-03-06 16:13:02 2516 1

原创 1. 需求分析与架构设计

1.1 需求分析现在是一个信息化的高科技时代,许许多多的企业必须紧跟时代步伐,不断创新,才能发展壮大;而企业的发展必然离不开人才队伍的建设,也可以说创新是企业发展的动力,而人才却是企业发展的根本,所以现在各企业对于人才队伍建设十分看重,而对于人才的素质及受教育情况的要求更是重中之重。对学历信息的查询,要么成本较高,要么比较麻烦,甚至还有一些假冒网站让人防不胜防;传统应用是将数据保存在数据库中来...

2019-03-06 16:08:36 3652 2

原创 从零到壹构建基于 Fabric-SDK-Go 的Web应用之三:完成Web应用

fabric-sdk 不仅提供了相应的强大功能,而且还给开发人员设计提供了相应的API 接口,以方便开发人员随时调用。做为开发设计人员,我们不仅要考虑用户操作的方便性及可交互性,还需要考虑应用程序后期的可扩展性及维护性,为此我们将为应用增加一个业务层,所有的客户请求都由业务层发送给链码,通过对链码的调用,进而实现对分类账本状态的操作。1. 在业务层调用链码1.1. 事件处理在项目根目录下创建...

2019-03-05 16:58:10 3160 7

原创 从零到壹构建基于 Fabric-SDK-Go 的Web应用之二:使用 Fabric-SDK-Go

Hyperledger Fabric 提供了许多 SDK 来支持各种不同的编程语言,但是因为 Hyperledger Fabric 是使用 Golang 构建的,所以我们将使用 Go 语言来设计我们的应用程序,包括链码(智能合约)。如果您想使用其它 SDK,如 Fabric-SDK-Java,Fabric-SDK-Node等等,这些都可以通过在线文档进行学习,我们不在这里讨论。1. 配置Fabr...

2019-03-05 16:54:26 8805 43

原创 从零到壹构建基于 Fabric-SDK-Go 的Web应用之一:搭建Hyperledger Fabric 网络环境

引言a. 说明我们不会在本教程中详细解释 Hyperledger Fabric 的工作原理。在学习本教程之前,您应该通过Hyperledger Fabric 官网 或其它渠道学习 Hyperledger Fabric 的一些知识,以具备 Hyperledger Fabric 操作基础。本应用实现是在基于 **Ubuntu 16.04(推荐) ** 上完成的,但 Hyperledger Fa...

2019-03-05 16:52:13 4019 8

原创 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 3214

原创 9.1 交易数据的存储

目标了解账本数据组成结构了解区块本身及事务数据的组成结构理解账本数据的存储过程任务实现9.1.1 区块链账本数据分类账本中保存着所有交易变化的记录,具有有序和防篡改的特点。每一次交易链码需要将数据变化记录在分布式账本中,需要记录的数据称为状态, 以键值对( K-V )的形式进行存储。Hyperledger Fabric 账本由两个不同但相关部分组成:世界状态(World St...

2019-03-01 16:44:39 1874

原创 8.2 Hyperledger Fabric中数据同步的实现

目标Hyperledger Fabric 中数据传输的实现任务实现Hyperledger Fabric 是一个由N个节点组成的分布式网络,且 HyperLedger Fabric 通过把网络内的节点分解为执行交易(背书和提交)节点和交易排序节点,利用这些分解后的节点来优化区块链网络性能及安全性和可扩展性。但是分解之后网络需要一个安全、可靠、可扩展的数据分发协议来保证数据的完整性和一致性...

2019-03-01 11:52:37 1256

原创 8.1 认识Gossip

目标Gossip 协议的概念Gossip 协议的数据传输方式任务实现在分布式网络中,网络节点是否具有高扩展性,节点的可用性,数据如何进行传播,且在一个不稳定的分布式网络环境中,如何保证数据的实时同步,是所有开发人员都需要关注并解决的问题。8.1.1 认识 Gossip协议(Gossip Protocol)Gossip由来Gossip 协议取自人类的"八卦"概念,两个人只要愿意...

2019-03-01 11:50:51 445

原创 7.3 多链及多通道实现

目标Hyperledger Fabric 多链&多通道多链&&多通道的实现任务实现7.3.1 多链及多通道在 Hyperledger Fabric 0.6 版本中,所有节点都属于同一个链中,由此产生了数据处理、存储及访问安全的问题。在后期的 Hyperledger Fabric 1.0 版本中,新增加了对多链实现。链是由一个通道 + 一个共享账本 + N个...

2019-03-01 11:30:12 1047 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 1293

原创 7.1 Fabric中的共识实现

目标共识算法的实现目的共识算法的分类Hyperledger Fabric所使用的共识算法任务实现7.1.1 概述在区块链网络中,不同的参与者发起的交易必须按照产生的顺序被依次写入到账本中。交易如何在分布式场景下, 所有节点对同一个提案或值达成一致性,是区块链技术中必须考虑并加以解决的一个问题。要实现这一目标,交易顺序必须被正确的建立,并且必须包含对交易被篡改或者恶意提交交易的处理方...

2019-03-01 11:26:59 1570

原创 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 2017

原创 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 972 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 596

原创 6.1 走进MSP

目标MSP 概念及作用MSP 的组成结构MSP 在 Hyperledger Fabric 中的应用任务实现数据隐私及安全是区块链技术中的的重要组成部分,联盟链中由多个不同的组织组成,且每一个组织又可以由多个节点组成,那么在 Hyperledger Fabric 中使用了什么且如何确保数据隐私及安全,在这一章中我们来认识一下相关的重要内容。6.1.1 MSP定义及作用在 Hyp...

2019-02-27 17:41:54 1356

原创 5.5 动手编码二:链码实现转账

目标简单的分析链码的设计与开发使用链码相关的API实现一个简单的资产管理应用使用开发测试模式测试简单的资产链码应用任务实现下面我们来实现一个使用链码能够实现对账户的查询,转账,删除账户的功能,并且整合完善资产管理应用链码的功能,该链码能够让用户在分类账上创建资产,并通过指定的函数实现对资产的修改与查询。5.5.1 转账链码开发创建目录为 chaincode 应用创建一个...

2019-02-26 16:56:12 1237

原创 5.4 动手编码一:链码实现资产管理

目标简单的分析链码的设计与开发使用链码相关的API实现一个简单的资产管理应用使用开发测试模式测试简单的资产链码应用任务实现下面我们来实现一个简单的资产链码应用,该链码能够让用户在分类账上创建资产,并通过指定的函数实现对资产的修改与查询功能。5.4.1 资产链码开发创建目录为 chaincode 应用创建一个名为 test 的目录$ cd ~/hyfa/fabric-s...

2019-02-26 16:55:25 1141

原创 5.3 链码实现的Hello World

目标使用链码相关的API实现一个简单的 Hello World 入门应用使用开发测试模式测试 Hello World 应用任务实现前面我们已经接触了与链码相关的内容,下面我们根据已掌握的链码知识实现一个简单的链码应用。该应用需求较为简单:链码在实例化时向账本保存一个初始数据,key 为 Hello, value 为 World,然后用户发出查询请求,可以根据 key 查询到相应的 v...

2019-02-26 16:54:17 1444 2

原创 5.2 如何操作账本数据:熟悉链码相关API

目标掌握与账本进行交互的相关 API 种类熟知与参数、账本状态操作相关的 API任务实现现在我们知道了编写链码的基本接口及所需要的结构,那么实际中对账本数据该如何在什么情况下调用什么 API 进行操作?shim 包提供给链码的相应接口有如下几种类型:**参数解析 API:**调用链码时需要给被调用的目标函数/方法传递参数,与参数解析相关的 API 提供了获取这些参数(包含被调...

2019-02-26 16:53:04 638 1

原创 5.1 如何利用Fabric提供的接口编写链码

目标牢记编写链码所需要的两个重要包开发链码所必须实现的接口及方法开发链码文件的基本结构任务实现开发链码,离不开 Hyperledger Fabric 提供的 SDK ,为了方便诸多不同的应用场景且使用不同语言的开发人员,Hyperledger Fabric 提供了许多不同的 SDK 来支持各种编程语言。如:Hyperledger Fabric Node SDK:https://g...

2019-02-26 16:51:33 1461

原创 4.4 开发模式下的测试:简化我们对链码的测试过程

目标熟练掌握链码的 dev 开发测试模式任务实现从之前对链码操作来看,我们需要在相关操作(安装、实例化、升级、调用、查询)命令中加入大量的参数,尤其是开启 TLS 验证之后指定 TLS 证书时的那一长串路径会让人不厌其烦。如果每次都需要输入那么内容,我想大部分人都会崩溃掉的。那么我们现在就来掌握一种能够快速对链码进行测试而不需要输入那些烦琐的内容,从而简化我们对链码的测试。正常情况...

2019-02-26 16:48:19 1037 1

原创 4.3 链码的其它操作:实现对链码的打包升级

目标实现如何对链码打包签名链码升级的实现任务实现链码部署除了正常的安装、实例化操作步骤之外,还有一种部署方式,即先将链码进行打包,然后对已打包的文件进行签名,最后再进行安装与实例的操作。4.3.1 链码打包及签名4.3.1.1 打包通过将链码相关数据(如链码名称、版本、实例化策略等信息)进行封装,可以实现对其进行打包和签名的操作。chaincode 包具体包含以下三个部分:...

2019-02-26 16:47:09 1244

原创 4.2 链码如何使用:实现对链码的安装、实例化及调用

目标链码的安装及实例化调用链码实现交易处理任务实现我们对链码已经有了一个基础的认识,下面我们利用 fabric-samples 提供的示例链码来进行实践;如何安装、实例化及调用链码处理交易。首先确认网络是否处于开启状态,利用 docker ps 命令查看容器是否处于活动状态,$ sudo docker ps如果没有活动的容器,则先使用 docker-compose 命令启...

2019-02-26 16:45:57 2087

原创 4.1 初识链码:链码概念与原理

目标认识 Hyperledger Fabric 中的链码(智能合约)明确系统链码的种类及作用熟知链码的生命周期管理任务实现能走到这一步,您离成功已经越来越近了,真的很不容易,中间经过了多少的大难、小难已经数不清了。而您的聪慧与无人可及的毅力让我不得不说一个大写的:服!下面我们进入正题。4.1.1 链码概念网络运行环境我们已经启动完成,现在我们从开发者的角度来认识一下完成交易...

2019-02-26 16:43:29 6669

原创 3.4 以最快的方式完成应用通道的创建

目标掌握应用通道创建的命令及其必须指定的参数所表示的含义实现将节点加入到指定的应用通道中任务实现网络已经启动成功,准备等待处理交易信息,但为了保证交易安全,实现不相干的实体成员不能访问其无权限访问的数据,所以我们需要做出进一步的设置–>创建应用通道来实现交易及数据的隔离。3.4.1 如何创建应用通道在创建及使用应用通道之前,我们先理解一下 channel(通道) 的概念及...

2019-02-22 15:29:21 1527 1

原创 3.3 一分钟启动我们的分布式网络

目标深入理解 Hyperledger Fabric 网络启动过程掌握网络启动命令及其所需参数任务实现网络启动之前所需的所有内容我们已经准备就绪,下面我们深入分析网络中各节点运行时所需要指定的必备信息3.3.1 网络服务如何配置启动网络,就是启动提供网络服务的各个节点。那么这些节点如何启动,需要哪些信息,由于要启动多个网络节点,Hyperledger Fabric 采用了容器技术...

2019-02-22 15:27:16 612

原创 3.2 不可或缺的配置文件

目标理解 configtx.yaml 配置文件中的各项含义掌握创建 Orderer 服务启动初始区块的命令及参数掌握创建应用通道交易配置文件的命令及参数任务实现3.2.1 configtx.yaml配置文件指定哪些核心内容创建服务启动初始区块及应用通道交易配置文件需要指定 Orderer 服务的相关配置以及当前的联盟信息, 这些信息定义在一个名为 configtx.yaml 文件中...

2019-02-22 15:24:04 594

原创 3.1 生成组织结构与身份证书

目标明确生成组织结构及身份证书所需的配置文件及其内容含义如何使用命令生成对应的组织结构信身份证书任务实现自动化脚本 byfn.sh 可以自动帮我们创建网络环境运行时所需的所有内容,但在一些特定情况之下,我们根据不同的需求需要自定义一些设置。现在,我们来实现最重要的环节,哪些配置文件的相关设置会影响创建 Hyperledger Fabric 网络环境运行时所需要的相应内容。3.1...

2019-02-22 15:22:03 861

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除