Multisig
Il seguente articolo della Knowledge Base spiega come creare e utilizzare un file Portafoglio CLI multisig Haven.
Queste istruzioni si basano su un multisig 2/3, il che significa che su un totale di tre firmatari autorizzati, due qualsiasi sono necessari per rendere valida una transazione.
In breve, questi sono i passaggi necessari per creare e inviare una transazione, a condizione che sia già stato creato un portafoglio multisig:
- Sincronizza i portafogli A e B.
- Esporta l'immagine della chiave multisig da A.
- Importa l'immagine della chiave multisig in B.
- Genera TX da B.
- Importa TX in A, firmalo lì, quindi invialo.
Prerequisiti
Questo articolo presuppone che tu abbia già utilizzato la CLI.
Se così non fosse, ti consigliamo di familiarizzare prima con l'uso della CLI. Per iniziare, cerca "cli" e "nodo locale" nelle nostre pagine KB.
Crea un nuovo portafoglio
- Scarica il ultimo Applicazione CLI.
- Correre havend e assicurati che il demone sia completamente sincronizzato.
- Ciascuna parte (3 in questo caso) deve creare un nuovo portafoglio utilizzando rifugio-portafoglio-cli (assicurati che il mining in background NON sia abilitato).
- Esci dal portafoglio, esegui il backup del seed e crea una copia dei file del portafoglio (nel caso sia necessario ripetere i passaggi).
- Accedi nuovamente al portafoglio ed esegui i seguenti comandi:
imposta abilita-multisig-sperimentale 1
imposta l'aggiornamento automatico 0
Preparare i portafogli
- Tutte le parti devono digitare il seguente comando:
prepare_multisig
. - Invia l'output a TUTTO altre parti (usa una piattaforma sicura come Element per la condivisione). L'output dovrebbe assomigliare a questo:
MultisigxV2R1TYQNzErUgssPfURuXVvEq1M4QfUgpBLrz2HXGKkyaonPCH8Kv6jQLqEGEXUtuJNjELcqLUNHKfEopDqtsyzz4sEbCWhtRanxGm8amKYDHmfFjRCVsR3Xmot8RGLp6WN5KQNLUEpsFNpePMk W8yomYrCFLpCkJ72fkjBUy1qx6TH8L3wQ
. - Tutte le parti devono digitare il seguente comando:
make_multisig 2
Dove E corrispondono a altro dati delle parti condivisi al punto 7.
Il comando dovrebbe assomigliare a questo:
make_multisig 2 MultisigxV2R1TYQNzErUgssPfURuXVvEq1M4QfUgpBLrz2HXGKkyaonPCH8Kv6jQLqEGEXUtuJNjELcqLUNHKfEopDqtsyzz4sEbCWhtRanxGm8amKYDHmfFjRCVsR3Xmot8RGLp6WN5K QNLUEpsFNpePMkW8yomYrCFLpCkJ72fkjBUy1qx6TH8L3wQ MultisigxV2R1MG7sQpykJTv4RMEuyQV6m1FBX9zVMPXva3dragVUh9F9FjTTmJ4DLvUNP57njearPRbHnFv1NvKMeL1yQTdbcy7nQ1r4r DvJQzHhNvUeCFzAm6TLhwwjAiqfUBtS6ajBFZ8XVsGwLhCc1S3jK7ffsAKaRF9cLyEzJgpaXNShnrsY4hEK
. - Invia i dati generati nel passaggio 8 a TUTTO altri partiti. I dati dovrebbero assomigliare a questo:
MultisigxV2Rn1LWRyU32PL2D4MnPtp4w5YFS6KTkanCW18adkxUTdMVJDaqQ9E1gsTRQJTZFADurxZb6w2amhCpHtWHPcykirrk3AE1AS65NxkJG4zRgQJF26m8obGa39AVDYicUsFrL3LRMHF2DUKKckJoYZ cRbCUeNP4PBrExea3na2TUm7FEw995ZL5N9n7nVxysH6JdwLfDjXaWDotxZtyPn1ifXvgJHJctsFPP
. - Tutte le parti devono eseguire il seguente comando (1° passaggio):
scambio_multisig_keys
Dove E corrisponde ai dati delle altre parti condivisi nel passaggio 9.
Il comando dovrebbe assomigliare a questo:
exchange_multisig_keys MultisigxV2Rn1LWRyU32PL2D4MnPtp4w5YFS6KTkanCW18adkxUTdMVJDart7ZPUh6A328nPGtUi3hDQdFr8rNk2aSpMNquYHSbxNhNNpyt2fiGgAxt9woCBXsFtdhKm2dmqqY9qF 6ewuBXCDLdJ6rYv1Lm7RyuLN4TQBBccBUesMH6FhGB4FcCncaRh8sEEqcXgR1gbZnEzG6tk81TAthWRqFCZTStSNgD9WJKG7F5 MultisigxV2Rn1LV1jgtbFBZQJTZFADurxZb6w2amhCpHtWHPcykirrk3AE1 5GGTSNN6328nPGtUi3hDQdFr8rNk2aSpMNquYHSbxNhNZ7Q48j4TRAauoTVenC5ZmsS8EViFdiee HtzgPFwrg9cgAX93F7g4UHyAd82BeTRZb3cxsLGQ3nTZb6ey2HN8dJa6Y8ssCniTd6Kchn4cWhS9Q qz38whxCDNYd7UJCpGCa3k1
. - Invia i dati generati nel passaggio 10 a TUTTO altri partiti. I dati dovrebbero assomigliare a questo:
MultisigxV2Rn1WC6rFTBNJkY4qjHv8UYXGifkHemhyRJmXnNVtQY8dcx4T2fZBnnCy2iMAFVerhacP1UytUMaGyAN5N5XvnXqqY7fyYAaBX639tG4zRgQJF26m8obGa39AVDYicUsFrL3LRMHF3XF Vxmv3XjngbXYY47EXY1BgZk6UYxBAN12Ep2ETqR6rpTvUB8QJmQkrdUpiiu146zoiHieUj2He4KwCgkPj9vK7Y
. - Tutte le parti devono eseguire il seguente comando (2° passaggio):
scambio_multisig_keys
Dove E corrisponde ai dati degli altri firmatari condivisi nel passaggio 11.
Questo passaggio dovrebbe generare il portafoglio multisig e richiederti l'indirizzo del portafoglio.
. - Confronta l'indirizzo del portafoglio con tutte le parti per assicurarti che siano gli stessi.
Se non sono uguali, qualcosa è andato storto ed è necessario ricominciare a utilizzare i file del portafoglio di cui è stato eseguito il backup nel passaggio 4.
. - genere seme ed esegui il backup della stringa del seme, che assomiglia a questa (il seme multisig è diverso dal solito seme):
020000000300000005cd2e5a01ef0830eb666b838d8402795ae8f24f6e3cf2068ff8e48899aed11f500473d4c3a9b9bb9451f19facfff91def79172ed466b808f9fa2173a25d149e4a1c1161be6c029b2c4d0ca5fc806ddc1d46edc7dc3d0727a68ad2f6d24bf6086d269cfd2255f73375939820a71802e25e12abd220271a16505059cb168ce90367c23b78dda9038037406aafa4e6d8ed363f998209ab2a6432c78e5597411a0fb43da66388574bda7edbe6122ee6e8ce987a5eb553ccf3cac170b8031448aa05436d4f88e749ea315b12c6c3b93e5905d63bd6f29df0ba3f4cc888318a1f49c45813af87c6d890797fd36bb2c61ec3f0cd009ec413d1e10d71b19e4f6b893381d6a58526d2f35a1726e847e4bed22ea71f7deb2dc7aff8c7c12505345af8611a
. - Chiudi il portafoglio ed esegui il backup dei file del portafoglio.
- Una delle parti deve inviare fondi all'indirizzo condiviso.
- Accedi nuovamente e sincronizza il portafoglio per assicurarti che i fondi siano stati ricevuti e confermati da tutte le parti.
Preparazione per l'invio
- Per prepararsi all'invio, la Persona 1 digita il comando:
export_multisig_info
<filename> è solo un nome per il file che vuoi esportare, dovrebbe essere qualcosa di semplice.
Il file generato si chiama a Immagine chiave, ed è un'istantanea degli output del portafoglio.
. - Invia il file esportato alla Persona 2. Anche la Persona 3 può farlo, ma non è obbligatorio.
. - La persona 2 e/o la persona 3 scarica il file condiviso e lo inserisce nella stessa directory dell'app CLI.
. - La persona 2 o la persona 3 digita il comando:
import_multisig_info
<filename> è lo stesso file creato al passaggio 18 e condiviso al passaggio 19.
. - Chiunque abbia importato l'immagine della chiave nel passaggio 21, ora è in grado di creare una transazione.
Invio
- La Persona 2 o la Persona 3 creano una transazione nel solito modo digitando:
trasferimento
Questo creerà un file chiamato multisig_haven_tx che viene rimandato alla Persona 1.
. - La persona 1 scarica e inserisce il file precedente nella stessa directory dell'app CLI e digita il comando:
sign_multisig multisig_haven_tx
. - Una volta firmato con successo, la Persona 1 digita il seguente comando per inviare la TX:
submission_multisig multisig_haven_tx
Appunti
Se la Persona 1 e la Persona 2 hanno condotto uno o più TX e la Persona 3 non era nei paraggi, quando la Persona 3 sincronizza il caveau, non verrà visualizzato l'importo corretto.
Per risolvere questo problema, la Persona 3 dovrà importare l'ultima immagine chiave condivisa nel Passaggio 19 da uno dei partecipanti utilizzando il comando nel Passaggio 20. Una volta importata, la Persona 3 può eseguire un "aggiornamento" e verrà visualizzato il saldo corretto del portafoglio.
Se è necessario troppo tempo tra la preparazione per l'invio (condivisione delle immagini chiave) e la creazione della TX, il processo potrebbe scadere ed è necessario ripetere questa fase.