Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

developWangYF/note

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

基于区块链的崂山茶溯源系统

docsify不能使用3000默认端口,默认端口使用默认md文件内容。

技术栈

前端:Vue.js , Element UI , layui

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

区块链:Fabric1.2

智能合约:Golang语言编写

环境:Ubuntu18.04 64位(2核 4G以上),Docker 18.09.7 , Docker-compose 1.29.1

核心技术

SpringBoot框架

1、介绍

Spring Boot是一款开箱即用框架,提供各种默认配置来简化项目配置。让我们的Spring应用变的更轻量化、更快的入门。 在主程序执行main函数就可以运行。你也可以打包你的应用为jar并通过使用java -jar来运行你的Web应用。它遵循"约定优先于配置"的原则, 使用SpringBoot只需很少的配置,大部分的时候直接使用默认的配置即可。同时可以与Spring Cloud的微服务无缝结合。

提示

Spring Boot2.x版本环境要求必须是jdk8或以上版本,服务器Tomcat8或以上版本

2、优点

使编码变得简单: 推荐使用注解。 使配置变得简单: 自动配置、快速集成新技术能力 没有冗余代码生成和XML配置的要求 使部署变得简单: 内嵌Tomcat、Jetty、Undertow等web容器,无需以war包形式部署 使监控变得简单: 提供运行时的应用监控 使集成变得简单: 对主流开发框架的无配置集成。 使开发变得简单: 极大地提高了开发快速构建项目、部署效率。

Shiro安全控制

1、介绍

Apache Shiro是Java的一个安全框架。Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。其不仅可以用在 JavaSE环境,也可以用在 JavaEE 环境。

2、优点

易于理解的 Java Security API 简单的身份认证,支持多种数据源 对角色的简单的授权,支持细粒度的授权 不跟任何的框架或者容器捆绑,可以独立运行

3、特性

Authentication身份认证/登录,验证用户是不是拥有相应的身份 Authorization授权,即验证权限,验证某个已认证的用户是否拥有某个权限,即判断用户是否能做事情 SessionManagement会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中 Cryptography加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储 Caching缓存,比如用户登录后,其用户信息,拥有的角色/权限不必每次去查,提高效率 ConcurrencyShiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去 Testing提供测试支持 RunAs允许一个用户假装为另一个用户(如果他们允许)的身份进行访问 RememberMe记住我,这是非常常见的功能,即一次登录后,下次再来的话不用登录了

4、架构

Subject主体,代表了当前的“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫, 机器人等;即一个抽象概念;所有Subject都绑定到SercurityManager,与Subject的所有交互都会委托给SecurityManager;可以把Subject认为是一个门面;SecurityManager才是实际的执行者 SecurityManage安全管理器;即所有与安全有关的操作都会与SecurityManager交互;且它管理着所有Subject; 可以看出它是Shiro的核心,它负责与后边介绍的其他组件进行交互 Realm域,Shiro从Realm获取安全数据(如用户,角色,权限),就是说SecurityManager要验证用户身份, 那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法;也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作;可以有1个或多个Realm,我们一般在应用中都需要实现自己的Realm SessionManager如果写过Servlet就应该知道Session的概念,Session需要有人去管理它的生命周期,这个组件就是SessionManager SessionDAODAO大家都用过,数据库访问对象,用于会话的CRUD,比如我们想把Session保存到数据库,那么可以实现自己的SessionDAO,也可以写入缓存,以提高性能 CacheManager缓存控制器,来管理如用户,角色,权限等的缓存的;因为这些数据基本上很少去改变,放到缓存中后可以提高访问的性能

应用代码通过Subject来进行认证和授权,而Subject又委托给SecurityManager; 我们需要给Shrio的SecurityManager注入Realm,从而让SecurityManager能得到合法的用户及其权限进行判断,Shiro不提供维护用户/权限,而是通过Realm让开发人员自己注入。

Shiro不会去维护用户,维护权限;这些需要自己去设计/提供;然后通过响应的接口注入给Shiro即可

Element UI 网站快速成型工具

Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库 https://element.eleme.io/

layui 简化表单开发 开源模块化前端 UI 组件库

基于浏览器端原生态模式,面向全层次的前后端开发者,易上手且开源免费的 Web 界面组件库 https://layuion.com/

需求分析

需求分析参考:https://gitee.com/steakliu/Blockchain-APTrace-Fabric

系统分为三个大模块 1.区块链数据存储 2.电脑版系统与小程序后端 3.web与小程序前端 下面分别介绍每个模块的具体功能与需求:

1.区块链数据存储

负责存储农产品的生长与运输加工数据,创建不同的联盟组织和通道,由于前期用户较少,所以可以先创建一个联盟,其中这个联盟中包含管理员、生产商A,运输员,食品安全部门,和购买者,其中以生产商作为起点,一个联盟中只包含一个生产商和一个管理员;运输员,食品安全部门以及购买者都可以是多个。 1.1 生产商:生产数据录入,最好安置一台电脑或者服务器作为一个节点,不安置也可以,通过系统请求管理员处的服务器进行数据写入操作,可以写入生长和加工数据 。 1.2 运输员:负责对农产品进行运输和存储,使用手机扫码进行数据写入,和读取。 1.3 食品安全部门:负责对生产商的生产和加工以及对运输员的运输数据进行检查核验,及时发现问题,拥有数据读取和数据写入权限。 1.4 管理员:对全有人员与数据进行管理,拥有每个联盟的最高权限。

2.后端

后端连通前端与区块链系统,负责用户注册登录,扫码操作,返回查询数据,使用配套的SDK对区块链系统,进行增删改查操作;同时进行权限管理操作,对不同的用户给予不同的查询和写入权限,具体功能如下图:

2.1区块链交互模块 使用百度超级链配套SDK写入和读取区块链数据,根据进度第一阶段先不使用区块链系统,故第一阶段先不进行开发或者使用其他区块链系统,后期根据实际要求进行开发。 2.1扫码模块 系统使用二维码进行介质,对数据进行展示可扫码修改,二维码生成模块生成商品ID,并生成二维码,后续运输,销售均对此ID 进行读取添加所对应的信息。 2.2 农产品数据存储模块 ① 添加农产品:由于2.1第一阶段暂不开发,所以对农产品的数据进行读取和写入,包括添加农产品:农产品的作物名称、作物类型、肥料名称等如下图所示:

② 农产品生长数据管理: 通过手动录入或者物联网设备对生长关键进行获取,比如温度、光照、水分以及氮磷钾操作等。

此模块同时包含加工模块,对员工和详细的操作进行记录。

③ 农产品运输数据管理 使用GPS或者对接快递对商品运输进行记录,如果是GPS就如下图进行展示,如果是快递就展示物流信息即可。

④ 农产品销售数据管理 对农产品销售信息进行记录。 ⑤ 其他数据管理 对肥料农药等其他相关产品进行管理,包含生产厂商等操作:

3.前端

web前端达到以下效果:

手机端

开发背景

note

note

note

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.