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

发布于:2025-06-20 ⋅ 阅读:(22) ⋅ 点赞:(0)

食品溯源系统

这次提供的是基于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. 项目展示

系统首页

image.png

登录页面

image.png

注册页面

image.png

生产者页面

image.png

创建产品

image.png

我的产品

image.png

添加生产数据

image.png

生产信息查询

image.png

交易详情

image.png

物流服务商页面

image.png

运输管理

image.png

添加物流信息

image.png

image.png

物流信息详情

image.png

交易详情

image.png

零售商页面

image.png

接收产品

image.png
image.png
image.png

质量检查

image.png
image.png
image.png

销售管理

image.png

销售产品

image.png
image.png

零售信息

image.png

交易详情

image.png

消费者页面

image.png

产品查询

image.png

image.png


网站公告

今日签到

点亮在社区的每一天
去签到