Multisig
O artigo da base de conhecimento a seguir explica como criar e usar um Carteira Haven Multisig CLI.
Essas instruções são baseadas em multisig 2/3, o que significa que de um total de três assinantes autorizados, dois são necessários para tornar uma transação válida.
Resumindo, estes são os passos necessários para criar e enviar uma transação, desde que uma carteira multisig já tenha sido criada:
- Sincronize as carteiras A e B.
- Exporte a imagem da chave multisig de A.
- Importe a imagem da chave multisig para B.
- Gere TX de B.
- Importe TX para A, assine lá e envie.
Pré-requisitos
Este artigo pressupõe que você já usou a CLI antes.
Se este não for o caso, é aconselhável primeiro familiarizar-se com o uso da CLI. Pesquise “cli” e “nó local” em nossas páginas da base de conhecimento para começar.
Criar nova carteira
- Faça o download do mais recente Aplicativo CLI.
- Correr ter e certifique-se de que o daemon esteja totalmente sincronizado.
- Cada parte (3 neste caso) deve criar uma nova carteira usando paraíso-carteira-cli (certifique-se de que a mineração em segundo plano NÃO esteja habilitada).
- Saia da carteira e faça backup do seed e faça uma cópia dos arquivos da carteira (caso precise repetir os passos).
- Faça login novamente na carteira e execute os seguintes comandos:
definir enable-multisig-experimental 1
definir atualização automática 0
Prepare carteiras
- Todas as partes devem digitar o seguinte comando:
prepare_multisig
. - Envie a saída para TODOS outras partes (use uma plataforma segura como Element para compartilhamento). A saída deve ficar assim:
MultisigxV2R1TYQNzErUgssPfURuXVvEq1M4QfUgpBLrz2HXGKkyaonPCH8Kv6jQLqEGEXUtuJNjELcqLUNHKfEopDqtsyzz4sEbCWhtRanxGm8amKYDHmfFjRCVsR3Xmot8RGLp6WN5KQNLUEpsFNpePMk W8yomYrCFLpCkJ72fkjBUy1qx6TH8L3wQ
. - Todas as partes devem digitar o seguinte comando:
make_multisig 2
onde e corresponder ao outro dados das partes compartilhados na etapa 7.
O comando deve ficar assim:
make_multisig 2 MultisigxV2R1TYQNzErUgssPfURuXVvEq1M4QfUgpBLrz2HXGKkyaonPCH8Kv6jQLqEGEXUtuJNjELcqLUNHKfEopDqtsyzz4sEbCWhtRanxGm8amKYDHmfFjRCVsR3Xmot8RGLp6WN5K QNLUEpsFNpePMkW8yomYrCFLpCkJ72fkjBUy1qx6TH8L3wQ MultisigxV2R1MG7sQpykJTv4RMEuyQV6m1FBX9zVMPXva3dragVUh9F9FjTTmJ4DLvUNP57njearPRbHnFv1NvKMeL1yQTdbcy7nQ1r4rDvJ QzHhNvUeCFzAm6TLhwwjAiqfUBtS6ajBFZ8XVsGwLhCc1S3jK7ffsAKaRF9cLyEzJgpaXNShnrsY4hEK
. - Envie os dados gerados na Etapa 8 para TODOS outras partes. Os dados devem ficar assim:
MultisigxV2Rn1LWRyU32PL2D4MnPtp4w5YFS6KTkanCW18adkxUTdMVJDaqQ9E1gsTRQJTZFADurxZb6w2amhCpHtWHPcykirrk3AE1AS65NxkJG4zRgQJF26m8obGa39AVDYicUsFrL3LRMHF2DUKKckJoYZ cRbCUeNP4PBrExea3na2TUm7FEw995ZL5N9n7nVxysH6JdwLfDjXaWDotxZtyPn1ifXvgJHJctsFPP
. - Todas as partes devem executar o seguinte comando (1ª passagem):
exchange_multisig_keys
onde e corresponde aos dados das outras partes compartilhados na etapa 9.
O comando deve ficar assim:
exchange_multisig_keys MultisigxV2Rn1LWRyU32PL2D4MnPtp4w5YFS6KTkanCW18adkxUTdMVJDart7ZPUh6A328nPGtUi3hDQdFr8rNk2aSpMNquYHSbxNhNNpyt2fiGgAxt9woCBXsFtdhKm2dmqqY9q F6ewuBXCDLdJ6rYv1Lm7RyuLN4TQBBccBUesMH6FhGB4FcCncaRh8sEEqcXgR1gbZnEzG6tk81TAthWRqFCZTStSNgD9WJKG7F5 MultisigxV2Rn1LV1jgtbFBZQJTZFADurxZb6w2amhCpHtWHPcykirrk3AE1 5GGTSNN6328nPGtUi3hDQdFr8rNk2aSpMNquYHSbxNhNZ7Q48j4TRAauoTVenC5ZmsS8EViFdie eHtzgPFwrg9cgAX93F7g4UHyAd82BeTRZb3cxsLGQ3nTZb6ey2HN8dJa6Y8ssCniTd6Kchn4cWh S9Qqz38whxCDNYd7UJCpGCa3k1
. - Envie os dados gerados na Etapa 10 para TODOS outras partes. Os dados devem ficar assim:
MultisigxV2Rn1WC6rFTBNJkY4qjHv8UYXGifkHemhyRJmXnNVtQY8dcx4T2fZBnnCy2iMAFVerhacP1UytUMaGyAN5N5XvnXqqY7fyYAaBX639tG4zRgQJF26m8obGa39AVDYicUsFrL3LRMHF3X FVxmv3XjngbXYY47EXY1BgZk6UYxBAN12Ep2ETqR6rpTvUB8QJmQkrdUpiiu146zoiHieUj2He4KwCgkPj9vK7Y
. - Todas as partes devem executar o seguinte comando (2ª passagem):
exchange_multisig_keys
onde e corresponde aos dados dos demais signatários compartilhados na etapa 11.
Esta etapa deve gerar a carteira multisig e solicitar o endereço da carteira.
. - Compare o endereço da carteira com todas as partes para garantir que sejam iguais.
Se eles não forem iguais, algo deu errado e você precisará começar novamente a usar os arquivos da carteira cujo backup foi feito na Etapa 4.
. - Modelo semente e faça backup da sequência de sementes, que se parece com isto (a semente multisig é diferente da semente normal):
020000000300000005cd2e5a01ef0830eb666b838d8402795ae8f24f6e3cf2068ff8e48899aed11f500473d4c3a9b9bb9451f19facfff91def79172ed466b808f9fa2173a25d149e4a1c1161be6c029b2c4d0ca5fc806ddc1d46edc7dc3d0727a68ad2f6d24bf6086d269cfd2255f73375939820a71802e25e12abd220271a16505059cb168ce90367c23b78dda9038037406aafa4e6d8ed363f998209ab2a6432c78e5597411a0fb43da66388574bda7edbe6122ee6e8ce987a5eb553ccf3cac170b8031448aa05436d4f88e749ea315b12c6c3b93e5905d63bd6f29df0ba3f4cc888318a1f49c45813af87c6d890797fd36bb2c61ec3f0cd009ec413d1e10d71b19e4f6b893381d6a58526d2f35a1726e847e4bed22ea71f7deb2dc7aff8c7c12505345af8611a
. - Feche a carteira e faça backup dos arquivos da carteira.
- Uma das partes precisa enviar fundos para o endereço compartilhado.
- Faça login novamente e sincronize a carteira para garantir que os fundos foram recebidos e confirmados por todas as partes.
Preparação para envio
- Para se preparar para o envio, a Pessoa 1 digita o comando:
export_multisig_info
<filename> é apenas um nome para o arquivo que você deseja exportar, deve ser algo simples.
O arquivo gerado é chamado de Imagem principal, e é um instantâneo das saídas da carteira.
. - Envie o arquivo exportado para a Pessoa 2. A Pessoa 3 também pode fazer isso, mas não é obrigatório.
. - A Pessoa 2 e/ou Pessoa 3 baixa o arquivo compartilhado e o coloca no mesmo diretório do aplicativo CLI.
. - Pessoa 2 ou Pessoa 3 digita o comando:
import_multisig_info
<filename> é o mesmo arquivo criado na Etapa 18 e compartilhado na Etapa 19.
. - Quem importou a imagem chave na Etapa 21 agora pode criar uma Transação.
Enviando
- Pessoa 2 ou Pessoa 3 cria uma transação da maneira usual digitando:
transferir
Isso criará um arquivo chamado multisig_haven_tx que é enviado de volta para a Pessoa 1.
. - A pessoa 1 baixa e coloca o arquivo acima no mesmo diretório do aplicativo CLI e digita o comando:
sign_multisig multisig_haven_tx
. - Depois de assinado com sucesso, a Pessoa 1 digita o seguinte comando para enviar o TX:
submit_multisig multisig_haven_tx
Notas
Se a Pessoa 1 e a Pessoa 2 conduziram um ou mais TXs e a Pessoa 3 não estiver por perto, quando a Pessoa 3 sincronizar o cofre, ele não exibirá o valor correto.
Para resolver isso, a Pessoa 3 terá que importar a imagem chave mais recente compartilhada na Etapa 19 de qualquer um dos participantes usando o comando na Etapa 20. Uma vez importada, a Pessoa 3 pode fazer uma “atualização” e o saldo correto da carteira será exibido.
Se demorar muito entre a preparação para o envio (compartilhamento de imagens-chave) e a criação do TX, o processo pode expirar e você terá que fazer esta etapa novamente.