Desenvolver uma aplicação Bitcoin é muito simples, mesmo que você tenha que inserir o código manualmente, desde que tenha noções mínimas de programação. Se há algo complicado nisso, é entender quais peças entram em cena e como. O resto não muda excessivamente em comparação com outros tipos de aplicativos, onde em questão de horas você pode ter algo totalmente funcional.
Este artigo não aborda como fazer um APP passo a passo, mas apresenta um diagrama mental das peças que compõem um APP básico e como elas interagem.
Claro, é aconselhável entender o básico do Bitcoin.
Comecemos. Devemos pensar de forma modular. Por um lado, está o nosso aplicativo e, por outro, o Bitcoin.
Para interagir com o Bitcoin, isso pode ser feito de duas maneiras: instalando seu próprio nó Bitcoin ou usar outro nó. Em ambos os casos, ele é interagido por meio de uma API. Às vezes, APIs mais simples serão usadas, como RESTful, e outras vezes um pouco mais complicadas em termos de JSON-RPC. No entanto, e felizmente, os programadores já têm bibliotecas reutilizáveis open source para simplificar os dois casos, se desejar.
Nesse caso, vamos imaginar que utilizamos a versão um pouco mais complexa, aquela baseada no uso do seu próprio nó de Bitcoin, o que dá mais autonomia e permite um melhor entendimento de como o Bitcoin funciona.
Nó Bitcoin
Um nó Bitcoin é composto por 3 peças notáveis:
- O "demônio": está conectado a outros nós, que permite que você crie aquele Rede P2P onde todos os eventos que ocorrem na rede são trocados por sockets.
- Blockchain: o banco de dados que registra eventos localmente em cada nó. Seu aplicativo não usará realmente esse banco de dados, mas o seu próprio, se necessário.
- API: os eventos são convertidos em uma resposta JSON e transmitidos através de uma porta, podendo ou não ser protegidos de ouvintes externos.
O nó pode ser instalado em um computador Unix ou Windows e pode ser chamado ou ouvido sempre que desejar através da porta que possui para ele, com ou sem autenticação (a gosto), sendo um canal de comunicação bidirecional: você pode receber em tempo real o que isso acontece no nó e você pode enviar informações a ele para fazer coisas ou informá-lo de coisas. Como configurar seu nó Bitcoin em menos de 10 minutos.
Aplicação
Claro, você pode desenvolver o aplicativo na linguagem que desejar e não deve necessariamente saber muito sobre o funcionamento do nó Bitcoin.
Um aplicativo simples é composto de um back-end, um banco de dados e um front-end. Até agora, nada de novo. Você pode colocar uma API ou não ... o de costume. O back-end sempre que desejar interagir com a rede Bitcoin pode chamar o RPC-API o nó ou ouvi-lo para tomar decisões.
Juntamos as peças: Aplicativo + Nó Bitcoin
Vamos imaginar que queremos fazer um explorador de blockchain. Teremos apenas que colocar nosso backend para escutar todos os eventos que ocorrem em nosso nodo (que nos informa do que acontece na rede) e salvar as informações que o nodo nos passa em nosso banco de dados para consultas posteriores de frente onde mostramos Eu pedi por isso.
Deve-se notar que ter um APP semelhante ao blockchain.info, um explorador de blockchain, com sua própria API RESTful em modo privado ou público para interagir com seu aplicativo é questão de alguns minutos com o desenvolvimento open source chamado BitPay Insight.
Outros detalhes
O envio de um pagamento para a rede também é muito simples, pois uma vez preparada a transação no backend, o que se faz é enviar para o nó através do API JSON-RPC de modo que ele o retransmita para o resto dos nós, e aqueles para outros e assim por diante, até que se propague por toda a rede. É por isso que é importante ter o nó bem correspondido e pares de qualidade, porque isso garante que uma transação seja retransmitida pela rede muito rapidamente e fará com que as transações sejam confirmadas mais cedo.
Endereços e transações são preparados modo offline. Ou seja, o nó não é necessário para isso, apenas para obter as informações. Em seguida, a transação é preparada e enviada para a rede já criptografada.
Logicamente, para quase todas as linguagens já existem bibliotecas que simplificam tudo onde, uma vez importados, seus métodos permitem fazer o mesmo, mas com menos código.
No backend, duas bibliotecas são normalmente usadas (embora ambas possam estar em uma, dependendo da biblioteca). O primeiro se comunica com o nó Bitcoin e o segundo se encarrega de gerar endereços ou preparar transações.
Este é um exemplo simples e uma visão panorâmica de uma organização simples típica, mas seu uso e criatividade entram em jogo aqui, é o que permite a criação de novos casos de uso.
Em quase todas as criptomoedas, seu nó e como eles interagem com eles na escala do esquema são muito semelhantes. Configurar uma troca de criptomoedas (como Coinbase ou OKCoin) não está longe dos princípios que foram expostos aqui, sim, replicar tudo: back-ends balanceados, vários nós de cada criptomoeda no caso de um cair ou ficar fora de fase ...
Uma dica: se esta é sua primeira vez desenvolvendo em Bitcoin, é melhor alugar um servidor (por exemplo, um dos OVH por 5 € / mês), é um pequeno investimento e eles te dão uma máquina dedicada pronta para "quebrar" quantas vezes você precisar. Além disso, baixar o blockchain será muito mais rápido e confortável. Então você pode desenvolver seu APP localmente e usar o API do nó Bitcoin da máquina alugada.
Com isso, você tem o que é preciso para fazer um esboço mental de onde começar a criar seu aplicativo. Dependendo do idioma que deseja usar, você só terá que procurar as bibliotecas necessárias. Por exemplo, para NodeJS você pode usar Bitcore, que tem tudo o que você precisa na mesma biblioteca. Também Bitcoin JS, embora isso se concentre apenas na parte do trabalho modo offline de Bitcoin (criar endereços, preparar transações ...).