fate隐私求交案例

intersect组件是解决纵向联邦学习中的隐私求交问题

fate隐私求交的方式有三种:raw,rsa,dh。raw方式不安全,rsa和dh方式是安全的,dh是基于对称加密的安全交集 rsa是基于RSA(非对称加密)的安全交集,,dh方法也用于安全的信息检索(SIR),fate intersect 支持多主机模式即(1个guest与多个host进行求交集)

可配置的hash方法有sha256、md5 和 sm3。raw交集支持base64编码,支持与缓存的交集。

统案例脚本文件:/data/projects/fate/examples/dsl/v2/

1、 1v1案例:

本次案例在guest执行任务,求交host

host

guest

数据文件名称

xxl_test_host.csv

xxl_test_guest.csv

表空间名称

sp_host

sp_guest

表名称

tb_host

tb_guest

/data/projects/fate/examples 目录创建测试目录,并拷贝系统配置

cd /data/projects/fate/examples/mytest
cp /data/projects/fate/examples/dsl/v2/intersect/test_intersect_job_dsl.json ./
cp /data/projects/fate/examples/dsl/v2/intersect/test_intersect_job_raw_conf.json ./

1.1上传文件

1.1.1、host创建上传脚本:

upload_xxl_host.json

{"file": "/data/projects/fate/examples/mytest/xxl_test_host.csv","head": 1,"partition": 10,"work_mode": 0,"namespace": "sp_host","table_name": "tb_host"
}

xxl_test_host.csv 是数据文件(需要有表头)

namespace 表空间名称

table_name 表名称

 1.1.2、guest创建脚本:

upload_xxl_guest.json

{"file": "/data/projects/fate/examples/mytest/xxl_test_guest.csv","head": 1,"partition": 10,"work_mode": 0,"namespace": "sp_guest","table_name": "tb_guest"
}
1.1.3上传文件

# host 端:
source /data/projects/fate/bin/init_env.sh
flow data upload -c upload_xxl_host.json

# guest端:
source /data/projects/fate/bin/init_env.sh
flow data upload -c upload_xxl_guest.json

1.2创建任务脚本

1.2.1、创建dsl文件

test_intersect_job_dsl.json

{"components": {"reader_0": {"module": "Reader","output": {"data": ["data"]}},"data_transform_0": {"module": "DataTransform","input": {"data": {"data": ["reader_0.data"]}},"output": {"data": ["data"],"model": ["model"]}},"intersect_0": {"module": "Intersection","input": {"data": {"data": ["data_transform_0.data"]}},"output": {"data": ["data"]}}}
}
1.2.2、创建任务配置文件

test_intersect_job_rsa_conf.json

{"dsl_version": 2,"initiator": {"role": "guest","party_id": 9999},"role": {"guest": [9999],"host": [10000]},"component_parameters": {"common": {"intersect_0": {"intersect_method": "rsa","sync_intersect_ids": false,"only_output_key": true,"rsa_params": {"hash_method": "sha256","final_hash_method": "sha256","split_calculation": false,"key_length": 2048}}},"role": {"guest": {"0": {"reader_0": {"table": {"name": "tb_guest","namespace": "sp_guest"}},"data_transform_0": {"with_label": false,"output_format": "dense"}}},"host": {"0": {"reader_0": {"table": {"name": "tb_host","namespace": "sp_host"}},"data_transform_0": {"with_label": false,"output_format": "dense"}}}}}
}

1.3执行任务(guest端执行)

cd /data/projects/fate/examples/mytest
source /data/projects/fate/bin/init_env.sh
flow job submit -d test_intersect_job_dsl.json -c test_intersect_job_raw_conf.json

2、1v2案例

本次案例在guest上执行求交任务,求交host2个文件

2.1 上传文件

2.1.1 host创建上传脚本(2个):

upload_xxl_host.json

# 上传第一个文件:upload_xxl_host1.json
{"file": "/data/projects/fate/examples/mytest/1v2/xxl_test_host1.csv","head": 1,"partition": 10,"work_mode": 0,"namespace": "sp_host1","table_name": "tb_host1"
}# 上传第二个文件:upload_xxl_host2.json
{"file": "/data/projects/fate/examples/mytest/xxl_test_host2.csv","head": 1,"partition": 10,"work_mode": 0,"namespace": "sp_host2","table_name": "tb_host2"
}
2.1.2 guest创建脚本:

upload_xxl_guest.json

{"file": "/data/projects/fate/examples/mytest/1v2/xxl_test_guest.csv","head": 1,"partition": 10,"work_mode": 0,"namespace": "sp_guest1","table_name": "tb_guest1"
}
2.1.3 上传文件

# host 端:
source /data/projects/fate/bin/init_env.sh
cd /data/projects/fate/examples/mytest/1v2

flow data upload -c upload_xxl_host1.json

flow data upload -c upload_xxl_host2.json

# guest端:
source /data/projects/fate/bin/init_env.sh
cd /data/projects/fate/examples/mytest/1v2

flow data upload -c upload_xxl_guest.json

2.2 创建任务脚本

本次任务在guest上执行,任务脚本在guest端

2.2.1 创建dsl文件

test_union_job_dsl.json

{"components": {"reader_0": {"module": "Reader","output": {"data": ["data"]}},"reader_1": {"module": "Reader","output": {"data": ["data"]}},"intersection_0": {"module": "Intersection","input": {"data": {"data": ["reader_0.data"]}},"output": {"data": ["data"]}},"intersection_1": {"module": "Intersection","input": {"data": {"data": ["reader_1.data"]}},"output": {"data": ["data"]}},"union_0": {"module": "Union","input": {"data": {"data": ["intersection_0.data","intersection_1.data"]}},"output": {"data": ["data"]}}}
}
2.2.2 创建任务配置文件

test_union_job_conf.json

注意:因为 guest 只有1个文件,host 有2个文件,guest 1个文件求交 host 2个文件,所以这里 guest 角色的 reader_ 和 reader_1 读取的数据都是 guest 同一个表的同一份数据

{"dsl_version": 2,"initiator": {"role": "guest","party_id": 9999},"role": {"host": [10000],"guest": [9999]},"component_parameters": {"common": {"union_0": {"allow_missing": false,"need_run": true}},"role": {"guest": {"0": {"reader_0": {"table": {"name": "tb_guest1","namespace": "sp_guest1"}},"reader_1": {"table": {"name": "tb_guest1","namespace": "sp_guest1"}}}},"host": {"0": {"reader_0": {"table": {"name": "tb_host1","namespace": "sp_host1"}},"reader_1": {"table": {"name": "tb_host2","namespace": "sp_host2"}}}}}}
}

2.3 执行任务(guest端执行)

cd /data/projects/fate/examples/mytest/1v2
source /data/projects/fate/bin/init_env.sh

flow job submit -d test_intersect_job_dsl.json -c test_intersect_job_raw_conf.json

正确求交页面显示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/741276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

供应链金融新篇章:2001-2022年上市公司金融水平测算概览

数据说明:参考周兰和吴慧君(2022)的方法测算出2001-2022年上市公司供应链金融水平,供大家研究使用。数据来源:企业年报等。时间跨度:2001-2022年 数据范围:A股上市公司 数据指标:…

实现swiper 3d 轮播效果

先上个效果图,代码可以直接拿~ 安装swiper和vue-awesome-swiper 因为项目用的是nuxt2,所以考虑到swiper的兼容问题,选择的是"swiper": “^5.2.0” 首先是安装swiper和vue-awesome-swiper,并指定版本 npm install s…

基于Unity3D的AVG卡牌游戏设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 C# 3 1.2 Unity3D 3 1.3 UGUI 3 1.4 XML 4 1.5 原型设计模式 4 1.6 本章小结 4 2 系统分析 5 2.1 用户需求 5 2.2 功能需求 5 2.3 非功能需求 6 2.4 本章小结 6 3 系统设计 7 3.1 系统该要设计 7 3.2 系统详细设计 7 3.2.…

数组和指针笔试题目解析---掌握他们拿下指针魔鬼

目录 一、前言二、一维数组2.1代码2.2分析2.3验证运行结果 三、字符数组3.1代码13.1.1分析3.1.2验证运行结果 3.2代码23.2.1分析3.2.2验证运行结果 3.3代码33.3.1分析3.3.2验证运行结果 3.4代码43.4.1分析3.4.2验证运行结果 3.5代码53.5.1分析3.5.2验证运行结果 3.6代码63.6.1分…

基于SpringBoot和VUE技术的智慧生活商城系统设计与实现

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…

Net Core 使用Mongodb操作文件(上传,下载)

Net Core 使用Mongodb操作文件(上传,下载) 1.Mongodb GridFS 文件操作帮助类。 GridFS 介绍 https://baike.baidu.com/item/GridFS/6342715?fraladdin DLL源码:https://gitee.com/chenjianhua1985/mongodb-client-encapsulati…

STM32点亮LED灯与蜂鸣器发声

STM32之GPIO GPIO在输出模式时可以控制端口输出高低电平,用以驱动Led蜂鸣器等外设,以及模拟通信协议输出时序等。 输入模式时可以读取端口的高低电平或电压,用于读取按键输入,外接模块电平信号输入,ADC电压采集灯 GP…

论坛管理系统|基于Spring Boot+ Mysql+Java+B/S架构的论坛管理系统设计与实现(可运行源码+数据库+设计文档+部署说明+视频演示)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 目录 前台功能效果图 管理员功能登录前台功能效果图 用户功能模块 系统功能设计 数据库E-R图设计 l…

OxyPlot图表曲线图学习笔记(winform)

一、学习OxyPlot 开源地址:https://github.com/oxyplot/oxyplot 最新版:v2.1.2 新建winform,nuget中添加依赖包 二、写代码 2.1 BarSeries 2.2 ScatterSeries 2.3 LineSeries (带指向箭头) int pointCount 50; double[] xs …

Xilinx 7系列FPGA的配置流程

目录 1.4配置流程 1.4.1 设备上电 ​编辑1.4.2 清除配置寄存器 1.4.3 采样模式引脚 1.4.4 同步 ​编辑1.4.5 检测设备ID ​编辑1.4.6 加载配置数据 1.4.7 CRC校验 1.4.8 启动序列 1.4配置流程 对于所有配置模式,7系列的基本配置流程都是相同的&…

C语言sizeof操作符与strlen函数

1.sizeof与strlen的介绍 (1).sizeof 计算变量的内存空间大小。底层实际上是对变量类型的计算。是一个单目操作符,不是函数,后面的括号可以省略 (2).strlen 函数原型 strlen是一个函数,返回的size_t类型的数据,头文件为string.h计算字符串…

Python爬虫:requests模块的基本使用

学习目标: 了解 requests模块的介绍掌握 requests的基本使用掌握 response常见的属性掌握 requests.text和content的区别掌握 解决网页的解码问题掌握 requests模块发送带headers的请求掌握 requests模块发送带参数的get请求 1 为什么要重点学习requests模块&…

如何在安卓端的SAP里配置打印机

1、转到 SPAD 事务(“假脱机管理”屏幕)。单击“设备/服务器”选项卡,输入输出设备的名称,然后点击显示按钮。 2、如果打印机已配置,它将显示设备属性、输出设备属性和纸盒信息的所有详细信息。如果输入新的打印机名称…

AndroidStudio设计登录页源码(音悦app)

目录 一、代码 二、效果 一、代码 1.在activity_main.xml里的代码 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent&quo…

import gdal 报错

1.下载gdal https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal 2.安装正确版本 &#xff08;1&#xff09;查看python版本 python -v我的版本Python 3.7.9 建议下载 GDAL-3.4.2-cp37-cp37m-win_amd64.whl &#xff08;2&#xff09;放到Scripts文件夹下 执行 pip install GD…

mysql启动报错:ERROR! The server quit without updating PID file

mysql 重启或者启动时报错&#xff1a;ERROR! The server quit without updating PID file (/home/data/mysql/e787y33206.novalocal.pid).如下图: 重启报错&#xff1a; 启动也报错 这个错误是因为有mysql启动没有完全结束&#xff0c;如果是重启mysql服务&#xff0c;则在…

L2-035 完全二叉树的层序遍历(Python)

L2-035 完全二叉树的层序遍历 分数 25 全屏浏览 切换布局 作者 陈越 单位 浙江大学 一个二叉树&#xff0c;如果每一个层的结点数都达到最大值&#xff0c;则这个二叉树就是完美二叉树。对于深度为 D 的&#xff0c;有 N 个结点的二叉树&#xff0c;若其结点对应于相同深度…

超详细——VsCode连接远程主机/虚拟机并设置免密登录

超详细——VsCode连接远程主机/虚拟机并设置免密登录 文章目录 超详细——VsCode连接远程主机/虚拟机并设置免密登录[toc]连接到远程主机/虚拟机步骤1、打开vscode拓展 搜索 remote-ssh并安装步骤2、打开远程主机/虚拟机的ssh服务步骤3、设置连接远程主机的配置文件 设置免密登…

机械女生,双非本985硕,目前学了C 基础知识,转嵌入式还是java更好?

作为单片机项目开发的卖课佬&#xff0c;个人建议&#xff0c;先转嵌入式单片机开发方向&#xff0c;哈哈。 java我也学过&#xff0c;还学过oracle、mysql数据库&#xff0c;只是当时没做笔记&#xff0c;找不好充分的装逼证据了。 从实习通过业余时间&#xff0c;学到快正式毕…

可以用SEO进行市场分析吗?(川圣SEO)蜘蛛池

baidu搜索&#xff1a;如何联系八爪鱼SEO&#xff1f; baidu搜索&#xff1a;如何联系八爪鱼SEO&#xff1f; baidu搜索&#xff1a;如何联系八爪鱼SEO&#xff1f; SEO如何去进行关键词市场占比分析呢&#xff1f;可以进行市场分析吗&#xff1f; SEO&#xff0c;即搜索引…