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.