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 neste 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
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 reescrevê-los na linguagem 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 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.
Instale o Bitcoin Core
Se você vai trabalhar com bitcoin, é uma boa ideia instalar o Bitcoin Core (o programa original do bitcoin). Rodar seu próprio nó local te dá acesso aos dados brutos do bitcoin, ferramentas úteis de linha de comando para depurar e decodificar, e a capacidade de enviar transações brutas para a rede:
bitcoin-cli getrawtransaction <txid>
bitcoin-cli decoderawtransaction <dados brutos da transação>
bitcoin-cli sendrawtransaction <dados brutos da transação>
Você pode listar todos os comandos disponíveis rodando bitcoin-cli help.
Use sua linguagem de programação favorita
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 que te agrada, em vez de se forçar a 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.
- Python – Bom para iniciantes.
- Ruby – Minha linguagem favorita. Também boa para iniciantes.
- JavaScript – Bom para coisas baseadas na web.
- Go – Bom para programas rápidos do lado do servidor.
- C++ – É a linguagem em que o código do Bitcoin Core é escrito.
Se você quer se tornar um desenvolvedor do Bitcoin Core, vai precisar aprender C++.
Por onde começar na programação de bitcoin
Se eu tivesse que te dar uma rota específica, diria que estes são os três marcos mais práticos (e satisfatórios) ao aprender a programar com bitcoin:
- 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.
- 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.
Separador de Transação
- Criar sua própria transação. Depois de decodificar uma transação, você está pronto para criar a sua. Este é um marco bem maior (vá com calma), mas é o próximo passo natural. Assiná-la será a parte mais complicada.
Construtor de Transação
Escreva ferramentas de linha de comando
Escrever ferramentas de linha de comando é uma boa forma de começar a programar para bitcoin. Algumas ferramentas básicas que serão muito úteis a longo prazo são:
- Funções de Hash – É útil ter uma forma rápida de obter o HASH256 ou HASH160 de alguns dados, porque eles são usados em todo lugar no Bitcoin.
- Inverter a Ordem dos Bytes – Você frequentemente precisa inverter a ordem dos bytes de TXIDs e hashes de bloco.
- Conversor de Números – Não dá para contar quantas vezes converti algo de hexadecimal para decimal (e vice-versa).
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á.
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.
Resumo
Não deixe ninguém te fazer pensar que você não pode ser um programador de bitcoin.