Meistens werden MSIG-Berechtigungen mittels Account-Namen eingerichtet, um Transaktionen zu unterzeichnen.
Hier ein Beispiel:
Permission: active (Threshold 2):
aliceaccount@active (1)
bobaccount@active (1)
Im Beispiel oben, müssen Alice und Bob die Transaktion unterzeichnen, damit sie durchgeführt wird.
Hier ein konkretes Beispiel:
Was passiert aber, wenn deine Berechtigung auf Public-Keys und nicht auf Account-Namen läuft?
Permission: active (Threshold 2):
PUB_K1_6ies8fT5dUNmVDG6CSSfwVcn6jvJakW6R3YLfHgUPcknxna9nT (1)
PUB_K1_5fHPq9GpZxTPQHAw8pq3SpYFLday8q9T6ezsMwBCNydphTjamt (1)
In diesem Fall muss die Transaktion von beiden Public-Keys unterzeichnet werden, damit sie durchgeht.
Das Problem hierbei ist, dass auf benutzerfreundlichen EOS-Wallets, die Funktion mit multiplen Keys zu unterzeichnen, schlichtweg nicht existiert. Wir lösen dieses Problem in der Kommandozeile.
Wir konfigurieren Cleos, um mit multiplen Keys zu unterzeichnen
Cleos ist die Befehlszeilenschnittstelle, die mit allen EOSIO Blockchains interagiert. Falls du Cleos noch nicht besitzt, kannst du es hier installieren:
Nachdem du Cleos installiert hast, erstelle eine Wallet. In diesem Beispiel werden wir eine Wallet mit dem Namen "support" erstellen (dies ist nur ein Referenzname und kein EOS-Accountname) und bitten danach Cleos, das Ergebnis des Prozesses in unserer Terminal-Konsole anzuzeigen, um das automatisch generierte Passwort für die Wallet zu erhalten.
Gib folgenden Befehl ein:
cleos wallet create -n support --to-console
Kopiere und speichere dein neues Passwort für die erstellte Wallet. Du wirst es jedesmal benötigen, um deine Wallet zu entsperren.
Wenn die Wallet für eine Weile nicht verwendet wird, sperrt sie Cleos. Um sie zu entsperren, gib folgenden Befehl ein:
cleos wallet unlock -n support
Für folgendes Beispiel werden wir zwei Private-Keys hinzufügen und die Private-Keys der Accounts importieren.
cleos wallet import --private-key PVT_K1_28t8rJAwm2ezAxNUJjLjHJ4bFvMMPfDocTJxz23NePNWPe5gVp -n support
cleos wallet import --private-key PVT_K1_QCknBCMuqAhKF7STxFNHR8Rdx8HEoNg9rUP8rgWDfQvm9vfoC -n support
Führe die Befehle erneut durch, falls weitere Keys benötigt werden.
Nun ist deine Wallet so eingestellt, dass sie mit zwei Keys gleichzeitig funktioniert.
Du kannst die RAW transaction (Deutsch: maschinelle Darstellung einer Transaktion, der eine Signatur beigefügt ist) verwenden, aber es ist sauberer, wenn du eine .json Datei verwendest.
cleos -u https://eos.greymass.com push transaction transaction.json
Sobald der Befehl ausgeführt wurde, bekommst du einen JSON Datensatz (siehe Bild oben). Kopiere die Transaktions-ID und verifiziere die Transaktion im Block-Explorer.