Pular para o conteúdo principal

Protocolo Stratum

O Stratum v1 é o protocolo de fato que as pools de mineração de Bitcoin usam para se comunicar com os mineradores. O NMMiner é um cliente Stratum v1.

Esta página documenta apenas as mensagens Stratum públicas e bem conhecidas que toda pool entende. Extensões específicas de pool e detalhes internos de implementação estão fora do escopo.

Conexão​

  • Transporte: TCP, ou TCP encapsulado em TLS para pools SSL.
  • Esquema de endereço:
    • stratum+tcp://host:port — TCP simples.
    • stratum+ssl://host:port — TLS.
  • Identidade do worker: o endereço da carteira opcionalmente seguido de .nomeDoWorker, ex.: bc1q....nomeDoWorker.

O minerador mantém o socket aberto durante toda a sessão. Se a pool o encerrar, o NMMiner se reconecta automaticamente.

Fluxo de mensagens​

O que cada mensagem significa para você​

MensagemSignificado simples
mining.subscribe"Olá, quero trabalho."
mining.authorize"Eu sou esta carteira."
mining.set_difficultyA pool define o quão fácil / difícil uma share deve ser. A diff do NMMiner é minúscula.
mining.notify"Aqui está um novo modelo de bloco para trabalhar." Trabalhos antigos ficam obsoletos.
mining.submit"Aqui está um hash que atende a diff."

É tudo o que há no protocolo do lado do minerador.

O que o NMMiner mostra na tela / no NM Monitor​

CampoVem de
PoolA URL configurada (host e porta).
DiffÚltimo mining.set_difficulty.
AcceptedContagem de respostas true para mining.submit.
RejectedContagem de respostas false para mining.submit.
Session BestA share de maior dificuldade produzida nesta inicialização.
Ever BestA share de maior dificuldade produzida em todas as inicializações.
HashrateMédia móvel interna de hashes por segundo.

Veja também: Lista de Pools para endpoints compatíveis conhecidos.

O minerador mantém o socket aberto durante toda a sessão. Se a pool derrubar a conexão, o NMMiner se reconecta automaticamente.

Fluxo de mensagens​