Desenvolvedores

O Dash Core publicou um extenso Guia do desenvolvedor para ajudar os novos desenvolvedores a começarem com a base de códigos do Dash e como uma referência para desenvolvedores experientes. Este guia pode ser aproveitado para integrar de forma rápida e eficiente aplicativos externos ao ecossistema Dash. Qualquer pessoa pode contribuir com o guia enviando um problema ou solicitando solicitação no GitHub. A documentação está disponível em: https://dash-docs.github.io/en/

A Equipe Core do Dash também mantém o Roadmap do Dash, que define marcos de entrega para versões futuras do Dash e inclui detalhes técnicos específicos que descrevem como a equipe de desenvolvimento planeja realizar cada desafio. O Roteiro do Dash é complementado pelo Dash propostas de melhoria, que contêm explicações técnicas detalhadas das alterações propostas para o protocolo Dash.

As seções restantes disponíveis abaixo descrevem as etapas práticas para executar tarefas comuns de desenvolvimento no Dash.

Sporks

Um fork multifásico, popularmente conhecido como «spork», é um mecanismo exclusivo do Dash usado para implantar com segurança novos recursos na rede por meio de variáveis de nível de rede para evitar o risco de bifurcação indesejada de rede durante as atualizações. Também pode ser usado para desabilitar determinados recursos se uma vulnerabilidade de segurança for descoberta - veja aqui para uma breve introdução aos sporks. Esta documentação descreve o significado de cada spork existente atualmente na rede e como verificar seus respectivos status.

Spork funções

Sporks são definidos usando valores inteiros. Muitos sporks podem ser definidos para uma data específica (número de segundos decorridos desde 1º de janeiro de 1970) para especificar a hora em que eles serão ativados. Os sporks ativados estão definidos como 0 (segundos até a ativação). Esta função é freqüentemente usada para definir uma data de ativação do spork até o futuro no futuro, que é efetivamente desativada até ser alterada. Os seguintes sporks existem atualmente na rede e servem funções conforme descrito abaixo:

SPORK_2_INSTANTSEND_ENABLED
Governa a capacidade dos clientes do Dash de usar a funcionalidade InstantSend.
SPORK_3_INSTANTSEND_BLOCK_FILTERING
Se ativado, os masternodes rejeitarão os blocos que contêm transações em conflito com transações InstantSend bloqueadas mas não confirmadas.
SPORK_5_INSTANTSEND_MAX_VALUE
Aplica o valor máximo no Dash que pode ser incluído em uma transação do InstantSend.
SPORK_6_NEW_SIGS
Ativa um novo formato de assinatura para mensagens de rede específicas do Dash, introduzidas no Dash 12.3. Para mais informações, veja aqui e aqui.
SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT
Se habilitado, os mineiros devem pagar 50% da recompensa em bloco para um masternode atualmente pendente de seleção ou o bloqueio será considerado inválido.
SPORK_9_SUPERBLOCKS_ENABLED
Se ativado, os superblocos são verificados e emitidos para pagar os vencedores das propostas.
SPORK_10_MASTERNODE_PAY_UPDATED_NODES
Controla se os masternodes que executam uma versão de protocolo mais antiga são considerados elegíveis para pagamento. Isso pode ser usado como um incentivo para incentivar os masternodes a serem atualizados.
SPORK_12_RECONSIDER_BLOCKS
Força a reindexação de um número especificado de blocos para se recuperar de garfos de rede não intencionais.
SPORK_13_OLD_SUPERBLOCK_FLAG
Descontinuada. Nenhuma função de rede desde o bloco 614820.
SPORK_14_REQUIRE_SENTINEL_FLAG
Alterna se os masternodes com status são elegíveis para pagamento se o status for WATCHDOG_EXPIRED, i.e. O Sentinel não está funcionando corretamente.
SPORK_15_DETERMINISTIC_MNS_ENABLED
Controla se deterministic masternodes é requerido. Quando ativada, a lógica da lista de masternodes herdada não será mais executada e os masternodes não atualizados não estarão qualificados para pagamento.
SPORK_16_INSTANTSEND_AUTOLOCKS
Permite o bloqueio automático de transações para transações com menos de um número especificado de entradas e remove a taxa do InstantSend herdado. Permite que qualquer nó solicite o bloqueio de transação, não apenas o nó de envio.
SPORK_17_QUORUM_DKG_ENABLED
Enables the DKG process to create LLMQ quorums. This spork will be turned on once 80% masternodes are upgraded to v0.14, which will enable DKG and DKG-based PoSe.
SPORK_19_CHAINLOCKS_ENABLED
Enables ChainLocks, a mechanism of preventing the risk to payments introduced by blockchain reorganization events. ChainLocks are described in DIP0008 ChainLocks.
SPORK_20_INSTANTSEND_LLMQ_BASED
When enabled, legacy InstantSend is superseded by LLMQ-based InstantSend, as described in DIP0010 LLMQ-based InstantSend.

Visualizar o status do spork

Os comandos spork show e spork active emitidos na janela de depuração (ou a partir de dash-cli em um masternode) permitem que você interaja com sporks. Você pode abrir a janela de depuração selecionando Ferramentas > Console de depuração.

../_images/dashcore-sporks.png

spork show e spork active output no console de depuração do Dash Core

Histórico de versões

Notas de lançamento completas e o histórico de versões do Dash estão disponíveis aqui: