Estar preparado para falhas catastróficas do sistema
As estratégias de recuperação de desastres para blockchains são mais flexíveis do que aquelas de bancos de dados regulares, porque o conteúdo da cadeia é automaticamente replicado para (e pode ser recuperado de) outros nós na rede. No entanto, há dois bons motivos para fazer backup de nós individuais.
Em primeiro lugar e mais importante, se as chaves privadas para os endereços de um nó não estão sendo deliberadamente armazenadas fora de sua carteira, então é vital fazer backup da carteira e de suas chaves. Se a chave privada de um endereço for perdida permanentemente, nenhuma outra transação poderá ser realizada em nome desse endereço.
Em segundo lugar, se um nó precisa se recuperar rapidamente de uma falha do sistema, sem o atraso causado pela recuperação e reindexação do conteúdo do blockchain, então pode fazer sentido fazer backup de todo o estado do nó.
Ambos os métodos são descritos a seguir, junto com as instruções sobre como restaurar cada tipo de backup. Também deve ser observado que o armazenamento em cluster pode servir como uma alternativa aos backups e como uma solução alternativa para o fato de que os nós devem ser interrompidos durante o backup de seu estado completo.
Executando um backup da carteira
A carteira de um nó, que inclui chaves privadas e endereços somente de observação, é armazenada no arquivo wallet.dat no diretório blockchain desse nó. Por padrão, este diretório é ~ / .multichain / [nome da cadeia] / no Linux e Mac e% APPDATA% \ MultiChain \ [nome da cadeia] \ no Windows.
Em geral, o arquivo wallet.dat pode ser copiado diretamente. No entanto, se um nó estiver em execução, é melhor usar o comando backupwallet API para criar uma cópia do arquivo sob um bloqueio exclusivo.
Observe que, ao fazer o backup da carteira de um nó, também pode ser útil fazer o backup de mais duas coisas:
• A lista de ativos e fluxos aos quais esse nó está inscrito. Use os comandos da API listassets e liststreams e observe o nome de qualquer entidade para a qual a assinatura seja verdadeira.
• O nome de usuário e a senha para acessar a API do nó junto com quaisquer outros parâmetros fixos de tempo de execução. Eles são armazenados no arquivo multichain.conf no diretório blockchain.
Restaurando um backup de carteira
O processo de recriar um nó a partir de um backup apenas de carteira é o seguinte:
1. Obtenha o endereço do nó de outro nó na cadeia usando o comando getinfo.
2. No servidor a ser recuperado, certifique-se de que o diretório blockchain não exista mais.
3. Comece a se conectar ao blockchain da maneira usual, passando o endereço do nó obtido anteriormente como um parâmetro para o multichaind.
4. Se o multichaind não parar com uma mensagem sobre a necessidade de permissões de conexão, interrompa-o após alguns segundos usando multichain-cli [nome da cadeia] stop. (Isso pode acontecer em um blockchain com o parâmetro any-can-connect = true.)
5. Substitua o arquivo wallet.dat no novo diretório blockchain do nó pela versão da qual foi feito o backup.
6. Se um backup foi mantido do arquivo multichain.conf do nó, restaure esse arquivo também.
7. Reinicie o nó da maneira usual: multichaind [nome da cadeia] -daemon. No caso de o primeiro endereço na carteira não ter mais permissões de conexão, use o parâmetro de tempo de execução handshakelocal para especificar qual endereço usar para o handshaking.
8. Observe o valor dos blocos em getinfo para ver quando o nó alcançou o resto da rede. Para cadeias grandes, isso pode levar um tempo considerável.
9. Se um registro foi mantido dos ativos e fluxos assinados, inscreva-se novamente usando o comando de inscrição sem digitalizar novamente, por exemplo, subscribe '["stream1", "asset1"]' false. Em seguida, pare o nó, reinicie-o com a opção -rescan e aguarde a conclusão da nova varredura.
É isso! Seu nó restaurado deve estar atualizado com o blockchain e pronto para ser usado novamente.



Backup e restauração de estado completo
Como alternativa para fazer backup e restaurar a carteira do nó e algumas outras pequenas informações, é possível fazer um backup completo direto de todos os arquivos no diretório blockchain, por exemplo, ~ / .multichain / [nome da cadeia] / no Linux ou Mac, ou% APPDATA% \ MultiChain \ [nome da cadeia] \ no Windows. A restauração de um backup completo é simplesmente uma questão de colocar esses arquivos de volta no lugar certo, reiniciar o nó e esperar que ele recupere quaisquer blocos criados após o backup ter sido feito.
Existem duas vantagens principais em fazer backup do estado completo em vez de apenas da carteira:
• O processo de backup e recuperação é muito mais simples, baseado na cópia de um diretório inteiro de arquivos.
• Um nó em funcionamento pode ser recuperado instantaneamente sem a necessidade de recuperar e reindexar todo o blockchain.
No entanto, os backups de estado completo também têm duas desvantagens principais:
• O nó deve ser interrompido antes que o backup seja executado, para garantir a consistência nos arquivos de backup. O armazenamento em cluster pode ajudar aqui - enquanto um nó em um cluster é interrompido para backup, outro pode continuar a servir o aplicativo.
• A quantidade total de dados de backup será drasticamente maior. No entanto, deve-se observar que as técnicas de compressão padrão, como gzip ou zip, podem reduzir esse tamanho em 50-75%, dependendo do padrão de atividade dentro da cadeia.