Compartilhe este artigo

Como a camada P2P do Bitcoin obteve um aumento de velocidade na versão mais recente do CORE

O desenvolvedor financiado pelo MIT, Cory Fields, discute seu trabalho de revisão do código da camada ponto a ponto do Bitcoin Core – uma tarefa que não foi nada fácil.

Campos de Cory
Campos de Cory

“Satoshi nos deixou com uma massa monolítica de uma base de código.”

A História Continua abaixo
Não perca outra história.Inscreva-se na Newsletter Crypto Daybook Americas hoje. Ver Todas as Newsletters

Essa foi a maneira do desenvolvedor do Bitcoin , Cory Fields, dizer que, apesar da inovação que muitas vezes lhe é atribuída, o código do Bitcoin Core é uma bagunça nos bastidores.

É um problema com o qual Fields e outros têm lutado desde pelo menos 2015, quando eleapresentou seus planos para mover uma parte do código: a camada ponto a ponto.

O problema que os desenvolvedores frequentemente encontram é que os componentes não são todos nitidamente separados. Então, se os desenvolvedores mudarem algo que deveria impactar apenas uma parte do Bitcoin e como ele funciona, Fields disse, isso poderia impactar involuntariamente outra, digamos, validação, mempool, a carteira ou p2p. Por um ONE , isso torna mais difícil para novos Colaboradores de Bitcoin Aprenda as manhas.

Assim, em projetos como o de Fields econsenso lib (um projeto em andamento para permitir que implementações alternativas permaneçam em consenso com a rede Bitcoin ), o objetivo é separar o código em partes mais distintas, em uma tentativa de tornar mais fácil, e menos necessário, para os desenvolvedores entenderem como as peças se encaixam.

Fields, cujo trabalho é financiado pela Iniciativa de Moeda Digital do MIT, tem trabalhado para quebrar a base de código ponto a ponto em particular.

Grande parte do seu trabalho está fazendo sua primeira aparição no Bitcoin Core Último lançamento de software.

Fields disse ao CoinDesk:

"Até onde eu sei, esta é a primeira revisão em larga escala do código ponto a ponto."

Ele mencionou, no entanto, que ao longo do tempo muitos desenvolvedores, como Jonas Schnelli e Matt Corallo, contribuíram para a camada e, mais importante, muitos outros ajudaram a revisar e testar as mudanças.

A camada ponto a ponto lida com as conexões entre os milhares de nós de Bitcoin na rede (talvez mais de 50.000, embora seja difícil obter contagens exatas), que estão constantemente "conversando" entre si, passando informações conforme os usuários enviam bitcoins ou os mineradores criam novos blocos.

Confira de bugs

Uma parte complicada é que a rede Bitcoin é avaliada em aproximadamente US$ 19 bilhões, o que significa que mudanças no código subjacente precisam ser feitas com muito cuidado.

Por essa e outras razões, a refatoração T tem sido um processo fácil. Nem mesmo para Fields, que é um dos mais ativo Colaboradores do Bitcoin CORE. ("Passo quase todas as minhas horas acordado no Bitcoin", disse ele.)

Primeiro, ele tentou uma camada separada do zero. Esse esforço "falhou miseravelmente".

Sua abordagem posterior de trabalhar para melhorar a base de código existente sem dúvida funcionou melhor do que o esperado, levando a uma Confira de bug da “era Satoshi”.

“Quando comecei a dividir as coisas, notei algo estranho sobre o uso de largura de banda do Core durante o download do bloco inicial”, disse Fields.

O problema era que, quando um nó baixava blocos de outro nó, a velocidade com que os blocos eram repassados às vezes era rápida, outras vezes lenta – e em níveis inesperados.

Indo mais a fundo, ele e outros desenvolvedores determinaram que os nós se recusariam teimosamente a enviar dados e processar dados ao mesmo tempo (embora isso seja uma simplificação exagerada). O nó faria apenas um processo de cada vez.

Correção de velocidade

A correção que a equipe finalmente conseguiu fazer estreou no recente lançamento do código do Bitcoin CORE , mudando a rapidez com que os nós podem passar informações uns aos outros.

“Em particular, a camada p2p obtém uma grande aceleração”, disse Fields.

Ele executou alguns testes para comparar a última versão do Bitcoin (0.13.2) com a nova versão com as melhorias (0.14.0), observando nós que foram implantados na nuvem em instâncias do Amazon EC2 com duas CPUs e 4 GB de RAM.

Os testes mostraram uma duplicação na velocidade – pelo menos, ao comparar o desempenho do envio de dados entre dois nós v0.13.2, versus entre dois nós v0.14.0.

nó, comparações
nó, comparações

A ressalva aqui é que isso pode resultar em uma melhoria de desempenho um BIT menor que o dobro na rede real, de acordo com Fields.

Benefícios duradouros

Agora, a camada ponto a ponto está praticamente separada do resto.

Vale a pena repetir que, deixando de lado as melhorias de desempenho acima, a maioria das mudanças T são aquelas que os usuários notarão, mas são mais uma vantagem para os desenvolvedores.

Dito isto, a esperança é que eles possam ter um impacto de longo prazo.

"Espero que isso nos permita melhorar o p2p em um ritmo mais rápido agora", disse Fields.

Por exemplo, teria sido mais difícil fazer as alterações incluídas na versão mais recente do CORE se Fields não tivesse trabalhado para isolar o código.

Ele disse:

“[ Houve uma mudança relativamente simples que poderia ser feita a tempo para 0,14, que teria sido muito mais complicada antes.”

Discagem rápida imagem via Shutterstock. Cory Fields imagem via CoinDesk

Alyssa Hertig

Repórter colaboradora de tecnologia na CoinDesk, Alyssa Hertig é uma programadora e jornalista especializada em Bitcoin e Lightning Network. Ao longo dos anos, seu trabalho também apareceu na VICE, Mic e Reason. Atualmente, ela está escrevendo um livro explorando os meandros da governança do Bitcoin . Alyssa possui alguns BTC.

Alyssa Hertig