农产品 / 商品 / 通用溯源应用模板(Hyperledger Fabric)
基于 Hyperledger Fabric V2.5 的企业级区块链溯源系统模板,集成区块链网络、业务系统、区块链浏览器与性能压测工具,部署简单、文档完善、支持快速二次开发,可用于农产品溯源、商品溯源及通用可信存证场景。
📊 项目累计部署 / 下载次数已超过 3000 次
在线演示地址:
👉 https://t.realcool.top/
本项目已与 B 站官方 合作推出完整的源码讲解与二次开发课程:
🎥 Fabric V2.5 通用溯源项目讲解与二次开发课程
👉 https://www.bilibili.com/cheese/play/ss15923
- 💰 限时特价:219 元(支持试看)
- 📅 发布时间:2024 年 4 月
- 📈 截至 2026-01-31:
- 学员数:150+
- 播放量:约 2 万
- 完播率:60%
- 项目源码讲解 + 二次开发视频
- 一键部署脚本(减少约 90% 手动步骤)
- 配置管理功能(5 分钟生成指定溯源应用)
- 项目交流群(含助教答疑)
- 项目全套资料
- IPFS 改进方案
- Caliper 压测代码
- 简易二次开发文档等
📢 课程活动
提交源码仓库 / PPT / 视频,可返现 50–219 元
👉 https://docs.qq.com/form/page/DQ3ZJUERPVXJCdUtX
- 📥 项目总下载量:约 3000 次(含Github)
- 📊 截至 2026-02-01(Gitee历史统计):
- Gitee 拉取量:1600+
- Gitee ZIP 下载:281
- 🏅 2025 年被 Gitee 官方评为推荐项目
- 🎓 与某高校合作完成真实区块链溯源项目
- 🏢 多家农产品企业、科研机构试用与关注
- ✅ 非常适合国内中小企业进行产品溯源落地
欢迎交流与合作 B站@TrueTechLabs
⭐ 如果本项目对你有帮助,欢迎 Star 支持,这是对我们最大的鼓励!
📌 TrueTechLabs Fabric 学习交流群(QQ):776873343
群内可免费阅读本项目 区块链部分与后端部分代码说明文档
本项目是一个基于 Hyperledger Fabric V2.5 的通用区块链溯源系统模板,面向真实业务场景设计,可快速搭建具备完整业务流程的区块链应用。




- 区块链:Hyperledger Fabric V2.5
- 后端:Go + Gin
- 前端:Vue.js
- 数据库:MySQL
- 压测工具:Tape(课程包含 Caliper)
系统内置 5 类角色:
- 种植户
- 工厂
- 驾驶员
- 商店
- 消费者(仅溯源查询)
支持多角色信息多字段上链,便于二次开发。
-
Gitee(与 GitHub 同步)
https://gitee.com/real__cool/fabric-trace
-
🎥 完整未剪辑搭建视频
https://www.bilibili.com/video/BV1mF4m1P7Go -
📖 项目文档(部分需订阅)
https://blog.csdn.net/qq_41575489/category_12075943.html
本项目基于 Apache License 2.0 开源协议:
- ✅ 允许个人科研、学习使用(需注明项目来源)
- ❌ 未经授权禁止用于任何商业收费项目(含教学案例)
📄 商业授权 / 商务合作申请:
👉 https://docs.qq.com/form/page/DQ1hIck5OQkNGQXF2
若不认可本声明内容,请勿使用本项目。
- 使用 Fabric 最新稳定版本 V2.5
- 采用官方推荐的 fabric-gateway 调用模式
- 内置区块链浏览器,交易可视化
- 集成 Tape / Caliper 压测方案
- 真实业务流程(注册、登录、上链、查询)
- 代码结构清晰、注释完善,适合二次开发
区块链的不可篡改、可追溯特性,使其成为溯源系统的理想技术方案。
本项目的目标是提供一个 可直接落地的 Fabric V2.5 通用溯源模板,降低学习与部署成本,帮助想法快速转化为可运行系统。
⚠️ 由于相关资源的失效,如果部分内容与视频不一致请以本文档为准
⚠️ 强烈推荐按照步骤使用全新的腾讯云轻量云服务器搭建本系统,虚拟机的问题较多。点击此链接直达新人活动页面:https://curl.qcloud.com/Sjy0zKjy ,购买轻量2核4G或以上的服务器,188/年(价格经常会调整),如果后续准备做程序开发可以用新用户优惠买三年的,安装Ubuntu20.04系统。系统版本不一致极有可能部署不成功。
注:不建议使用阿里云等其他云服务器,与演示步骤会不一致,且会有额外问题。
付费课程用户可使用一键部署脚本,减少 90% 操作步骤
🚀 https://www.bilibili.com/video/BV119ffB4EoA
严格按照以下步骤操作,以下步骤已经经过上千人次的验证,如果遇到报错请仔细检查是否遗漏某个步骤。已做好换源处理,不要使用任何代理工具。 如果对Linux命令不熟悉,请一定先学习下:快速入门Linux及使用VSCode远程连接Linux服务器,遇到报错后一定不能跳过,解决完再往下一步!
-
安装docker
#下载docker # 官方脚本当前已无法下载,使用gitee备份的脚本: # 本项目使用Docker版本:27.2.1 ,Ubuntu 20.04直接用以下指令即可 # 近期源不稳定,如遇超时可使用:--mirror Aliyun curl -fsSL https://gitee.com/real__cool/fabric_install/raw/main/docker_install.sh | bash -s docker --mirror AzureChinaCloud #添加当前用户到docker用户组 sudo usermod -aG docker $USER newgrp docker sudo mkdir -p /etc/docker #配置docker镜像加速,近期非常不稳定,如果以下源不好用可以再找下其他源 #下边的源2026.2.6日测试可用 sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.1ms.run", "https://docker.1panel.live", "https://docker.m.ixdev.cn", "https://docker.xuanyuan.me", "https://hub.rat.dev" ] } EOF #重启docker sudo systemctl daemon-reload sudo systemctl restart docker
-
安装开发使用的go、node、jq
#下载二进制包 wget https://golang.google.cn/dl/go1.19.linux-amd64.tar.gz #将下载的二进制包解压至 /usr/local目录 sudo tar -C /usr/local -xzf go1.19.linux-amd64.tar.gz mkdir $HOME/go #将以下内容添加至环境变量 ~/.bashrc export GOPATH=$HOME/go export GOROOT=/usr/local/go export PATH=$GOROOT/bin:$PATH export PATH=$GOPATH/bin:$PATH #更新环境变量 source ~/.bashrc #设置代理 go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct #下载nvm安装脚本 wget https://gitee.com/real__cool/fabric_install/raw/main/nvminstall.sh #安装nvm;屏幕输出内容添加环境变量 chmod +x nvminstall.sh ./nvminstall.sh # 将环境变量写入.bashrc export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion export NVM_NODEJS_ORG_MIRROR=http://npmmirror.com/mirrors/node/ #更换阿里云nvm node源 # 更新环境变量 source ~/.bashrc # 安装node16 nvm install 16 #换源 npm config set registry https://registry.npmmirror.com #安装jq sudo apt install jq
-
克隆本项目
git clone https://gitee.com/real__cool/fabric-trace
-
启动区块链部分。在fabric-trace/blockchain/network目录下:
# 仅在首次使用执行:下载Fabric Docker镜像。如果拉取速度过慢或失败请检查是否完成docker换源并执行了重启docker命令。 ./install-fabric.sh -f 2.5.6 d# 启动区块链网络 ./start.sh如果在启动区块链网络时遇到报错可以尝试:
# 执行清理所有的容器指令: docker rm -f $(docker ps -aq)
然后再重新启动区块链网络
-
启动后端 在fabric-trace/application/backend目录下: 执行:
go run main.go -
修改后端IP,将以下文件中的IP:
119.45.247.29,换成自己云服务器的IP。fabric-trace/application/web/.env.production fabric-trace/application/web/.env.development fabric-trace/application/web/src/router/index.js
或使用application/replaceip.sh脚本根据指引修改IP,在fabric-trace/application目录下
./replaceip.sh
-
新开一个窗口,启动前端 在fabric-trace/application/web目录下: 执行:
# 仅在首次运行执行:安装依赖 npm install# 启动前端 npm run dev -
在腾讯云轻量应用服务器防火墙页面,放行TCP端口
8080,9090,9528。如果是云服务器,则修改安全组。 -
在浏览器中打开:http://云服务器IP:9528 即可看到前端页面。如果出现network error等网络报错,请按步骤6更换IP后重启项目。
-
使用tape对项目进行压力测试(仅做测试demo,信息上链时有bug,建议使用课程里的caliper) 根据blockchain/chaincode/chaincode/smartcontract.go中的合约函数的签名,编写压测的参数,需要修改的内容是tape目录下的yaml文件中的args。args第一个参数是函数名,后面的参数是函数的参数。例如:
args: # 函数名 - RegisterUser # userID string - 1 #userType string - randomString8 # realInfoHash string - randomString8
执行./tape --config config_register.yaml -n 1即可完成用户1的注册,然后可以对农产品上链操作与获取用户信息函数进行压测。更多的压测案例可以根据合约函数的签名进行修改。
附农产品上链操作与获取用户信息函数进行压测操作指令:
./tape --config config_invoke.yaml -n 100
./tape --config config_query.yaml -n 100-
前端(
npm run dev界面)与后端(go run main.go界面:使用键盘组合键:
ctrl+c -
区块链部分:
在
fabric-trace/blockchain/network目录./stop.sh,此步骤会清理所有的区块链、Mysql中的数据。
- 在
fabric-trace/blockchain/network目录./start.sh如果遇到报错可以执行以下命令后再试: 执行清理所有的容器指令:docker rm -f $(docker ps -aq) - 在
fabric-trace/application/backend目录下: 执行:go run main.go - 在
fabric-trace/application/web目录下: 执行:npm run dev - 在http://服务器IP:9528打开
-
在
fabric-trace/blockchain/network目录./start.sh如果遇到报错可以执行以下命令后再试: 执行清理所有的容器指令:docker rm -f $(docker ps -aq) -
在
fabric-trace/application目录下: 执行:./start_prod.sh -
注意:此方式部署项目会在后台运行,如果后续遇到端口号占用可以尝试关闭占用9090端口号的进程,可以参考: 解决端口占用 bind:address already in use
本项目将持续维护,欢迎给项目点亮Star与B站三连,非常感谢!与B站官方合作,本项目代码讲解与二次开发课程已发布,限时特价219元,支持试看: B站:Fabric V2.5通用溯源项目讲解与二次开发课程,购买课程将赠送《Fabric项目学习笔记》中所有与本项目相关的资料。购买课程与订阅专栏均配套社群,方便交流与答疑。
- 使用虚拟机时区块链浏览器有时候会出现无法访问的情况,可以尝试重启浏览器容器。
- 为了减少用户运行本项目时的难度,区块链目录的start.sh脚本在启动区块链时同时会清理掉所有的历史数据!如果重启机器后不希望清理原来的数据启动区块链,可以使用指令:
docker start $(docker ps -aq)启动所有节点
上述部署步骤已经上百人次验证并顺利完成,如果您通过上述步骤未能运行项目,请检查环境是否与本项目要求的一致,任何修改或遗漏步骤都可能引起项目不能正常运行,请严格按照视频与文章步骤再次尝试或查看以下常见问题列表。若还是有问题请在B站项目搭建视频评论区查看其他人的留言是否有相同的问题,如果还是没有解决请在视频下评论问题并附上与【安装步骤不一致的地方】或【第一个遇到的报错】,如果问题不够明确,我们也很难帮助到您。购买B站:Fabric V2.5通用溯源项目讲解与二次开发课程可以加入配套社群,方便本项目交流与答疑。如果需要远程搭建服务或商业合作请填写收集表,对于政府等机构公益项目可以提供免费技术支持:【腾讯文档】本项目搭建服务或商务合作意向收集
-
需要给机器安装mysql吗? 按照项目搭建过程即可部署好mysql,mysql容器与区块链节点一起启动,因此不需要单独安装mysql。
-
docker镜像拉取过慢或提示timeout 按照步骤docker换源并重启再试。
-
安装链码时报错:exec: "go": executable file not found in $PATH 可能是go环境未安装好;可能使用了sudo,不要与安装步骤不一致!
-
jq:未找到命令 漏掉安装步骤中的安装jq,使用sudo apt install jq即可解决
-
docker权限报错:docker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: 重新执行安装步骤中的:
#添加当前用户到docker用户组 sudo usermod -aG docker $USER newgrp docker
-
提示mysql或3337端口错误 mysql未启动,重启区块链网络部分可以一并重启mysql。
-
前端提示network error、timeout 修改好IP后重启整个项目;检查防火墙是否放行相关端口。
-
前端登录页面提示404 检查是否修改好IP并重启前端服务器,除了IP不要修改任何字符。
-
npm run dev 不能启动前端 检查npm install是否完整把所有包装上了。
-
Chaincode installation on peerg.orgl has failed Deploying chaincode failed 此问题并非第一个报错,仔细检查之前的步骤中第一个报错,然后与上述问题对照。
-
eslint相关报错 此报错为代码规范性报错,不影响运行,可以根据提示自行修复(可不修复)
-
其他问题 使用全新Ubuntu20.04系统,重新严格按照步骤再试,出现第一个报错后在视频下留言。



