1.4.0 fabric-samples到底包含了哪些案例?

Camille ·
更新时间:2024-11-14
· 511 次阅读

00 导言

      我们从github上克隆 hyperledger/fabric-samples,克隆完成后,它里面包含的目录如下。

      接下来我们来介绍一下这些目录是干什么的?这些目录里包含了一些什么?

 

01 balance-transfer目录

      这是一个转账的案例,通过node.js SDK完成如下功能:创建通道(chanel),加入通道,部署链码(chaincode-就是智能合约),实例化链码,调用链码完成交易,以及查询链码等功能。链码的编程语言提供了两种语言的示例:golang和node.js语言。而app端又提供了两种语言的示例:node.js和typescript。整体如下图。

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,少了个sampleInstall这个过程。

      还有一种是Jenkins_Scripts,自动发布。

 

10 总结

      到此为止,我们几乎把fabric-samples的一级目录和文件都作了个简单的介绍。

      学习hyperledger fabric,我们除了首先要学习环境怎么部署和搭建之外,还需要通过一些案例来透彻理解fabric的架构设计、账户体系、授权认证机制、以及智能合约和SDK等方方面面的内容。而fabric-samples里正好包含了若干案例,来帮助我们达到这些目标。

 


作者:jappy1



fabric

需要 登录 后方可回复, 如果你还没有账号请 注册新账号