Intercambio de bitcoins Intercambio de bitcoins
Ctrl+D Intercambio de bitcoins
ads

Michael Ford, desarrollador de Bitcoin Core: Las últimas mejoras en el sistema de compilación de BTC Core

Author:

Time:

Resumen: Esta publicación fue escrita por Michael Ford, colaborador de Bitcoin Core y escritor invitado de BitMEX Research. Michael es beneficiario del Fondo de Desarrollo de Bitcoin de HDR Global Trading Limited, que le proporciona $60,000 por año. En este informe, Michael explica las mejoras recientes al sistema de compilación Bitcoin Core y cómo se ha involucrado en la eliminación de las dependencias de software de terceros, como OpenSSL. Según las pruebas de Michael, la cantidad de paquetes integrados en Bitcoin Core 0.19.99 ha disminuido un 44 % en comparación con Bitcoin Core 0.13.2, y el tiempo de creación ha disminuido un 42 % desde su punto máximo, hasta los 135 segundos. Esto mejora la seguridad del software al reducir la superficie de ataque y mejorar el rendimiento del software.

(Fuente: Análisis de Michael Ford)

(Nota: solo se requiere el paquete, la descarga no está incluida. -C depende de -j8 NO_QT=1 NO_UPNP=1 etc., en Mac OS)

El sistema de compilación es una parte menos glamorosa pero importante del código base de Bitcoin Core. Controla cómo se configura y compila el código, y cómo interactúa con las dependencias, que es lo que nos ayuda a crear binarios totalmente reproducibles que ejecutan muchos usuarios de bitcoin.

En esta publicación, analizaré rápidamente algunos de los cambios en el sistema de compilación en los que he estado involucrado recientemente, la mayoría de los cuales formaron parte del lanzamiento 0.20.0 de la billetera Bitcoin Core.

Sudáfrica intensificará la regulación de las criptomonedas para hacer frente a las estafas: Sudáfrica está acelerando el ritmo de regulación de los criptoactivos después de haber sido golpeada por dos estafas este año. Kuben Naidoo, director ejecutivo de Prudential Authority, que supervisa los bancos y las aseguradoras del país, dijo que las regulaciones deberían estar vigentes dentro de tres a seis meses. “Creemos que las criptomonedas son riesgosas y queremos asegurarnos de que el sector financiero esté al tanto de esos riesgos y los fije correctamente”, dijo.

En junio, la Autoridad de Conducta del Sector Financiero (FSCA), que supervisa la conducta del mercado, dijo que comenzaría a tratar con los criptoactivos "de manera estructurada y por etapas". (Coindesk) [2021/7/1 0:20:38]

Ha pasado mucho tiempo desde que se eliminó el soporte de  BIP70  de la billetera Bitcoin Core. Hay muchos artículos que resumen sus problemas, por lo que no entraré en detalles aquí, aparte de incluir agujeros de seguridad, problemas de privacidad e incompatibilidades entre implementaciones. BIP70 es también la última parte del código base que requiere OpenSSL, lo que impide su eliminación. Puede encontrar un buen resumen de lo anterior en los comentarios de GitHub.

La eliminación de la funcionalidad externa de cualquier proyecto generalmente requiere varias etapas, y la eliminación de la funcionalidad de Bitcoin Core no es diferente. En octubre de 2018, una solicitud de extracción   #14451   se basa en el código   #11622   propuesto el año anterior para permitir que BIP70 se deshabilite al crear una billetera Bitcoin Core. Sin embargo, permanece en la versión binaria como parte de 0.18.0.

Poco después, en  #15584 , la compatibilidad con BIP70 se deshabilitó de forma predeterminada, lo que significa que cualquiera que construyera una billetera Bitcoin Core tenía que compilar con `-enable-bip70`. Deshabilitar BIP70 de forma predeterminada es parte de la versión reciente 0.19.0, junto con advertencias de GUI y sugerencias para cambiar a  BIP21 URL cuando sea posible.

Se hizo una propuesta para eliminar BIP70 de la billetera Bitcoin Core en  #17165  El PR eliminó las dependencias de nuestra función, el uso de OpenSSL relacionado con X509, la necesidad de vincular OpenSSL a la GUI, unas 2000 líneas de código en total. En una solicitud de seguimiento  #17730 , también fue posible eliminar casi todas las funciones de red internas de Qt de la billetera Bitcoin Core; sin embargo, los problemas con la versión de Windows impidieron que se eliminaran por completo. Eliminar BIP70 es uno de los últimos pasos antes de eliminar OpenSSL.

Random.cpp mantiene un RNG interno (generador de números aleatorios) que obtiene entropía de muchas fuentes diferentes, incluido el hardware, el sistema operativo e históricamente OpenSSLs RNG. Antes de eliminar OpenSSL, se decidió aumentar el generador de números aleatorios de la billetera Bitcoin Core, para asegurarse de que extraería entropía adicional del entorno (tiempo, datos de rendimiento, configuración del sistema, etc.), que también incluía algunas fuentes utilizadas anteriormente. por OpenSSL. Esto se hizo en  #17270 . Otras dos solicitudes de extracción eliminaron algunas de las semillas del generador de números aleatorios de OpenSSL al eliminar las llamadas a RAND_screen()   #17191   y RAND_event() #17151  

En este punto, todo el uso restante de OpenSSL se puede eliminar del proyecto, lo que se hizo en  #17265  y  #17515 ; estos cambios serán parte de la versión 0.20.0 de la billetera Bitcoin Core. OpenSSL ha sido durante mucho tiempo una fuente de errores, lanzamientos de emergencia y problemas de rendimiento. Su uso crítico de consenso (verificación de firma) hace tiempo que fue reemplazado por la biblioteca  secp256k1 , desarrollada por los desarrolladores de la billetera Bitcoin Core para abordar las deficiencias de OpenSSL como parte de la versión 0.12.0 de la billetera Bitcoin Core.

Otro trabajo relacionado con el sistema de compilación en el que he estado involucrado es más específico de macOS, incluida la reducción de la cantidad de bibliotecas dinámicas con las que se vinculan nuestros binarios de macOS. Los archivos binarios de Apple OS se vinculan con seis bibliotecas dinámicas menos utilizando el código base más reciente (que se creará en la próxima versión 0.20.0) en comparación con 0.19.0. Las bibliotecas con las que ya no vinculamos incluyen DiskArbitration, Security, SystemConfiguration, OpenGL, AGL y CFNetwork.

Algunas de estas bibliotecas aún no se usan, pero aún están vinculadas durante la compilación. Se eliminaron cuando se introdujo la marca del enlazador -dead_strip_dylibs en  #17663 . Qt introdujo otros, como OpenGL o D-Bus, etc., pero aún no se usan al final y se pueden eliminar cambiando nuestra configuración de compilación de Qt (consulte  #17521  y  #17676  para conocer estos cambios) .

Después de trabajar arduamente para reducir la cantidad de dependencias del sistema operativo Apple, parece necesario asegurarse de no volver a introducir estas dependencias innecesariamente. #17863  se ha abierto para agregar comprobaciones de biblioteca dinámicas de Apple OS (ya realizadas en Linux) como parte del proceso de compilación. #17787 Se agregó PIE (ejecutable independiente de la posición) y NOUNDEFS (sin referencias indefinidas) a nuestro script security-check.py.

Aquí hay una breve descripción general de alto nivel de algunos trabajos del sistema de compilación en los que he estado involucrado recientemente. El resultado es menos código (que no sea bitcoin) en el repositorio de la billetera principal de bitcoin, dependencias de compilación más débiles para bitcoin y bitcoin-qt, tamaño ejecutable más pequeño y más seguridad, aunque solo sea mediante la reducción de la superficie de ataque.

Gran parte del trabajo aquí es el resultado de innumerables horas de trabajo previo y la revisión de muchos otros colaboradores de Bitcoin Core. Me gustaría agradecer especialmente a Cory Fields por su ayuda y orientación en muchos de mis esfuerzos de creación de sistemas.

Michael Ford, desarrollador principal de Bitcoin

Tags:

OKX Exchange App Download
"Pravda" española: la moneda digital del banco central sacudirá la hegemonía del dólar estadounidense en el sistema de liquidación internacional

Recientemente, la "Nación" de España señaló en un informe titulado "China acelera la implementación de la moneda digital" que a fines de abril de este año.

WeBank se une a Beijing Environmental Exchange y Green Pratt & Whitney para lanzar blockchain + aplicaciones de viajes verdes

El 5 de junio de 2020, Beijing Environmental Exchange, WeBank y Beijing Green Puhui Network Technology Co.

¿Tiene Bancor la oportunidad de superar a Uniswap?

Después de acumular fuerza en 2019, el campo DeFi se abrió inicialmente en 2020. Ya sea préstamos, DEX o derivados, ha mejorado mucho en términos de activos bloqueados, volumen de préstamos.

Michael Ford, desarrollador de Bitcoin Core: Las últimas mejoras en el sistema de compilación de BTC Core

Resumen: Esta publicación fue escrita por Michael Ford, colaborador de Bitcoin Core y escritor invitado de BitMEX Research. Michael es beneficiario del Fondo de Desarrollo de Bitcoin de HDR Global Trading Limited.

5 lecturas obligadas por la noche | ¿Quién compró Tether que admite Bitcoin?

¿Realmente ganar dinero? Revise tres juegos clásicos de blockchainLa semana pasada, analizamos los ingresos totales de tres de los juegos coleccionables de Ethereum más populares: CryptoKitties.

Golden Observation丨Aprendices de iglesia matan de hambre a maestros Stablecoins comienzan a amenazar el token nativo de Ethereum ¿ETH?

De acuerdo con el desarrollo de las monedas estables en los últimos años, la demanda del mercado ha estado creciendo continuamente. Para muchos usuarios.

¿Quién está financiando el desarrollo de Bitcoin?

Resumen: Hemos compilado una lista de las principales organizaciones e individuos que financian Bitcoin de código abierto y Lightning Network (Lightning). Según los datos que recopilamos.

ads