Job Negotiation é a coordenação de trabalho próprio entre minerador e pool. A especificação Stratum V2 a descreve no Job Declaration Protocol junto à distribuição de modelos e tarefas de mineração.
Mining Protocol pode operar sem Job Declaration ou Template Distribution. Nesse caso, o pool ainda distribui trabalho unilateralmente. A escolha própria exige cliente, provedor de modelos e pool compatíveis, não apenas outro protocolo de transporte. [Stratum V2 — Mining Protocol and Custom Jobs] [SRI — Pool and miner application roles]
Por CoinbaseOutputConstraints, o Template Provider recebe requisitos de saídas coinbase adicionais e sigops. JDC deve descobri-los para os pools usados. Sem reservas corretas, adicionar saídas de pagamento pode exceder os limites do bloco; selecionar transações está ligado à montagem. [Stratum V2 — Template Distribution Protocol]
Em Full-Template, JDC envia DeclareMiningJob ao JDS. O servidor pode pedir transações ausentes por ProvideMissingTransactions. Confirmar a declaração e o pool aceitar posteriormente o trabalho próprio são duas etapas separadas, não uma mensagem única. [Stratum V2 — Job Declaration Protocol]
Coinbase-only não usa DeclareMiningJob e JDC não revela o conjunto de transações. O pool avalia a receita pela coinbase. A privacidade do conjunto não prova sua validade nem as taxas declaradas; a especificação descreve esse risco expressamente. [Stratum V2 — Job Declaration Protocol]
SetCustomMiningJob referencia um mining_job_token do JDS. Ao aceitar, o pool retorna SetCustomMiningJob.Success com seu próprio job_id. Os identificadores têm funções distintas; resultados são enviados para a tarefa confirmada com o job_id correspondente. [Stratum V2 — Mining Protocol and Custom Jobs]
Com os dados necessários, a mineração otimista pode começar antes de SetCustomMiningJob.Success. Shares encontradas ficam armazenadas até a confirmação. Calcular hashes não significa que o pool já aceitou o trabalho ou creditou sua recompensa. [Stratum V2 — Mining Protocol and Custom Jobs]
Após SetCustomMiningJob.Error ou timeout, a especificação recomenda mudar de pool ou minerar solo. A resistência depende de fallback funcional. Continuar silenciosamente no modelo do pool que rejeitou não preservaria a seleção original de transações. [Stratum V2 — Mining Protocol and Custom Jobs] [SRI — Pool and miner application roles]
JDC deve atribuir valor à saída designada do pool para receber recompensas coletivas. Desviar parte da receita a outras saídas pode reduzir proporcionalmente a recompensa. Job Declaration não transforma a contabilidade conjunta em pagamento direto automático ao minerador. [Stratum V2 — Job Declaration Protocol]
Para ter uma visão mais completa, leia este verbete junto com Stratum V2, getblocktemplate, Mining Pool, Block Template. Também há referências a este verbete em Stratum V2, Mining Pool Centralization.