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 Instrument: it is the tool utilized by workers to complete the tasks.

Job Requester Workflow

The Job Requester is an individual, organization, or entity that initiates a task or job within the protocol. Job requesters are typically seeking specific services or tasks to be performed, often by individuals or workers who have the required skills or capabilities. Job requesters define the parameters and requirements of the job, set the terms of compensation, and submit the job for processing.In the context of the Human Protocol, a job requester is someone who uses the protocol to create and submit tasks that need to be completed. Job requesters register with the Job Launcher and provide details about the tasks they want to be solved. They are responsible for funding the jobs and specifying the job type and oracles to be involved. Job requesters are an integral part of the ecosystem, as they drive the demand for human labor and rely on the protocol to efficiently and securely complete tasksWhen a Job Requester wishes to launch a new job, the following workflow is followed:

  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.

  2. 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.

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

  4. Following registration, the Job Requester has two options: they can either increase their account balance or proceed to create a new job and pay for it during the job request process. Payment for jobs can be made using either fiat or cryptocurrencies.

  5. 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.

  6. 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.

  7. 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.

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

  9. 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.

  10. 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

Workers follow the following workflow 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, only including the valid ones 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