Cómo compilar tarball Bitcoin Core Linux a partir de fuentes

Estoy tratando de construir el mismo tarball que puedes descargar del sitio web, que contiene el siguiente árbol de archivos:

$ ls -R ../../bitcoin-0.15.0/
../../bitcoin-0.15.0/:
bin  include  lib  share

../../bitcoin-0.15.0/bin:
bitcoin-cli  bitcoind  bitcoin-qt  bitcoin-tx  test_bitcoin

../../bitcoin-0.15.0/include:
bitcoinconsensus.h

../../bitcoin-0.15.0/lib:
libbitcoinconsensus.so  libbitcoinconsensus.so.0  libbitcoinconsensus.so.0.0.0

../../bitcoin-0.15.0/share:
man

../../bitcoin-0.15.0/share/man:
man1

../../bitcoin-0.15.0/share/man/man1:
bitcoin-cli.1  bitcoind.1  bitcoin-qt.1  bitcoin-tx.1

Estoy usando la configuración de 'prefijo' para poner los archivos binarios en una carpeta específica

./configure --prefix=/home/ff/bitcoin-build

Ahora, el contenido que obtengo dentro del directorio de destino es casi el mismo (hay algunos archivos más). Sin embargo, cuando trato de copiarlo y ejecutarlo dentro de un contenedor, me da un error (que no es el caso con el tarball original).

Entonces, mi pregunta es: ¿cómo construyo las fuentes para producir el mismo tarball que obtienes del sitio web?

Respuestas (1)

Los binarios compilados en el sitio web se construyen utilizando gitian. Esto es determinista, por lo que obtendrá una compilación idéntica a la de todos los demás que la hayan creado, con fines de verificación. Puede encontrar instrucciones sobre cómo hacer esto aquí: https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md

En aras de la exhaustividad, agrego este enlace, que también es muy importante: github.com/bitcoin-core/docs/blob/master/gitian-building.md
Como tuve algunos problemas para completar el proceso de construcción, escribí una pequeña guía como referencia: gist.github.com/frz-dev/3e3e906fa06294e61930e81b473e1e5b