代码 fabric-sdk-java-object:https://gitee.com/xugy/fabric-sdk-java-object.git
### 1)Orderer 对象中定义了两个成员变量
ordererDomainName(String),指出了排序服务器所在的根域名;
orderer(List),一个排序服务器队列。
### 2)内部类 Order,也有两个成员变量
ordererName(String),排序服务器的域名;
ordererLocation(String),排序服务器的访问地址,ip:port。
### 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 事件处理。
### Chaincode 对象定义了 6个成员变量
channelName(String),当前将要访问的智能合约所属频道名称;
chaincodeName(String),智能合约名称;
chaincodePath(String),智能合约在服务器中的安装路径;
chaincodeVersion(String),智能合约版本号;
transactionWaitTime(int),临时变量控制等待部署和调用的时间,以完成在发出之前的事件。当 SDK 能够接收来自于此的事件时,这个问题就会被删除。
deployWaitTime(int),临时变量控制等待部署和调用的时间,以完成在发出之前的事件。当 SDK 能够接收来自于此的事件时,这个问题就会被删除。
每一个 peer 节点服务器都对应了一个组织成员下的会员对象,即拥有合法身份访问联盟数据对象。这个对象中的密钥文件由 CA 生成,即 keyfile 和 certfile。
这个会员也将从属于一个 Peer 节点,及 Peer 节点所从属的组织,即 FabricUser 对象也会包含组织及单节点相关信息。
FabricStore 对象的主要作用是根据用户初始化时的资源来做一次缓存操作,缓存于当前系统的缓存目录下。如果是 Linux 系统,则缓存于 /tmp 目录下,如是 windows,则缓存于 C:\Users\用户名\AppData\Local\Temp 目录下。
在执行缓存的同时,会在该缓存目录下创建一个名为 HFCSampletest.properties 的缓存文件,每当执行 Fabric 网络事务时,都会尝试读取该缓存并继续后续操作。该对象与 FabricUser 配合使用。
该对象对于性能有所帮助,所缓存的内容也会在服务暂停后由所在系统不定时销毁,对安全性也有一定的帮助。
FabricOrg 是一个联盟的单个组织对象,可以是医院,机构,学校,事业单位,公司和社团。
一个 Fabric 网络是由一个或多个组织共同组成的,每一个组织都具备自身独立性,既可以选择加入,也可以选择退出,是 Fabric 大型网络中最大的单元,也具有最高的独立性。
一个组织可以由 0个以上的排序服务节点和 1个以上的 Peer 节点共同组成,如果当前组织中没有部署排序服务节点,则必须由联盟发起方提供一个共享排序服务节点,否则是无法加入该网络的。
所以,在 FabricOrg 对象中,将包含之前所编写的 Orderers 和 Peers 对象,而 Chaincode 对象相对独立,只运行于 Channel 上。
当 FabricOrg 对象被构造的时候,会分别将 Orderers 和 Peers 中的队列内容一并读取并初始化,而 FabricOrg 对象也将作为 SDK 输出组织信息的统一出口。
FabricOrg 对象最终将被 ChaincodeManager 对象调用,是 SDK 中需要重点关注的一个对象。
FabricConfig 是一个较为简单的配置对象,其主要用来辅助 ChaincodeManager 对象管理其中请求所需的配置和参数。
在 SDK 实际的使用过程中,FabricConfig 将会被提到前台调用,即应用层直接创建一个 FabricConfig 对象提供给 Manager 对象使用。
ChaincodeManager 对象是整个 SDK 整理过程中的核心类,它主要承载了 Channel 以及 Chaincode 的初始化。随后,可以通过初始化的 Chaincode 执行智能合约的 invoke 及 query 方法,实现 SDK 最重要的两个 API。
p257 9.2 节所有对象。
TestManager -> FabricManager p264 down TestManager
p267 TestServiceImpl 各异常解释
postman 进行测试 p269