Especial Hard Fork: Windows
Aug 29 ·
En este blog, analizamos el hard fork de Qtum mainnet en el bloque 680,000 el 28 de Agosto de 2020. Este hard fork agregó cambios de protocolo y consenso para activar el staking fuera de línea y fue una actualización obligatoria para las billeteras Qtum Core Qtum-Qt (el escritorio GUI wallet) y qtumd (la cartera del servidor de línea de comandos). No se requirieron actualizaciones para otros tipos de billeteras (billeteras móviles, billeteras de hardware, etc.) y no se crearon nuevas monedas.
TL; DR El hard fork para Qtum versión 0.19.1 agregó capacidad de staking fuera de línea, lo que permite la delegación de direcciones y los súper stakers. La billetera Qtum Core ahora se puede operar como un súper staker para recibir delegaciones de direcciones de otros y apostar sus UTXO. El hard fork ocurrió en el bloque 680,000 el 28 de Agosto de 2020 a las 7:11 pm GMT y solo se aplicó a las billeteras Qtum Core Qtum-Qt y qtumd, no a otras billeteras. Si bien las billeteras actualizadas hicieron el hard fork automáticamente, los usuarios que no se actualizan a tiempo vieron sus billeteras desconectadas de la red principal, no pueden realizar transacciones y (para las billeteras de apuesta) pueden ver sus monedas apostadas en una cadena dividida. donde son difíciles de recuperar. No hay ninguna moneda nueva del hard fork, pero hay una buena posibilidad de perder monedas temporalmente por apostar billeteras que no se actualizaron a tiempo.
Cómo sucede el hard fork
La versión 0.19.1 de Qtum Core incluía el nuevo software hard fork, esperando a ser activado cuando la blockchain alcanzara el bloque 680,000, donde todas las nuevas características se activaban automáticamente.
Dado que las versiones anteriores de la billetera ya no funcionarían en la red después del hard fork, todos estos pares de versiones anteriores se desconectaron de la red; las billeteras de versiones anteriores fueron prohibidas automáticamente por la activación de hard fork.
Tenga en cuenta que con la actualización a la versión 0.19.1 de Qtum, otros cambios, como la función UTXO dividida, estaban disponibles de inmediato, y las nuevas funciones de hard fork simplemente esperaban que la blockchain alcanzara el bloque de activación de hard fork. Cambiar a las nuevas funciones es una decisión fácil para los monederos. En pseudo-code se ve así:
if block_number < hard_fork_activation_block:
… usa las funciones antiguas
Mas:
… usa las nuevas funciones
Esta lógica es sencilla y se ha utilizado en muchas blockchains.
Este dibujo muestra el hard fork. En el bloque 680,000, los nodos actualizados comenzaron a usar las nuevas funciones y desconectaron a los pares de versiones anteriores. Si hay nodos (billeteras) que ejecutan versiones anteriores, pueden (desafortunadamente) stake algunos bloques antes de que muera la cadena dividida. Si ejecutó una billetera de una versión anterior que no se actualizó a tiempo y se perdió el hard fork consulte la sección Recuperación a continuación.
¿Qué sucede si no actualiza antes de el Hard Fork?
Suceden cosas malas si no actualiza su billetera antes de que se active el hard fork.
Si no actualizara a tiempo, su billetera se limitaría a solo conectarse con algunas otras billeteras que no se actualizaron a tiempo. El peso de la red en esta cadena dividida se redujo a varios cientos de miles, una pequeña fracción de la red principal. Si su billetera estaba staking, podría (desafortunadamente) stake muchos bloques después de el hard fork, cada vez comprometiendo UTXO a stake en la cadena dividida. Es posible que vea que su participación en la billetera aumenta del 80% al 100% de su total. Desafortunadamente, estos stakes están comprometidos con la cadena dividida y, cuando otras personas se den cuenta de que no se han actualizado, restablecerán sus nodos y eliminarán su copia de la cadena dividida, que morirá lentamente. Cualquier moneda enviada también se atascará en la cadena dividida.
Si olvidó el hard fork con su billetera de la versión anterior, notará estos síntomas:
- Sincronizando con el último bloque, pero ese bloque está detrás de lo que muestra el explorador, por 100 bloques o más.
- Las transacciones enviadas a la billetera nunca llegan, a pesar de que se muestran en el explorador.
- Las transacciones enviadas desde la billetera nunca llegan a un exchange, etc.
- Para staking billeteras con un peso de red muy bajo.
- Para apostar billeteras, recompensas de bloque muy altas, 80–100% del total de la billetera comprometida con stakes.
- Al reiniciar la billetera, es posible que no pueda conectarse a pares de nodos completos y no pueda sincronizar la cadena dividida (atascado para siempre en “Sincronización de encabezados”), y los nuevos bloques simplemente se detendrán cuando la cadena dividida muera.
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 respaldo un nombre reconocible como “billetera antes de 0.19.1-update.dat”.
Desafortunadamente, si su billetera de la versión anterior obtuvo algunas recompensas en bloque después de el hard fork, esos stakes estarán en una cadena dividida moribunda. Si experimentó el síntoma n.° 5 anterior (recompensas de bloque muy altas) después de actualizar su billetera y volver a cargar la blockchain, verá su dirección de apuesta con un saldo normal en el Explorer pero una dirección mucho más baja en la billetera. ¿Qué pasó con tus monedas? Fueron estacados en la cadena dividida a la que ya no puedes conectarte.
Siga estos pasos para recuperarse.
¡Asegúrese de haber realizado una copia de seguridad de su billetera!
1. Eliminar la blockchain
Después de hacer una copia de seguridad de su archivo wallet.dat, actualice su billetera a la versión 0.19.1, elimine su copia local de la blockchain y vuelva a sincronizar toda la blockchain.
Elimina tu copia local de blockchain con estos pasos. Tenga en cuenta que Windows puede ocultar 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.
- Salga de la billetera (Archivo — Salir para Qtum-Qt y el comando de parada para qtumd).
- Navegue a su directorio de datos de Qtum (configuración predeterminada):
C:\Users\<user name>\AppData\Roaming\Qtum
o la tecla de Windows — R,% appdata% / qtum
3. Elimine las carpetas "blocks", "stateQtum", "database" 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 Wallet — eliminar datos de blockchain y reiniciar.
Después de seleccionar “eliminar datos de blockchain”, haga clic en los botones “Confirmar” y “Reiniciar” para salir de la billetera. Luego, inicie manualmente la billetera y resincronizará toda la blockchain.
Reinicie la billetera y deje que resincronice toda la blockchain.
2. hazle un zap a tu billetera
Puede recuperar monedas staked en la cadena dividida “zapping” las malas transacciones. El comando “zapwallettxes = 2” le dice a la billetera que cancele estas transacciones y no restaure ningún metadato relacionado. Usando el comando “zapwallettxes” al inicio, Qtum-Qt mostrará “Reescaneando …” (qtumd no mostrará nada) durante unos minutos (o más, dependiendo de su computadora) y luego se iniciará. Las billeteras no responderán a los comandos mientras se vuelven a escanear. Cuando las billeteras finalmente comiencen, las monedas faltantes deberían restaurarse. La mayoría de las veces, este procedimiento de zapping a continuación restaurará sus monedas; de lo contrario, comuníquese con el soporte técnico 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 para eliminar su billetera al reiniciar seleccionando Archivo — Restaurar billetera — zapwallettxes = 2, luego Aceptar y SÍ para salir de la billetera y reiniciar manualmente.
Cuando se reinicie, la billetera Qtum-Qt mostrará el estado “Reexplorando …” durante unos minutos (o más, dependiendo de su computadora) y luego se iniciará normalmente.
B. Archivo de configuración
Este enfoque funciona tanto para Qtum-Qt como para qtumd.
El archivo de configuración “qtum.conf” es leído por la billetera 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. Cree un archivo de configuración que utilizará el comando “zapwallettxes = 2”. Con un editor de texto, cree un archivo con esta línea:
zapwallettxes=2
Guarde el archivo con el nombre de archivo “qtum.conf.txt”.
B2. Cambie el nombre del archivo a “qtum.conf” y mueva el archivo al directorio de datos de Qtum (como se indica arriba).
B3. Lanza tu billetera de la forma habitual. Qtum-qt mostrará “Reexplorando …” (qtumd no mostrará nada).
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 haga zap y vuelva a escanear con cada reinicio.
C. La línea de comandos
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 de archivos del programa de 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 solo espacio en blanco entre “.exe” y “-zapwallettxes = 2”
C1. Windows Qtum-Qt, desde el mensaje “C: \ users \ <nombre de usuario>:”
cd /program files/qtum
qtum-qt.exe -zapwallettxes=2
C2. Windows qtumd, desde el indicador “C: \ users \ <nombre de usuario>:”