Job Negotiation oznacza uzgadnianie własnej pracy między górnikiem a poolem. Specyfikacja Stratum V2 opisuje je przez Job Declaration Protocol wraz z dystrybucją szablonów i zadań wydobywczych.
Mining Protocol może działać bez Job Declaration i Template Distribution. Pool nadal wtedy jednostronnie rozsyła pracę. Własny wybór wymaga odpowiedniego klienta, dostawcy szablonów i wspierającego poola, nie tylko innego transportu. [Stratum V2 — Mining Protocol and Custom Jobs] [SRI — Pool and miner application roles]
Przez CoinbaseOutputConstraints, Template Provider otrzymuje wymagania dodatkowych wyjść coinbase i sigops. JDC musi ustalić je dla używanych pooli. Bez odpowiedniej rezerwy wyjścia wypłat mogłyby przekroczyć limity bloku; wybór transakcji wiąże się więc z jego składaniem. [Stratum V2 — Template Distribution Protocol]
W Full-Template JDC wysyła DeclareMiningJob do JDS. Serwer może poprosić o brakujące transakcje przez ProvideMissingTransactions. Potwierdzenie deklaracji i późniejsze przyjęcie własnej pracy przez pool to dwa osobne kroki, nie jeden komunikat. [Stratum V2 — Job Declaration Protocol]
Coinbase-only nie używa DeclareMiningJob, a JDC nie ujawnia zbioru transakcji. Pool ocenia przychód z coinbase. Prywatność zbioru nie dowodzi poprawności ani deklarowanych opłat; specyfikacja wprost opisuje to ryzyko. [Stratum V2 — Job Declaration Protocol]
SetCustomMiningJob wskazuje mining_job_token od JDS. Po przyjęciu pool zwraca SetCustomMiningJob.Success z własnym job_id. Identyfikatory pełnią różne role; wyniki zgłasza się dla potwierdzonego zadania z odpowiednim job_id. [Stratum V2 — Mining Protocol and Custom Jobs]
Przy dostępnych danych optymistyczne wydobycie może zacząć się przed SetCustomMiningJob.Success. Znalezione shares przechowuje się do potwierdzenia. Samo hashowanie nie oznacza, że pool już przyjął pracę albo naliczył nagrodę. [Stratum V2 — Mining Protocol and Custom Jobs]
Po SetCustomMiningJob.Error lub przekroczeniu czasu specyfikacja zaleca inny pool albo wydobycie solo. Odporność zależy od działającego fallbacku. Ciche kontynuowanie na szablonie odmawiającego poola nie zachowałoby pierwotnego wyboru transakcji. [Stratum V2 — Mining Protocol and Custom Jobs] [SRI — Pool and miner application roles]
JDC musi przypisać wartość wyznaczonemu wyjściu poola, by uzyskać wspólne nagrody. Przekierowanie części przychodu na inne wyjścia może proporcjonalnie zmniejszyć nagrodę. Job Declaration nie zmienia wspólnego rozliczania w automatyczną wypłatę bezpośrednią dla górnika. [Stratum V2 — Job Declaration Protocol]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Stratum V2, getblocktemplate, Mining Pool, Block Template. Do tego hasła prowadzą również odsyłacze z Stratum V2, Mining Pool Centralization.