通用溯源Baas平台设计方案

1 BaaS平台框架

通用溯源平台(Baas)框架

 后端采用微服务框架,分为多个服务,分别联系不同的功能模块。

服务名称

说明

数据采集服务

接收外部设备采集的数据,保存在消息队列中,同时写入本地数据库。

校验签名与发送方的身份是否一致。

数据解密,验证数据完整性。

检查目标合约是否允许用户地址的写入权限,否就丢弃数据,是就生成交易,发布到节点。

联盟链发布的交易采用同步等待机制,直接得到交易结果,写入本地数据库。

溯源查询服务

接收外部查询请求,查询信息(ip、地点、次数)写入本地数据库。

响应数据:企业、商品、溯源过程、查询数据

核心管理服务

实现基本的业务管理功能,包括以下功能模块:

账号管理: 平台系统的管理账号,权限控制

企业管理:企业注册,证件认证,增删改查等操作。允许个人以农户身份注册。

用户管理:隶属于企业的操作人员,能操作规定的各个环节数据。增删改查等操作。

商品管理:商品的增删改查,配置溯源模板、各个环节操作人员,

溯源模板管理:建立溯源模板,定义环节数量及所需数据。

批次管理:为实际产品生产建立批次码,关联商品。增删改查等操作。批次码编码规则,生成条形码和二维码。

码管理:定义溯源码规则,生成溯源码,包括验证码。生成条形码和二维码。

链管理服务

合约管理:对链上部署的合约进行读写操作,增删改查操作,录入操作人员。目标:用户合约、企业合约、商品合约、溯源码合约、数据采集合约。

私钥管理:为注册的用户生成链上账户,包括私钥、公钥,本地数据库中加密存储用户私钥文件。数据采集模块收到用户请求后,将使用私钥进行签名,生成交易。

链节点、WeBASE管理工具部署架构图

2  软件工作流程

2.1 创建用户私钥流程

2.2 发起交易流程

2.3链上交易步骤

步骤

内容

输出结果

1

合约管理

编译部署合约

输出:合约的java类文件

Abi接口文件,合约地址

2

私钥管理

为用户生成链上私钥

输出:私钥文件keystore,

保存在本地数据库

3

数据采集

集成合约Java类文件

选择用户私钥文件,绑定用户私钥

发起合约调用,写入数据

输出:交易hash

2.4溯源查询流程

步骤

内容

输出结果

1

查询请求

外部发起请求,

参数:ip、地点、溯源码

2

服务处理

检查溯源码合法性:存在,激活,有效期。

无效码应答失败

查询请求信息记录数据库

保存在本地数据库

统计溯源码的查询次数

3

应答

响应数据:企业、商品、溯源过程、查询数据

3 智能合约设计

智能合约采用solidity0.8版本编写,要求Fiscobcos联盟链节点是V3.1,WeBASE工具链使用V3.0.1。注意,已经发现WeBase工具链V3.0.1版本与节点V3.2版本不兼容,存在无法部署合约问题, 技术论坛回答修复bug升级WeBASE版本到V3.0.2, 安装文档中下载此版本就可以了。

合约类图

流程图

猜你喜欢

转载自blog.csdn.net/u012084827/article/details/130347708