基于区块链的农产品溯源系统,分为pc端,h5端,后台采用SpringBoot,前端Vue,区块链网络采用Fabric,一共分为六个组织节点,农户,原料厂商,生产厂商,物流厂商,零售商,消费者,做得比较简单,记得star一下哦 😤 😤 😤

Overview

基于Fabric的农产品溯源系统

介绍

基于区块链的农产品溯源系统,分为pc端,h5端,后台采用SpringBoot,前端Vue,区块链网络采用Fabric,一共分为六个组织节点,农户,原料厂商,生产厂商,物流厂商,零售商,消费者,(若有什么问题,可提issue), 记得star一下哦 😤 😤 😤

软件架构

此系统有四个模块,已上传Gitee, blockchain-trace-bcnetwork ,blockchain-trace-applets ,blockchain-trace-pc ,blockchain-trace-basic-data。

blockchain-trace-bcnetwork:区块链网络,可直接将文件上传至服务器,然后启动里面的脚本

blockchain-trace-applets:小程序端溯源,做得十分简单

blockchain-trace-pc:PC端,使用的是RuoYi-Vue

blockchain-trace-basic-data:系统基础数据后台,使用的是RuoYi

前端:Vue.js , Element UI , mpvue

后端:SpringBoot , Mybatis , FastDFS , Node.js , Redis , MySQL

区块链:Fabric1.2-1.4

智能合约:Golang语言编写

环境:Ubuntu16.04 64位(2核 4G 1Mbps,本人没钱,只能用乞丐服务器),Docker 18.09.7 , Docker-compose 1.29.1 , 

安装教程

1.先部署好区块链网络(blockchain-trace-bcnetwork): 将traceNetwork上传至服务器(也可自己搭建),进入basic-network目录中,启动start.sh脚本(./start.sh),启动成功后进入webapp目录,启动start.sh脚本(此脚本是安装只能合约,它里面包含了其他几个脚本,可以自己观看),启动成功后看一下docker容器,不出意外的话会安装了6个chaincode,安装成功后执行node enrollAdmin.js 和 node registerUser.js , 生成对应的密钥文件后,最后启动node服务,命令为 node app.js , 如果需要让其常驻后台,需要安装pm2,然后执行启动 pm2 start app.js , 停止 pm2 stop app.js , (环境变量需要有node,npm , golang)

2.系统基础数据后端 (blockchain-trace-basic-data) 配置好Redis,MySQL , FastDFS , 端口为8088,(本系统全部所有服务都采用Docker部署)

3.PC端(blockchain-trace-pc)

npm install --registry=https://registry.npm.taobao.org

npm run dev

npm run build:prod

4.小程序(blockchain-trace-applets) 自己使用开发者工具打开

使用说明

本系统过于简单,至适合做毕业设计或者课程设计,系统中表单等都没做验证,页面也存在很多bug,请按照标准去输入 😁 😆

界面

区块链浏览器 区块链结构 输入图片说明

基础数据 输入图片说明 输入图片说明 输入图片说明 输入图片说明

添加农作物 输入图片说明

农作物链上详情 输入图片说明

农作物种植过程记录 输入图片说明 输入图片说明

物流追踪(因本系统,这里忘记去做了,只是模拟了一下) 输入图片说明

司机运输定位(本系统采用PC端定位,实际上这是不行的,你想想,司机在开车过程中还要去打开浏览器进入系统去定位?这里只是模拟,让老师知道我要表达的意思,因为我也没钱去买设备来定位 😓 😓 输入图片说明 输入图片说明

原料厂商质检报告上链 输入图片说明

生产厂商部分截图 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明

零售商生成产品唯一溯源ID 输入图片说明

小程序端溯源

输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明

Comments
  • 运行node enrollAdmin.js时出现TypeError: Cannot match against 'undefined' or 'null'.

    运行node enrollAdmin.js时出现TypeError: Cannot match against 'undefined' or 'null'.

    node enrollAdmin.js

    /root/blockchain-trace-fabric/blockchain-trace-bcnetwork/webapp/node_modules/@grpc/grpc-js/build/src/call-stream.js:26 const { HTTP2_HEADER_STATUS, HTTP2_HEADER_CONTENT_TYPE, NGHTTP2_CANCEL, } = http2.constants; ^

    TypeError: Cannot match against 'undefined' or 'null'. at Object. (/root/blockchain-trace-fabric/blockchain-trace-bcnetwork/webapp/node_modules/@grpc/grpc-js/build/src/call-stream.js:26:82) at Module._compile (module.js:569:30) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:503:32) at tryModuleLoad (module.js:466:12) at Function.Module._load (module.js:458:3) at Module.require (module.js:513:17) at require (internal/module.js:11:18) at Object. (/root/blockchain-trace-fabric/blockchain-trace-bcnetwork/webapp/node_modules/@grpc/grpc-js/build/src/channel.js:19:23) at Module._compile (module.js:569:30)

    opened by Nancy-cy 2
  • 本地运行RuoYiApplication.java,首页访问不了

    本地运行RuoYiApplication.java,首页访问不了

    **1,**eclipse导入工程blockchain-trace-basic-data,配置好数据库和redis,启动,没有任何问题 19:19:42.455 [restartedMain] INFO c.r.RuoYiApplication - [logStarted,59] - Started RuoYiApplication in 10.498 seconds (JVM running for 11.257) (♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡლ)゙ .-------. ____ __ | _ _ \ \ \ / / | ( ' ) | \ _. / ' |(_ o _) / _( )_ .' | (_,_).' __ ___(_ o _)' | |\ \ | || |(_,_)' | | \' /| -' / | | \ / \ / ''-''-' `-..-'
    19:19:43.450 [Quartz Scheduler [RuoyiScheduler]] INFO o.q.c.QuartzScheduler - [start,547] - Scheduler RuoyiScheduler_$_DESKTOP-IRV3LAP1648811980043 started. 19:21:15.228 [http-nio-8080-exec-1] INFO o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring DispatcherServlet 'dispatcherServlet' 2, 本地启动浏览器 访问 http://localhost:8080/ 报错 {"msg":"请求访问:/,认证失败,无法访问系统资源","code":401}

    opened by yigemaserwang 2
  • 添加作物时 返回以下信息 管理端也没有显示创建成功  麻烦看一下呢

    添加作物时 返回以下信息 管理端也没有显示创建成功 麻烦看一下呢

    crops ["6990927934059974656","6990927934064168960","ww","1","若依","qq","大棚种植","套袋","11","1","11","11","1","2022-10-26 14:51:44","11","15888888888"] Successfully loaded user1 from persistence tx_id transaction proposal was bad

    opened by ww72865005 0
  • 第一步执行basic-network下的./start.sh报错:msp: Setup error: nil conf reference

    第一步执行basic-network下的./start.sh报错:msp: Setup error: nil conf reference

    如题,第一步执行basic-network下的./start.sh报错:msp: Setup error: nil conf reference,找了很多种方法都未能解决,例如docker volume rm $(docker volume ls -q)命令、镜像删除重新拉取等,都未能解决,详细错误如图 b96b51f7e4cf78c0dc2cf798fd0c5e8 大佬可以指导一下吗 image

    opened by Ke-Z 0
  • node服务启动使用的是8080端口,和blockchain-trace-basic-data的后端服务springboot的8080端口有冲突

    node服务启动使用的是8080端口,和blockchain-trace-basic-data的后端服务springboot的8080端口有冲突

    调整为9000端口,相应的需要修改\blockchain-trace-pc\src\main.js,Vue.prototype.$httpUrl = "http://10.10.15.92:9000/route"; 这里的IP地址不能用localhost,必须是显性的区块链网络服务器IP地址

    opened by yigemaserwang 5
  • 同学,您这个项目引入了23个开源组件,存在2个漏洞,辛苦升级一下

    同学,您这个项目引入了23个开源组件,存在2个漏洞,辛苦升级一下

    检测到 steakliu/blockchain-trace-fabric 一共引入了23个开源组件,存在2个漏洞

    漏洞标题:Apache Commons Beanutils 代码问题漏洞
    缺陷组件:commons-beanutils:[email protected]
    漏洞编号:CVE-2019-10086
    漏洞描述:Apache Commons Beanutils是美国阿帕奇(Apache)基金会的一款提供可操作JavaBean的工具类的软件包。
    Apache Commons Beanutils 1.9.2版本中存在代码问题漏洞。攻击者可利用该漏洞执行任意代码/命令。
    国家漏洞库信息:https://www.cnvd.org.cn/flaw/show/CNVD-2019-42779
    影响范围:[1.9.2, 1.9.4)
    最小修复版本:1.9.4
    缺陷组件引入路径:com.ruoyi:[email protected]>com.github.tobato:[email protected]>commons-beanutils:[email protected]
    

    另外还有2个漏洞,详细报告:https://mofeisec.com/jr?p=i1fb25

    opened by ghost 1
Owner
steakliu
steakliu