Ícone Técnico Técnico

Este é um guia técnico completo do bitcoin.

Cada página contém explicações em texto simples e diagramas de como as diferentes partes do bitcoin funcionam. Elas também incluem exemplos do mundo real e ferramentas para te ajudar a trabalhar com dados brutos do bitcoin.

Então, se você realmente quer saber como o bitcoin funciona por baixo dos panos, este guia é para você.

Como se tornar um programador de bitcoin

Incluí muitos exemplos de código ao longo deste guia técnico para te ajudar a escrever seus próprios scripts.

Isso porque a melhor forma de aprender a se tornar um desenvolvedor de bitcoin é, de fato, escrever código.

Os exemplos de código ficam nestas caixas

Ícone Ruby

A maioria dos exemplos de código está em Ruby porque acho que é a linguagem mais fácil de ler.

Se você não usa Ruby, deve conseguir usar os trechos de código como referência para reescrever o código na linguagem de programação de sua escolha.

Você pode ler sobre como o bitcoin funciona o quanto quiser, mas, até começar a programar, cometer erros (e você vai cometer) e construir algumas ferramentas úteis, você nunca vai progredir. Então não tenha medo de tentar. Todos nós precisamos começar de algum lugar.

E se eu consegui aprender a fazer coisas com bitcoin, você também consegue.

De qualquer forma, não existe uma única "melhor" maneira de começar a trabalhar com bitcoin, mas se você é completamente novo e não faz ideia de por onde começar, é isto que eu recomendaria…

Instale o Linux (opcional)

Isto é completamente opcional, mas eu recomendaria instalar o Linux.

Captura de tela do meu desktop.
Esta é a aparência do meu desktop. Eu estava fazendo esta animação do SHA256 na época.

Eu gosto muito do Linux para trabalho de programação. O Linux te dá controle completo sobre o seu sistema, e parece um ambiente natural para escrever seus próprios programas e ferramentas, porque nada fica escondido de você em nome da sua própria segurança ou conveniência.

Eu migrei para o Linux há mais de uma década, e nunca me arrependi desde então – senti que ganhei liberdade sobre o meu sistema operacional e nunca quis voltar atrás.

Obviamente, se você já é proficiente com o seu ambiente de desenvolvimento atual, fique com ele. Mas se você quer melhorar na programação e tem se sentido limitado de alguma forma até agora, experimente usar o Linux.

Instale o Bitcoin Core

Logo do Bitcoin

Se você vai trabalhar com bitcoin, é uma boa ideia instalar o Bitcoin Core (o programa original do bitcoin).

Há alguns benefícios em rodar seu próprio nó local de bitcoin:

Dependendo do tipo de trabalho que você está fazendo com bitcoin, você pode ou não precisar rodar seu próprio nó completo do Bitcoin Core. Mas se você não tem certeza, é bom tê-lo ali de qualquer forma.

Você pode listar todos os comandos disponíveis rodando bitcoin-cli help.

Use sua linguagem de programação favorita

Ícone Python Ícone Ruby Ícone Golang Ícone PHP

Você pode trabalhar com bitcoin em qualquer linguagem de programação que quiser, então é melhor usar a sua favorita.

Você tem mais chance de sucesso se trabalhar com uma linguagem de programação que te agrada, em vez de se forçar a tentar programar em uma linguagem que você acha que "deveria" estar usando por algum motivo.

E se você ainda não conhece nenhuma linguagem, escolha a que você achar mais legal.

Na pior das hipóteses, se acontecer de a linguagem que você escolheu ser muito lenta ou completamente inadequada por algum motivo, você sempre pode reescrever seu projeto em uma linguagem diferente mais tarde. Mas você não vai saber até tentar. E reescrever será muito mais fácil na segunda vez, porque você já terá uma biblioteca de código da qual partir.

Então não se estresse com qual linguagem de programação usar. Apenas escolha uma e vá em frente. Algumas opções populares incluem:

Se você quer se tornar um desenvolvedor do Bitcoin Core, vai precisar aprender C++.

Eu sou um grande fã de PHP e Ruby. PHP porque é a linguagem com a qual sou mais proficiente (é em que este site e a minha biblioteca pessoal de bitcoin estão codificados), e Ruby porque é agradável de usar e fácil de ler (é em que a maioria dos exemplos deste site está escrita).

Isso não quer dizer que você deva usar essas linguagens em particular. Na verdade, eu provavelmente seria zoado e expulso de alguns círculos de programação por usar PHP e Ruby (e com razão). Mas elas funcionam bem para mim, e eu criei algumas ferramentas realmente úteis com elas, e isso é tudo o que importa.

Então, quem está rindo agora.

Em resumo, não fique preso pensando em qual linguagem é a "melhor" para bitcoin. A melhor linguagem sempre vai ser aquela que você consegue usar para de fato construir coisas.

Vai haver mais ajuda disponível se você ficar com uma linguagem razoavelmente popular. Se você usar uma linguagem que ninguém mais está usando, vai descobrir que ficará por conta própria boa parte do tempo na hora de resolver problemas complicados.

Por onde começar na programação de bitcoin

Se eu tivesse que te fornecer uma rota específica a seguir, diria que estes são os três marcos mais práticos (e satisfatórios) ao aprender a programar com bitcoin:

  1. Gerar suas próprias chaves. Este é o lugar perfeito para começar. Tente gerar sua própria chave privada, chave pública e endereço. Depois importe a chave privada em uma carteira e veja se você obtém o mesmo endereço que gerou.

    Chave Privada

    Gere um número aleatório de 256 bits.

    Bits

    0b
    0 bits
    0d
    0x
    0 bytes

    Nunca use uma chave privada gerada por um site, nem digite sua chave privada em um site. Sites podem facilmente salvar a chave privada e usá-la para roubar seus bitcoins.

  2. Decodificar uma transação. Aprender a decodificar uma transação bruta vai te ensinar muito sobre a estrutura de uma transação de bitcoin, e elas formam 99% dos dados dentro da blockchain.
    Ícone Ferramenta Separador de Transação

    Separador de Transações

    Cole uma transação bruta (hexadecimal) para dividi-la nos seus campos individuais.

  3. Criar sua própria transação. Depois de decodificar uma transação, você está pronto para criar a sua. Este é um marco bem maior (então vá com calma), mas é o próximo passo natural. Assiná-la será a parte mais complicada, mas se você conseguir enviar com sucesso sua própria transação de bitcoin para a rede, então você pode dizer com segurança que é um programador de bitcoin bem competente.
    Ícone Ferramenta Construtor de Transação

    Construtor de Transações

    Monte os dados brutos de uma transação.

    Tipo

    Versão

    0d
    Transação Básica

    Entradas (1)

    Saídas (1)

    Locktime

    0d
    Altura de Bloco

    Dados Brutos da Transação

    0 bytes 0 vbytes

E se você consegue criar suas próprias transações de bitcoin, não há mais nada no bitcoin que esteja fora da sua capacidade.

Escreva ferramentas de linha de comando

Screencast mostrando ferramentas de linha de comando do bitcoin sendo usadas no terminal.

Escrever ferramentas de linha de comando é uma boa forma de começar a programar para bitcoin.

Isso é especialmente verdade se você ainda não tem uma ideia de projeto. Além disso, se você vai passar algum tempo trabalhando com dados de bitcoin, sempre vai ser útil ter um conjunto de utilitários de linha de comando para te ajudar pelo caminho.

Algumas ferramentas básicas de linha de comando que vão se mostrar muito úteis a longo prazo são:

Mas não fique atolado escrevendo ferramentas de linha de comando só por escrever. É uma boa forma de começar, mas o seu foco principal na jornada de se tornar um programador de bitcoin deve ser trabalhar nos seus próprios projetos…

Seu primeiro projeto de bitcoin (importante)

A melhor forma de aprender a se tornar um programador de bitcoin é tentar construir algo.

Se você tem uma ideia de algo que quer construir, simplesmente vá em frente e aprenda o que precisa aprender no caminho. Você não precisa saber sobre todos os aspectos do bitcoin para começar a fazer algo útil.

Pode parecer uma tarefa intimidante no início, especialmente se você é novo em bitcoin e/ou programação, mas, se você for um passo de cada vez, vai chegar lá eventualmente.

Porque, como em qualquer coisa na vida, é impossível fracassar se você se recusar a desistir.

De qualquer forma, estou supondo que você já tem uma ideia do que quer construir. Mas se você precisar de alguma inspiração, aqui estão algumas ferramentas populares que outras pessoas construíram:

Ferramentas Web

Ferramentas Desktop

Ferramentas de Linha de Comando

Este é apenas um punhado de ferramentas legais que eu sei que foram feitas por indivíduos. Eu acho que elas são uma boa inspiração para o que pode ser feito com bitcoin se você tiver uma boa ideia e a determinação de levá-la até o fim.

Então simplesmente vá em frente e crie algo útil que ainda não exista, depois disponibilize-o para outras pessoas usarem e veja o que acontece.

Seja responsável. Você precisa ter muito cuidado se está criando uma ferramenta que lida com chaves privadas ou cria transações para outras pessoas (ex.: uma carteira). Uma coisa é cometer seus próprios erros e perder suas próprias moedas; outra é cometer erros que façam outras pessoas perderem moedas, então não leve isso na brincadeira.

Compartilhe seu trabalho no GitHub. Esta é uma boa forma de compartilhar seu código com o mundo, e também é uma boa forma de exibir sua experiência se você está procurando conseguir um emprego (se essa for a direção que você quer seguir).

Resumo

Não deixe ninguém te fazer pensar que você não pode ser um programador de bitcoin.

O bitcoin é um software descentralizado e de código aberto. Você pode gerar suas próprias chaves e construir suas próprias transações se quiser, e ninguém pode te impedir. Isso faz parte do que faz o bitcoin ser o bitcoin.

Tenho certeza de que algumas pessoas vão querer te convencer de que você precisa de algum tipo de qualificação para trabalhar com bitcoin, mas deixa eu te dizer: você não precisa. Tudo o que você precisa pode ser aprendido de graça na Internet, ou até mesmo apenas olhando o código-fonte do bitcoin. A única qualificação real que você precisa para trabalhar com bitcoin é o desejo de contribuir, e todo o resto pode ser aprendido ao longo do caminho.

Todos nós precisamos começar de algum lugar, e se você tem uma ideia e a paixão para torná-la realidade, então você está tão qualificado para se tornar um programador de bitcoin quanto qualquer outra pessoa.

As melhores carteiras e ferramentas foram construídas por pessoas que, em algum momento, não tinham nenhuma experiência prévia com bitcoin.

Outros Recursos

Ninguém aprende sobre um assunto inteiro a partir de um único livro ou site hoje em dia, então aqui estão alguns outros excelentes recursos técnicos sobre bitcoin que eu achei úteis:

Sites

Livros

Outros

Bibliotecas

Uma forma inteligente de aprender como o bitcoin funciona é aprender a partir de bibliotecas de bitcoin existentes, escritas na linguagem que você mesmo está usando.

Você pode encontrar uma biblioteca de bitcoin em praticamente qualquer linguagem de programação buscando por "biblioteca bitcoin [linguagem]". Por exemplo:

Há uma riqueza de código de código aberto por aí, e às vezes é melhor ver como outra pessoa resolveu um problema para te ajudar a descobrir como fazê-lo você mesmo.

Boa sorte.