Extended Specification#
Table of Contents#
cluster.proto#
data.proto#
cluster.proto#
Proto file: secretflow/protos/secretflow/spec/extend/cluster.proto
Messages#
SFClusterConfig#
Runtime Config for a SecretFlow cluster. Besides intrinsic SFClusterDesc, dynamic network configs are provided.
Field |
Type |
Description |
|---|---|---|
desc |
Intrinsic properties. |
|
public_config |
Dynamic runtime public configs. |
|
private_config |
Dynamic runtime private configs. |
SFClusterConfig.PrivateConfig#
Different for each party. Private and unique to each party.
Field |
Type |
Description |
|---|---|---|
self_party |
none |
|
ray_head_addr |
none |
SFClusterConfig.PublicConfig#
Public and shared to all parties.
Field |
Type |
Description |
|---|---|---|
ray_fed_config |
none |
|
spu_configs |
none |
SFClusterConfig.RayFedConfig#
Addresses for the RayFed cluster of each party.
Field |
Type |
Description |
|---|---|---|
parties |
none |
|
addresses |
none |
|
listen_addresses |
none |
SFClusterConfig.SPUConfig#
Contains addresses for one SPU device.
Field |
Type |
Description |
|---|---|---|
name |
Should match SPU name in SFClusterDesc.devices. |
|
parties |
none |
|
addresses |
none |
|
listen_addresses |
none |
SFClusterDesc#
Intrinsic properties of a SecretFlow cluster, including:
Version info.
Parties: who participate in the computation.
Secret devices including and their configs.
Field |
Type |
Description |
|---|---|---|
sf_version |
SecretFlow version. |
|
py_version |
Python version. |
|
parties |
Joined entities. e.g. [“alice”, “bob”,…]. |
|
devices |
Description of secret devices |
|
ray_fed_config |
none |
SFClusterDesc.DeviceDesc#
Description for a secret device.
PYUs do not need to claim since they are plaintext devices.
Notes for config: At this moment, you have to provide a JSON string for different devices. We are going to formalize this part in future.
Example SPU config:
{
"runtime_config": {
"protocol": "REF2K",
"field": "FM64"
},
"link_desc": {
"connect_retry_times": 60,
"connect_retry_interval_ms": 1000,
"brpc_channel_protocol": "http",
"brpc_channel_connection_type": "pooled",
"recv_timeout_ms": 1200000,
"http_timeout_ms": 1200000
}
}
Referrences: SPU: https://www.secretflow.org.cn/docs/spu/latest/en-US/reference/runtime_config#runtimeconfig HEU: https://www.secretflow.org.cn/docs/secretflow/latest/en-US/source/secretflow.device.device.device#secretflow.device.device.heu.HEU.init
Field |
Type |
Description |
|---|---|---|
name |
Name of the device. |
|
type |
Supported: SPU, HEU, TEEU. |
|
parties |
Parties of device. |
|
config |
Specific config for the secret device. |
SFClusterDesc.RayFedConfig#
Field |
Type |
Description |
|---|---|---|
cross_silo_comm_backend |
Indicates communication backend of RayFed. Accepted: ‘grpc’, ‘brpc_link’ Dafault is ‘grpc’ |
Enums#
data.proto#
Proto file: secretflow/protos/secretflow/spec/extend/data.proto
Messages#
DeviceObjectCollection#
Descibes public storage info for a collection of Device Objects.
Field |
Type |
Description |
|---|---|---|
objs |
none |
|
public_info |
Any public information. |
DeviceObjectCollection.DeviceObject#
Field |
Type |
Description |
|---|---|---|
type |
Supported: |
|
data_ref_idxs |
Index of data_ref in the parent DistData message. |