用Fabric构建应收账款融资系统的方法

一、系统的设计

在应收账款融资场景中通常涉及核心企业、供应商、金融机构这 三个参与方。我们通过图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可以非常方便地解决多方参于过程中信任献失和信息共享的问题。

原文地址:https://www.cnblogs.com/hzcya1995/p/13312767.html