fabric-samples到底包含了哪些案例?
00 导言
在上一讲《Fabric 环境搭建时bootstrap.sh帮我们做了什么?》中,我们知道bootstrap.sh帮我们做了三件事:
- 从github上克隆 hyperledger/fabric-samples并进入该目录,然后检出适当的版本
- 在fabric-samples目录下安装特定平台的 Hyperledger Fabric 二进制可执行文件 和配置文件
- 下载 指定版本的Hyperledger Fabric 的docker镜像
其中第一件事情就是从github上克隆 hyperledger/fabric-samples,克隆完成后,它里面包含的目录如下。
360截图20180806161424892.png
接下来我们来介绍一下这些目录是干什么的?这些目录里包含了一些什么?
01 balance-transfer目录
这是一个转账的案例,通过node.js SDK完成如下功能:创建通道(chanel),加入通道,部署链码(chaincode-就是智能合约),实例化链码,调用链码完成交易,以及查询链码等功能。链码的编程语言提供了两种语言的示例:golang和node.js语言。而app端又提供了两种语言的示例:node.js和typescript。整体如下图。
360截图20180806161613515.png
02 basic-network目录
该目录提供了一系列shell脚本,去生成初始化并启动一个最基本的网络,包含一个order节点,一个组织下的一个普通的peer节点。
脚本 | 作用 |
---|---|
init.sh | 删除之前存储的证书数据 |
generate.sh | 生成加密材料、创世区块、通道等 |
start.sh | 启动网络 |
stop.sh | 删除网络 |
teardown.sh | 彻底删除所有与网络有关的证据(删除存储和镜像) |
03 chaincode目录
该目录是一些链码的示例,包括以下目录:
目录 | 作用 |
---|---|
abac | Attribute-Based Access Control 基于身份属性的访问控制 |
chaincode_example02 | 一个简单的账户间转账和查询 的示例 |
fabcar | 一个关于汽车的综合示例,提供了Fabric功能的广泛演示。 演示与证书颁发机构进行交互并生成注册证书的过程,用这些身份来查询和更新帐本 |
marbles02 | 弹珠资产管理链码,演示couchDB的富查询(基于json) |
marbles02-private | 暂不了解 |
sacc | SimpleAssetChainCode 简单资产管理链码示例 |
04 chaincode-docker-devmode目录
该目录演示在开发网络时,利用预生成的order和chanel来启动“开发模式”。 这样,用户可以立即进入编译链码和驱动调用的过程。
通常,链码由peer节点启动和维护。 然而,在“开发模式”中,链码由用户构建和启动。在链代码开发阶段,此模式非常有用,可用于快速代码/构建/运行/调试。
05 fabcar目录
一个汽车的例子,主要是通过单机配置模拟环境,实现管理员admin用户的enrollAdmin(注册管理),其他用户的注册(主要是指user1),以及实现query和invoke。
该目录下主要包含的是一些js文件和一个startFabric.sh,没有包含链码(相关的链码放在chaincode/fabcar目录下)。运行startFabric.sh会先运行basic-network启动网络。
06 fabric-ca目录
演示如何使用Hyperledger Fabric CA客户端和服务器为order,peer,管理员和最终用户生成加密证书上,以便私钥永远不会离开生成它们的主机或容器。
为啥要使用CA呢? cryptogen加密工具不适用于生产环境,因为它在一个位置生成所有私钥,然后必须将其复制到适当的主机或容器。
07 first-network目录
我们平常说的搭建hyperledger fabric环境,一般指的是就是部署运行这个示例。该目录下提供一个脚本byfn.sh文件,该文件提供一条龙服务,演示了生成证书,启动网络节点(两个组织,每个组织有2个节点),以及部署、实例化链码,并调用链码进行转账和查询,最后停止整个网络。本示例采用的是solo共识服务机制。
08 high-throughput目录
访目录提供的案例,用于演示如何正确设计链码数据模型,以处理在每秒数千个并发事务,这些事务都更新了账本的相同资产。实际上就如何处理高并发的情况!
09 scripts目录
访目录提供了两种不同的脚本,一个是bootstrap.sh,该脚本跟《Fabric 环境搭建时bootstrap.sh帮我们做了什么?》中说的bootstrap.sh几乎一致,只是少了个sampleInstall这个过程。
还有一种是Jenkins_Scripts,对这行种脚本小编了解得不多,只知道Jenkins是一种基于Java开发的一种持续集成工具。
10 总结
到此为止,我们几乎把fabric-samples的一级目录和文件都作了个简单的介绍。
学习hyperledger fabric,我们除了首先要学习环境怎么部署和搭建之外,还需要通过一些案例来透彻理解fabric的架构设计、账户体系、授权认证机制、以及智能合约和SDK等方方面面的内容。而fabric-samples里正好包含了若干案例,来帮助我们达到这些目标。可以说,只要认真研究了fabric-samples提供的这些案例,基本上已经对hyperledger fabric的技术知识体系和动作原理有一定的了解了,接下来就要多多参与到工程级别的项目开发中,积累更多业务方面的经验,让hyperledger fabric更接地气,更面向实际业务场景!
作者:链播学院
链接:https://www.jianshu.com/p/147024cf92c9
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
fabric-samples到底包含了哪些案例?相关推荐
- DOM基础详细 包含多个案例
DOM基础详细 包含多个案例 关于DOM的高级事件请查看DOM的高级事件 DOM基础 详细 DOM基础详细 包含多个案例 DOM树 获取元素 如何获取元素 根据ID获取 根据标签名获取 通过HTML5 ...
- 看视频常见的 720p、1080p、4k,这些分辨率到底包含了什么
从早期的420p,到后来的720p,到现在的非1080p不看.视频的清晰度飞快提升,但是在看到色彩越来越丰富清晰度越来越高的画面时,你有关注过他们的到底是怎么做到的么?我们一起来了解一下吧. 想必大家 ...
- 4k视频分辨率的码流_看视频常见的 720p、1080p、4k,这些分辨率到底包含了什么...
想必大家在日常生活中都会看到或听到"分辨率"这个词,比如在视频网站会有几个分辨率选项供我们选择. 我们都知道选不同的分辨率会带来不同的清晰度,但是他们为什么要叫这个名字,720p. ...
- 基于Service fabric + Ocelot + Identity Server4 + 52ABP 的案例展示
10.24-27 大会Microsoft Tech Summit 2018 在上海举办,我 有幸受邀成为这场大会的讲师.Microsoft Tech Summit 2018 微软技术暨生态大会将于10 ...
- class ts 扩展方法_一个class文件到底包含了哪些东西?
通过对一个class文件的分析,基本理解了class文件结构,在这里最后再做一个总结,梳理下class文件内容. 两种结构 class文件内容如果泛化的区分可以分成两种结构: 1.字节数据:通过预先指 ...
- SAP C/4HANA到底包含哪些产品?
2018年6月的SAPPHIRE(蓝宝石大会)上, SAP发布了新的商务软件套件:C/4HANA,意在通过SAP C/4HANA将前台应用和SAP Digital Core(数字化核心)S/4HANA ...
- [转载] Python Web开发最难懂的WSGI协议,到底包含哪些内容? WSGI服务器种类和性能对比
参考链接: 在Python中创建代理Web服务器 1 http://python.jobbole.com/88653/ 我想大部分Python开发者最先接触到的方向是WEB方向(因为总是有开发者希望马 ...
- 幼儿园教师怎么教计算机知识,幼儿园教师的专业知识到底包含哪些,家长必知!...
家长们在给孩子选择幼儿园的时候,一般需要经过这几步,综合考虑以下这几个因素. 首先,选择公立幼儿园还是私立幼儿园.家长们第一个考虑因素是幼儿园属于公立还是私立,并对私立和公立进行分析和比较.比如说,幼 ...
- IBM站一个网页到底包含了多少技术
IBM首页源代码浅析 摘自 http://www.viphot.com 一.浏览器兼容性 作为一个国际大公司的站点,保证能在不同浏览器下的可浏览性是必须考虑的,这点IBM的做法不得不令人佩服.它巧妙的 ...
最新文章
- 衡阳之后,重估自动驾驶落地
- @ConfigurationProperties与@Value的区别
- python2还能用吗_官方推荐python3,为何还有人在用python2呢?
- 使用Struts2 验证框架,验证信息重复多次出现
- 连点器---鼠标连续点击(c语言)
- 线性可分支持向量机与软间隔最大化
- 将网页,网站(HTML,php,css)上传浏览器,实现输入网址即可访问(保姆级教学)
- 数独解法-变形数独(第二讲:数独基础方法(行唯一列唯一宫唯一唯余数))
- 腾讯云服务器云硬盘如何快速扩容!
- go语言的魔幻旅程28-go命令
- 20189320《网络攻防》第六周作业
- 关于 vue3.0 实战项目 setup、 props、 reactive、ref
- 辽宁省朝阳市谷歌高清卫星地图下载
- java多文件压缩为ZIP
- 俄罗斯方块 UWP 版
- 2019 DENSE-HAZE: A BENCHMARK FOR IMAGE DEHAZING WITH DENSE-HAZE AND HAZE-FREE IMAGES
- 大数据:计算学生成绩
- python阴阳鱼绘制(使用turtle)
- 05. JavaMail 回复邮件
- 论文、专利、文献检索及图像数据工具总结