《HyperLedger Fabric 实战》—— 九、Java-SDK 客户端

《HyperLedger Fabric 实战》—— 九、Java-SDK 客户端

代码 fabric-sdk-java-object:https://gitee.com/xugy/fabric-sdk-java-object.git

1、Orderer 对象

### 1)Orderer 对象中定义了两个成员变量
  ordererDomainName(String),指出了排序服务器所在的根域名;

  orderer(List),一个排序服务器队列。

### 2)内部类 Order,也有两个成员变量
  ordererName(String),排序服务器的域名;

  ordererLocation(String),排序服务器的访问地址,ip:port。

2、Peers 对象

### 1)Peers 对象中定义了 4个成员变量
  orgName(String),当前的组织名称;

  orgMSPID(String),当前的组织 ID名;

  orgDomainName(String),当前指定的组织所在根域名;

  peers(List),peer 节点服务器队列。

### 2)内部类 Peer,有 6个成员变量
  peerName(String),当前的组织节点名称;

  peerEventHubName(String),当前的组织节点事件域名;

  peerLocation(String),当前指定的组织访问地址;

  peerEventHubLocation(String),当前指定的组织节点事件监听访问地址;

  caLocation(String),当前指定的组织节点 ca 访问地址;

  addEventHub(boolean),当前 peer 是否增加 Event 事件处理。

3、Chaincode 对象

### Chaincode 对象定义了 6个成员变量
  channelName(String),当前将要访问的智能合约所属频道名称;

  chaincodeName(String),智能合约名称;

  chaincodePath(String),智能合约在服务器中的安装路径;

  chaincodeVersion(String),智能合约版本号;

  transactionWaitTime(int),临时变量控制等待部署和调用的时间,以完成在发出之前的事件。当 SDK 能够接收来自于此的事件时,这个问题就会被删除。

  deployWaitTime(int),临时变量控制等待部署和调用的时间,以完成在发出之前的事件。当 SDK 能够接收来自于此的事件时,这个问题就会被删除。

4、FabricUser

每一个 peer 节点服务器都对应了一个组织成员下的会员对象,即拥有合法身份访问联盟数据对象。这个对象中的密钥文件由 CA 生成,即 keyfile 和 certfile。

这个会员也将从属于一个 Peer 节点,及 Peer 节点所从属的组织,即 FabricUser 对象也会包含组织及单节点相关信息。

5、FabricStore

FabricStore 对象的主要作用是根据用户初始化时的资源来做一次缓存操作,缓存于当前系统的缓存目录下。如果是 Linux 系统,则缓存于 /tmp 目录下,如是 windows,则缓存于 C:\Users\用户名\AppData\Local\Temp 目录下。

在执行缓存的同时,会在该缓存目录下创建一个名为 HFCSampletest.properties 的缓存文件,每当执行 Fabric 网络事务时,都会尝试读取该缓存并继续后续操作。该对象与 FabricUser 配合使用。

该对象对于性能有所帮助,所缓存的内容也会在服务暂停后由所在系统不定时销毁,对安全性也有一定的帮助。

6、FabricOrg

FabricOrg 是一个联盟的单个组织对象,可以是医院,机构,学校,事业单位,公司和社团。

一个 Fabric 网络是由一个或多个组织共同组成的,每一个组织都具备自身独立性,既可以选择加入,也可以选择退出,是 Fabric 大型网络中最大的单元,也具有最高的独立性。

一个组织可以由 0个以上的排序服务节点和 1个以上的 Peer 节点共同组成,如果当前组织中没有部署排序服务节点,则必须由联盟发起方提供一个共享排序服务节点,否则是无法加入该网络的。

所以,在 FabricOrg 对象中,将包含之前所编写的 Orderers 和 Peers 对象,而 Chaincode 对象相对独立,只运行于 Channel 上。

当 FabricOrg 对象被构造的时候,会分别将 Orderers 和 Peers 中的队列内容一并读取并初始化,而 FabricOrg 对象也将作为 SDK 输出组织信息的统一出口。
  
  FabricOrg 对象最终将被 ChaincodeManager 对象调用,是 SDK 中需要重点关注的一个对象。

7、FabricConfig

FabricConfig 是一个较为简单的配置对象,其主要用来辅助 ChaincodeManager 对象管理其中请求所需的配置和参数。

在 SDK 实际的使用过程中,FabricConfig 将会被提到前台调用,即应用层直接创建一个 FabricConfig 对象提供给 Manager 对象使用。

8、Chaincode Manager

ChaincodeManager 对象是整个 SDK 整理过程中的核心类,它主要承载了 Channel 以及 Chaincode 的初始化。随后,可以通过初始化的 Chaincode 执行智能合约的 invoke 及 query 方法,实现 SDK 最重要的两个 API。
  
  p257 9.2 节所有对象。

9、SDK 使用方法

TestManager -> FabricManager p264 down TestManager
  
  p267 TestServiceImpl 各异常解释
  
  postman 进行测试 p269

你可能感兴趣的:(《Hyperledger,Fabric,实战》)