> 技术文档 > 区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统


食品溯源系统

这次提供的是基于fabric2.4.9开发的食品溯源系统,使用Go + Gin + Vue3,样式精美,代码简单,适合初学者学习

1. 系统概述

1.1 项目背景

食品溯源系统是一个基于区块链技术的食品安全追溯平台,旨在实现从生产、物流、零售到消费的全链路食品安全信息透明化。通过Hyperledger Fabric区块链技术,确保数据的不可篡改性和可追溯性。

1.2 系统特点

  • 去中心化:基于区块链的分布式架构
  • 数据不可篡改:利用区块链技术保证数据完整性
  • 全链路追溯:覆盖生产、物流、零售、销售全过程
  • 多角色协作:支持生产者、物流商、零售商、消费者等多角色参与
  • 实时监控:实时记录温度、湿度等关键环境数据

1.3 技术栈

  • 区块链平台:Hyperledger Fabric
  • 后端语言:Go (Golang)
  • 前端语言:JavaScript
  • Web框架:Gin
  • 前端框架:Vue3
  • 数据库:SQLite
  • 认证机制:JWT (JSON Web Token)
  • 加密算法:bcrypt密码哈希

2. 系统架构

2.1 整体架构

┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐│ 前端应用 │ │ 移动端应用 │ │ 第三方系统 │└─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘ │││ └──────────────────────┼──────────────────────┘  │  ┌─────────────┴─────────────┐  │ API Gateway │  │ (Go + Gin + JWT) │  └─────────────┬─────────────┘  │  ┌─────────────┴─────────────┐  │ Hyperledger Fabric │  │ 区块链网络 │  └─────────────┬─────────────┘  │  ┌─────────────┴─────────────┐  │ FoodTrace ChainCode │  │ 智能合约 │  └───────────────────────────┘

2.2 组件说明

  • API Gateway:RESTful API服务,负责处理HTTP请求和响应
  • 用户认证模块:基于JWT的用户认证和授权
  • 区块链网络:Hyperledger Fabric网络,存储和处理业务数据
  • 智能合约:链码实现业务逻辑和数据验证
  • 数据库:SQLite存储用户信息和会话数据

3. 核心数据模型

3.1 产品模型 (Product)

type Product struct { ID string `json:\"id\"` // 产品唯一标识 Name  string `json:\"name\"`  // 产品名称 Description string `json:\"description\"` // 产品描述 ProducerID string `json:\"producerId\"` // 生产者ID ProductionDate string `json:\"productionDate\"` // 生产日期 ExpirationDate string `json:\"expirationDate\"` // 过期日期 BatchNumber string `json:\"batchNumber\"` // 批次号 Status string `json:\"status\"` // 产品状态 ProductionData Production `json:\"productionData\"` // 生产数据 LogisticsData []Logistics `json:\"logisticsData\"` // 物流数据数组 RetailData Retail `json:\"retailData\"` // 零售数据 CreatedTxID string `json:\"createdTxId\"` // 创建交易ID}

3.2 生产数据模型 (Production)

type Production struct { Location string `json:\"location\"` // 生产地点 Temperature float64 `json:\"temperature\"` // 生产环境温度 Humidity float64 `json:\"humidity\"` // 生产环境湿度 RawMaterials []string `json:\"rawMaterials\"` // 原材料列表 Certifications []string `json:\"certifications\"` // 认证信息 AdditionalInfo string `json:\"additionalInfo\"` // 额外信息 TxID  string `json:\"txId\"`  // 交易ID Timestamp string `json:\"timestamp\"` // 时间戳}

3.3 物流数据模型 (Logistics)

type Logistics struct { LogisticsID string `json:\"logisticsId\"` // 物流服务商ID FromLocation string `json:\"fromLocation\"` // 起始地点 ToLocation string `json:\"toLocation\"` // 目的地点 DepartureTime string `json:\"departureTime\"` // 出发时间 ArrivalTime string `json:\"arrivalTime\"` // 到达时间 Temperature float64 `json:\"temperature\"` // 运输环境温度 Humidity float64 `json:\"humidity\"` // 运输环境湿度 TransportType string `json:\"transportType\"` // 运输方式 AdditionalInfo string `json:\"additionalInfo\"` // 额外信息 TxID  string `json:\"txId\"`  // 交易ID Timestamp string `json:\"timestamp\"` // 时间戳}

3.4 零售数据模型 (Retail)

type Retail struct { RetailerID string `json:\"retailerId\"` // 零售商ID StoreLocation string `json:\"storeLocation\"` // 商店位置 ReceiveDate string `json:\"receiveDate\"` // 接收日期 SaleDate string `json:\"saleDate\"` // 销售日期 Price float64 `json:\"price\"` // 销售价格 QualityCheck bool `json:\"qualityCheck\"` // 质量检查结果 AdditionalInfo string `json:\"additionalInfo\"` // 额外信息 TxID  string `json:\"txId\"`  // 交易ID Timestamp string `json:\"timestamp\"` // 时间戳}

4. 数据库模型

4.1 用户表 (users)

CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, -- 用户ID username TEXT NOT NULL UNIQUE,  -- 用户名 password TEXT NOT NULL,  -- 密码哈希 role TEXT NOT NULL,-- 用户角色 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- 创建时间);

4.2 产品状态枚举

const ( StatusProduced = \"PRODUCED\" // 已生产 StatusShipping = \"SHIPPING\" // 运输中 StatusReceived = \"RECEIVED\" // 已接收 StatusSold = \"SOLD\" // 已销售)

5. 系统角色

5.1 角色定义

const ( RoleProducer = \"PRODUCER\" // 生产者 RoleLogistics = \"LOGISTICS\" // 物流商 RoleRetailer = \"RETAILER\" // 零售商 RoleConsumer = \"CONSUMER\" // 消费者)

5.2 角色权限

角色 权限 可执行操作 生产者 (PRODUCER) 创建产品、添加生产数据 POST /api/producer/product
POST /api/producer/product/:id/production 物流商 (LOGISTICS) 添加物流数据 POST /api/logistics/product/:id/logistics 零售商 (RETAILER) 接收产品、质量检查、销售产品 POST /api/retailer/product/:id/receive
POST /api/retailer/product/:id/quality
POST /api/retailer/product/:id/sell 消费者 (CONSUMER) 查询产品信息 所有查询接口

6. 核心业务流程

6.1 产品生命周期

创建产品 → 添加生产数据 → 物流运输 → 零售商接收 → 质量检查 → 销售给消费者 ↓  ↓  ↓ ↓ ↓ ↓PRODUCED → PRODUCED → SHIPPING → RECEIVED → RECEIVED → SOLD

6.2 详细业务流程

6.2.1 产品创建流程
  1. 生产者注册并登录系统
  2. 创建新产品:调用 CreateProduct 链码方法
  3. 添加生产数据:记录生产环境、原材料等信息
  4. 产品状态:设置为 PRODUCED
6.2.2 物流运输流程
  1. 物流商接收产品
  2. 添加物流数据:记录运输路线、环境条件等
  3. 产品状态:更新为 SHIPPING
  4. 支持多段物流:可添加多个物流记录
6.2.3 零售销售流程
  1. 零售商接收产品:产品状态从 SHIPPING 更新为 RECEIVED
  2. 质量检查:进行质量检验,记录检查结果
  3. 销售产品:只有通过质量检查的产品才能销售
  4. 产品状态:最终更新为 SOLD

6.3 状态转换规则

  • PRODUCEDSHIPPING:添加物流数据时
  • SHIPPINGRECEIVED:零售商接收产品时
  • RECEIVEDSOLD:零售商销售产品时(需先通过质量检查)

7. 项目展示

系统首页

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

登录页面

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

注册页面

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

生产者页面

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

创建产品

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

我的产品

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

添加生产数据

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

生产信息查询

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

交易详情

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

物流服务商页面

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

运输管理

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

添加物流信息

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

物流信息详情

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

交易详情

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

零售商页面

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

接收产品

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统
区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统
区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

质量检查

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统
区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统
区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

销售管理

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

销售产品

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统
区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

零售信息

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

交易详情

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

消费者页面

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

产品查询

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统

区块链食品溯源系统(Vue3 + Gin + Hyperledger Fabric)_区块链溯源系统