1. 引言
在全球经济一体化与贸易自由化纵深推进的背景下,海鲜产品跨区域流通规模持续扩大,市场需求呈刚性增长态势。然而,日本福岛核电站泄漏事故引发的进口海鲜安全性争议[1]、频发的非法捕捞与供应链信息造假事件,不仅冲击消费者信任,更暴露出传统海鲜溯源体系在风险防控与信息透明化方面的结构性缺陷。在此背景下,区块链技术凭借不可篡改性、去中心化与透明性等核心特性[2] [3],为达成有效的产品溯源提供了全新的解决办法。同时,也使企业在产品生产加工中的安全性和信息化管理水平得到提高[4];为政府机关提升了监管效率,保障了对问题海鲜产品可进行高效追踪[5]。现有研究与实践多聚焦于利用区块链技术不可篡改性降低数据造假风险与实现基础溯源功能,但对数据源头可信性缺失、主体协同不足、技术与产业需求脱节等系统性优化研究尚显不足。
基于此,本研究依托FISCO BCOS联盟链的不可篡改性、高效共识等特性,通过实现多源数据交叉验证、智能合约固话数据规则、联盟链分级权限管理、多模态普惠设计等功能,构建集全生命周期追踪与多方协同管理于一体的海鲜产品溯源系统,旨在针对性攻克现有研究的核心局限,既回应了供应链管控、安全监管与消费知情的现实需求,也为区块链技术在食品溯源领域的产业化落地提供了可复用实践方案[6]。
2. 系统需求分析
该海鲜产品溯源系统的应用需求着重关注海鲜供应链核心企业,这类企业对供应链上下游有较强掌控能力,期望由企业统一管理信息并上传至链,以此保证数据格式统一、标准一致,防止多方上链时可能出现的数据混乱状况,减少多方数据交互以及验证的复杂流程,提升数据上链速度以及信息更新效率,达成对产品全流程信息的精确记录与高效管理,优化供应链、提高生产效率、提高产品竞争力。基于此,系统将用户群体划分为海鲜管理端用户与普通用户,其中管理端需具备海鲜产品基本信息及供应链各环节信息的录入、管理功能,以及质量检测报告记录功能;普通用户则需支持通过产品ID查询海鲜产品从捕捞、加工、运输到销售的全流程溯源信息,明确产品真实来源与处理过程。
3. 系统设计
3.1. 总体架构设计
本系统逻辑架构设计一共分为五层,持久层、业务层、控制层、前端页面和用户层。如图1所示。
Figure 1. System general frame diagram
图1. 系统总体框架图
持久层采用FISCO BCOS搭建区块链服务器,用于存放海鲜产品的溯源关键数据,利用FISCO BCOS智能合约定义数据的存储结构、操作规则,结合其共识机制对溯源数据进行验证与更新,保障数据的不可篡改和一致性,将经过验证的溯源关键数据上传至区块链网络。并使用MySQL数据库存放基础数据。
业务层负责收集海鲜产品全生命周期数据,涵盖捕捞、加工、运输、销售环节等,为企业、消费者等不同主体提供多样化查询服务。
控制层负责接收前端页面发送的各类请求,根据请求类型调用业务层相应方法进行数据处理,将业务层处理后返回的数据进行格式化、打包等处理,再发送给前端页面展示,实现前后端数据交互与业务逻辑流转[7]。
3.2. 区块链设计
选择FISCO BCOS联盟链作为底层链,共识机制采用PBFT共识算法,区块链的存储结构采用链式结构存储数据。数据模型上,通过结构体定义海鲜基本信息、加工运输信息、销售信息和质量报告等数据结构,并利用映射将海鲜ID与各类信息相关联,方便数据的查询与管理。数据组织以海鲜ID为索引,各类信息按时间顺序存储,便于追溯。在上链存储时,管理端将交易提交至TxPool (交易池),共识模块中的Sealer从TxPool中获取交易,进行打包处理,生成区块。每个区块包含区块头和区块体,区块头记录前一区块哈希值、时间戳等关键信息,区块体则存储具体的交易数据。生成的区块进入Engine,通过P2P网络在节点间广播和接收共识消息包,各节点基于PBFT共识算法对区块进行验证等操作,处理共识消息包,达成共识后的区块传递给BlockVerifier (区块执行器),对区块内的交易进行执行,验证交易的有效性并执行相关操作。经过执行且验证无误的区块,最终添加到区块链中,完成整个交易处理和区块上链的流程[8]。数据访问通过智能合约的读取函数实现,用户或管理员调用相应函数,即可获取所需的海鲜产品全流程信息。如图2所示:
Figure 2. Blockchain design
图2. 区块链设计
3.3. 智能合约设计
设计一个智能合约用于实现海鲜产品的全流程溯源,整体目标借助区块链的不可篡改特性,构建一个可追溯海鲜产品从捕捞直至销售全生命周期信息的系统。
3.3.1. 数据结构设计
使用结构体定义(struct)海鲜基本信息、加工运输信息、销售信息和质量报告,确保所有相关信息都有明确的格式和字段,详见表1~4。利用映射(mapping)将海鲜ID与各类信息相关联,以海鲜ID作为关键字,方便查询和更新。
Table 1. SeaFoodInfo structure store field
表1. SeaFoodInfo结构体存储字段
字段名称 |
数据类型 |
字段说明 |
备注 |
species |
string |
海鲜种类 |
主键 |
specification |
string |
海鲜规格 |
- |
name |
string |
海鲜名称 |
- |
catchtime |
string |
捕捞时间 |
- |
feed |
string |
饲料 |
- |
Table 2. ProcessingTransportInfo stores fields
表2. ProcessingTransportInfo存储字段
字段名称 |
数据类型 |
字段说明 |
备注 |
details |
string |
加工运输详细情况 |
- |
timestamp |
uint |
加工运输时间戳 |
- |
infoType |
string |
区分加工还是运输 |
- |
Table 3. SalesInfo structure stores fields
表3. SalesInfo结构体存储字段
字段名称 |
数据类型 |
字段说明 |
备注 |
price |
uint |
销售价格 |
- |
timestamp |
uint |
销售时间戳 |
- |
seller |
string |
销售商 |
- |
Table 4. QualityReport structure stores fields
表4. QualityReport结构体存储字段
字段名称 |
数据类型 |
字段说明 |
备注 |
microbialTest |
string |
微生物检测结果 |
- |
heavyMetalTest |
string |
重金属检测结果 |
- |
drugResidueTest |
string |
药物残留检测结果 |
- |
testDate |
string |
质量检测日期 |
- |
testingOrg |
string |
质量检测机构 |
- |
3.3.2. 合约内功能模块设计
此部分包括信息登记功能和信息读取功能。
登记功能需设计四个函数,分别用于登记海鲜的基本、加工运输、销售和质量报告信息。在登记过程中进行数据验证,检查海鲜ID是否已注册。每个函数都有相应的输入参数,并在函数内部将信息存储到对应的映射中。
读取功能需设计四个函数,用于读取相应的信息,这些函数使用view修饰符,保证在不修改区块链状态的情况下获取数据,满足查询需求。同时利用区块的时间戳记录每笔数据的添加时间,为每条记录提供时间证明。
3.3.3. 事件设计
声明事件(event)来记录每次信息添加的动作,在信息登记时触发事件,使用FISCO BCOS的Go SDK来监听事件,方便记录信息变更。智能合约中一共定义4个事件,分别用于记录不同类型信息的登记操作,如表5所示:
Table 5. Event design
表5. 事件设计
事件定义 |
事件参数 |
触发条件 |
触发函数 |
SeafoodRegistered |
seafoodId、
species、name |
新的海鲜基本信息被登记到seafoodRegistry映射中 |
registerSeafood |
ProcessingTransport-Registered |
seafoodId、details、infoType |
加工或运输信息被添到processingTransportHistory映射中 |
registerProcessingTransport |
SalesRegistered |
seafoodId、price、seller |
销售信息被记录到salesRecord映射中 |
registerSales |
QualityReport-Registered |
seafoodId、testingOrg |
质量报告被添加到qualityReports映射中 |
registerQualityReport |
3.4. 系统功能模块设计
该系统功能模块设计围绕海鲜产品全流程信息追溯与管理展开,涵盖管理、基础数据、区块链技术及用户交互等多方面:
溯源系统管理端聚焦海鲜产品信息的综合管控。海鲜信息管理负责录入与维护海鲜基础数据;加工信息管理记录加工环节工艺、流程等;运输信息管理跟踪运输过程的物流轨迹;销售信息管理把控产品销售流向与交易数据;质量报告管理审核与存储质量检测结果,确保产品质量安全可查。
系统基础数据后台着重于系统运行的基础支撑。节点管理功能维护区块链网络节点的稳定运行;角色管理功能明确系统内不同角色权限,保障操作安全;用户管理功能处理用户注册、登录及信息维护,实现用户账户的有效管理。
区块链网络模块借助区块链特性保障数据可靠。底层算法处理运用密码学等算法确保数据安全;共识机制促使节点间达成数据一致;智能合约以代码形式固化业务规则,自动执行交易;区块信息展示直观呈现区块链数据,方便追溯与监管。
溯源系统用户端提供便捷交互体验。公告信息发布系统通知与行业动态;溯源查询支持用户自主获取海鲜产品从捕捞到销售的全流程溯源信息;AI客服运用人工智能实时解答用户疑问,提升用户使用满意度。如图3所示:
Figure 3. Functional module design
图3. 功能模块设计
3.5. 数据库设计
3.5.1. 数据库E-R图
根据上述功能模块分析,本海鲜产品溯源平台的系统全局E-R图。实体包括用户、管理员、海鲜信息、加工信息、运输信息、销售信息和质量报告信息。不同用户可查看多条海鲜信息,一条海鲜信息也可被多个用户查看,是多对多的关系。而一个管理员可注册和浏览多个海鲜产品的基本信息、加工信息、运输信息、销售信息和质量报告信息,是一对多的关系[9]。如图4所示:
Figure 4. Database E-R diagram
图4. 数据库E-R图
3.5.2. 数据库表设计
seafood_info表(海鲜信息表)存储单个海鲜产品实例的基础数据,涵盖ID、用户及海鲜标识、分类品种、规格名称、捕捞相关信息、饲料与图片链接等业务字段,同时记录区块链交易哈希及数据创建与更新时间,字段设计保障非空约束与唯一性校验,支撑产品溯源核心数据存储需求。
sale_info表(销售信息表)记录每次海鲜销售交易详情,包含ID、关联海鲜ID、单价、经销商、发货数量、总金额等交易核心数据,辅以备注信息、区块链交易哈希及创建时间,字段设计确保关键交易信息非空且海鲜ID与交易哈希唯一,支撑销售业务数据管理与追溯。
quality_reports表(质量报告表)存储海鲜产品质量检测详情,包含ID、关联海鲜ID、检测机构、检测日期、微生物检测结果、重金属检测结果、药物残留检测结果、详细报告内容等核心检测数据,辅以备注信息、区块链交易哈希及创建时间,字段设计确保关键检测信息非空且海鲜ID与交易哈希唯一,支撑产品质量数据追溯与核验。
trace_info表(海鲜追溯信息表)记录海鲜产品加工、运输等环节的追溯数据,包含ID、关联海鲜ID、操作时间、地址、详细信息、操作类型、经纬度等核心追溯要素,结合区块链交易哈希及创建时间,字段设计确保关键信息非空且海鲜ID与交易哈希唯一,实现产品全流程溯源跟踪。
users表(用户表)存储系统用户基础信息,包含ID、用户名、密码、地址及角色等核心字段,通过ID唯一性约束保障数据标识准确性,字段设计确保关键用户信息非空,支撑系统用户身份认证与权限管理。
sys_config表(配置表)存储系统配置数据,包含配置变量、变量值、设置时间等字段,支持非必填配置设计,无强制唯一约束,为记录海鲜产品的销售信息,跟踪产品的销售情况提供灵活的数据存储支撑。
3.6. 系统内部溯源流程设计
在实现海鲜产品溯源信息上链存储的过程中,Go SDK将接收到的海鲜溯源信息进行整理,封装成交易提案发送到FISCO BCOS区块链网络中的相关节点进行初步处理和验证,验证通过后将响应返回给Go SDK并提交到区块链网络进行执行。共识模块中的相关线程和共识算法对收到的交易进行排序,并将响应信息和交易一起打包成区块广播到共识网络,其他节点接收到区块后对区块中的交易进行验证。若验证通过,将该区块添加到通道对应的链上,同时更新状态数据库。最后Go SDK将从区块链网络接收到的最终处理结果传递给前端页面,前端页面再展示给管理端用户。如图5所示:
Figure 5. Traceability information input timing
图5. 溯源信息输入时序
4. 系统实现
4.1. 管理端模块实现
管理端模块的主要目标是为管理员提供一个方便、高效的管理界面,用于管理产品信息。开发管理端的登录注册界面,实现海鲜管理功能,完善加工运输模块,构建销售信息管理功能,搭建质量报告管理功能。
4.1.1. 登录注册界面
管理端注册界面设有用户名、密码、确认密码输入框,密码有至少6位、包含数字和字母的强度提示。注册成功后会返回账户地址和私钥。登录界面设有用户名、密码和验证码输入框。
4.1.2. 海鲜信息管理
(1) 海鲜信息注册
该页面是一个包含海鲜种类、规格等输入字段的海鲜信息注册表单,如图6所示:
Figure 6. Seafood information registration interface
图6. 海鲜信息注册界面
(2) 海鲜信息浏览
海鲜信息浏览页面布局包括标题、“新增注册”按钮、搜索表单和海鲜信息表格。浏览详情包含海鲜的ID、名称、规格等基本信息和区块链信息,如图7所示:
Figure 7. Seafood information browsing interface
图7. 海鲜信息浏览界面
4.1.3. 加工运输信息管理
(1) 加工信息注册
加工信息注册页面是一个含海鲜ID选择(从已有的海鲜列表中选)、加工时间、加工地址、加工明细等字段的表单。
(2) 运输信息注册
运输信息注册页面包含有海鲜ID选择框、运输时间选择框、运输地址输入框(通过地图选择)、运输明细输入框等字段的表单。
(3) 加工运输信息浏览
加工运输信息浏览页面是一个包含标题、“新增运输”“新增加工”按钮、搜索表单和加工运输信息表格的界面,可看到海鲜的基本信息和区块链信息,如图8所示:
Figure 8. Processing and transportation information browsing interface
图8. 加工运输信息浏览界面
4.1.4. 销售信息管理
Figure 9. Sales information browsing interface
图9. 销售信息浏览界面
(1) 销售信息注册
包含页面标题“销售信息注册”,“重置”和“提交注册”按钮,以及包含海鲜ID、零售价、经销商等输入框的表单。
(2) 销售信息浏览
销售信息浏览页面包含标题、“新增销售”按钮、搜索表单和销售信息表格。界面如图9所示。
4.1.5. 质量报告管理
(1) 质量报告信息注册
包含页面标题“质量报告注册”,“重置”和“提交注册”按钮,以及包含海鲜ID、检测机构、检测日期、检测项目、详细报告和备注的表单。界面如图10所示:
Figure 10. Quality report registration
图10. 质量报告注册界面
(2) 质量报告信息浏览
这是质量报告浏览页面,包含标题、搜索表单和质量报告信息表格。界面如图11所示:
Figure 11. Quality report browsing interface
图11. 质量报告浏览界面
4.2. 用户端模块实现
4.2.1. 登录注册界面
用户端注册界面设有用户名、密码、确认密码输入框,密码有至少6位、包含数字和字母的强度提示。登录界面设有用户名、密码和验证码输入框。
4.2.2. 公告信息
该界面展示了海鲜产品溯源系统的公告信息、区块链统计信息、价格趋势以及实时溯源信息。界面如图12所示:
Figure 12. Announcement information interface
图12. 公告信息界面
当用户在前端页面中需要查看某个交易的详细信息时,前端会构造包含交易哈希的请求发送给GetInfoByHash接口,后端接收到前端的请求后,根据请求的类型调用相应的路由处理函数将信息返回给前端,如在GetInfoByHash中,解析请求中的交易哈希,调用区块链客户端(SeaFoodClient)的方法获取交易信息,然后将信息以JSON格式返回给前端。前端接收到后端返回的数据后,根据不同的业务逻辑进行展示。获取区块链上的交易总数。
4.2.3. 溯源查询
Figure 13. Transaction hash query result
图13. 交易哈希查询结果
溯源查询页面包含标题、重置按钮以及溯源查询方式选择(通过ID或交易哈希查询)。部分界面如图13所示。
5. 讨论
5.1. 实验结果分析
系统依托FISCO BCOS联盟链构建全流程溯源体系,实现了海鲜产品数据的不可篡改与透明可查。通过多模块功能协同,既满足了核心企业供应链管控需求,又为消费者提供便捷查询渠道,同时助力监管部门精准执法,形成“数据可信–管理高效–消费放心”的应用闭环,为区块链技术落地食品溯源领域提供了可行实践。
5.2. 系统局限性
其一,数据采集依赖人工录入,自动化程度不足,存在效率低、误差风险;其二,中小主体接入门槛较高,缺乏激励机制导致溯源链条覆盖不完整;其三,场景适配单一,未覆盖冷链监控等细分需求,应急响应缺乏自动化预警。
5.3. 未来研究方向
基于本研究的成果与局限性,未来研究中可引入物联网设备实现数据自动采集与实时上链,结合AI优化数据校验;设计分级接入方案与激励机制,拓展多主体协同范围;开发冷链监控、智能预警功能,适配多元场景,探索跨区域溯源数据互通机制。
6. 总结
本研究以海鲜产品安全溯源为核心目标,聚焦区块链技术在食品供应链中的产业化应用,系统阐述了基于FISCO BCOS的海鲜产品溯源系统的需求分析、架构设计、功能实现与应用价值。既回应了公众对海鲜安全的关切,又满足了企业供应链管控与政府监管的现实需求,为食品溯源领域提供了可复用的技术方案。
这一研究不仅是技术层面的创新,更是对海鲜供应链管理逻辑的优化重构——通过数据不可篡改与透明化,实现“企业责任可追溯、消费者权益有保障、监管工作有依据”的治理目标。系统的实践探索,为区块链技术与传统食品产业的融合提供了鲜活样本,推动食品安全管理从“事后监管”向“事前预防、事中控制”转型。