551
社区成员




import socket
from contextlib import closing
from typing import cast
def unused_tcp_port() -> int:
""""Return an unused port"""
with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as sock:
sock.bind(("",0))
sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
return cast(int,sock.getsockname()[1])
print(unused_tcp_port())
import secretflow as sf
import spu
import os
cluster_config ={
'parties': {
'alice': {
# replace with alice's real address.
'address': 'ip:port of alice',
'listen_addr': '0.0.0.0:50649'
},
'bob': {
# replace with bob's real address.
'address': 'ip:port of bob',
'listen_addr': '0.0.0.0:45171'
},
},
'self_party': 'alice'
}
sf.init(address='{Ray head node address of alice}',cluster_config=cluster_config)
import secretflow as sf
import spu
import os
network_conf = {
"parties": {
"alice": {
"address": "alice:50649",
},
"bob": {
"address": "bob:45171",
},
},
}
party = os.getenv("SELF_PARTY", "alice")
sf.shutdown()
sf.init(
address="127.0.0.1:6379",
cluster_config={**network_conf, "self_party": party},
log_to_driver=True,
)
import secretnote as sn
import pandas as pd
# 读取数据集
payment_data = pd.read_csv('payment.csv')
record_data = pd.read_csv('record.csv')
# 确保数据集包含'uid'列
payment_uids = payment_data['uid']
record_uids = record_data['uid']
psi=sn.Psi()
# 银行和公安分别持有各自的数据集,这里我们模拟这个过程
# 银行将数据发送给SecretNote PSI
psi.set_elements(payment_uids.tolist())
# 公安将数据发送给SecretNote PSI
psi.set_elements(record_uids.tolist())
# 计算交集
intersection = psi.compute()
# 输出交集大小和内容
print(f"交集大小: {len(intersection)}")
print(f"交集内容: {intersection}")