229 / 691JNP

Job Negotiation

Согласование собственной майнинговой работы

Job Negotiation отделяет выбор транзакций от общего учёта майнинга. Эффект зависит от протоколов, режима раскрытия данных и реакции на отказ; одного подключения через Stratum V2 недостаточно.

Job Negotiation — согласование собственной работы между майнером и пулом. Спецификация Stratum V2 описывает его через Job Declaration Protocol совместно с распределением шаблонов и майнинговых заданий.

Mining Protocol может работать без Job Declaration и Template Distribution. Тогда пул по-прежнему единолично распределяет работу. Собственный выбор требует подходящего клиента, поставщика шаблонов и поддерживающего пула, а не просто иного транспорта. [Stratum V2 — Mining Protocol and Custom Jobs] [SRI — Pool and miner application roles]

Через CoinbaseOutputConstraints поставщик Template Provider получает требования к дополнительным выходам coinbase и sigops. JDC должен выяснить их для используемых пулов. Без верных резервов добавление выплатных выходов может превысить лимиты блока; выбор транзакций связан со сборкой. [Stratum V2 — Template Distribution Protocol]

В Full-Template клиент JDC отправляет DeclareMiningJob серверу JDS. Сервер может запросить недостающие транзакции через ProvideMissingTransactions. Подтверждение декларации и последующее принятие собственной работы пулом — два отдельных шага, а не одно сообщение. [Stratum V2 — Job Declaration Protocol]

Coinbase-only не использует DeclareMiningJob, а JDC не раскрывает набор транзакций. Пул оценивает доход по coinbase. Приватность набора не доказывает его действительности или заявленных комиссий; спецификация прямо описывает этот риск. [Stratum V2 — Job Declaration Protocol]

SetCustomMiningJob ссылается на mining_job_token от JDS. При принятии пул возвращает SetCustomMiningJob.Success со своим job_id. Идентификаторы выполняют разные роли; результаты отправляют для подтверждённого задания с соответствующим job_id. [Stratum V2 — Mining Protocol and Custom Jobs]

При наличии нужных данных оптимистичный майнинг может начаться до SetCustomMiningJob.Success. Найденные shares сохраняют до подтверждения. Само хеширование не означает, что пул уже принял работу или начислил награду. [Stratum V2 — Mining Protocol and Custom Jobs]

После SetCustomMiningJob.Error или тайм-аута спецификация рекомендует другой пул либо соло-майнинг. Устойчивость зависит от рабочего fallback. Молчаливое продолжение на шаблоне отказавшего пула не сохранит исходный выбор транзакций. [Stratum V2 — Mining Protocol and Custom Jobs] [SRI — Pool and miner application roles]

JDC должен выделить стоимость указанному выходу пула для получения общих наград. Перенаправление части дохода на другие выходы может пропорционально снизить награду. Job Declaration не превращает общий учёт в автоматическую прямую выплату майнеру. [Stratum V2 — Job Declaration Protocol]

Для полной картины прочитайте эту статью вместе с Stratum V2, getblocktemplate, Mining Pool, Block Template. На эту статью также ссылаются Stratum V2, Mining Pool Centralization.

DOC · 001Stratum V2 — Mining Protocol and Custom JobsСпецификация ↗DOC · 002Stratum V2 — Job Declaration ProtocolСпецификация ↗DOC · 003Stratum V2 — Template Distribution ProtocolСпецификация ↗DOC · 004SRI — Pool and miner application rolesПервичный источник ↗
Сначала источники · Не является инвестиционной рекомендацией