Task Market¶
Маркетплейс задач для выполнения на GPU-воркерах.
Статус¶
Текущая версия: 🚧 В разработке (Stage 5)
Планируемый функционал: - API для публикации задач - Оплата задач через CPC - Распределение задач между воркерами - Выплаты воркерам за выполнение
Концепция¶
Роли¶
- Customer (Пользователь):
- Создаёт задачу через API
- Платит CPC за выполнение
-
Получает результаты
-
Worker (Воркер):
- Получает задачи от PoC-валидатора
- Выполняет вычисления на GPU
- Отправляет результаты
-
Получает награды
-
PoC-валидатор (Оркестратор):
- Получает задачи из маркета
- Разбивает на job'ы
- Раздаёт воркерам
- Проверяет результаты
- Выплачивает награды
API (Планируется)¶
Создание задачи¶
Endpoint: POST /tasks
Request:
{
"challenge_type": "inference",
"payload": {
"model_id": "gpt-3.5-turbo",
"prompt": "Hello, world!",
"max_tokens": 100
},
"reward": "10.0",
"deadline": 1700000000
}
Response:
{
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "pending",
"created_at": 1699999999
}
Получение статуса задачи¶
Endpoint: GET /tasks/{task_id}
Response:
{
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "completed",
"result": {
"result_hash": "0x1234...",
"worker_address": "cpc1worker...",
"completed_at": 1700000100
}
}
Список задач¶
Endpoint: GET /tasks
Query Parameters:
- status: pending, in_progress, completed, failed
- challenge_type: Тип задачи
- limit: Количество результатов
- offset: Смещение
Response:
{
"tasks": [
{
"task_id": "...",
"challenge_type": "inference",
"status": "pending",
"reward": "10.0"
}
],
"total": 100,
"limit": 20,
"offset": 0
}
Типы задач¶
Inference (Вывод моделей)¶
Тип: challenge_type: "inference"
Payload:
{
"model_id": "gpt-3.5-turbo",
"prompt": "Generate a story",
"max_tokens": 500,
"temperature": 0.7
}
Использование: - Генерация текста - Классификация изображений - Перевод текста
Training (Обучение моделей)¶
Тип: challenge_type: "training"
Payload:
Использование: - Fine-tuning моделей - Обучение с нуля - Transfer learning
Rendering (Рендеринг)¶
Тип: challenge_type: "rendering"
Payload:
Использование: - 3D рендеринг - Анимация - Визуализация
Synthetic (Синтетические)¶
Тип: challenge_type: "synthetic"
Payload:
Использование: - Стресс-тест GPU - Бенчмарки - Тестирование сети
Финансы¶
Оплата задач¶
Текущая реализация (MVP):
- Работа "в кредит" или ручное пополнение кошелька маркета
- Выплаты воркерам через обычные
TRANSFER(батчинг)
Будущая реализация:
- Депозиты в L1 через специальную транзакцию
- Автоматические выплаты воркерам
- Эскроу для гарантии выполнения
Распределение оплаты¶
Планируется:
Оплата задачи: 100 CPC
60 CPC (60%) → СЖИГАЕТСЯ (дефляция)
25 CPC (25%) → Воркеру (исполнителю)
10 CPC (10%) → Валидаторам (верификаторам)
5 CPC (5%) → Казначейству
Интеграция с L1¶
SUBMIT_RESULT транзакции¶
Текущая реализация:
- Воркер или PoC-валидатор отправляет
SUBMIT_RESULTв L1 - Транзакция включается в блок
compute_rootобновляется
Будущая реализация:
- Автоматическая отправка от PoC-валидатора
- Батчинг результатов для экономии gas
- ZK-proofs для верификации
Примеры использования¶
Пример 1: Публикация задачи через API¶
import requests
# Создание задачи
response = requests.post("http://task-market:8080/tasks", json={
"challenge_type": "inference",
"payload": {
"model_id": "gpt-3.5-turbo",
"prompt": "Hello, world!",
"max_tokens": 100
},
"reward": "10.0"
})
task_id = response.json()["task_id"]
print(f"Task created: {task_id}")
# Проверка статуса
status = requests.get(f"http://task-market:8080/tasks/{task_id}")
print(status.json())
Пример 2: Получение задач воркером¶
# Воркер подключается к PoC-валидатору
# Получает задачи через WebSocket
# Выполняет и отправляет результаты
Roadmap¶
Фаза 1 (Текущая)¶
- ✅ Базовая структура
ComputeResult - ✅ Транзакция
SUBMIT_RESULT - ✅
compute_rootв заголовках блоков
Фаза 2 (Следующая)¶
- 🚧 Task Market API
- 🚧 PoC-валидатор (оркестратор)
- 🚧 WebSocket протокол для воркеров
Фаза 3 (Будущее)¶
- ⏳ ZK-proofs для верификации
- ⏳ Автоматические выплаты
- ⏳ Репутация воркеров
Следующие шаги¶
- Mining Overview — Обзор майнинга
- Local Worker — Запуск локального воркера
- PoC Details — Детали Proof-of-Compute