Architecture

System infrastructure and components

High-level Infrastructure

The Orange system receives invocation requests from applications with specific models and datasets.

First, it invokes the model specified in the invocation request by sending a request to the service set up by the Model Provider (MP).

Next, based on the selected Data Provider (DP) and dataset, the system fetches data using an interface provided by them. After the calculation is complete and a result is generated, the system stores the result temporarily till it is fetched by the application.

The system processes model invocation requests in the form of tasks. Each task corresponds to an individual Decentralized Identifier (DID) or wallet address. Refer to the integration guide here for details.

The application can then proceed to fetch the result in its raw form (data object), or send a request to export it in the form of a verifiable credential or NFT.

The following figure illustrates how the different components that make up the Orange system are connected and interact with each other.

Let's go over each component individually.

GraphQL API Server

The interface for applications to interact with the Orange system. It serves the following purposes:

  • Fetching details of registered Model Providers (MP) and Data Providers (DP)

  • Fetching details on publicly available models and datasets

  • Sending calculation requests

  • Fetching the generated results

DP Manager

A service module that DPs primarily interact with. The DP manager performs the following functions:

  • Preliminary verification and docking

  • Data interface invocation to fetch and query data

MP Manager

A service module that MPs primarily interact with. Enables the following features:

  • Preliminary verification and docking

  • Execution request handling

    • WASM based: Fetches a binary file for the model and performs service execution in an integrated execution environment

    • Custom: Invokes a standalone server deployed by the MP for service execution. Invocation via a RESTful/RPC API.

Dispatcher

A service module that basically handles all the requests from applications. It interacts with other components to perform a number of functions:

  • Fetches data from a specified DP after receiving a data request

  • Sends execution requests to a specified MP after receiving calculation requests

  • Sends the results generated by the MP to the reputation minting service for further processing

Reputation Minting Service

A service that takes the calculation results produced by MPs and generates a specified form of verifiable proof. Some examples would be:

  • Verifiable Credentials

  • NFTs

Blockchain

Represents the ledger network where records are maintained. For instance,

  • Record of a verifiable credential issued to a DID

  • Deploying NFT contracts that mint tokens based on the reputation assessment reports received from the Orange system

Last updated