Architecture

Introduction

This technical documentation provides an overview of the architecture and components of the Human Protocol, a framework designed to facilitate decentralized human labor for various jobs. The protocol consists of four key operators, each with distinct responsibilities:

  • Job Launcher: The Job Launcher operator is responsible for initiating jobs that need to be processed or solved by workers within the protocol.

  • Exchange Oracle: The Exchange Oracle is in charge of distributing these jobs to the workers, ensuring that they understand the job and can provide solutions.

  • Recording Oracle: The Recording Oracle plays a crucial role in storing the responses provided by workers and recording them on the blockchain. It also validates the correctness of these responses.

  • Reputation Oracle: The Reputation Oracle is responsible for verifying the responses previously validated by the Recording Oracle. It also manages payments to both workers and oracles involved in the job resolution process. The Reputation Oracle tracks and manages the reputation of both workers and oracles, adjusting their reputation based on their performance.

Beyond these operators, there is an additional layer that functions as a bridge between workers and the tasks they need to address. Within this layer, two services exist:

  • HumanApp: it serves as the gateway for workers to enter the protocol. Through HumanApp, workers can register and become active participants in the protocol, gaining access to the list of tasks available for resolution.

  • Annotation Tool: it is the tool utilized by workers to complete the tasks.

Job Requester Workflow

A Job Requester refers to an individual, organization, or entity responsible for initiating a task or project within HUMAN protocol. Such requesters are in search of particular services or tasks to be executed, usually by individuals or workers equipped with the necessary skills or qualifications. They define the job's parameters and requirements, establishing compensation terms, and submitting the job for execution. These requesters must register with the Job Launcher and detail the tasks they need addressed, ensuring the jobs are funded and clearly specifying the type of job and the oracles involved.

When a Job Requester decides to initiate a new job, the process unfolds as follows:

  1. The Job Requester must first visit the Leaderboard. Based on the type of job they want to create, they select a specific Job Launcher. The choice might depend on the nature of the job or other specific requirements. Additionally, if there are multiple Job Launchers capable of handling the same type of job, the Job Requester may further refine their choice based on the reputation of each Job Launcher or certain characteristics that meet their needs.

  2. After choosing a Job Launcher, the Job Requester proceeds with registration if not already registered.

  3. The Job Requester is presented with a list of available job types within the selected Job Launcher. They select the one that best suits their requirements.

  4. Based on their job type selection, the Job Requester can either select the chain where the job will be initiated and choose the oracles to handle it, or he can opt to have the Routing protocol make this decision.

  5. The requester has to pay for funding the job.

  6. Once the job request is created, the Job Launcher generates a smart contract (escrow) on the blockchain and configures it. The funds provided by the Job Requester for rewarding workers are sent to this contract.

  7. Before launching the job on the blockchain, the Job Launcher creates a manifest file containing all the metadata related to the job.

  8. Upon job creation, the Job Launcher notifies the Exchange Oracle via a webhook, signaling that the job has been created and can be assigned to workers.

  9. After the task is finished, the Job Requester has the ability to examine the outcomes produced by the protocol via the Job Launcher.

Worker Workflow

This is the workflow that workers follow to participate in job tasks:

  1. Workers must first register and undergo a Know Your Customer (KYC) process in Human App. This KYC information is processed through the Reputation Oracle.

  2. After registration and successful KYC, workers log in using Human App.

  3. The Human App gathers from the Exchange Oracles a list of available tasks and presents them to the user, enabling them to select the one that best fits their skills.

  4. In Human App workers receive the details of the job they need to solve from the Exchange Oracle and proceed to provide their solutions.

  5. Workers get redirected to the Annotation Instrument or the Exchange Oracle interface (if no annotation instrument is needed) to submit the answer to the task.

  6. The Exchange Oracle receives and stores the solutions in a file, notifying the Recording Oracle when the file is complete or in chunks.

  7. The Recording Oracle validates the solutions, recording the results in an Intermediate Results file. Once this file is ready, the Recording Oracle calls the escrow contract to store the URL on the blockchain.

  8. After this step, the Recording Oracle triggers a Webhook to notify the Reputation Oracle, which takes charge of reviewing the uploaded solutions and making payments to the workers involved in the task.

  9. Worker and oracle reputations are adjusted based on the quality of responses provided during the task.

  10. Once all desired solutions are received, the Reputation Oracle concludes the process, preventing further solutions or payments.

Conclusion

The Human Protocol Protocol provides a framework for the decentralized processing of human tasks, ensuring trust and security through its various oracles and smart contract mechanisms. The protocol offers a structured workflow for Job Requesters and Workers, managing payments and reputation throughout the process, ultimately enabling efficient and trustworthy task resolution.

Last updated

Logo

© 2023 HPF. HUMAN Protocol® is a registered trademark