En su mayoría, los permisos de múltiples firmas se configuran utilizando nombres de cuenta para firmar transacciones. Ejemplo:
Permission: active (Threshold 2):
aliceaccount@active (1)
bobaccount@active (1)
Alice y Bob deben firmar las transacciones anteriores para que se ejecute la transacción.
Aquí hay un ejemplo real:
Pero, ¿qué sucede si ha configurado sus permisos utilizando las llaves públicas en vez de los nombres de cuenta?
Permission: active (Threshold 2):
PUB_K1_6ies8fT5dUNmVDG6CSSfwVcn6jvJakW6R3YLfHgUPcknxna9nT (1)
PUB_K1_5fHPq9GpZxTPQHAw8pq3SpYFLday8q9T6ezsMwBCNydphTjamt (1)
Esto significa que las transacciones de esta cuenta deben estar firmadas por las dos claves públicas para que se ejecute.
El problema aquí es que no hay una opción disponible para firmar transacciones con múltiples claves en alguna billetera EOS fácil de usar. Por lo tanto, se debe usar la línea de comandos para resolver este problema.
Configurando `cleos` para firmar con múltiples claves
Cleos es la interfaz de línea de comandos que interactúa con todas las cadenas de bloques de EOSIO. Si no tienes cleos, puedes instalarlo aquí:
Después de instalar Cleos, cree una billetera. En este ejemplo, crearemos una billetera llamada "support" (este es solo un nombre de referencia, no un nombre de cuenta EOS) y le pediremos a Cleos que imprima el resultado en la consola de la terminal para obtener la contraseña que se genera automáticamente para esta billetera:
cleos wallet create -n support --to-console
Importante: Copie y guarde su nueva contraseña para la wallet creada. Necesitará esta contraseña cada vez que se bloquee la wallet.
Cleos bloquea las wallets cuando están inactivas. Para desbloquear, utilice la siguiente línea de comandos sustituyendo support por YOURWALLETNAME:
cleos wallet unlock -n support
Para este ejemplo, añadiremos dos claves privadas.
Importe las claves privadas de las cuentas:
cleos wallet import --private-key PVT_K1_28t8rJAwm2ezAxNUJjLjHJ4bFvMMPfDocTJxz23NePNWPe5gVp -n support
cleos wallet import --private-key PVT_K1_QCknBCMuqAhKF7STxFNHR8Rdx8HEoNg9rUP8rgWDfQvm9vfoC -n support
Nota: si es necesario, repita el proceso para las otras llaves.
Esto configurará tu wallet para firmar usando dos claves simultáneamente.
Puedes poner la transacción RAW, pero es más limpio usar un archivo .json:
cleos -u https://eos.greymass.com push transaction transaction.json
Una vez ejecutado, se devolverá un dato JSON (ver la imagen de arriba). Copie su ID de transacción y verifíquelo en el explorador de bloques.
Autor: Erick Birbe
Editor: Markus Hinrichs; Randall Roland
Traductor: Erick Birbe, Cristhian Rincon
Fuentes y Referencias: