一、系统的设计
在应收账款融资场景中通常涉及核心企业、供应商、金融机构这 三个参与方。我们通过图12-1来说明这些参与方是如何通过区块链进行协作的。
通过图12-1我们可以发现,每一笔交易都是所有的参与共同认证方可生效。因此我们将每个参与方抽象成Fabric中的一个组织,根据上面的描述我们可以设计出如图12-2所示的系统架构图。
按照图12-2所示的Fabric架构图,演示系统中存在三个组织—— 核心企业、供应商、金融机构,我们按照以下规则给三个组织命名:
表12-1供应链金融系统组织信息表
上面的配置信息非常重要,组织标识符和组织ID必须和后面的配 置文件一致,读者请留意这里设置的值。
二、系统环境搭建
根据表12-1提供的内容,现在可以开始部署Fabric的运行环境了。这里我们仅仅给出对应的配置文件。
1.创建配置文件
创建cryptogen模块生成账号系统所使用的配置文件,配置文件的内容如下所示:
创建congfigtxgen模块生成系统创始块和Channel创始块的配置文件,配置文件的内容如下所示:
配置文件创建好之后可以通过Fabric的congfigtxgen模块生成相关的系统文件,(Fabric项目的开发流程),这里不再复述。将上述两个配置文件严格按照第10章流程就可以完成演示用Fabric系统的启动。
注意:在上述步骤生成账号文件中包含了三个组织:核心企业、供应商、金融机构的证书,由于本例中存在三个组织,因此最少需要启动三个Peer节点,查看:Peer节点的启动。此外,进行Fabric系统部署时一定要注意域名、配置文件的路径、组织ID等信息的前后对应关系,这些因素会导致Fabric系统启动失败。
2.Chaincode的编写和发布
根据本例的要求我们编写一个简单的Chaincode,Chaincode代码如下所示:
将上述Chaincode代码的相关步骤部署到已经启动的Fabric系统中。
3、客户端开发
本例的客户端代码依然通过Nodejs进行开发,首先我们对Fabric相关的接口进行封装,封装之后的代码保存在名为fabricservice.js的文件中,该源代码文件的内容如下所示:
Web服务的Web框架依然采用Nodejs中的express框架,在项目开始之前需要通过npm工具安装express框架的相关包。安装前请先进入项目的目录,然后执行以下安装命令:
将web服务代码保存在名为fabricscf.js文件中,源代码内容如下所示:
现在可以启动这个简单的应用了,启动应用的命令如下所示:
通过以下命令完成交易:
通过以下命令查询交易:
通过上面的实例,我们演示了如何将Fabric应用到多方参与的业务场景中,通过使用Fabric可以非常方便地解决多方参于过程中信任献失和信息共享的问题。