测试mpc4j--psi(一)

0、前序工作已经将算法所需要的三个c++包进行了编译,注意这个编译目前还不支持windows下的动态链接的编译,编译后有两个文件夹mpc4j-native-tool、mpc4j-native-fourq


详细编译文档可参考:mpc4j-native-tool/doc 找到对应的系统编译文件

1、在windows本地把需要的模块进行打包

由于项目中每个包的错综复杂的依赖关系,因此不建议单独进行package,比如我对mpc4j-s2pc-pso单独进行package的时候会报一堆依赖Jar包没有,这时候千万不要按照提示剥洋葱一点点Install,

1)直接打开项目目录进行一键mvn clean install

2)打开自己的Maven仓库找到已经打好的Jar包

通过日志可以看出,在打包的时候忽略了所有的测试类

E:\efficient_work\mpc4j-main
mvn package -pl mpc4j-s2pc-pso -am -DskipTests=false

3)package之后会生成3个jar包

E:\efficient_work\mpc4j-main\mpc4j-s2pc-pso\target

  1. .jar 文件:这是项目的主要 JAR 文件,它包含了项目的编译代码和资源文件,但不包括项目依赖的库。这个 JAR 文件通常带有项目的名称和版本号作为其命名的一部分。它适合用作库的发布,其他项目如果需要使用您的库,则可以将此 JAR 文件添加到它们的依赖中。

  2. -jar-with-dependencies.jar 文件:这个 JAR 文件包含了项目的编译代码、资源文件以及所有项目依赖的库,它是一个“含有依赖项”的 JAR 文件。这样的 JAR 文件更大,但是它是一个完全可执行的 JAR 文件,可以独立运行,而无需其他依赖项。这在您希望将整个应用程序作为一个单独的 JAR 文件进行部署时非常有用。

  3. -sources.jar 文件:这个 JAR 文件包含了项目的源代码,它是一个源代码 JAR 文件。通常情况下,这个 JAR 文件用于发布项目的源代码,使其他人可以查看和理解您项目的实现细节。这对于开源项目或者需要共享源代码的项目非常有用。

上传mpc4j-s2pc-pso-1.1.0-jar-with-dependencies.jar

另外在mpc4j的github首页的readme里也有说明

2、上传jar包,命令行运行

注意:

1需要指定conf/psu配置.txt文件
2 要先运行服务端再运行客户端

1)服务端

java -Djava.library.path=/home/fourQTest/mpc4j-native-tool/cmake-build-release -jar mpc4j-s2pc-pso-1.1.0-jar-with-dependencies.jar conf_psu_gmr21_server.txt

2)客户端

java -Djava.library.path=/home/fourQTest/mpc4j-native-tool/cmake-build-release -jar mpc4j-s2pc-pso-1.1.0-jar-with-dependencies.jar conf_psu_gmr21_client.txt

↘GMR21_PSU client Init begin
2024-03-26 22:57:44,300 [main] INFO  edu.alibaba.mpc4j.common.rpc.pto.MultiPartyPto -     ↘KKRT16_OPT_OPRF client Init begin

需要测试的是服务端10W 每条128字节 看运行时间
 

3)入口主函数

src/main/java/edu/alibaba/mpc4j/s2pc/pso/main/PsoMain.java

4)配置文件

conf_psu_gmr21_server.txt

# 服务端信息
server_name = server
server_ip = 127.0.0.1
server_port = 9002

# 客户端信息
client_name = client
client_ip = 127.0.0.1
client_port = 9003

# 所属参与方
own_name = server

# 协议类型
pto_type = PSU

# 元素字节长度
element_byte_length = 8

# 对数集合大小(log(n))
server_log_set_size = 20,18,16,14
client_log_set_size = 20,18,16,14

# 协议名称
psu_pto_name = GMR21

# 是否使用安静OT
silent_cot = false
# silent_cot = true

默认是PSU也就是同态求交,想测试PSI这里需要改

# 协议类型
pto_type = PSI
# 协议名称
psi_pto_name = GMR21



 

  • 57
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值