Luke Dashjr, conhecido como luke-jr, é desenvolvedor de Bitcoin. Seu trabalho aparece em interfaces de mineração, no Bitcoin Knots e nos BIPs, propostas e padrões documentados publicamente. Essas contribuições mostram como alguém pode influenciar bastante o desenvolvimento sem decidir por toda a rede.
Luke Dashjr usa o nome luke-jr no GitHub, plataforma que guarda código-fonte, propostas de alteração e seu histórico. Seu perfil aponta, entre outros projetos, para Bitcoin Knots e o programa de mineração BFGMiner. Um perfil não é uma biografia completa de todos os colaboradores nem uma lista de trabalhos feitos por uma pessoa só. Mudanças específicas e a autoria das especificações oferecem evidências melhores. Os exemplos a seguir tratam de questões práticas: como fornecer trabalho ao minerador, identificar erros cedo e saber se uma proposta está sendo usada de fato. [1]
Minerar envolve repetir cálculos sobre um bloco preparado até encontrar um resultado que atenda à dificuldade exigida. Antes disso, porém, alguém precisa montar seu conteúdo. O BIP 22 de Dashjr descreve getblocktemplate, uma interface que fornece ao programa a estrutura do bloco proposto, incluindo as transações. Ele não precisa receber apenas um cabeçalho curto para calcular hashes: pode montar o bloco e fazer alterações permitidas. É como receber as instruções de um trabalho completo em vez de uma tarefa isolada. As regras de validade do bloco continuam obrigatórias. [2]
Imagine uma transação que gasta uma saída criada por outra transação do mesmo bloco proposto. Essa transação anterior também precisa estar incluída. O campo depends do BIP 22 registra essas dependências. Se estiver ausente, elas são desconhecidas; o programa não pode presumir que não existem. O mesmo vale para uma taxa não informada ou para sigops, a contagem de operações de verificação de assinaturas usada nos limites do bloco. Informação ausente não equivale a zero. Essa pequena distinção ajuda a evitar um bloco inválido causado pela interpretação errada dos dados recebidos. [2]
O BIP 23 de Dashjr amplia a interface para pools, que reúnem o trabalho de mineradores. Seu modo opcional proposal permite apresentar um bloco preparado ao servidor para verificação, com exceção da prova de trabalho. Assim, um problema de conteúdo pode ser descoberto antes da busca custosa por um resultado de cálculo adequado. Uma resposta positiva apenas indica que a proposta atende às regras daquele servidor. Ainda faltam a prova de trabalho exigida e a avaliação dos outros nós. A verificação prévia não significa que um novo bloco já foi minerado. [3]
Outra área é a implantação de mudanças nas regras. O BIP 8, de Shaolin Fry e Luke Dashjr, determina etapas pela altura do bloco, sua posição na cadeia. A opção lockinontimeout define se o período final exige sinalização dos mineradores, nas condições previstas, para assegurar a ativação futura. LOCKED_IN não é ACTIVE: o primeiro estado garante uma transição posterior nesse mecanismo; a regra nova só é aplicada no segundo. É a diferença entre marcar a entrada em vigor e chegar a esse momento. Escrever a proposta não faz toda a rede mudar automaticamente. [4]
Bitcoin Knots permite operar um nó próprio, um computador que baixa e valida completamente blocos e transações. A documentação descreve a incorporação do desenvolvimento do Bitcoin Core e a possibilidade de adicionar outras mudanças; carteira e interface gráfica também podem ser incluídas. Nesta revisão, o site oficial identifica Dashjr como responsável principal pela manutenção. Cuidar desse software não dá poder para impor novas regras à rede inteira. Ao escolher um programa, vale ler as funcionalidades e configurações de cada versão, em vez de presumir que os programas sempre se comportam da mesma forma. [5] [6]
Ao baixar Bitcoin Knots, você precisa verificar se o arquivo veio do publicador esperado. O site recomenda assinaturas OpenPGP e a conferência das chaves públicas em fontes independentes. A chave pública permite verificar uma assinatura digital, mas primeiro é necessário estabelecer a quem ela pertence. Uma assinatura válida com uma chave devidamente verificada comprova a origem e que os dados assinados não foram alterados. Ela não garante um programa sem falhas. Conferir a procedência, revisar o código e escolher as configurações são tarefas diferentes. [6]
Dashjr também escreveu o BIP 2, sobre preparação e publicação de propostas. Hoje ele é substituído pelo BIP 3, de Murch, que explica expressamente que um BIP publicado não representa, por si só, o consenso da comunidade nem uma recomendação geral de implementação. Uma proposta pode ficar no papel, ser adotada por um programa específico ou levar a mudanças em regras aplicadas coletivamente. Atribuir um número não ativa nada. Ao ler sobre um novo BIP, pergunte também quem o implementou e se ele está realmente em uso. [7] [8]
Para ter uma visão mais completa, leia este verbete junto com Matt Corallo, Peter Todd, Satoshi Nakamoto. Também há referências a este verbete em Matt Corallo, Peter Todd.