> For the complete documentation index, see [llms.txt](https://505876833.gitbook.io/gao-jin-yun-xin-xin-yong-chi-v1.0/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://505876833.gitbook.io/gao-jin-yun-xin-xin-yong-chi-v1.0/ji-shu-zhan/shu-ju-liu-shuo-ming.md).

# 数据流说明

为了提高读取交易记录或检索关键信息的效率，采用双数据库（区块链+中心化数据库）的方案。

### 写入

#### 前端与区块链

在前端通过钱包触发所有交易，确认交易（签名）后，相关数据直接写入到区块链（更改智能合约状态）。

#### 区块链与中心化数据库

{% hint style="info" %}
后台运行的脚本时刻监听智能合约事件，并将其保存到MongoDB数据库中.
{% endhint %}

添加的新成员信息保存&#x5728;***members***&#x96C6;合，数据结构为：

```
name: String,  //用户名称.
id: String, //注册后生成的用户合约地址.
index: Number, //注册索引号（顺序号，银行公司分别排序）.
owner: String, //区块链地址（注：使用区块链地址注册后生成相应的用户合约地址）.
state: String, //身份标识，“银行” 或者 “公司” .
time: String //注册时间 年月日时分秒
```

银行授信信息保存&#x5728;***grants***&#x96C6;合，数据结构为：

```
from: String, //授信银行名称
to: String, //被授信公司名称
number: Number, //授信额度
time: String, //授信时间
state: String //授信状态，银行发起后为“银行授信”，盟主确认后为“盟主授权”.
```

交易信息保存&#x5728;***transactions***&#x96C6;合，数据结构为：

```
from: String, //发起交易的公司名称.
info: String, //交易类型： “应收” 或 “应付”.
number: Number, //申请额度.
type: String, //申请类型：“普通申请” 或 “增信申请”.
tx: String, //交易合约地址.
time: String, //交易发起时间 年月日时分秒.
state: String, //交易状态：交易发起时为“交易发起”，自行/盟主配额后为“配额完成”，利益相关银行全部授权后为“授权完成”，利益相关银行全部结算后为“结算完成”.
quota: [{ coIndex: Number, bankIndex: Number, setNumber: Number }], //配额（增信）信息：公司索引号、银行索引号、配额额度.
grant: [String], //已授权银行名称.
settlement: [String] //已完成结算银行名称.
```

交易数据记录保存&#x5728;***info***&#x96C6;合，数据结构为：

```
time: String, //日期 年月日
category: String, //“交易量” 或 “交易额”
value: Number, //“交易量” 或 “交易额” 的具体数值.
```

### 读取

#### 前端与区块链

获取当前登录（连接钱包，调用智能合约只读功能）账户的基本信息：索引、名称、身份、注册时间、身份合约、额度（使用/授信，剩余/未使用）。

登录（连接钱包，调用智能合约只读功能）后获得平台基本信息：授信总额、银行总数、公司总数、交易总量、交易总额、运行状态。

#### 前端与中心化数据库（后端）

银行/公司名称自动完成数据源。

银行授信/盟主授权模块：[授信交易信息](#qu-kuai-lian-yu-zhong-xin-hua-shu-ju-ku) \[ 筛选规则前者依据银行（根据登录账户信息），后者依据状态（状态为“银行授信”） ]

银行授权/银行结算模块：[使用额度交易信息](#qu-kuai-lian-yu-zhong-xin-hua-shu-ju-ku) \[ 筛选规则根据交易状态，前者为“授权完成”，后者为“结算完成” ]

业务管理模块：[使用额度交易信息](#qu-kuai-lian-yu-zhong-xin-hua-shu-ju-ku) \[ 筛选规则根据身份，银行为被使用额度，公司为发起或参与增信交易 ]

成员管理模块：[成员（公司与银行）信息](#qu-kuai-lian-yu-zhong-xin-hua-shu-ju-ku) \[ 筛选规则为身份，仅能由盟主查看 ]
