Compartir este artículo

Cómo es revisar el código de Bitcoin

CoinDesk profundiza en el complejo proceso de revisión del código del software Bitcoin CORE .

El 19 de junio, el desarrollador de Chaincode, John Newbery, reunió a un grupo de desarrolladores para examinar un cambio propuesto al código de Bitcoin.

El tema, que se llevó a cabo a través de Internet Relay Chat (IRC), fue si el cambio, que ayudaría a evitar que un grupo de mineros deshonestos...Acelerando la velocidad a la que se producen los bloques de Bitcoin, es una <a href="https://bitcoin-core-review-club.github.io/15481.html one with">ONE positiva con</a> riesgos de seguridad limitados o impactos adversos.

CONTINÚA MÁS ABAJO
No te pierdas otra historia.Suscríbete al boletín de Crypto Daybook Americas hoy. Ver Todos Los Boletines

El objetivo de Newbery, entonces, es transmitir lo que sabe sobre la revisión de dicho código.

imagen1

¿Fue este tapón de 'ataque de distorsión temporal' un cambio sólido?

"La distorsión temporal aprovecha esto al empujar el bloque de ajuste de dificultad hacia el futuro, y luego el siguiente bloque de regreso al presente", escribió Newbery, explicando el vector de ataque.

Pero el hecho de que Newbery esté organizando estas sesiones puede considerarse una señal de la madurez de la comunidad de desarrolladores de Bitcoin, ya que es un ejemplo de cómo los mejores programadores del proyecto han trabajado arduamente para hacerlo más inclusivo. El proceso de revisión de código quizás no se haya discutido antes de forma tan abierta y profunda.

Newbery creó el Club de Revisión de Bitcoin CORE <a href="https://bitcoin-core-review-club.github.io/">(https://bitcoin-core-review-club.github.io/</a> ) para brindar a los programadores consejos sobre cómo revisar un cambio y determinar si beneficia a la Criptomonedas. Las transcripciones de las reuniones se publican en el sitio web semanalmente.

Que esto sea posible se debe a que el código de Bitcoin es de código abierto y resideen GitHubPara que cualquiera con conexión a internet pueda verlo, o incluso modificarlo. Este proceso ha impulsado el proyecto desde el código que una vez llamaron "mancha monolítica" a un software más fácil de leer para los desarrolladores y con menos errores críticos. Se busca constantemente mejorarlo, con el ambicioso objetivo de convertirlo en una base de código valiosa para el futuro del dinero.

Así que también es posible ONE al código de Bitcoin. A diferencia del código propietario, este código es visible y utilizable por cualquiera: lo que se conoce como "código abierto".

Una de las razones por las que se le llama "dinero programable" es que, a diferencia de otras monedas digitales, cualquier persona con los conocimientos adecuados puede intentar añadir nuevas funciones al código. Una forma de Aprende el código base es revisar y probar el código que envían los programadores para asegurarse de que realmente funciona y no introduce un error ni, lamentablemente, divide accidentalmente la red Bitcoin .

Pero al revisar las páginas de código y cientos de cambios propuestos, es difícil saber por dónde empezar.

"Este club semanal de IRC es para quienes desean ayudar a revisar las solicitudes de extracción de Bitcoin CORE , pero el proceso les resulta intimidante", explica el sitio web del club, y continúa:

Revisar y probar las solicitudes de extracción es la mejor manera de empezar a contribuir a Bitcoin CORE, pero es difícil saber por dónde empezar. Hay cientos de solicitudes de extracción abiertas, muchas requieren un amplio conocimiento del contexto, y los Colaboradores y revisores suelen usar terminología desconocida.

Por lo tanto, aunque el código de esta moneda digital está disponible para que cualquiera lo consulte o modifique, no es necesariamente fácil hacerlo. Se necesita práctica para saber qué revisar.

Así es el proceso.

Cualquiera puede hacerlo

Para empezar, los usuarios pueden visitar GitHub, un sitio web que alberga todo tipo de proyectos de código abierto. Hay ONE específico para Bitcoin CORE, la implementación del software subyacente de Bitcoin que la mayoría de los usuarios utilizan.

Notarás que GitHub ofrece mucho, pero revisar el código consiste básicamente en mirar "solicitudes de extracción”, una serie de cambios que los desarrolladores de todo el ecosistema han enviado para revisión.

img2-2

En otras palabras, hay 300 cambios que aún no han sido revisados ​​lo suficiente como para ser agregados oficialmente al código base, desde hacer que la documentación que describe el código sea más fácil de leer hasta mejorar el rendimiento de Bitcoin.

En este punto, los desarrolladores intentan decidir si estos cambios deben aprobarse. El problema es que hay pocos desarrolladores con suficiente experiencia en la revisión de cambios de código para determinar si deben añadirse oficialmente al código base. Por ello, un colaborador de Bitcoin CORE describió la lista de solicitudes de extracción como una "cementerio de ideas geniales. "

Es por eso que Newbery está tratando de ayudar en este proceso.

Entonces, ¿cómo ONE revisa un cambio? Como Newbery describe en el sitio web del club, hay algunos pasos clave para empezar, como revisar el "Contribuyendo a la guía de Bitcoin CORE" y jugar con C++, el lenguaje de programación en el que está escrito Bitcoin CORE .

El siguiente paso es simplemente elegir un cambio para revisar. Con más de 300 solicitudes de incorporación de cambios activas, ¿por dónde ONE ? Las mejores opciones para alguien que aún no conoce el código base son los cambios de código etiquetados específicamente como "buenos primeros problemas".

Una vez finalizados los preliminares, el desarrollador debe “clonar” el repositorio o usar git para hacer una copia del código base en su computadora para poder probar que el cambio funciona según lo planeado.

Sólo se necesita un comando simple para copiar todo el código base a su computadora.

img3

Desde allí, puedes revisar la Request de extracción. Dichos desarrolladores deben ejecutar todas las pruebas para asegurarse de que el cambio de código no interfiera accidentalmente con otro fragmento de código y luego revisar el resto.

Dentro de la mente de un crítico

¿Qué deben tener en cuenta los revisores?

En primer lugar, existen preocupaciones de alto nivel. Determinar si se debe implementar un cambio, especialmente ONE crítico, se basa básicamente en un "consenso aproximado", lo que significa que la mayoría de los Colaboradores activos estarían de acuerdo en que se debe implementar un cambio.

En otra reunión del club, Newbery dijo: https://bitcoin-core-review-club.github.io/16060.html:

Mi opinión sobre abrir solicitudes de extracción: nadie te debe una revisión. Cualquiera que revise tu código te hace un favor. Si abres una Request de extracción, compites con otras solicitudes por tiempo de revisión.

"Si tiene dudas sobre cuán útil creen otras personas que será su Request de extracción, no dude en preguntar en #bitcoin-core-dev o preguntando directamente a otros Colaboradores", agregó Newbery, refiriéndose a otro grupo de IRC donde los desarrolladores pueden hacer preguntas relacionadas con el desarrollo de Bitcoin CORE .

Dicho esto, los desarrolladores no siempre se ponen de acuerdo sobre si vale la pena o no implementar un cambio. Una semana, el grupo de desarrolladores se centró en un cambio de código polémico. Algunos argumentaron que las desventajas superaban a las ventajas, mientras que otros aún argumentaban que podría ser útil.

Pero incluso si la idea es ONE en general, también existen preocupaciones de menor nivel. ¿Hay errores? ¿El cambio de código incluye pruebas que garanticen que funciona según lo previsto? Estas son las preguntas a las que se dedica mucho tiempo de revisión.

En la reunión del 29 de mayo (cuya transcripción completa puede encontrarse aquí <a href="https://bitcoin-core-review-club.github.io/15741.html">https://bitcoin-core-review-club.github.io/15741.html</a> ), por ejemplo, los desarrolladores analizaron una mejora del rendimiento para la parte de billetera del nodo Bitcoin .

Un colaborador con el seudónimo 'Ariard' dirigió la reunión, explicando el proceso de revisión que han desarrollado a lo largo del tiempo. "Primero intenté identificar qué tipo de solicitud de cambio (PR) era: documentación, estilo de código, corrección de errores, nueva funcionalidad o adición de pruebas. Porque, en mi Opinión, conocer este hecho determinará cómo se leen las confirmaciones la primera vez, cuánto tiempo se necesitará para la revisión y qué tipo de pruebas se requieren", dijo el desarrollador.

Otro revisor señaló que notó una mejora con solo comprobar cuánto tardaba el código en ejecutarse, antes y después. "Mi importación de 10 000 claves pasó de 8 minutos a 3 segundos xD", comentó otro usuario llamado 'jb55'.

Las transcripciones de las reuniones están repletas de consejos para agilizar este proceso y facilitar su revisión. Se programarán más reuniones próximamente. Las siguientes secciones estarán a cargo del escritor técnico y colaborador especializado en Bitcoin , David Harding.

Imagen de Adam Back vía archivos de Consensus

Alyssa Hertig

Alyssa Hertig, periodista y periodista especializada en Bitcoin y la red Lightning, colabora en CoinDesk . Su trabajo también ha aparecido en VICE, Mic y Reason. Actualmente escribe un libro que explora los entresijos de la gobernanza de Bitcoin . Alyssa posee algunos BTC.

Alyssa Hertig