Some directories and files fabric-samples directory of all what to do

First, look at us, we downloaded some fabric-samples directories and files in the directory are to do something

In fabric-samples inside the bin directory [I here / home / gavin / fabric / fabric-samples / bin] there are so configtxgen configtxlator cryptogen three tools available to us before starting the fabric used to build the network we need to start networking Some configuration and to start Orderer and peer nodes in a binary file, and then we go back to the root directory of fabric-samples under [I here / home / gavin / fabric / fabric-samples]:

15873283-7bbffa83bdd62019
image

01 balance-transfer directory

This is a transfer case, complete the following functions through node.js SDK: Create a channel (chanel), adding the channel, deployed chain code (chaincode- is a smart contract), examples of the chain code, call the chain code to complete the transaction, and query chain code other functions. Chain code programming language provides an example of two languages: golang node.js and language. The app end and provides an example of two languages: node.js and typescript. FIG as a whole.


13024096-033871b4dc269fce.png
360 shots 20180806161613515.png

02 basic-network directory

The directory provides a series of shell scripts, initialize and start to generate a basic network, including a node order, a common peer node under a single organization.

script effect
init.sh Certificates stored data before deleting
generate.sh Generating keying material, creation block, channel, etc.
start.sh Start Network
stop.sh Delete Network
teardown.sh Completely remove all network-related evidence (delete storage and mirroring)

03 bin directory

04 chaincode directory

Example, an example of a smart contract chain code provided by the official; their own local test chain code, they also can be written chain code placed here, then mount inside the container, including the following directories:

table of Contents effect
abac Attribute-Based Access Control 基于身份属性的访问控制
chaincode_example02 一个简单的账户间转账和查询 的示例
fabcar 一个关于汽车的综合示例,提供了Fabric功能的广泛演示。 演示与证书颁发机构进行交互并生成注册证书的过程,用这些身份来查询和更新帐本
marbles02 弹珠资产管理链码,演示couchDB的富查询(基于json)
marbles02-private 暂不了解
sacc SimpleAssetChainCode 简单资产管理链码示例

05 chaincode-docker-devmode目录

官方提供的本地调试链码的时候所具备的一些配置及启动文件【即 本地调试的环境】

​ 该目录演示在开发网络时,利用预生成的order和chanel来启动“开发模式”。 这样,用户可以立即进入编译链码和驱动调用的过程。

​ 通常,链码由peer节点启动和维护。 然而,在“开发模式”中,链码由用户构建和启动。在链代码开发阶段,此模式非常有用,可用于快速代码/构建/运行/调试。

06 config目录

主要放着三个文件 configtx.yaml、core.yaml、orderer.yaml 其中 configtx.yaml 是主要配置用来生成网络的各项配置(如: genesis.block、channel.tx 、及锚节点的更新配置文件)的示例模板;core.yaml 为peer节点的启动配置;orderer.yaml 为orderer节点的启动配置;【注意了 生成组织结构的配置文件是 crypto-config.yaml 这个在 first-network 中有示例】

07 fabcar目录

​ 一个汽车的例子,主要是通过单机配置模拟环境,实现管理员admin用户的enrollAdmin(注册管理),其他用户的注册(主要是指user1),以及实现query和invoke。

​ 该目录下主要包含的是一些js文件和一个startFabric.sh,没有包含链码(相关的链码放在chaincode/fabcar目录下)。运行startFabric.sh会先运行basic-network启动网络。

08 fabric-ca目录

​ 演示如何使用Hyperledger Fabric CA客户端和服务器为order,peer,管理员和最终用户生成加密证书上,以便私钥永远不会离开生成它们的主机或容器。

​ 为啥要使用CA呢? cryptogen加密工具不适用于生产环境,因为它在一个位置生成所有私钥,然后必须将其复制到适当的主机或容器。

09 first-network目录

​ 我们的第一个fabric网络,这个相对比basic-network更为全面一点,我们在里面可以启动一个基本的fabric网络外,做动态的【即在网络运行的情况下】添加新的组织,新的通道等等之类的操作示例

我们平常说的搭建hyperledger fabric环境,一般指的是就是部署运行这个示例。该目录下提供一个脚本byfn.sh文件,该文件提供一条龙服务,演示了生成证书,启动网络节点(两个组织,每个组织有2个节点),以及部署、实例化链码,并调用链码进行转账和查询,最后停止整个网络。本示例采用的是solo共识服务机制。

10 high-throughput目录

展示了如何搭建一个高并发事务的fabric网络

访目录提供的案例,用于演示如何正确设计链码数据模型,以处理在每秒数千个并发事务,这些事务都更新了账本的相同资产。实际上就如何处理高并发的情况!

11 scripts目录

​ 访目录提供了两种不同的脚本,一个是bootstrap.sh,该脚本跟《Fabric 环境搭建时bootstrap.sh帮我们做了什么?》中说的bootstrap.sh几乎一致,只是少了个sampleInstall这个过程。

​ 还有一种是Jenkins_Scripts,对这行种脚本小编了解得不多,只知道Jenkins是一种基于Java开发的一种持续集成工具。

OK,到这里我们大致上知道了fabric-samples的下的各个目录是做些什么的了,那么我们可以先来玩一下fabric网络搭建流程及链码调用的整个流程是怎么样的,我们先进入first-network目录下 (我这里是 /home/gavin/fabric/fabric-samples/first-network )【注意 我们不一定要进入 first-network目录来启动网络,只是说这个比较能说明整个流程而已,我们在 basic-network 或者 fabcar、fabric-ca 等等目录下都可以启动网络,只是不同文件夹给我们展现的是不同情况下的网络,具体看上面我对各个目录的说明就明白了】,我们在这个目录下会看到一个 byfn.sh 文件(by first-network) vim byfn.sh 通过查看这个文件我们可以看到最底下有这些内容:

15873283-5241ab0a4c9274f8
image

我们可以知道 在执行这个文件的时候可以携带的各项参数,我们来执行下 ./byfn.sh up 然后我们可以在控制台看到它整个启动网络前做了哪些事,怎么启动网络,启动网络后怎么部署链码,怎么调用链码等等全过程,如果我们看到最后显示为 :

15873283-9061902404a288e5
image

则表示整个过程完全执行成功了!我们再执行一下, docker ps 查看下目前网络启动的docker container都有哪些

15873283-6affc1ea11c6e7b5
image

顺便我们可以执行下 docker images 查看下生成了哪些新的镜像文件

15873283-154d09187fd8de27
image

我们可以看到 新生成了几个带有 dev- 开头的镜像文件,这几个就是所被部署的到peer节点的链码所启动的链码镜像文件~

【注意】每一次跑完示例之后我们都需要 ./byfn.sh down 来关闭网络,杀掉docker container 删掉 链码的 docker images

Reproduced in: https: //www.jianshu.com/p/3e9b024f8a15

Guess you like

Origin blog.csdn.net/weixin_34234721/article/details/91115586