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.
RSS3 completó una nueva ronda de financiación CoinShares Ventures lidera la inversión: el 22 de diciembre, el protocolo social y de contenido descentralizado RSS3 anunció la finalización de una nueva ronda de financiación, liderada por CoinShares Ventures, CoinbaseVentures, DragonflyCapital, MaskNetwork, FabricVentures, HashKeyGroup, Arweave, DapperLabs, AvalancheAsiaStarFund y otros participaron en la inversión. RSS3 es una nueva generación de protocolo social y de contenido descentralizado. A través de mecanismos integrados de negocio, recomendación y almacenamiento, los datos, incluidas las relaciones, el contenido y los retratos, se devuelven a los usuarios. Previamente, la ronda 12 del airdrop patrocinador de RSS3 Gitcoin se abrió para la aplicación. [2021/12/22 7:55:11]
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 ha introducido otros, como OpenGL o D-Bus, etc., pero finalmente no se utilizan y se pueden eliminar cambiando nuestra configuración de compilación de Qt (consulte #17521 y #17676 para ver 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:
Recientemente, ForceForFast (FFF), un token digital de juego de carreras de cadena de bloques incubado y emitido por MixMarvel, aterrizará en la tercera fase de MXC Matcha SpaceM.
Golden Finance Blockchain News, 13 de junio El exvicepresidente de Nasdaq y conocido como el "padre de la Ley de Empleos" David Weild (David Weild IV) recientemente hizo una declaración asombrosa. Él cree que lo.
Jinse Finance Blockchain News, 11 de junio El avance de la marca de 100 millones de direcciones Ethereum es muy notable, porque este hito significa que la industria DeFi está creciendo rápidamente.
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.
Durante las dos sesiones, muchos representantes presentaron propuestas relacionadas con blockchain, que involucran múltiples niveles, como la tecnología, la industria y la supervisión de políticas. En este sentido.
La primera columna de retransmisiones en directo del mercado 20:00 Kim 2020. 6.9 8:00 Gran lanzamiento Todas las noches a las 8, 5 celebridades Últimas noticias, contratos puntuales.
El presidente ruso, Vladimir Putin, quiere que su gabinete acelere el lanzamiento de un sandbox regulatorio de criptomonedas y blockchain para evitar una recesión.La prohibición de criptomonedas planificada por Rusia.