Desarrolladores

Dash Core ha publicado una extensa Guía del desarrollador para ayudar a los nuevos desarrolladores a comenzar con la base de código de Dash y como una referencia para desarrolladores experimentados. Esta guía se puede aprovechar para integrar de manera rápida y eficiente las aplicaciones externas con el ecosistema de Dash. Cualquiera puede contribuir a la guía enviando un problema o solicitud de extracción en GitHub. La documentación está disponible en: https://dash-docs.github.io/en/

El equipo de Dash Core también mantiene la Hoja de ruta de Dash, que establece los hitos de entrega para futuras versiones de Dash e incluye detalles técnicos específicos que describen cómo el equipo de desarrollo planea realizar desafío. La hoja de ruta de Dash se complementa con las Propuestas de mejora para Dash, que contienen explicaciones técnicas detalladas de los cambios propuestos al protocolo Dash.

Las secciones restantes disponibles a continuación describen pasos prácticos para llevar a cabo tareas de desarrollo comunes en Dash.

Sporks

Una bifurcación de varias fases, coloquialmente conocida como «spork», es un mecanismo exclusivo de Dash utilizado para implementar de forma segura nuevas características en la red a través de variables de nivel de red para evitar el riesgo de bifurcación involuntaria de la red durante las actualizaciones. También se puede usar para desactivar ciertas funciones si se descubre una vulnerabilidad de seguridad - ver aquí para una breve introducción a sporks. Esta documentación describe el significado de cada spork que existe actualmente en la red y cómo verificar sus respectivos estados.

Funciones de spork

Las Sporks se configuran usando valores enteros. Muchas sporks se pueden configurar para un tiempo en una fecha de época particular (número de segundos que han transcurrido desde el 1 de enero de 1970) para especificar la hora a la que se activarán. Las sporks habilitadas se configuran en 0 (segundos hasta la activación). Esta función se usa a menudo para establecer una fecha de habilitación de spork en el futuro, la cual esta deshabilitada de manera efectiva hasta que se modifica. Las siguientes sporks existen actualmente en la red y cumplen las funciones que se describen a continuación:

SPORK_2_INSTANTSEND_ENABLED
Gobierna la capacidad de los clientes de Dash para usar la funcionalidad de InstandSend.
SPORK_3_INSTANTSEND_BLOCK_FILTERING
Si está habilitado, los masternodes rechazarán los bloques que contengan transacciones en conflicto con las transacciones de InstandSend bloqueadas pero no confirmadas.
SPORK_5_INSTANTSEND_MAX_VALUE
Aplica el valor máximo en Dash que se puede incluir en una transacción InstantSend.
SPORK_6_NEW_SIGS
Habilita un nuevo formato de firma para los mensajes de red específicos de Dash introducidos en Dash 12.3. Para más información, consulta aquí y aquí.
SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT
Si está habilitado, los mineros deben pagar el 50% de la recompensa del bloque a un masternode que esté actualmente pendiente de selección o el bloque se considerará no válido.
SPORK_9_SUPERBLOCKS_ENABLED
Si está habilitado, los superbloques se verifican y emiten para pagar a los ganadores de propuestas.
SPORK_10_MASTERNODE_PAY_UPDATED_NODES
Controla si los masternodes que ejecutan una versión de protocolo anterior se consideran elegibles para el pago. Esto puede usarse como un incentivo para alentar la actualización de los masternodes.
SPORK_12_RECONSIDER_BLOCKS
Forzar el reindex de un número específico de bloques para recuperarse de las bifurcaciones de red involuntarias.
SPORK_13_OLD_SUPERBLOCK_FLAG
Obsoleto. Sin función de red desde el bloque 614820.
SPORK_14_REQUIRE_SENTINEL_FLAG
Alterna si los masternodes con estado son elegibles para el pago si el estado es WATCHDOG_EXPIRED, es decir, Sentinel no se está ejecutando correctamente.
SPORK_15_DETERMINISTIC_MNS_ENABLED
Controla si masternodes deterministicos son requeridos. Cuando se activa, la lógica de la lista de masternode heredada ya no se ejecutará y los masternodes no actualizados no serán elegibles para el pago.
SPORK_16_INSTANTSEND_AUTOLOCKS
Habilita el bloqueo automático de transacciones para transacciones con menos de un número específico de entradas y elimina la comisión de InstantSend heredada. Permite a cualquier nodo solicitar el bloqueo de la transacción, no solo el nodo emisor.
SPORK_17_QUORUM_DKG_ENABLED
Enables the DKG process to create LLMQ quorums. At the moment, this only activates a dummy DKG on testnet, which will later be replaced by the real DKG for mainnet and testnet. When enabled, simple PoSe scoring and banning is also active.

Revisar estado de spork

Los comandos spork show y spork active emitidos en la ventana de depuración (o desde dash-cli en un masternode) te permiten interactuar con sporks. Puedes abrir la ventana de depuración seleccionando Herramientas > Depurar consola.

../_images/dashcore-sporks.png

Salidas de spork show y spork active en la consola de depuración Dash Core

Historial de versiones

Las notas de la versión completa y el historial de versiones de Dash están disponibles aquí: