Glossary

The following glossary describes the enum status of objects in the DecentralML pallet and specific low level functions for listing various objects in the pallet.

Object Status

Task type

A task can be created for each role:

  • Data annotator

  • Model contributor

  • Model engineer

pub enum TaskType {
    #[default]
    DataAnnotators,
    ModelContributor,
    ModelEngineer
}

Task status

A task for contributors can assume different status:

  • Created: the task has been created and is awaiting assignment

  • InProgress: the task has been assigned to a worker

  • Completed: the task has been completed by the worker

  • Withdrawn: the task has been rejected by the worker

pub enum TaskStatus {
    #[default]
    Created,
    InProgress,
    Completed,
    Withdrawn
}

Validation strategy

  • AutoAccept: the result of the task are automatically accepted

  • ManualAccept: the result of the task are accepted manually by the model creator

  • CustomAccept: the result of the task are accepted automatically according to a custom policy defined by the model creator

pub enum ValidationStrategy {
    #[default]
    AutoAccept,
    ManualAccept,
    CustomAccept
}

Storage type

DecentralML supports several storage services:

  • IPFS (https://www.infura.io/product/ipfs) is a distributed storage system

  • Crust (https://crust.network/) is a distributed storage system

  • S3 (https://aws.amazon.com/pm/serv-s3/) is a proprietary storage system part of the Amazon Web Service

  • GCP (https://cloud.google.com/storage) is a proprietary storage system part of the Google Cloud Platform

  • Azure (https://learn.microsoft.com/en-us/azure/storage/common/storage-introduction) is a proprietary storage system part of the Windows Azure Service

pub enum StorageType {
    #[default]
    IPFS,
    Crust,
    S3,
    GCP,
    Azure
}

Result submission status

Once the results of the task are submitted, they can assume different status:

  • Assigned: this is the default status for the submission of the results when a contributor sends the results

  • PendingValidation: this is the status of the submission while the validation process is on going

  • Validated: the results are validated but not yet accepted

  • Accepted: the results are accepted and a payment is issued to the contributor

  • Rejected: the results are rejected and the payment is negated to the contributor

pub enum ResultSubmissionStatus {
    #[default]
    Assigned,
    PendingValidation,
    Validated,
    Accepted,
    Rejected
}

Listing objects

At this stage, listing objects such tasks and result submissions is not yet implemented as part of the python client. In this brief guide, we illustrate the low level functions that can be used to list objects in the DecentralML pallet:

  1. TaskResultSubmissionIds: Maps task IDs to their respective task result submission IDs. Creator calls this first to get the result submission ID for their task. Note that create_task returns the unique Task ID

  2. TaskResultSubmissions: Stores information about all task result submissions, indexed by a unique submission ID. This gets the actual work back for the task

  3. TaskResultSubmissionCountByTaskId: Maps each task ID to the total number of result submissions associated with it. Creator can call this or the Worker to find out how many submissions there have been

  4. WorkerSubmissions: A mapping from workers (accounts) to their task result submissions. It tracks all tasks a particular worker has been involved in. Worker queries this to get the current status of their jobs

  5. OpenTasks: Stores a list of open tasks (those in Created or InProgress status). This is called by the worker to find out what open tasks there are, returns the task ID

  6. Tasks: Stores detailed information about all tasks, indexed by task ID.

  7. TaskCount: The total number of tasks created in the pallet. Statistics

Last updated