Replies: 1 comment
-
The new API would give integrators more clarity on the capabilities of the system. Further, having the MPC runtime as a container could indeed make the extension process simpler. I assume the goal is to have the Orchestrator as a foundational component of Carbyne Stack, with Runtime containers defined by the integrators. I'm however concerned about the long term sustainability of such API.
I'm curious whether the Runtime<->Orchestrator API for interaction with other CS services is necessary for extensibility. Since it's just indirection between cluster services' APIs and the runtime, why not access them directly? Networking setup and authorization are more fitting to leave to the orchestrator as these are inherent to any MPC runtime or task, but intra-VCP service access is not orchestration in my opinion. Redistributing the responsibilities that Ephemeral currently has could be done as so: EII would contain only the bare necessities in terms of orchestration, like publishing and consuming some task lifecycle events, reading network configuration, inputs and results (Amphora UUIDs), etc. However I think the discovery service is a more fitting component to mediate these messages between the orchestrator and Runtime instead. |
Beta Was this translation helpful? Give feedback.
-
There is an emerging demand for integrating other MPC runtimes into Carbyne Stack (CS), e.g.:
At the moment, however, Ephemeral, like the rest of the CS platform, is deeply "entangled" with the MP-SPDZ MPC runtime - and more specifically with its SPDZ2 active security dishonest majority protocol implementation. This post should be seen as a starting point for evolving the Ephemeral service towards extensibility in terms of support for additional MPC runtimes.
To get the discussion started, we came up with a first high-level proposal how the desired extensibility can be achieved. The key idea is to decouple the orchestration logic that is dealing with, e.g., networking setup, authorization, and the interaction with other CS services (Castor for fetching correlated randomness and Amphora for I/O) from the MPC runtime. This is facilitated by introducing an API (called the Ephemeral Integration Interface) between the orchestrator and the runtime. This API will initially provide the following functionality:
Technically speaking, Ephemeral will be split into two parts (see the figure below): The orchestrator and an MPC runtime. The later might be complemented by a sidecar that translates interactions via the API into something that can be understood by the MPC runtime. the Both will run inside the same pod.
As a first iteration towards a general concept, we propose to reuse the interaction mechanisms that are implemented in Ephemeral today, i.e., using named pipes to transfer correlated randomness and sockets for handling I/O.
This is a still very sketchy high-level draft of what we at Bosch plan to implement in 2024. Any feedback is highly appreciated.
Beta Was this translation helpful? Give feedback.
All reactions