高金云信信用池V1.0
  • 项目说明
  • 技术栈
    • 技术选型
    • 数据流说明
  • 智能合约开发
    • 总体框架
    • MainSystem主合约
    • Bank银行身份合约
    • Company公司身份合约
    • Transaction交易合约
    • MemberStorage注册用户记录合约
    • TxStorage交易记录合约
  • 前端使用
    • 首页数据
    • 成员管理
    • 授信相关
    • 发起交易
    • 其它设置
  • 平台部署
    • 区块链
    • 智能合约
    • 监听脚本
    • 后端
    • 前端
由 GitBook 提供支持
在本页
  • 写入
  • 读取
  1. 技术栈

数据流说明

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

写入

前端与区块链

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

区块链与中心化数据库

后台运行的脚本时刻监听智能合约事件,并将其保存到MongoDB数据库中.

添加的新成员信息保存在members集合,数据结构为:

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

银行授信信息保存在grants集合,数据结构为:

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

交易信息保存在transactions集合,数据结构为:

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] //已完成结算银行名称.

交易数据记录保存在info集合,数据结构为:

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

读取

前端与区块链

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

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

前端与中心化数据库(后端)

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

上一页技术选型下一页智能合约开发

最后更新于2年前

银行授信/盟主授权模块: [ 筛选规则前者依据银行(根据登录账户信息),后者依据状态(状态为“银行授信”) ]

银行授权/银行结算模块: [ 筛选规则根据交易状态,前者为“授权完成”,后者为“结算完成” ]

业务管理模块: [ 筛选规则根据身份,银行为被使用额度,公司为发起或参与增信交易 ]

成员管理模块: [ 筛选规则为身份,仅能由盟主查看 ]

授信交易信息
使用额度交易信息
使用额度交易信息
成员(公司与银行)信息