Job Negotiation označuje koordinaci vlastní těžební práce mezi těžařem a poolem. Ve specifikaci Stratum V2 ji popisuje Job Declaration Protocol ve spojení s distribucí šablon a těžebních úloh.
Mining Protocol může fungovat bez Job Declaration i Template Distribution. V takovém zapojení pool stále jednostranně rozesílá práci. Pro vlastní výběr je nutná odpovídající sestava klienta, poskytovatele šablon a podporujícího poolu, nikoli jen jiný přenosový protokol. [Stratum V2 — Mining Protocol and Custom Jobs] [SRI — Pool and miner application roles]
Template Provider dostává přes CoinbaseOutputConstraints požadavky na další výstupy coinbase a sigops. JDC je musí zjistit pro používané pooly. Bez správné rezervy by přidání výplatních výstupů mohlo překročit limity bloku; volba transakcí proto není oddělená od jeho sestavení. [Stratum V2 — Template Distribution Protocol]
Ve Full-Template režimu JDC posílá DeclareMiningJob serveru JDS. Server může požádat o chybějící transakce přes ProvideMissingTransactions. Potvrzení deklarace a následné přijetí vlastní práce poolem jsou dva samostatné kroky, ne jediná zpráva. [Stratum V2 — Job Declaration Protocol]
V Coinbase-only režimu se DeclareMiningJob nepoužívá a JDC nepředává sadu transakcí. Pool posuzuje příjem podle coinbase. Soukromí této sady ale samo nedokazuje její platnost ani správnost deklarovaných poplatků; specifikace výslovně popisuje toto riziko. [Stratum V2 — Job Declaration Protocol]
SetCustomMiningJob odkazuje na mining_job_token od JDS. Po přijetí pool vrátí SetCustomMiningJob.Success s vlastním job_id. Tyto identifikátory mají jiné úlohy; výsledky se odevzdávají pro potvrzenou úlohu s odpovídajícím job_id. [Stratum V2 — Mining Protocol and Custom Jobs]
Optimistická těžba může po získání potřebných údajů začít ještě před SetCustomMiningJob.Success. Nalezené shares se do potvrzení ukládají. Rozběhnuté hashování tedy neznamená, že pool práci již přijal nebo ji už započetl do odměny. [Stratum V2 — Mining Protocol and Custom Jobs]
Při SetCustomMiningJob.Error nebo timeoutu specifikace doporučuje přejít na jiný pool, případně solo těžbu. Odolnost závisí na fungujícím fallbacku. Tiché pokračování na šabloně odmítajícího poolu by neuchovalo původní volbu transakcí. [Stratum V2 — Mining Protocol and Custom Jobs] [SRI — Pool and miner application roles]
JDC musí do určeného výstupu poolu přidělit hodnotu, aby splnil podmínky poolových odměn. Přesměrování části příjmu do jiných výstupů může odměnu poměrně snížit. Job Declaration proto nepřevádí společné účtování na automatickou přímou výplatu těžaři. [Stratum V2 — Job Declaration Protocol]
Pro nejúplnější obraz čtěte toto heslo společně s Stratum V2, getblocktemplate, Mining Pool, Block Template. Opačným směrem na něj odkazují také Stratum V2, Mining Pool Centralization.