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:
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
TaskResultSubmissions: Stores information about all task result submissions, indexed by a unique submission ID. This gets the actual work back for the task
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
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
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
Tasks: Stores detailed information about all tasks, indexed by task ID.
TaskCount: The total number of tasks created in the pallet. Statistics
Last updated