nusdbsystem / pivot

Privacy preserving vertical federated learning for tree-based models

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

reproduce the experiment in a LAN environment

shazi4399 opened this issue · comments

Hi, I would like to reproduce the experiment in a LAN environment.

I have successfully reproduced the experiment on one computer (OS: Ubuntu 18.04), and I am now further reproducing the experiment in a three computer (LAN) environment. However, errors keep appearing.
All three computers have Ubuntu 18.04 and all three computers can communicate with each other.
Computer 1's ip address: 10.112.170.6
Computer 2's ip address: 10.112.170.8
Computer 3's ip address: 10.112.59.73
Computer 1 is the SUPER_CLIENT.

step1 I ran Pivot-SPDZ.

(computer 1) . /semi-party.x -F -N 3 -I -p 0 vfl_decision_tree
(Computer 2) . /semi-party.x -F -N 3 -I -p 1 -h 10.112.170.6 vfl_decision_tree
(computer 3) . /semi-party.x -F -N 3 -I -p 2 -h 10.112.170.6 vfl_decision_tree

step 2, I modified data/networks/Parties.txt

party_0_ip = 10.112.170.6
party_1_ip = 10.112.170.8
party_2_ip = 10.112.59.73
party_0_port = 9000
party_1_port = 9020
party_2_port = 9040

The computer 1 terminal displays the following error:

root@thinkcentre:/opt/pivot/build$ . /Pivot --client-id 0 --client-num 3 --class-num 2 --algorithm-type 0 --tree-type 0 --solution-type 0 --optimization-type 1 --network-file /opt/ pivot/data/networks/Parties.txt --data-file /opt/pivot/data/bank_marketing_data/client_0.txt --logger-file /opt/pivot/log/bank_ marketing_data --max-bins 16 --max-depth 3 --num-trees 1
parse parameters correct
client-id: 0
client-num: 3
class-num: 2
algorithm-type: 0
tree-type: 0
solution-type: 0
optimization-type: 1
network-file: /opt/pivot/data/networks/Parties.txt
data-file: /opt/pivot/data/bank_marketing_data/client_0.txt
logger-file: /opt/pivot/log/bank_marketing_data
max-bins: 16
max-depth: 3
num-trees: 1
Failed to connect. sleeping for 500 milliseconds, connect: Connection refused
accepting...
Incorrect triple at 0, aborting
root@thinkcentre:/opt/pivot/build$ 

Please, how do I change the configuration information.
I have a feeling that there might be an error in Pivot-SPDZ startup, any advice would be greatly appreciated!

Hi, based on the std::cout outputs, it looks like the connection with Pivot-SPDZ was not set correctly. You may try to also set the host ip address for the semi-party.x on the first machine as follows and see.

(computer 1) . /semi-party.x -F -N 3 -I -h 10.112.170.6 -p 0 vfl_decision_tree
(computer 2) . /semi-party.x -F -N 3 -I -h 10.112.170.6 -p 1 vfl_decision_tree
(computer 3) . /semi-party.x -F -N 3 -I -h 10.112.170.6 -p 2 vfl_decision_tree

Thank you very much, the guidance you have given is very useful.

In addition to the above, one more thing.

It may be necessary to copy the Player-Data generated by Pivot-SPDZ on SUPER_CLIENT, to the other two computers.
Otherwise Beaver Triplet, the calculations will be incorrect and will also cause the program to crash.

No problem. Right, the generated Player-Data needs to be synchronized among the machines if you are not using network file system for distributed file sharing etc.

Then I will close this issue. Thanks.