Especial Hard Fork — Mac
Sep 9 ·

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 billetera 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 stake 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 staking) pueden ver sus monedas staked 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 staking 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 de el 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 el 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 divididos, 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 las billeteras. En pseudo-code se ve así:
if block_number < hard_fork_activation_block:
. . . . usa las características antiguas
más:
. . . . utilizar 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 mirar 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:
1. Sincronizando con el último bloque, pero ese bloque está detrás de lo que muestra el explorador, por miles de bloques.
2. Las transacciones enviadas a la billetera nunca llegan, aunque se muestran en el explorador.
3. Las transacciones enviadas desde la billetera nunca llegan a un exchange, etc.
4. Para staking billeteras con un peso de red muy bajo.
5. Para staking billeteras, recompensas de bloque muy altas, 80–100% del total de la billetera comprometida con los stakes.
6. 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 en tu Mac 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 la cadena dividida moribunda. Si experimentó el síntoma #5 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 un saldo más bajo en la billetera. ¿Qué pasó con tus monedas? Fueron staked en la cadena dividida que su billetera ya no puede ver.
Siga estos pasos para recuperarse.
1. Haga una copia de seguridad de su billetera y actualice a la última versión
Haga una copia de seguridad de su billetera usando File — Backup Wallet … o haga una buena copia del archivo wallet.dat. Descargue e instale la última versión de la billetera desde https://qtumeco.io/wallet
2. Delete the 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 Mac 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.
1. Salga de la billetera (Archivo — Salir para Qtum-Qt y el comando de parada para qtumd).
2. Navegue a su directorio de datos de Qtum (configuración predeterminada):
/Users/<user name>/Library/Application Support/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 Billetera — 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, reinicie la billetera y resincronizará toda la blockchain.
Con qtumd (.dmg install) desde el indicador “<nombre MAC>: ~ <nombre de usuario> $” utilice:
cd /Applications/Qtum-Qt.app/Contents/MacOS
./Qtum-Qt –deleteblockchaindata
2B. invalidateblock / reconsiderblock
El usuario Uni Sayo contribuyó con otra forma de recargar solo una parte de la blockchain, que es una buena manera de actualizar la blockchain local para eliminar cualquier bloque de cadena dividida para billeteras que no se actualizaron a tiempo. El ejemplo muestra los comandos CLI para la billetera del demonio qtumd, pero estos comandos también se pueden ingresar en la consola de la billetera GUI Qtum-Qt.
Uni Sayo escribió:
No es necesario eliminar toda la blockchain para recuperarse de una inconsistencia de índice de bloque.
Como se indica en el artículo, si no ha actualizado a su cliente antes del Hard Fork, lo más probable es que esté en una cadena dividida y su cliente eventualmente dejará de sincronizar.
Para recuperarse, hay una función incorporada para manejar específicamente esta situación.
1. Actualice la billetera a la última versión e inicie la billetera.
2. Invalide el hash de bloque del bloque # 679999 (ingrese a continuación en una línea):
qtum-cli invalidateblock 29f0c1bf7382e8475cae39f89040a6a036761327f4b90cd138affd7cd88d0010
3. Espere un minuto para que la billetera revise y rebobine los bloques. Luego reconsidere el hash de bloque de # 679999 (ingrese a continuación en una línea):
qtum-cli reconsiderblock 29f0c1bf7382e8475cae39f89040a6a036761327f4b90cd138affd7cd88d0010
Después de hacer lo anterior, su nodo restablecerá su mejor altura de bloque al bloque # 679998 y comenzará a sincronizarse con la cadena principal.

3. Zap tu billetera
Puede recuperar monedas staked en la cadena dividida “eliminando” 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.

Puede ingresar este comando desde el menú Qtum-Qt, la línea de comando o el archivo de configuración (no se muestra). 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 la billetera.

Cuando se reinicia, la billetera Qtum-Qt mostrará el estado “Reexplorando …” durante unos minutos (o más dependiendo de su computadora) y luego se iniciará normalmente.
B. La línea de comandos
Este enfoque funciona tanto para Qtum-Qt como para qtumd.
Si se siente cómodo usando la Terminal para las entradas de comandos, abra la Terminal y cambie los directorios al directorio de archivos del programa de la aplicación, e inicie la billetera con los comandos para su configuración como se indica a continuación.
Tenga en cuenta que hay un espacio en blanco y dos guiones antes de “zapwallettxes = 2” a continuación..
B1. macOS Qtum-Qt: instalación de Linux (con Qtum instalado en ~ Desktop / Qtum / qtum-0.19.1),
desde el mensaje “~ <nombre de usuario> $”
cd Desktop/Qtum/qtum-0.19.1/bin
./qtum-qt — zapwallettxes=2
B2. macOS qtumd: instalación de Linux (con qtumd instalado en ~ Desk / Qtum / qtum-0.19.1),
desde el mensaje “~ nombre de usuario> $”
cd Desktop/Qtum/qtum-0.19.1/bin
./qtumd — zapwallettxes=2
B3. macOS Qtum-Qt: instalación de .dmg desde el mensaje “<nombre MAC>: ~ <nombre de usuario> $”