Dado que últimamente he estado derribando y configurando muchos clientes de bitcoin para algunos experimentos, me preguntaba si existe una forma sencilla de acelerar la sincronización con la red. Un método que me viene a la mente es el bootstrap.dat
archivo distribuido por algunas personas. El problema es que no se incluyen los últimos 40.000 bloques, que son los más caros de conseguir y verificar.
Ahora me preguntaba cómo crear uno bootstrap.dat
mismo, a partir de una buena copia que tengo en otra máquina. ¿Alguna idea?
Los archivos de bloque están en el mismo formato que el archivo de arranque. Su formato es realmente simple: simplemente concatene todos los bloques después de prefijarlos con el número de red (para evitar mezclar las redes de prueba) y la longitud del bloque.
[network number] [length] [block header] [block transactions]
[network number] [length] [block header] [block transactions]
[network number] [length] [block header] [block transactions]
... repeat for all blocks
Para crear un archivo de arranque, todo lo que necesita hacer es tomar los datos de blk00001.dat
su último archivo de bloque (aquí está blk000054.dat
) y ponerlos todos en el bootstrap.dat
archivo, preferiblemente ordenados para que pueda importarlos todos de una sola vez. sin tener que intercambiar bloques.
Creo que incluso podría concatenar los archivos de bloque, ya que ya están en el formato correcto y el formato admite la concatenación.
Bitcoin Core contiene una herramienta para hacer esto correctamente (filtrando cualquier bloque huérfano, poniendo todo en el orden correcto, lo que funcionará mucho mejor que simplemente concatenar los archivos de bloque. Está documentado en su propio LÉAME, aquí: https://github .com/bitcoin/bitcoin/tree/master/contrib/linearize
En breve:
rpcuser
y rpcpassword
configúrelo en su archivo de configuración, con la ubicación correcta según https://en.bitcoin.it/wiki/Running_Bitcoin#Bitcoin.conf_Configuration_Filecd
hasta contrib/linearize
.example-linearize.cfg
valores / , junto con la altura máxima del bloque que desea generar ( ) y la ruta a su directorio de datos ( ), así como la ruta a su archivo de salida deseado ( ).linearize.cfg
rpcuser
rpcpassword
max_height
input
output_file
./linearize-hashes.py linearize.cfg > hashlist.txt
seguido de ./linearize-data.py linearize.cfg
. Desde Mac
Ve a la carpeta donde están los bloques. En este caso la carpeta de Bitcoin (es lo mismo para otras bifurcaciones de bitcoin)
cd "Library/Application Support/Bitcoin/blocks/"
Ejecute este código que concatenará todos los archivos blk. Asegúrese de incluir todos los bloques numerados que encuentre en la carpeta de su Bitcoin. En este caso hay 4
cat blk000*.dat > bootstrap.dat
Hecho.
Hacer su propio bootstrap.dat es bastante simple. En Windows, vaya a su símbolo del sistema y use el siguiente comando.
Copy /b blk00000.dat+blk00001.dat+blk00002.dat bootstrap.dat
Deberá continuar con los archivos + blk*.dat hasta llegar al último. Para facilitarle las cosas, simplemente ejecute un archivo por lotes que puede encargarse de agregarlos todos sin tener que ingresar cada archivo blk*.dat. Simplemente copie y pegue el código a continuación en un archivo de texto y asígnele un nombre similar a Create_Bootstrap.cmd y ejecútelo desde su carpeta /blocks.
@echo off
setlocal enableDelayedExpansion
set BITCOINDIR=%APPDATA%\bitcoin\blocks
for /F %%x in ('dir /B/D/ON %BITCOINDIR%\blk*.*') do (
IF NOT [!B!] == [] set B=!B!+
set FILENAME=%BITCOINDIR%\%%x
set B=!B!"!FILENAME!"
)
copy /b %B% bootstrap.dat
o simplemente use "copiar /b blk*.dat bootstrap.dat"
Vaya a en.blockchaindownload.nl y descargue la descarga de cadena más reciente. En el sitio también hay una guía que te dice cómo funciona.
Simplemente coloque ese archivo en un USB y podrá usarlo una y otra vez. Es de uso gratuito y actualiza la descarga dos veces por semana. Utiliza torrents con 2 o 3 (dependiendo del torrent que elijas) webseeds para toda la velocidad que necesitas.
Es algo intuitivo qué archivos deben copiarse y dónde una vez que haya creado un nodo completo. Lo que no es tan intuitivo es cómo arrancar un nodo completo antes de haber construido su primer nodo completo. Primero necesita saber dónde deben colocarse los archivos para los distintos ' SO '. No estoy seguro de si hay problemas pequeños o grandes al copiar los archivos de nodo de Blockchain sin procesar entre diferentes sistemas operativos.
Otro enfoque es dejar que el protocolo maneje el problema. Los nodos secundarios y terciarios se construyen muy rápidamente si están en su propia LAN de gran ancho de banda. Simplemente apunte un nodo secundario (modificando su archivo bitcoind.conf) al nodo principal que ya está construido usando "connect=Your_IPv4_LAN_Address". Tales compilaciones se mueven muy rápido... Es posible que le resulte más rápido que escribir el libro mayor en una memoria USB y copiarlo en otra computadora.
jose pineda
blkXXX.dat
archivos y descomprimirlo en el directorio apropiado, obteniendo exactamente los mismos resultados excepto sin cambiar el nombre a ".old" en Los finalesburke9077