Pular para o conteúdo principal

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.