Skip to content

Concept

Aberic Yang edited this page Jul 3, 2018 · 3 revisions

基本概念


在使用F.N.S之前,需要对HyperLedger/Fabric与开发人员达成理解上的共识,参考如下图所示(无视小图标):
FabricNet

联盟

联盟在本项目中不是一个新概念,更不是杜撰出来的概念。HyperLedger Fabric最终部署成功后,就是一套完整的联盟链系统/平台。
一个Fabric网络即是一个League(联盟链)。

组织

组织即成员,在每一个League中均会有多个成员加盟,每一个成员可能会是不同的身份,如公司、社团、机构等,但每一个成员都是一个Org(组织)。
一个League包含一个或多个Org。

Peer节点

在本项目中的Peer节点即Fabric网络中的Peer对等节点。

排序服务

在本项目中的排序服务即Fabric网络中的Orderer排序服务节点,它可以同时服务于多个Peer对等节点。
一个League含有不少于一个Orderer

综述

1、一个Fabric网络即是一个league(联盟链),一个league包含一个或多个org(组织)且含有不少于一个orderer(排序服务),一个org包含一个或多个peer(节点服务),一个peer可以加入一个或多个channel(通道),一个channel可以安装一个或多个chaincode(智能合约)。

2、根据1所述,仅有league对象集合查询不需要指定id。org集合查询需要指定联盟id,orderer及peer集合查询需要指定orgId,channel集合查询需要指定peerId,chaincode集合查询需要指定channelId。

3、可以根据某一个chaincode逆向查出该chaincode的整个league网络,因此执行state和trace接口时只需要传入chaincodeId即可。

4、执行state接口中的strArray是调用Fabric网络中部署的chaincode所传入的参数,在用go编写chaincode的时候,chaincode所接收的参数为一个字符串数组,其中字符串数组的第一个参数是chaincode的方法名。chaincode接口中的args所传入的参数就是智能合约所接收的数组参数。如chaincode_example02中执行invoke时传入的参数为["invoke", "a", "b", "10"],那么在本项目中执行state接口时传入的参数即为[invoke,a,b,10],与Fabric网络中安装的chaincode所需参数保持一致,实现与业务解耦,仅用于维护Fabric项目和做业务与chaincode的桥梁,不参与实际业务当中。

5、执行trace接口可使用项目中在chaincode管理中提供的测试工具进行测试,上一步中的操作也可以通过该方法测试,测试结果会将正确的请求方式显示出来,以便对外提供服务。

6、Fabric网络新增操作必须遵循第2点所述,即必须从league开始新增,直到最后新增chaincode。

7、新增org中需要上传用zip压缩的crypto-config目录,crypto-config二进制生成的证书文件目录。目录下的内容可参考crypto-config.dir,配置方案可参考crypto-config

继续阅读安装部署文档。

Clone this wiki locally