本文主要是介绍通用溯源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, 安装文档中下载此版本就可以了。
合约类图
流程图
这篇关于通用溯源Baas平台设计方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!