Qtum Hard Fork, Parte 2

Comprendiendo el hard fork de Qtum

Qtum Español
12 min readOct 3, 2019

Sep 26 · 11 min read

A principios de esta semana, Hard Fork, Parte 1, explicó los hard forks y mostró algunos hard forks históricos. Aquí vemos el próximo hard fork de Qtum. El hard fork requiere actualizaciones para las billeteras Qtum Core Qtum-Qt (la billetera de escritorio GUI) y qtumd (la billetera del servidor de línea de comandos) y no se requieren actualizaciones para otros tipos de billeteras (billeteras móviles, billeteras de hardware, etc.) .

TL; DR El próximo hard fork para Qtum 2.0 agregará una nueva capacidad de contrato inteligente, reducirá el espacio entre bloques largos y aumentará los bloques por día, dando a las billeteras de staking un aumento del 12.5%. El hard fork ocurrirá en el bloque 466,600 (17 de octubre de 2019) y solo se aplica a las billeteras Qtum Core Qtum-Qt y qtumd, no a otras billeteras. Si bien las billeteras actualizadas se convertirán en un hard fork automático, los usuarios que no se actualicen a tiempo verán sus billeteras Qtum Core desconectadas de la red principal, no podrán realizar transacciones y (para las billeteras de staking) pueden ver sus monedas apiladas en una cadena dividida, donde son difíciles de recuperar. No hay una nueva moneda del hard fork, pero es una buena oportunidad de perder temporalmente monedas por billeteras que no se actualizan a tiempo.

Características de QIP 5, 6, 7 y 9

❤️ QIPs

El Hard Fork incluye 4 propuestas de mejora de Qtum (QIP) que son propuestas hechas para mejorar la blockchain. Puede encontrar una descripción general de estas características de Qtum 2.0 en este blog (enlace a continuación). Los QIP para la actualización se pueden resumir como:

QIP-5: función de contrato inteligente para hacer DApps más fácil y más fácil de usar. (QIP-5 GitHub, blog QIP-5)

QIP-6: contrato precompilado y biblioteca para la verificación inteligente de contratos. (GitHub QIP-6, blog QIP-6)

QIP-7: Agregue 11 nuevos códigos de operación para una compatibilidad de contrato inteligente con Ethereum Byzantium y Constantinople. (GitHub QIP-7, blog QIP-7)

QIP-9: reduzca el espacio largo entre bloques, acelere los bloques para un espacio promedio de 128 segundos, mejore la estimación del peso de la red. (GitHub QIP-9, blog QIP-9)

Debido a que estas mejoras hacen cambios en el algoritmo de consenso EVM (Máquina virtual Ethereum) y Prueba de participación de Qtum, deben implementarse utilizando un hard fork.

Testnet Hard Fork

Qtum Testnet es una blockchain pública que se utiliza para el desarrollo y las pruebas y tuvo su hard fork el 20 de Septiembre a las 6:23 pm GMT. Aquí hay dos resultados iniciales de el hard fork de Testnet.

La primera llamada de contrato inteligente con OP_SENDER se publicó en el bloque 466.324 de Testnet. OP_SENDER se implementó para QIP-5 y permite una llamada de contrato inteligente sin que el remitente necesite QTUM para pagar el gas. En cambio, otra parte, como un proveedor de DApp, puede pagar por Gas, lo que facilita mucho la interacción de los usuarios de DApp con el contrato inteligente.

Bloque 466,324, OP_SENDER código de operación en llamada de contrato

QIP-9 implementó cambios en el algoritmo de ajuste de dificultad Prueba de staking para reducir espacios largos entre bloques y disminuir el espacio promedio entre bloques de 144 segundos a 128 segundos. Podemos ver el resultado de estos cambios para el espacio diario promedio entre bloques con el hard fork Testnet el 20 de Octubre:

Espacio entre bloques promedio: Testnet, Hard Fork el 20 de septiembre, el espacio entre bloques promedio se reduce a 128 segundos

Cómo sucede el Hard Fork

Qtum Core versión 0.18.1 incluye el nuevo software de hard fork, esperando ser activado cuando la blockchain alcance un cierto número de bloque:

  • Número de bloque de activación de Testnet Hard Fork: 446,320
  • Número de bloque de activación de MainNet Hard Fork: 466,600

Cuando la blockchain llega al bloque de activación, todas las nuevas funciones se habilitan automáticamente.

Dado que las versiones anteriores de la billetera ya no funcionarán en la red después de el hard fork, todos estos pares de versiones anteriores se desconectarán de la red; la activación de hard fork automático prohibirá automáticamente las billeteras de versiones anteriores.

Tenga en cuenta que con la actualización a la versión 0.18.1 de Qtum, otros cambios como las correcciones de errores y las nuevas funciones de restauración de billetera están disponibles de inmediato, y las nuevas características de hard fork simplemente están esperando que blockchain llegue al bloque de activación de hard fork. Cambiar a las nuevas funciones es una decisión fácil para las billeteras. En pseudo-code se ve así:

if block_number < hard_fork_activation_block:
use the old features
else:
use the new features

Esta lógica es sencilla y se ha utilizado en muchas blockchains.

¿Qué sucede si no actualiza antes de el Hard Fork?

Suceden cosas malas si no actualiza su billetera antes del hard fork.

Callejón sin salida: sin vuelta

Si no actualizas tu billetera a tiempo, esta quedara limitada a conectarse solo con los otros nodos que no se hayan actualizado a tiempo. El peso de la red en esta cadena dividida se reducirá a una pequeña fracción de la red principal. Si su billetera estaba en juego, podría (lamentablemente) stake muchos bloques después de el hard fork, cada vez que se compromete a UTXO a staking en la cadena dividida. Puede ver que su participación en la billetera sube del 80% al 100% de su total. Desafortunadamente, estas stakes están comprometidas con la cadena dividida, y cuando otras personas se den cuenta de que no se han actualizado, restablecerán sus nodos, eliminando su copia de la cadena dividida, que morirá lentamente. Cualquier moneda enviada también quedaría atrapada en la cadena dividida.

Si pierde el hard fork, notará estos síntomas:

  1. Sincronizando con el último bloque, pero ese bloque está detrás de lo que dice el explorador, en 100 bloques o más.
  2. Para billeteras staking de muy bajo peso de red.
  3. Para las billeteras staking, recompensas de bloque muy altas, el 80–100% del total de la billetera se comprometió con stakes.
  4. Al reiniciar la billetera, es posible que no pueda conectarse a los pares de nodo completo y no pueda sincronizar la cadena dividida (atascada para siempre en “Sincronizar encabezados”), y los nuevos bloques simplemente se detendrán cuando la cadena dividida muera.
Actualización de Qtum Hard Fork — Activación de Hard Fork en el bloque 466,600

Este dibujo muestra el próximo hard fork Qtum. En el bloque 466,600, los nodos actualizados comenzarán a usar las nuevas funciones y desconectarán cualquier versión anterior. Si hay billeteras (nodos) que ejecutan versiones anteriores, pueden, lamentablemente, apostar algunos bloques antes de que la cadena dividida muera. Si ejecuta una billetera de versión anterior a través de hard fork, consulte el Apéndice a continuación para conocer las técnicas de recuperación.

Apéndice

Recuperación si te perdiste el hard fork

Es una buena práctica hacer una copia de seguridad nueva de su billetera antes de cualquier actualización, y puede darle al archivo wallet.dat de copia de seguridad un nombre reconocible como “wallet-before-0.18.1-update.dat”.

Si su billetera de la versión anterior obtuvo algunas recompensas en bloque después de el hard fork, esas apuestas estarán en una cadena dividida. Si experimentó el síntoma #3 anterior (recompensas de bloque muy altas) después de actualizar su billetera y volver a cargar la blockchain, verá su dirección de staking con un saldo normal en el Explorer pero una dirección mucho más baja en la billetera. Que paso con tus monedas? Fueron minadas en la otra cadena, la cual tu billetera ya no puede ver.

Siga estos pasos para recuperarse.

1. Eliminar Blockchain y Resync

Después de hacer una copia de seguridad de su archivo wallet.dat, actualice su billetera a la versión 0.18.1, elimine su copia local de la blockchain y vuelva a sincronizar toda la blockchain.

Elimine su copia local de la blockchain con estos pasos. Tenga en cuenta que la mayoría de los sistemas ocultarán las carpetas de datos de la aplicación, por lo que es posible que deba mostrar todas las carpetas para encontrar la carpeta de datos de Qtum.

1. Salga de la billetera (File — Exit para Qtum-Qt y el comando stop para qtumd).

2. Navegue a su directorio de datos Qtum:

/ — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — \
| Operating | |
| System | Default Qtum data directory path |
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —|
| Windows | C:\Users\<user name>\AppData\Roaming\Qtum |
| | or Windows Key — R, %appdata%/qtum |
| — — — — — | — — — — — — — — — — — — — — — — — — — — — — — — — — |
| macOS | /Users/<user name>/Library/Application Support/Qtum |
| — — — — — | — — — — — — — — — — — — — — — — — — — — — — — — — — |
| Linux | /home/<user name>/.qtum |
| — — — — — | — — — — — — — — — — — — — — — — — — — — — — — — — — |
| Raspbian | /home/pi/.qtum |
\ — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — /

3. Elimine las carpetas “bloques”, “stateQtum”, “base de datos” y el archivo “banlist.dat”.

Eliminar estas carpetas y el archivo banlist.dat

4. Inicie su billetera y deje que sincronice toda la blockchain.

Alternativamente, puede usar el nuevo comando de inicio “deleteblockchaindata” que se puede usar desde la línea de comando con qtumd como “-deleteblockchaindata” y con Qtum-Qt seleccionando Archivo — Restaurar billetera — eliminar datos de blockchain y reiniciar.

Archivo — Restaurar billetera — eliminar datos de blockchain

Después de seleccionar “eliminar datos de blockchain”, haga clic en los botones “Aceptar” y “SÍ” para salir y reiniciar la billetera para sincronizar toda la blockchain (iniciar en Windows manualmente).

2. Zap tu billetera

Puede recuperar las monedas apiladas en la cadena dividida “eliminando” las transacciones incorrectas. El comando “zapwallettxes = 2” le dice a la billetera que cancele estas transacciones y no restaure los metadatos relacionados. Usando el comando “zapwallettxes” en el inicio, en la esquina inferior derecha de la pantalla de inicio, Qtum-Qt mostrará muy brevemente “Zapping todas las transacciones desde la billetera …” y luego “Rescanning …” (qtumd mostrará zapping y reescaneo de depuración mensajes de registro) durante unos minutos y luego inicie. Las billeteras no responderán a los comandos mientras se vuelven a escanear. Cuando las billeteras finalmente comienzan, las monedas que faltan deben ser restauradas. La mayoría de las veces, este procedimiento de zapping a continuación restaurará sus monedas; de lo contrario, solicite asistencia técnica en los canales de redes sociales de Qtum.

Hay tres formas de ingresar este comando: el menú Qtum-Qt, el archivo de configuración o la línea de comando. Tenga en cuenta que este comando solo se puede usar al iniciar la billetera y no se ingresa después de que la billetera se esté ejecutando.

A. Menú Qtum-Qt

Este enfoque solo funciona para Qtum-Qt.

A1. Puede configurar la eliminación de su billetera al reiniciar seleccionando Archivo — Restaurar billetera — zapwallettxes = 2, luego seleccione Aceptar y SÍ para salir de la billetera, y se reiniciará para ejecutar el comando Zap (reiniciar en Windows manualmente).

Archivo — Restaurar billetera — zapwallettxes = 2

Cuando se reinicia, la billetera Qtum-Qt mostrará el estado “Reescaneando …” durante unos minutos y luego se iniciará normalmente.

B. Archivo de configuración

Este enfoque funciona tanto para Qtum-Qt como para qtumd.

La billetera lee el archivo de configuración “qtum.conf” al inicio, por lo que podemos ingresar el comando “zapwallettxes = 2” y reiniciar la billetera.

Siga estos pasos para crear el archivo de configuración (se supone que no está utilizando el archivo de configuración. Si es así, simplemente agregue el comando).

B1. Haga un archivo de configuración con el comando “zapwallettxes = 2”. Con un editor de texto, cree este archivo (instrucciones para el editor de texto en Windows, Mac, Linux):

zapwallettxes=2

Guarde el archivo con el nombre de archivo “qtum.conf.txt”..

B2. Guarde el archivo como texto sin formato, no como texto enriquecido o cualquier otro formato. Cambie el nombre del archivo a “qtum.conf” y mueva el archivo al directorio de datos de Qtum (como se indicó anteriormente).

B3. Lanza tu billetera de la manera habitual. Qtum-Qt mostrará “Reescaneando …” (qtumd mostrará zapping y reescaneo de mensajes debug.log).

B4. En el directorio de datos de Qtum, elimine el archivo “qtum.conf” o cámbiele el nombre a “qtum.conf.sav” para que no elimine y vuelva a explorar con cada reinicio.

C. La línea de comando

Este enfoque funciona tanto para Qtum-Qt como para qtumd.

Si se siente cómodo usando la línea de comandos del terminal o el símbolo del sistema de Windows, abra una sesión de terminal / símbolo del sistema de Windows, cambie los directorios al directorio del archivo del programa de la aplicación e inicie la billetera con los comandos para su configuración como se indica a continuación.

Windows: tenga en cuenta que hay un espacio en blanco entre “.exe” y “-zapwallettxes = 2”

C1. Windows Qtum-Qt, desde el mensaje “C: \ users \ <nombre de usuario>:”

cd program files/qtum
qtumt.exe -zapwallettxes=2

C2. Windows qtumd, desde el mensaje “C: \ users \ <nombre de usuario>:”

cd program files/qtum/bin
qtumd zapwallettxes=2

macOS: tenga en cuenta que hay dos guiones antes de “zapwallettxes = 2”

C3. macOS Qtum-Qt: instalación de Linux (con Qtum instalado en ~ Desktop / Qtum / qtum-0.18.1), desde el mensaje “<nombre de mac>: ~ <nombre de usuario> $

cd Desktop/Qtum/qtum-0.18.1/bin
./Qtum-Qt --zapwallettxes=2

C4. macOS qtumd: instalación de Linux (con Qtum instalado en ~ Desktop / Qtum / qtum-0.18.1), desde el mensaje “<nombre de mac>: ~ nombre de usuario> $”

cd Desktop/Qtum/qtum-0.18.1/bin
./qtumd --zapwallettxes=2

C5. macOS Qtum-Qt — .dmg install, desde el mensaje “<nombre de mac>: ~ <nombre de usuario> $”

cd /Applications/Qtum-Qt.app/Contents/MacOS
./Qtum-Qt -–zapwallettxes=2

Linux Ubuntu

C6. Ubuntu Qtum-Qt, con Qtum instalado en Desktop / Qtum / qtum-0.18.1, desde el mensaje “<nombre de usuario>: ~ $”

cd Desktop/Qtum/qtum-0.18.1/bin
./qtum-qt -zapwallettxes=2

C7. Ubuntu qtumd, con Qtum instalado en Desktop / Qtum / qtum-0.18.1, desde el mensaje “<nombre de usuario>: ~ $”

cd Desktop/Qtum/qtum-0.18.1/bin
./qtumd -zapwallettxes=2

Raspbian (Raspberry Pi)

C8. Raspbian Qtum-Qt, con Qtum instalado en Desktop / Qtum / qtum-0.18.1, desde el mensaje “pi @ raspberrypi: ~ $”

cd Desktop/Qtum/qtum-0.18.1/bin
./qtum-qt -zapwallettxes=2

C9. Raspbian qtumd, con Qtum instalado en Desktop / Qtum / qtum-0.18.1, desde el mensaje “pi @ raspberrypi: ~ $”

cd Desktop/Qtum/qtum-0.18.1/bin
./qtumd -zapwallettxes=2

C10. Raspbian Qtum-Qt — instalado desde la imagen, desde el mensaje “qtum @ raspberrypi: ~ $”

cd /user/local/bin
./qtum-qt -zapwallettxes=2

Ejemplo de falta del hard fork

Aquí hay un ejemplo de hard fork de Testnet de lo que sucederá con las billeteras de staking que pierden el hard fork. ¡No intentes esto en casa!

1. Dos recompensas de bloque en cadena dividida, 2. Actualizar y resincronizar blockchain, 3. zapwallettxes = 2
  1. El primer panel muestra que la billetera de la versión anterior falta el hard fork y recibe dos recompensas de bloque en la cadena dividida. Tenga en cuenta la gran apuesta de stake.
  2. El segundo panel muestra la billetera después de actualizar a 0.18.1 y volver a cargar la blockchain: faltan las monedas apiladas porque están atrapadas en la cadena dividida.
  3. El tercer panel muestra los resultados usando “zapwallettxes” con el saldo original restaurado, menos las dos recompensas de bloque malo 0.4 QTUM.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response