Upgrades Contracts
O MultiGov foi projetado para ser flexĆvel, mas estĆ”vel. As atualizaƧƵes devem ser raras e cuidadosamente avaliadas devido Ć complexidade do sistema e Ć sua natureza cross-chain. Quando as atualizaƧƵes forem necessĆ”rias, elas devem ser planejadas e executadas meticulosamente para garantir a integridade e continuidade do sistema.
ConsideraƧƵes-chave para AtualizaƧƵes
HubGovernor:
Não é atualizÔvel. Uma nova implantação exige a reimplantação de vÔrios componentes do sistema MultiGov. Consulte a seção "Processo para Atualizações Significativas do Sistema" para mais detalhes.
HubVotePool:
Pode ser substituĆdo definindo um novo HubVotePool no HubGovernor.
Requer o re-registro de todos os spokes no novo HubVotePool.
Deve registrar o tipo de consulta e a implementação para decodificação de votos, chamando
registerQueryType
no novo HubVotePool.Uma nova proposta deve autorizar o governador a usar o novo pool de votos do hub e tambƩm lidar com o registro dos decodificadores de consulta apropriados e o registro dos SpokeVoteAggregators apropriados.
SpokeMessageExecutor:
AtualizÔvel via padrão de proxy UUPS.
Armazena parĆ¢metros crĆticos no SpokeMessageExecutorStorage.
HubEvmSpokeAggregateProposer:
Precisa ser reimplantado se o HubGovernor for alterado.
Requer o re-registro de todos os spokes após a reimplantação.
HubProposalMetadata:
Precisa ser reimplantado se o HubGovernor for alterado, pois ele faz referência ao HubGovernor como um parâmetro.
SpokeMetadataCollector:
Requer reimplantação se o ID da cadeia do hub mudar ou se o HubProposalMetadata for alterado.
Processo para Atualização Significativa do Sistema
Nova Implantação do HubGovernor:
Implante o novo contrato HubGovernor.
Reimplantação de Componentes:
Reimplante o HubEvmSpokeAggregateProposer com o novo endereƧo do HubGovernor.
Reimplante o HubProposalMetadata referenciando o novo HubGovernor.
Se o ID da cadeia do hub mudar, reimplante o SpokeMetadataCollector em todas as cadeias spoke.
Atualização do HubVotePool:
Defina o novo HubVotePool no novo HubGovernor.
Registre todos os spokes no novo HubVotePool.
Registre o tipo de consulta e a implementação para decodificação de votos (HubEvmSpokeVoteDecoder).
Re-registro de Spokes:
Re-registre todos os spokes no novo HubEvmSpokeAggregateProposer.
Verificação e Testes:
Realize testes completos da nova configuração do sistema.
Verifique se todas as interações cross-chain estão funcionando corretamente.
Transição de Sistema e Depreciação:
Crie uma proposta para alterar o timelock para o novo governador.
Comunique claramente à comunidade quais mudanças foram feitas.
Monitoramento:
Implemente um perĆodo de transição no qual o novo sistema serĆ” monitorado de perto.
Resolva rapidamente quaisquer problemas que surgirem.
ConsideraƧƵes Importantes
Sempre priorize a estabilidade do sistema. AtualizaƧƵes devem ser realizadas apenas quando absolutamente necessƔrias.
Realize auditorias completas de todas as novas implementações de contratos antes de propor uma atualização.
Considere todos os componentes afetados em todas as cadeias no plano de atualização.
Forneça documentação completa para a comunidade sobre o processo de atualização e quaisquer mudanças nas funcionalidades.
Sempre teste as atualizações extensivamente em testnets antes de implementÔ-las em produção.
Last updated