Project Icon

OpenHuFu

开源数据联邦系统实现安全高效查询处理

OpenHuFu是一个开源数据联邦系统,旨在解决数据孤岛问题,实现跨数据所有者的安全高效查询处理。系统采用安全多方计算技术,包括秘密共享、混淆电路和不经意传输,为研究人员提供灵活平台,用于快速实现和评估联邦查询处理算法。OpenHuFu支持关系查询和空间查询等多种类型,并提供通信成本和运行时间等评估指标。该系统为数据联邦和联邦学习研究提供了重要工具。

OpenHuFu: An Open-Sourced Data Federation System

codecov License Total Lines

OpenHuFu is the open-sourced version of the spatial data federation system, Hu-Fu, in our VLDB'22 paper.

The appendix of the full paper can be referred to this PDF.

Project Description

Data isolation has become an obstacle to scale up query processing over big data, since sharing raw data among data owners is often prohibitive due to security concerns. A promising solution is to perform secure queries and analytics over a federation of multiple data owners leveraging techiniques like secure multi-party computation (SMC) and differential privacy, as evidenced by recent work on data federation and federated learning.

OpenHuFu is an open-sourced system for efficient and secure query processing on a data federation. It provides flexibility for researchers to quickly implement their algorithms for processing federated queries with SMC techniques, such as secret sharing, garbled circuit and oblivious transfer. With its help, we can quickly conduct the experimental evaluation and obtain the performance of the designed algorithms over benchmark datasets.

Compile OpenHuFu from Source Code

Prerequisites:

  • Linux or MacOS
  • Java 11
  • Maven (version at least 3.5.2)
  • C++ (generate TPC-H data)
  • Python3 (generate spatial data)
  • Git & Git LFS (Git Large File Storage)

Build OpenHuFu

Run the following commands:

  1. Clone OpenHuFu repository:
git clone https://github.com/BUAA-BDA/OpenHuFu.git
  1. Download big files from Git LFS(Large File Storage)
cd OpenHuFu
git lfs install --skip-smudge
git lfs pull 
  1. Build:
cd OpenHuFu
bash scripts/build/package.sh

OpenHuFu is now installed in release

Notes

If you use MacsOS, you need to add this to settings.xml(maven settings file):

<profiles>
    <profile>
      <id>macos</id>
      <properties>
        <os.detected.classifier>osx-x86_64</os.detected.classifier>
      </properties>
    </profile>
</profiles>
<activeProfiles>
    <activeProfile>macos</activeProfile>
</activeProfiles>

Data Generation

Relational data: TCP-H

How to use it:

bash scripts/test/extract_tpc_h.sh

cd dataset/TPC-H\ V3.0.1/dbgen
cp makefile.suite makefile
# If you use MacOS, you need to replace '#include <malloc.h>' with #include <sys/malloc.h> in dbgen
make

# Go to the root folder
cd ../../..
# x is the number of database,y is the volume of each database(MB)
bash scripts/test/generateData.sh x y

Spatial data

Spatial sample data: dataset/newyork-taxi-sample.data:

How to use it

Generate spatial data:

pip3 install numpy
python3 scripts/test/genSyntheticData.py databaseNum dataSize [distribution name] [params]

The distributions we support and their params are as follow:

Distributionparam1param2
unilow (default = -1e7)high (default = 1e7)
normu (default = 0)sigma (default = 1e5)
expmu (default = 5e6)

(If needed, you can modify scripts/test/genSyntheticData.py)

Notes

Each table is defined by two files in CSV and SCM format, and the names of the files serve as the actual names of the tables.
The CSV file contains the column names and the data of the table, while the SCM file contains the column names and column types. The delimiter is used to separate different column fields, and it can be specified in the owner's configuration file.

Configuration File

OwnerSide

UserSide

Development procedure

  1. Develop your algorithms
  • Aggregate:
  class extends com.hufudb.openhufu.owner.implementor.aggregate.OwnerAggregateFunction
  /** 
   *  The class must contains a constructor function with parameters:
   *  (OpenHuFuPlan.Expression agg, Rpc rpc, ExecutorService threadPool, OpenHuFuPlan.TaskInfo taskInfo)
   */ 
  • Join:
  class implements com.hufudb.openhufu.owner.implementor.join.OwnerJoin
  1. Set the algorithm for the query(example in owner.yaml):
openhufu:
    implementor:
      aggregate:
        sum: com.hufudb.openhufu.owner.implementor.aggregate.sum.SecretSharingSum
        max: null
        min: null
      join: com.hufudb.openhufu.owner.implementor.join.HashJoin
  1. Build OpenHuFu

    Follow the instructions in Section Build OpenHuFu to build the project.

  2. Run OpenHuFu

    We provide sample configurations for 3 owners in release/config folder.
    You can use the configuration to run our demo on a single machine, or modify the configuration files to deploy OpenHuFu on multiple machines.

    Please note that since the configuration files use relative paths, we need to cd release before running the command.

    Run demo on a single machine:

    bash owner_all.sh
    

    Run OpenHuFu on multiple machines:

    bash owner.sh start ./config/owner{i}.json
    

    Stop OpeHuFu:

    bash owner.sh stop
    
  3. Run benchmarks

bash benchmark.sh
  1. Evaluating communication cost

Before running benchmarks on OpenHuFu, you can follow the instructions to evaluate communication cost of the query:

  • Monitoring the port
# run the shell script as root
# 8888 is the port number 
sudo bash scripts/test/network_mmonitor/start.sh 8888
  • Calculating the communication cost
# run the shell script as root
sudo bash scripts/test/network_mmonitor/monitor.sh

Data Query Language

  1. Plan
  2. Function Call

Supported Query Types

  • Filter
  • Projection
  • Join
    • equi join
    • theta join
  • Cross products
  • Aggregate(inc. group-by)
  • Limited window aggs
  • Distinct
  • Sort
  • Limit
  • Common table expressions
  • Spatial Queries:
    • range query
    • range counting
    • knn query
    • distance join
    • knn join

Evaluation Metrics

  • Communication Cost
  • Running Time
    • Total Query Time
    • Local Query Time
    • Encryption Time
    • Decryption Time

Related Work

If you find OpenHuFu helpful in your research, please consider citing our papers and the bibtex are listed below:

  1. Hu-Fu: Efficient and Secure Spatial Queries over Data Federation. Yongxin Tong, Xuchen Pan, Yuxiang Zeng, Yexuan Shi, Chunbo Xue, Zimu Zhou, Xiaofei Zhang, Lei Chen, Yi Xu, Ke Xu, Weifeng Lv. Proc. VLDB Endow. 15(6): 1159-1172 (2022). [paper] [slides] [bibtex]

Other helpful related work from our group is listed below:

  1. DM-PFL: Hitchhiking Generic Federated Learning for Efficient Shift-Robust Personalization. Wenhao Zhang, Zimu Zhou, Yansheng Wang, Yongxin Tong. KDD 2023. [paper] [bibtex]

  2. Efficient Approximate Range Aggregation Over Large-Scale Spatial Data Federation. Yexuan Shi, Yongxin Tong, Yuxiang Zeng, Zimu Zhou, Bolin Ding, Lei Chen. IEEE Trans. Knowl. Data Eng. 35(1): 418-430 (2023). [paper] [bibtex]

  3. Hu-Fu: A Data Federation System for Secure Spatial Queries. Xuchen Pan, Yongxin Tong, Chunbo Xue, Zimu Zhou, Junping Du, Yuxiang Zeng, Yexuan Shi, Xiaofei Zhang, Lei Chen, Yi Xu, Ke Xu, Weifeng Lv. Proc. VLDB Endow. 15(12): 3582-3585 (2022). [paper] [bibtex]

  4. Data Source Selection in Federated Learning: A Submodular Optimization Approach. Ruisheng Zhang, Yansheng Wang, Zimu Zhou, Ziyao Ren, Yongxin Tong, Ke Xu. DASFAA 2022. [paper] [bibtex]

  5. Fed-LTD: Towards Cross-Platform Ride Hailing via Federated Learning to Dispatch. Yansheng Wang, Yongxin Tong, Zimu Zhou, Ziyao Ren, Yi Xu, Guobin Wu, Weifeng Lv. KDD 2022. [paper] [bibtex]

  6. Efficient and Secure Skyline Queries over Vertical Data Federation. Yuanyuan Zhang, Yexuan Shi, Zimu Zhou, Chunbo Xue, Yi Xu, Ke Xu, Junping Du. IEEE Trans. Knowl. Data Eng. (2022). [paper] [bibtex]

  7. Federated Topic Discovery: A Semantic Consistent Approach. Yexuan Shi, Yongxin Tong, Zhiyang Su, Di Jiang, Zimu Zhou, Wenbin Zhang. IEEE Intell. Syst. 36(5): 96-103 (2021). [paper] [bibtex]

  8. Industrial Federated Topic Modeling. Di Jiang, Yongxin Tong, Yuanfeng Song, Xueyang Wu, Weiwei Zhao, Jinhua Peng, Rongzhong Lian, Qian Xu, Qiang Yang. ACM Trans. Intell. Syst. Technol. 12(1): 2:1-2:22 (2021). [paper] [bibtex]

  9. A GDPR-compliant Ecosystem for Speech Recognition with Transfer, Federated, and Evolutionary Learning. Di Jiang, Conghui Tan, Jinhua Peng, Chaotao Chen, Xueyang Wu, Weiwei Zhao, Yuanfeng Song, Yongxin Tong, Chang Liu, Qian Xu, Qiang Yang, Li Deng. ACM Trans. Intell. Syst. Technol. 12(3): 30:1-30:19 (2021). [paper] [bibtex]

  10. An Efficient Approach for Cross-Silo Federated Learning to Rank. Yansheng Wang, Yongxin Tong, Dingyuan Shi, Ke Xu. ICDE 2021. [paper] [slides] [bibtex]

  11. Federated Learning in the Lens of Crowdsourcing. Yongxin Tong, Yansheng Wang, Dingyuan Shi. IEEE Data Eng. Bull. 43(3): 26-36 (2020). [paper] [bibtex]

  12. Federated Latent Dirichlet Allocation: A Local Differential Privacy Based Framework. Yansheng Wang, Yongxin Tong, Dingyuan Shi. AAAI 2020. [paper] [bibtex]

  13. Federated Acoustic Model Optimization for Automatic Speech Recognition. Conghui Tan, Di Jiang, Huaxiao Mo, Jinhua Peng, Yongxin Tong, Weiwei Zhao, Chaotao Chen, Rongzhong Lian, Yuanfeng Song, Qian Xu. DASFAA 2020. [paper] [bibtex]

  14. Efficient and Fair Data Valuation for Horizontal Federated Learning. Shuyue Wei, Yongxin Tong, Zimu Zhou, Tianshu Song. Federated Learning 2020. [paper] [bibtex]

  15. Profit Allocation for Federated Learning. Tianshu Song, Yongxin Tong, Shuyue Wei. IEEE BigData 2019. [paper] [slides] [bibtex]

  16. Federated Machine Learning: Concept and Applications. Qiang Yang, Yang Liu, Tianjian Chen, Yongxin Tong. ACM Trans. Intell. Syst. Technol. 10(2): 12:1-12:19 (2019). [paper]

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号