# Component of Oasis Nodes

PlayAI Nodes consist of these major components —

**Client**: This is node client responsible for fetching tasks and submitting result of tasks

**Server**: This is backend server of playAI responsible for assigning tasks to clients and track task execution and results

**SmartContracts**: There would be 2 set of contracts here —

1. Tasks on chain contract where the taskdata is posted by backend server being an aggregator
2. NFT contract of node sale which acts as whitelisting for nodes integrated with 1 as well to verify attestation

### Functionalities of Server:

Upon recieving rawVideo, the servers defines and generates task which are then assigned to clients based on ping, health, uptime, hardware, computing power, and other parameters required by tasks. The nodes then receives the task results and further actions to be carried out by Server. The Server keeps track of tasks and upon reaching defined threshold, it gets all signatured response and submit execution of task on Smartcontract by acting as aggregator.

### Functionalities of Client:

The client discloses the ping, health, hardware, computing power to the Server. It fetches the tasks from Server by pulling assigned tasks at specific intervals. Once allotted, it executes the task by applying compute rules and logs the computation details and send result of task to Server along with SignedSignature.

<figure><img src="/files/ROdCEHtDZmFIUbeJ7nyv" alt=""><figcaption></figcaption></figure>

### Task Engine

The Task Engine is a system designed to manage and optimize the distribution and execution of tasks across a network of nodes. Each node registers with a unique key, submits system specifications, and receives tasks based on its capabilities. The engine tracks node health, assigns tasks with varying complexity, and rewards nodes accordingly. It includes features for logging, background service operation, and a user dashboard to monitor performance and rewards, ensuring efficient and reliable task processing in the network.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.playai.network/oasis-nodes/component-of-oasis-nodes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
