Architecture
Last updated
Last updated
© 2023 HPF. HUMAN Protocol® is a registered trademark
This technical documentation provides an overview of the architecture and components of the HUMAN Protocol, a framework designed to facilitate decentralized human labor for 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:
HUMAN App: this serves as the gateway for workers to enter the protocol. Through the HUMAN App, workers can register and become active participants in HUMAN job markets, gaining access to the list of tasks available for resolution.
Annotation Tool: this is the tool utilized by workers to complete data-annotation tasks.
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 specifying the job type and the oracles involved.
When a job requester decides to initiate a new job, the process unfolds as follows:
The job requester visits the Job Launcher, and proceeds with registration if not already registered.
The job requester is presented with a list of available job types, and select the one that best suits their requirements.
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 can opt to have the Routing Protocol make this decision.
The requester funds the job. The amount of funds will correlate to how many tasks are able to be completed by the HUMAN workforce.
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.
Before launching the job on the blockchain, the Job Launcher creates a manifest file containing all the metadata related to the job.
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.
After the task is finished, the job requester has the ability to examine the outcomes produced by the Protocol via the Job Launcher.
This is the workflow that workers follow to participate in job tasks:
Workers must first register and undergo a Know Your Customer (KYC) process within the HUMAN App. This KYC information is processed through the Reputation Oracle.
After registration and successful KYC, workers log in using the HUMAN App.
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.
Workers then receive the details of the tasks they need to solve from the Exchange Oracle, and proceed to provide their solutions.
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.
The Exchange Oracle receives and stores the solutions in a file, notifying the Recording Oracle when the file is complete, or in batches of successful tasks.
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.
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.
Worker and oracle reputations are adjusted based on the quality of responses provided during the task.
Once all desired solutions are received, the Reputation Oracle concludes the process, preventing further solutions or payments.
HUMAN 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.