1 - Instalación IOTA CLI
Es necesario en primer lugar tener instalado rust y cargo, los puedes instalar con:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
si ya lo tienes instalado, es recomendable mantenerlo actualizado con el comando:
rustup update stable
En entornos linux necesitaremos instalar:
sudo apt-get update
sudo apt-get install curl git-all cmake gcc libssl-dev pkg-config libclang-dev libpq-dev build-essential libudev-dev protobuf-compiler
En entornos macOS necesitaremos instalar mediante homebrew:
brew install curl cmake libpq git
Para instalar y/o actualizar la CLI de IOTA hay que ejecutar el siguiente comando:
cargo install --locked --git https://github.com/iotaledger/iota.git --branch testnet iota
En función de que rama quieras usar puedes cambiar testnet por develop, devnet, mainnet
2 - Inicializar el entorno
La primera vez que se inicia la CLI de IOTA nos pedirá configurar el cliente, esto lo hace creando el fichero client.yaml dentro del directorio ~/.iota para ello ejecutamos el siguiente comando
iota client
y nos pedirá seleccionar la red por defecto
Select a default network [mainnet|testnet|devnet|localnet], or enter a custom IOTA full node server URL (defaults to testnet if not specified):
de momento vamos a usar la red testnet por lo tanto, con pulsar enter es suficiente.
Después nos pedirá crear nuestra billetera, tenemos que seleccionar el key-scheme que queramos, en este caso vamos a usar ed25519, si no tienes muy claro que esquema usar, por defecto se crea como ed25519 (más adelante hablaremos sobre esto).
Select key scheme to generate keypair (0 for ed25519, 1 for secp256k1, 2: for secp256r1):
esto nos devolverá algo tal que así:
Generated new keypair and alias for address with scheme "ed25519":
[bold-hypersthene: 0x3fecd92d8e8cee385265658824cded51f8ceba5b7db4b7298831920866b81059]
Secret Recovery Phrase:
[twelve bonus crumble nominee olive rapid fix illness palace just service diet]
Client for interacting with the IOTA network
nos da un alias para esa dirección bold-hypersthene, la dirección 0x3fecd92d8e8cee385265658824cded51f8ceba5b7db4b7298831920866b81059 y la frase de recuperación twelve bonus crumble nominee olive rapid fix illness palace just service diet
Toda esta información se almacena en ~/.iota/iota_config en dos ficheros:
- client.yaml: contiene información de donde se ubica el fichero con las claves privadas, la configuración de las redes disponibles, cual es la red activa y cual es la dirección activa.
- iota.keystore: este fichero almacena la clave privada de cada dirección que hayamos creado, esto solo es para desarrollo, no se recomienda almacenar las claves privadas en ficheros de texto plano sin encriptar.
3 - Configurar IOTA Wallet
Lo primero es descargar la extensión compatible con navegadores chrome a través de la siguiente dirección https://chromewebstore.google.com/detail/iota-wallet/iidjkmdceolghepehaaddojmnjnkkija
Una vez instalada podemos usar la clave privada del ficherocat .iota/iota_config/iota.keystore y crear un perfil nuevo en la billetera para tener esa dirección, ahora podemos elegir la red de testnet y listo.
4 - Obtener tokens de prueba
Para poder hacer uso de la red en este caso de testnet es necesario disponer de fondos en la cuenta, de tokens IOTA, para ello tenemos algo llamado IOTA Faucet, simplemente te envía tokens a tu dirección para poder hacer uso de la red, son tokens sin valor.
iota client faucet
este comando soporta dos argumentos --address y --url en caso de no pasar estos argumentos va a coger los valores por defecto que ya configuramos anteriormente.
Podemos verificar si hemos recibido los tokens con el comando
iota client gas
5 - Levantar la red local
Anteriormente hemos configurado la testnet, ahora vamos a configurar una red local para poder desarrollar con mayor control y facilidad, lo primero, vamos a usar la CLI de IOTA para levantar un nodo de desarrollo junto con una faucet.
iota start --network.config persisted-localnet --with-faucet --committee-size 2 --epoch-duration-ms 60000
--epoch-duration-ms <EPOCH_DURATION_MS>: tiempo de cada epoch, por defecto 1min--with-faucet=<FAUCET_PORT>: configurar otro puerto de faucet--fullnode-rpc-port <FULLNODE_RPC_PORT>: cambiar el puerto del nodo RPC
este comando nos va a generar un directorio llamado persisted-localnet con todos los ficheros de configuración, base de datos, etc...
Ya tenemos un nodo funcionando en nuestra máquina de forma local para desarrollo, podemos ir al explorer de IOTA y conectar con este nodo local a través de la siguiente dirección
https://explorer.iota.org/?network=http%3A%2F%2F127.0.0.1%3A9000
Si usáis brave o algún bloqueador de anuncios, recordad desactivar los escudos para poder acceder sin problemas al explorer.
Si vemos los entornos que tenemos configurados en nuestra CLI con el comando
iota client envs
veremos que tenemos el de localnet que justo tiene como url el host local donde esta corriendo nuestro servidor.
En caso de querer añadir esta red local a nuestra configuración de IOTA CLI, para poder acceder a la red local, lo podemos hacer con con el siguiente comando.
iota client new-env --alias localdev --rpc http://127.0.0.1:9000
Ahora tenemos que activar ese entorno para que nuestra IOTA CLI pueda trabajar sobre él, eso lo hacemos así
iota client switch --env localnet
Podemos comprobar si realmente se ha cambiado de entorno ejecutando
iota client active-env
veremos que efectivamente aparece localnet
Si revisamos el saldo en nuestra wallet será igual a 0, podemos ejecutar
iota client faucet
y obtener 1000 IOTAS para empezar a jugar.