Qtum en la Raspberry Pi 4B

Qtum Español
10 min readDec 19, 2019

--

Jackson Belove

Sep 2 ·

En este blog, sacamos a prueba la nueva Raspberry Pi (RPi) 4B para ejecutar algunos puntos de referencia y pruebas con Qtum Core Wallet.

TL; DR: La nueva Raspberry Pi 4B es una computadora de placa única altamente capaz. En una variedad de puntos de referencia y pruebas de rendimiento de billetera Qtum, el RPi funcionó bien. Puede obtener un mejor rendimiento con una tarjeta SD rápida y overclocking. El RPi 4B es una forma económica de ejecutar un nodo Qtum o experimentar con este dispositivo. El archivo bootstrap ayuda a la sincronización de blockchain en conexiones de red lentas.

Si bien este blog se centra en el Raspberry Pi 4B, ahora puede ejecutar Qtum en toda la línea de productos Raspberry Pi, desde el modesto Pi Zero hasta el 4B de gama alta.

Instalar Qtum en Raspberry Pi

Para una instalación tradicional de Linux, descargue y extraiga el archivo tar “mainnet-ignition-version_number / qtum-version_number-arm-linux-gnueabihf.tar.gz” en https://github.com/qtumproject/qtum/releases. Para la versión 0.18.2, el archivo se llama “mainnet-ignition-v0.18.2 / qtum-0.18.2-arm-linux-gnueabihf.tar.gz”.

Las imágenes de Raspberry Pi premontadas para la versión 0.18.2 están disponibles:

Qtum Raspbian (Recomendado para Raspberry Pi 2 a Raspberry Pi 4B)

https://raspbianimages.s3.amazonaws.com/2019-12-09-Qtum-Raspbian.zip

https://raspbianimages.s3.amazonaws.com/2019-12-09-Qtum-Raspbian-lite.zip

Qtum Pi Zero (Recomendado para Raspberry Pi 1 y Pi Zero)

https://raspbianimages.s3.amazonaws.com/2019-09-26-Qtum-Raspbian-PiZero.zip

https://raspbianimages.s3.amazonaws.com/2019-09-26-Qtum-Raspbian-PiZero-lite.zip

La versión de escritorio funciona y se puede usar con Pi Zero, pero encontrará un mejor rendimiento con la versión “Lite”, ya que no tiene una línea de comando de escritorio.

La versión completa tiene la GUI de escritorio de Pixel incluida y la versión “lite” es para la línea de comandos.

RPi 3B

Podemos establecer una línea de base para la comparación de la sincronización de blockchain comenzando con el RPi 3B, que tiene una sola CPU de 700 MHz, 1 GB de RAM (configurado con un archivo de intercambio de 1 GB). Para monitorear la sincronización de blockchain usaremos un script Python (enlace GitHub) que registra el tamaño de las carpetas del directorio de datos Qtum a intervalos de un minuto para “bloques” y “stateQtum” (junto con muchos otros parámetros RPi). El almacenamiento de blockchain se divide en dos partes:

1. bloques, que almacenan todas las transacciones

2. stateQtum, que almacena el estado Qtum para la memoria y el código del contrato inteligente

Aquí hay un gráfico que muestra una sincronización de blockchain con el RPi 3B:

Raspberry Pi 3B Blockchain Sync — 1,186 minutos

¿Qué muestra este gráfico? El eje horizontal es el tiempo en minutos, relacionado con, pero no exactamente, la altura del bloque. Esta descarga tomó 1.186 minutos o 19 horas 46 minutos. El eje vertical muestra el tamaño descargado para bloques, stateQtum y total en GB (más precisamente mil millones de bytes). Observe que el crossover muestra que Mainnet tenía un estado más grande que los bloques aproximadamente a las dos horas de la descarga, aproximadamente el bloque 84.400 en la tercera semana de enero de 2018. El crecimiento del estado es una motivación para QIP 17 para el “alquiler” de almacenamiento de contactos inteligentes VM x86. También puede ver el salto cuando se agregaron algunos bloques grandes alrededor del bloque 45,900.

A partir de esta línea base para el RPi 3B, a continuación veremos la sincronización de la blockchain RPi 4B, variando algunos componentes y configuraciones para explorar tiempos de sincronización más rápidos.

RPi 4B

La Fundación Raspberry Pi lanzó su computadora Raspberry Pi 4B de cuarta generación en junio de 2019, que se ofrece con tamaños de RAM de 1 GB, 2 GB y 4 GB. Aquí usaremos el modelo de 4 GB para verificar el rendimiento ejecutando la billetera de escritorio GUI Qtum-Qt y comparar algunas operaciones básicas (sincronización de blockchain, reescaneo de blockchain) contra el Raspberry Pi modelo 3B y algunas PC. El modelo de 4 GB ha tenido un suministro limitado, pero cada vez hay más disponibles.

Qtum Proof of Stake requiere recursos mínimos de CPU, por lo que los RPis son completamente capaces de ser nodos completos de Qtum (incluso el Pi Zero).

Velocidad de disco — Velocidad de CPU — Velocidad de descarga

El rendimiento de la computadora blockchain de nodo completo es una compensación entre la velocidad del disco, la velocidad de la CPU y la velocidad de descarga de Internet. Las monedas de prueba de trabajo requieren GPU o ASIC para la minería, pero para Qtum Proof of Stake una vez que se sincroniza la blockchain, los nodos Qtum y las carteras de replanteo requieren recursos mínimos para estas tres áreas, e incluso funcionan bien con CPU más lentas.

Pruebas de rendimiento

icono de termómetro

El RPi 4B tuvo un buen comienzo con la sincronización de blockchain, pero comenzó a parpadear el icono del termómetro: la CPU se estaba sobrecalentando y acelerando el procesamiento. Esto sucede cuando la temperatura de la CPU supera los 82 ° C. El comando “vcgencmd measure_temp” mostró temperaturas de 84 ° a 85 ° C. La apertura de la parte superior de la carcasa de Raspberry Pi permite que la CPU se enfríe y vuelva a la velocidad máxima. Las mejores soluciones de enfriamiento usan disipadores de calor con ventiladores de enfriamiento y la Referencia A muestra una forma inusual de mantener fresco el RPi.

RPi 4B funcionando con la cubierta superior retirada

Con la cubierta superior retirada, podemos continuar con las pruebas de sincronización de blockchain. La siguiente tabla muestra las sincronizaciones de blockchain para el RPi 4B con dos tarjetas SD diferentes y algunas PC (especificaciones a continuación) que se ejecutan en conexiones de banda ancha (70 a 100 Mbps).

Blockchain Sync — Solo bloques — PC i5 Linux, RPi 4B Ultra Plus SD, PC i7 Windows, RPi 4B Generic SD

¿Qué muestra este gráfico? El gráfico muestra solo bloques (que dan una línea más suave) pero stateQtum se estaba descargando al mismo tiempo. El ganador aquí (línea gris) fue una CPU Intel i5 con Ubuntu PC en 24 minutos. Observe la diferencia entre el RPi 4B con una tarjeta SD genérica (línea azul) a los 178 minutos y el mismo RPi 4B con una tarjeta SD SanDisk Ultra Plus (línea naranja) en 118 minutos. La CPU Intel i7

Qtum Proof of Stake requiere recursos mínimos de CPU y es ideal para Raspberry Pi. El RPi 4B utiliza una CPU Broadcom ARM con cuatro núcleos de 64 bits que funcionan a 1,5 GHz. La evaluación comparativa de la CPU utiliza programas de prueba para medir el rendimiento de la CPU haciendo cálculos típicos, y utilizamos dos pruebas de referencia para los RPis y algunas PC:

  • Blockchain reescaneando, importando una nueva dirección a la billetera (principalmente lectura de disco)
  • Simulador de blockchain (cálculos enteros y de coma flotante), consulte la Referencia B. Este script de Python se ejecuta en un solo núcleo / CPU, por lo que no aprovecha el quad core RPi 4B.

La billetera puede volver a escanear cuando importa una clave privada para agregar una nueva dirección a la billetera. Para esta prueba, agregaremos como dirección testigo una billetera de staking muy grande utilizando el comando importaddress <dirección Qtum>. Esta dirección se mostrará como una dirección de “solo observación” en Qtum-Qt después del reescaneo. El comando rescan maximiza el acceso al disco porque la billetera debe leer todas las transacciones en todos los bloques para obtener un saldo para la dirección importada. Podemos ver el mejor rendimiento de los RPis que usan SD para almacenamiento y las PC con disco de giro rápido.

Nuestras computadoras de prueba son:

  • RPi 3B, ARM de un solo núcleo a 700 MHz, 1 GB de RAM
  • RPi 4B, ARM quad-core 1.5 GHz, 4 GB RAM, Extreme SD
  • RPi 4B, ARM de cuatro núcleos overclockeado 2.0 GHz, Extreme SD (ver abajo en overclock)
  • Linux Ubuntu PC, Intel i5–6400 @ 2.7 GHz, quad-core, 8 GB RAM, disco duro
  • PC con Windows 10, Intel i7–6700 @ 3.4 GHz, cuatro núcleos, 16 GB de RAM, SSD
Blockchain reescanea en segundos (menor es mejor), segundos del simulador (menor es mejor)

¿Qué significa esta tabla? El escaneo de blockchain es una prueba de lectura de disco y las dos PC con disco giratorio o SSD superaron a los RPis. La prueba del simulador usa un solo núcleo y no aprovecha los otros tres núcleos del RPi 4B. El RPi 4B funciona mejor en pruebas de referencia como la compresión / descompresión 7-Zip que utiliza los 4 núcleos.

Overclocking

El Raspberry Pi 4B ejecuta cuatro núcleos de CPU a 1.5 GHz, pero los cambios de archivo de configuración sencillos acelerarán las CPU a 2.0 GHz para una mejora teórica del 33% de velocidad, vea la Referencia C. Con el RPi 4B 4 GB configurado para 2.0 GHz, ejecutamos el simulador , análisis de billetera y pruebas de sincronización de blockchain, y los resultados muestran la contribución de una CPU más rápida para estas operaciones.

Pasar de una velocidad de CPU de 1.5 GHz a 2.0 GHz proporciona una mejora teórica del 33%. Los resultados de las pruebas fueron menores que esto, con el simulador mejorando un 16% y el escaneo de billetera mejorando un 13%. Para la prueba de sincronización de blockchain, el overclocking dio una mejora mínima de un pequeño porcentaje.

El archivo Bootstrap

nota cultural sobre “bootstrap”, Referencia D

Al investigar la sincronización de blockchain, también puede consultar el nuevo archivo bootstrap.dat. Este archivo proporciona una forma de acelerar la sincronización inicial de blockchain para conexiones de ancho de banda más bajo (para conexiones de ancho de banda más alto usando el archivo bootstrap ralentiza la sincronización de blockchain). El archivo de arranque y las instrucciones se ofrecen en la página de descarga de la billetera Qtum Core en https://qtumeco.io/wallet.

Descargue y copie el archivo bootstrap.dat en el directorio de datos de Qtum antes de sincronizar la blockchain por primera vez. En funcionamiento (en Qtum-Qt) verá el estado “Bloques de indexación en el disco” y al finalizar, el archivo “bootstrap.dat” pasará a denominarse “bootstrap.dat.old”. Con la carga del archivo bootstrap, notará que el ícono de estado de sincronización Qtum-Qt en la esquina inferior derecha gira rápidamente, y casi no hay acceso a la red por parte de la billetera. El archivo bootstrap actualmente contiene datos de blockchain (blocks y stateQtum) para los primeros 390,000 bloques (hasta el 12 de junio de 2019) y es útil para conexiones de ancho de banda lentas.

Para probar el archivo bootstrap, use la utilidad Wondershaper para RPis (o NetLimiter 4 en PC) para limitar el ancho de banda, Referencia E. Con el ancho de banda establecido en 1.33 Mb / s de descarga y 1.33 Mb / s, la tabla de descarga (RPi 4B 4GB) muestra:

Bootstrap con conexión de 1.33 Mbps

¿Cómo leer este cuadro? Usando el archivo bootstrap, el RPi puede comenzar a copiar bloques al disco inmediatamente. Sin el bootstrap, el RPi pasa los primeros 80 minutos sincronizando los encabezados antes de comenzar a descargar los bloques. Con el bootstrap, la sincronización de blockchain tomó 215 minutos, sin el bootstrap, la sincronización de blockchain tomó 347 minutos. Este análisis no incluye el tiempo para descargar el archivo bootstrap.dat (1,6 gigabytes), pero puede descargar el archivo en una conexión rápida y copiarlo en su RPi.

El uso de pruebas empíricas de la velocidad de equilibrio para el beneficio del archivo de arranque parece estar alrededor del área de 5 a 6 Mbps. Por debajo de las velocidades de descarga de 5 a 6 Mbps (dependiendo de la velocidad de escritura de su disco y sin contar el tiempo para descargar el archivo bootstrap), la sincronización de blockchain será más rápida usando el archivo bootstrap.

Necesita enfriamiento adicional para el RPi utilizando el archivo bootstrap porque las CPU alcanzan un pico en el rango del 250% y alcanzarán rápidamente el límite térmico.

Conclusiones

La Raspberry Pi 4B es una computadora de placa única. Ejecuta con una tarjeta microSD rápida y overclocking a 2 GHz mejoró el rendimiento con la sincronización de la blockchain Qtum mainnet en menos de 2 horas (con una conexión rápida). Si tiene una conexión a Internet más lenta (por ejemplo, menos de 5 Mbps), el archivo bootstrap.dat acelerará la sincronización inicial de blockchain.

References

A.

Una forma inusual de enfriar la Raspberry Pi https://youtu.be/4BQAMTRY5SI

.

B.

Simulador de blockchain de Python que ejecuta el nuevo algoritmo QIP # 9 para 5,000 bloques, 1,000 billeteras. Código similar en https://github.com/JB395/Qtum-LBE-Simulator

C.

  1. Overclocking de Raspberry Pi 4 https://www.tomshardware.com/reviews/raspberry-pi-4-b-overclocking,6188.html y https://www.tomshardware.com/reviews/raspberry-pi-4-overclock -2-ghz, 6254.html

Sinopsis del comando:

Control Alt T lanza Terminal con privilegios elevados

sudo nano /boot/config.txt

en la sección [pi4] agregar

sobrevoltaje = 4 o 6, ver artículos

arm_freq = 2000

guardar y Salir

sudo rpi-update obtiene el último firmware

reinicio de sudo

Si el overclock no se inicia correctamente, abra la tarjeta SD y edite el archivo config.txt en otra computadora como se describe en los artículos.

D.

el termino “bootstrap” viene de la expresion “halar de los cordones (en ingles)” lo que se refiere a halar de las botas utilizando estos cordones, o de forma mas general, tener exito con tu propio esfuerzo y esto fue adoptado para cargar el codigo de inicio para las primeras computadoras

E.

Cómo administrar el ancho de banda en Linux con Wondershaper https://www.addictivetips.com/ubuntu-linux-tips/manage-bandwidth-on-linux-with-wondershaper/

Para establecer límites de ancho de banda en el adaptador ethernet eth0 a 1.330 kb / s (1.33 Mb / s) de descarga y carga, use:

wondershaper eth0 1330 1330

Para PC, visite https://www.netlimiter.com/

F.

Un artículo completo sobre “Benchmarking the Raspberry Pi 4”, por Gareth Halfacree

https://medium.com/@ghalfacree/benchmarking-the-raspberry-pi-4-73e5afbcd54b

G.

Aunque fue llevado al límite, ningún Raspberry Pis fue dañado al hacer este blog.

--

--

No responses yet