Skip to content

7fenfen/FederatedDataBase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FederatedDataBase

项目简介

科研课堂的大作业,是一个基于gRPC通信实现的具有一定加密功能的联邦数据库

可以对指定数据进行最近邻查询(NearestQuery),反向最近邻查询(AntiNearestQuery),加密最近邻查询(EncryptedNearestQuery)

项目结构

前端

基于Flutter框架进行搭建, 采用Dart语言配置gRPC与后端进行通信

详情请见前端仓库FederatedDatabase-Flutter

前后端通信定义的消息见federation.proto

目前前端支持将查询结果渲染为动态散点图

后端

后端要求实现FederationServer.py,DatabaseServer.py两个程序

分别实现联邦数据库的服务端以及每个独立的数据库本体

客户端使用gRPC服务发送查询的数据请求,服务端接收后发送查询操作给服务端管控下的数据库,

在此过程中可选择使用同态加密算法,由此防止因泄露数据过多导致的安全性降低

服务端最后再将结果返回给客户

项目依赖

前端

需要配置DartFlutter的SDK以配置前端的开发环境

为了方便我们在文件夹中提供了windows系统的.exe安装包

可以直接下载安装无需从源码层面编译

编译命令

flutter build windows

后端

运行前安装grpcio,tenseal等软件包进行开发

pip install grpcio grpcio-tools tenseal numpy

项目运行

运行DatabaseServer.py,FederationQuery.py启动服务端

python DatabaseServer.py FederationQuery.py

控制台输出

运行FederationTest.py

python FederationTest.py

FederationTest.py提供了三种查询的样例,若直接运行会有以下输出

Query Type: Nearest, X:150, Y:150, QueryNum:10
User at (151, 149) from Database 1
User at (147, 150) from Database 2
User at (145, 150) from Database 2
User at (145, 148) from Database 2
User at (156, 152) from Database 2
User at (155, 145) from Database 2
User at (144, 145) from Database 2
User at (146, 151) from Database 3
User at (153, 153) from Database 3
User at (149, 143) from Database 3
程序运行时间: 0.012938 秒
Query Type: AntiNearest, X:150, Y:50
User at (151, 49) from Database 1
User at (150, 51) from Database 3
程序运行时间: 3.866848 秒
Query Type: EncryptedNearest, X:150, Y:150, QueryNum:10
User at (151, 149) from Database 1
User at (147, 150) from Database 2
User at (145, 150) from Database 2
User at (145, 148) from Database 2
User at (156, 152) from Database 2
User at (155, 145) from Database 2
User at (144, 145) from Database 2
User at (146, 151) from Database 3
User at (153, 153) from Database 3
User at (149, 143) from Database 3
程序运行时间: 38.096181 秒

PS:运行时间会略有不同

前端输出

这里更推荐使用配套的前端程序进行查询

查询界面

描述文字

查询结果

描述文字

数据图表

描述文字

About

基于gRPC的联邦数据库,在加密的基础上进行查询

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages