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]
Template Provider는 CoinbaseOutputConstraints로 추가 coinbase 출력과 sigops 요구를 받습니다. JDC는 이용할 풀들의 요구를 파악해야 합니다. 올바른 여유 공간이 없으면 지급 출력 추가가 블록 한도를 넘을 수 있으므로 거래 선택은 구성과 연결됩니다. [Stratum V2 — Template Distribution Protocol]
Full-Template에서 JDC는 JDS에 DeclareMiningJob을 보냅니다. 서버는 ProvideMissingTransactions로 누락 거래를 요청할 수 있습니다. 선언 확인과 이후 풀의 자체 작업 수락은 하나의 메시지가 아닌 두 단계입니다. [Stratum V2 — Job Declaration Protocol]
Coinbase-only는 DeclareMiningJob을 사용하지 않고 JDC가 거래 집합을 공개하지 않습니다. 풀은 coinbase로 수입을 평가합니다. 집합의 프라이버시만으로 유효성이나 신고한 수수료를 증명할 수 없으며 명세는 이 위험을 명시합니다. [Stratum V2 — Job Declaration Protocol]
SetCustomMiningJob은 JDS의 mining_job_token을 참조합니다. 수락 시 풀은 자체 job_id가 담긴 SetCustomMiningJob.Success를 반환합니다. 두 식별자는 역할이 다르며, 결과는 확인된 작업에 해당 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.