Atualize Seu Nó
Cosmovisor
O Cosmos SDK fornece um gerenciador de processo conveniente que envolve a binary crossfid
e pode automaticamente substituir por novas binaries após uma proposta de upgrade de governança bem-sucedida. Cosmovisor é totalmente opcional, mas recomendado. Mais informações podem ser encontradas nos documentos cosmos.network e cosmos-sdk/cosmovisor/README.
Configuração
Para começar com o Cosmovisor, primeiro faça o download
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor
Configurar as variáveis de ambiente
echo "# Setup Cosmovisor" >> ~/.profile
echo "export DAEMON_NAME=crossfid" >> ~/.profile
echo "export DAEMON_HOME=$HOME/.crossfi" >> ~/.profile
source ~/.profile
Crie os diretórios apropriados
bash
mkdir -p ~/.crossfi/cosmovisor/upgrades
mkdir -p ~/.crossfi/cosmovisor/genesis/bin/
cp $(which crossfid) ~/.crossfi/cosmovisor/genesis/bin/
# verificar a configuração.
# Deve retornar a mesma versão que crossfid
versão do cosmovisor
Agora o crossfid
pode começar executando
início do cosmovisor
Preparando uma Atualização
O Cosmovisor irá constantemente verificar o $DAEMON_HOME/data/upgrade-info.json
em busca de novas instruções de atualização. Quando uma atualização estiver pronta, operadores de nó podem fazer o download do novo binary e colocá-lo em $DAEMON_HOME/cosmovisor/upgrades//bin
, onde `` é o nome URI codificado do upgrade especificado no plano do módulo de upgrade.
É possível que o Cosmovisor faça o download automático do novo binary. Para isso, configure a seguinte variável de ambiente.
export DAEMON_ALLOW_DOWNLOAD_BINARIES=true
Atualização de Software Manual
Primeiro, pare sua instância crossfid
. Em seguida, atualize o software:
cd gaia
git fetch --all && git checkout
make install
::: dica NOTA: Se você tiver problemas nesta etapa, verifique se possui a última versão estável do GO instalada. :::
Seu nó completo foi atualizado com sucesso! Se não houver mudanças radicais, você pode simplesmente reiniciar o nó executando:
inicio do crossfid
Atualizar Arquivo Genesis
Para atualizar o arquivo genesis, você pode buscá-lo de uma fonte confiável ou exportá-lo localmente.
Buscando de uma Fonte Confiável
Se você está ingressando na rede principal, busque o genesis do repositório mainnet. Se você está ingressando em uma testnet pública, busque o genesis da testnet apropriada no repositório testnet. Caso contrário, busque de sua fonte confiável.
Salve o novo genesis como new_genesis.json
. Em seguida, substitua o antigo genesis.json
pelo new_genesis.json
cd $HOME/.crossfi/config
cp -f genesis.json new_genesis.json
mv new_genesis.json genesis.json
Exportando Estado para um Novo Genesis Localmente
Se você estava executando um nó na versão anterior da rede e deseja construir seu novo genesis localmente a partir de um estado dessa rede anterior, use o seguinte comando:
cd $HOME/.crossfi/config
crossfid exportar --for-zero-height --height=<export-altura> > new_genesis.json
O comando acima pega um estado em certa altura <export-altura>
e o transforma em um novo arquivo genesis que pode ser usado para iniciar uma nova rede.
Então, substitua o antigo genesis.json
pelo new_genesis.json
.
cp -f genesis.json new_genesis.json
mv new_genesis.json genesis.json
Neste ponto, talvez você queira executar um script para atualizar o genesis exportado para um genesis que seja compatível com sua nova versão. Por exemplo, os atributos do tipo Account
foram alterados, um script deve consultar o account codificado da loja de contas, desserializá-los, atualizar seu tipo, reserializá-los e restaurá-los. Você pode encontrar um exemplo desse script aqui.
Redefinir Dados
::: aviso Se você estiver executando um nó validador na rede principal, sempre tenha cuidado ao fazer crossfid unsafe-reset-all
. Nunca use este comando se não estiver mudando o chain-id
. :::
:::perigo IMPORTANTE Certifique-se que cada nó tenha um priv_validator.json
único. Não copie o priv_validator.json
de um nó antigo para múltiplos novos nós. Executar dois nós com o mesmo priv_validator.json
fará com que você seja penalizado por assinatura dupla! :::
Primeiro, remova os arquivos desatualizados e redefina os dados. Se você está executando um nó validador, certifique-se de entender o que está fazendo antes de redefinir.
crossfid unsafe-reset-all
Seu nó agora está em um estado limpo enquanto mantém o priv_validator.json
e config.toml
originais. Se você tiver qualquer nó sentinela ou nó completo configurado antes, seu nó ainda tentará se conectar a eles, mas pode falhar se eles não tiverem sido atualizados também.