-
Notifications
You must be signed in to change notification settings - Fork 33
3. System architecture
The architecture of HUMAN Protocol is divided across two layers; the Routing Protocol and the Execution Layer. The Routing Protocol is the entry point into the network. It is responsible for ensuring that jobs are routed to the chain that provides the best execution terms (e.g lowest tx cost, fastest finality time etc), and to the correct workpool and Exchange Oracle, which retrieves off-chain data from applications where work is completed. It is also responsible for enforcing the staking and slashing rules, which incentivize network actors to behave honestly. All network participants must stake to the staking contract before they are allowed to launch jobs into the network. The Execution Layer is responsible for executing jobs and verifying that they were completed correctly.
The protocol is distributed across two layers, each providing a specific purpose.
The Routing Layer is the entry point to the HUMAN network. All jobs must pass through this layer before they can be distributed to an individual Worker. This layer relies on The Graph to provide real-time metrics for each chain within the Execution Layer. In this way it is able to determine which chain offers the fastest, cheapest and most reliable job completion capacity at the time of job creation.
The Execution Layer is responsible for the execution of a job, i.e for distributing the job to Workers, validating their responses, settling Worker payments and maintaining their reputations. Our core smart contracts are deployed to multiple chains*, when a job is routed to a particular chain, it is executed using the contracts for that chain.
There are a number of components that work together to orchestrate the creation and completion of jobs. The components are:
The Job Launcher is a key component of the HUMAN Routing Protocol. It is a community operated application that acts as a gateway into the HUMAN network. Through a Job Launcher, regular users are able to launch a variety of job types. This makes the job creation process more user-friendly and accessible to those who need it.
Job launcher operators are able to set their own fees for providing this service. They are required to stake HMT to a staking contract to ensure that they do not act maliciously. It is also possible to launch a job directly into the network, but again the entity launching must stake before the job will be accepted into the network. Job launchers (and other actors) can be tracked via the HUMAN Dashboard*
Network actors responsible for distributing tasks out to Workers. They listen to the on-chain events and when they detect a job that is in a pending state, they claim it and distribute the tasks contained within to HUMAN Workers. They are also responsible for receiving Worker responses for tasks. Once the exchange receives back the responses, it forwards them to the Recording Oracle.
Network actors that validate the responses of Workers. Recording Oracles are responsible for receiving Worker responses, and validating that those responses meet a specified threshold. The threshold is specified by the job requester at the time of job creation.
Network actors responsible for maintaining Worker reputations and pay out Workers based on their reputations.