Bienvenidos de nuevo a este rinconcito del trasteo... hoy traigo en mi siguiente entrada el primero de una serie que llevo tiempo dándole vueltas realizar, y es emular una Cold Card en Linux y ver que posibilidades nos ofrece virtualizándola, que seguro son muchas.

    Para realizar esto, me he basado en el propio repositorio de Cold Card, que es donde uno tiene que dirigirse si quiere hacer este tipo de cosas, y en su #README explican como emular para Linux esta cold wallet. Al ver los pasos que iban haciendo dije, esto lo podría hacer un script bash sin mayores problemas...asique me puse a ello.

    Al principio iba a ser una cosa sencillita, tu ya sabes... instalar una cosa después de la otra y pasito a pasito hasta que apareciera la MK4 en pantalla y ya...pero una cosa llevó a la otra... y a medida que iba avanzando me iban asaltando cosas como... y ¿Por que no hacer una comprobación del repositorio antes de descargarlo con la clave publica del desarrollador? o como ¿Por que no ir interactuando con el usuario para que de el ok a cada paso?, esta parte es especialmente importante por que al principio tuve problemas, como que el script se paraba y no sabia en que momento había sido, entonces decidí preguntar en cada paso que debía dar si estaba de acuerdo o no para identificar donde estaba el error y por que se paraba el script.

    En este punto estarás pensando... y ¿Cómo hago para conseguir el script y empezar a toquetear la Cold Card?, pues he optado por la opcion mas sencilla a mi parecer, que es ir a GitHub y descargarlo, asique he creado un repositorio exprofeso para ello que es https://github.com/SvenS110/ColdcardEmulate.git, al entrar en la pagina de GitHub podrás ver el script, echarle un ojo, por supuesto cualquier idea, sugerencia o aportación es bienvenida y con gusto se estudiaría su incorporación al script. Otra cosa que podrás hacer es ir a la parte Releases, que ahora mismo mientras que escribo estas líneas se encuentra en su versión 1.0.0.0, y descargarte el archivo simplemente haciendo click sobre el.

    Si leíste mi anterior entrada y estas virtualizando Ubuntu en VirtualBox, te aconsejo que hagas todo el proceso de entrar al GitHub y hacer la descarga desde la maquina virtual, es mucho mas sencillo y evitas fricciones Host/Guest, si no sabes de que estoy hablando te aconsejo que eches un ojo a mi entrada en la que explico todo esto Ubuntu en Virtual Box, también tengo pendiente otra manera de virtualizar en Windows usando WSL que me parece interesante, pero eso es otra historia...

    Ahora voy a dejar como sería la secuencia completa de descarga e instalación hasta que verdaderamente aparece la Cold Card MK4... vamos!

    Nos vamos a la pagina de GitHub https://github.com/SvenS110/ColdcardEmulate.git

    Como os decía antes, podéis ver el código del script.

    O ir a descargarlo en Releases.

    Hacer click en el archivo .sh

    Y empieza la descarga...

    Nos dirigimos a la carpeta Descargas y abrimos un terminal en ella.

    Nos cercioramos de que el archivo es un ejecutable o no haciendo un ls -la.

    No es un ejecutable, pero no hay problema por que eso es una línea de comando y ya esta, escribimos sudo chmod +x ColdcardEmulate.sh y confirmamos con nuestra contraseña.

    Volvemos a comprobar.

    Y ahora si, ese color verde significa que es un ejecutable junto a las x en la parte de los permisos, ya se puede iniciar, y para ello tenemos que escribir ./ColdcardEmulate.sh y Enter...

    Ahora es ir interactuando con el script dándole permiso para que vaya instalando, descargando y configurando los diferentes pasos.

    Clonar el repositorio...puede tardar un poco.

    Hace una comprobación para determinar la autenticidad del repositorio que va a descargar.

    Aplica los parches necesarios.

    Crea y activa el entorno virtual de Python.

    Verifica que la biblioteca NumPy este instalada.

    Instala las dependencias necesarias.

    Crea el simulador de Cold Card.

    Busca y elimina unos errores causados principalmente por la versión de gcc.

    Ejecuta make.

    Cambiar al directorio unix del repositorio.

    Limpiar y compilar.

    Ahora make setup.

    make ngu-setup.

    make de nuevo.

    Y ya tendríamos lista la Cold Card MK4 para trastearla de lo lindo.

    El script esta configurado para que emule una Cold Card recién enviada de fabrica en la red testnet, es importante especificar que bajo ningún concepto es una Cold Card real y por consiguiente no se debería usar como tal, es solo una herramienta de testeo.

    Para cuando queramos volver a iniciarla después, lo que tenemos que hacer es abrir de nuevo un terminal e ir al directorio firmware, activar el entorno virtual, cambiar al directorio unix y ejecutar el simulator.py, esto es lo básico para iniciar de nuevo la MK4.

    cd ~/firmware
    source ENV/bin/activate
    cd unix
    ./simulator.py

    Y es aquí donde se pone emocionante... por que podemos añadirle argumentos al final y emular una Q1 y un montón de opciones diferentes para que hagamos todas las pruebas que se nos pasen por la cabeza. Los argumentos se encuentran en la carpeta unix del repositorio: https://github.com/Coldcard/firmware/tree/master/unix.

    En las siguientes entradas de esta serie iré haciendo una guía paso a paso para ver hasta donde podemos llegar con la Cold Card MK4 y Q1 emulada en Linux, como siempre agradecido de que hayas llegado hasta aquí y espero que te resulte de ayuda, si crees que podría interesarle a alguien mas, por favor compártelo.

    Un saludo

    SvenS