Xalgorix Cloud
Autonomous AI security testing for developers and security teams: find vulnerabilities, prove each with a working exploit, and ship verified fixes with zero infrastructure setup.
翻訳待ち
Unlock insights from data you can't access. Create value from data you can't share. OpenMined builds the technology to make it happen. Non-profit. Open-source.
翻訳待ち
セキュリティPython · Jupyter NotebookGitHub @OpenMinedオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
Perform data science on data that remains in someone else's server
翻訳待ち
Loading the full README.
Read the full README ↗
syft0.10+ is the successor ofsyft-client.syftis the sync engine (import syft as sy); datasets and jobs live insyft-rds(from syft_rds import login_do, login_ds). If you depend on the legacy PySyft ≤0.9 API, pinsyft<0.10.
PySyft allows data scientists run computations which are reviewed and run by data owners on private data. Users securely communicate through cloud storage their organizations already use (Google Drive, Microsoft 365, etc.) or serverless p2p chnannels like webRTC. No new infrastructure required and all communication between be peers can be signed and encrypted.
Before you start: this quick start assumes Google Colab, where login is a browser pop-up and works out of the box. On a local machine or in Jupyter you first need a Google Cloud OAuth token: follow docs/auth.md (about 15 minutes the first time), then pass it as token_path to login_do / login_ds. Each role needs its own Google account.
We assume two parties here, a Data Owner (DO) and a Data Scientist (DS), the DS wants to do an analysis on private data of the DO. For brevity we use code blocks, but in practice these would be distributed: each party executes their code on their own machine.
# Data scientist
uv pip install "syft>=0.10.0" "syft-rds>=0.6.0"
# Data owner (adds the background services)
uv pip install "syft>=0.10.0" "syft-rds>=0.6.0" "syft-bg>=0.3.12"
import syft as sy # sync engine + helpers (resolve_dataset_file_path, bug_report, ...)
from syft_rds import login_do, login_ds # datasets + jobs (the Remote Data Science client)
# Colab: login is a browser pop-up, nothing to set up
# Local / Jupyter: create a token first, see docs/auth.md
do = login_do(email="[email protected]") # local: add token_path="token_do.json"
ds = login_ds(email="[email protected]") # second account; local: token_path="token_ds.json"
# Peer request & approve
ds.add_peer("[email protected]")
do.approve_peer_request("[email protected]")
# Create & sync dataset
do.create_dataset(
name="census",
mock_path="mock.txt", # create this and add some text
private_path="private.txt", # create this and add some text
users=["[email protected]"],
)
do.sync(); ds.sync()
datasets = ds.datasets.get_all()
Write an analysis.py that reads the dataset and produces a result in our case this is just the length of the data. Inside a job, resolve_dataset_file_path automatically resolves to the private data:
# analysis.py
import json
import syft as sy
data_path = sy.resolve_dataset_file_path("census")
with open(data_path, "r") as f:
data = f.read()
with open("outputs/result.json", "w") as f:
json.dump({"length": len(data)}, f)
Submit the job and retrieve results:
This is the beginning of the README. Read the rest at the original. Read the full README ↗