Federation API

Low level api

Classes:

FederationABC()

federation, get or remote objects and tables

class FederationABC

federation, get or remote objects and tables

Methods:

get(name, tag, parties, gc)

get objects/tables from parties

remote(v, name, tag, parties, gc)

remote object/table to parties

abstract get(name: str, tag: str, parties: List[fate_arch.common._types.Party], gc: fate_arch.abc._gc.GarbageCollectionABC) List

get objects/tables from parties

Parameters
  • name (str) – name of transfer variable

  • tag (str) – tag to distinguish each transfer

  • parties (List[Party]) – parties to get objects/tables from

  • gc (GarbageCollectionABC) – used to do some clean jobs

Returns

a list of object or a list of table get from parties with same order of parties

Return type

list

abstract remote(v, name: str, tag: str, parties: List[fate_arch.common._types.Party], gc: fate_arch.abc._gc.GarbageCollectionABC) NoReturn

remote object/table to parties

Parameters
  • v (object or table) – object/table to remote

  • name (str) – name of transfer variable

  • tag (str) – tag to distinguish each transfer

  • parties (List[Party]) – parties to remote object/table to

  • gc (GarbageCollectionABC) – used to do some clean jobs

Return type

Notes

user api

remoting or getting an object(table) from other parties is quite easy using apis provided in Variable. First to create an instance of BaseTransferVariable, which is simply a collection of Variables:

from federatedml.transfer_variable.transfer_class import secure_add_example_transfer_variable
variable = secure_add_example_transfer_variable.SecureAddExampleTransferVariable()

Then remote or get object(table) by variable provided by this instance:

# remote
variable.guest_share.remote("from guest")

# get
variable.guest_share.get()