Ion: la criptomoneda que impulsa la identidad descentralizada

Valoración: 3.55 (1579 votos)
Tabla de Contenido

Qué es la criptomoneda ION

ION es una red descentralizada de Capa 2 para Identificadores Descentralizados (DID) que se ejecuta sobre la cadena de bloques de Bitcoin. Ejecutar un nodo ION minimiza la confianza en partes externas para resolver ION DIDs, ayuda a que la red sea más resistente y confiable, y proporciona al operador un mejor rendimiento de resolución de DID.

La implementación de referencia del nodo ION es una implementación estable de producción de la especificación DIF Sidetree vActualmente, la instalación y el funcionamiento del nodo están diseñados para desarrolladores experimentados que pueden invertir el tiempo en ejecutar, probar y contribuir a la base de código. Esta recomendación cambiará con el tiempo, lo que los colaboradores comunicarán a la comunidad a través de publicaciones en blogs y comunicaciones de DIF y organizaciones colaboradoras.

La implementación del nodo ION está compuesta por una colección de microservicios. De estos componentes, las principales dependencias son Bitcoin Core, Kubo (IPFS) y MongoDB (para la persistencia local de datos).

Instalación de ION

La instalación de un nodo ION requiere ciertos pasos y configuraciones específicas. A continuación, se presenta una tutorial detallada:

Preparando tu entorno de desarrollo

Hardware

Recomendamos que ejecutes ION en una máquina con las siguientes especificaciones mínimas:

  • Procesador i5 (modelos 2017+)
  • 6 GB de RAM
  • 1 TB de almacenamiento
Sistema operativo

Tanto Linux como Windows son compatibles y probados. Para Linux, la configuración se verifica en Ubuntu 18, por lo que recomendamos las distribuciones basadas en Debian para la configuración de Linux.

Configuración del entorno de Linux
Snap

Usamos snap para simplificar la instalación de ciertos servicios. Ejecuta el siguiente comando para instalar snap:

sudo apt install snapd

Es posible que debas agregar el directorio de binarios de snap a tu ruta agregando la siguiente línea en ~/.bash_profile:

PATH="$PATH:/snap/bin"

Para asegurarte de que los cambios de ruta entren en vigor de inmediato:

source ~/.bash_profile
Node.js

Los servicios dentro de ION dependen de Node.js versión 1Ejecuta el siguiente comando para instalar Node v14:

sudo snap install node --classic --channel=14
build-essential

Construir ION requiere el equivalente de tu distribución a 'build-essential' de Ubuntu, por ejemplo, make, g++, etc.

sudo apt install build-essential
Configuración del entorno de Windows

Ve a https://nodejs.org, descarga e instala la última versión v14 de Node.js.

Puertos de entrada a abrir

Si deseas ejecutar un nodo que escriba operaciones ION DID, deberás habilitar uPnP en tu enrutador o abrir los puertos 4002 y 4003 para que los archivos de datos de operación se puedan servir a otros a través de IPFS.

Testnet o Mainnet

NOTA: Esta tutorial describe los pasos para configurar un nodo ION dirigido a bitcoin testnet, pero se puede usar para dirigir la red principal de bitcoin sustituyendo las configuraciones de testnet por mainnet.

Bitcoin e ION deben configurarse para usar testnet (para desarrollo) o mainnet (para producción). Si cambias un servicio de testnet a mainnet o viceversa, los otros servicios también deberán reconstruirse para coincidir. Los valores de configuración predeterminados para testnet no son válidos para mainnet y los servicios no podrán iniciarse si no coinciden.

Configuración de Bitcoin Core

Un nodo ION necesita un peer de Bitcoin confiable para obtener y escribir transacciones ION. Usamos Bitcoin Core para esto.

Script automatizado para instalar Bitcoin Core en Linux

Si deseas instalar e iniciar Bitcoin Core automáticamente en Linux, puedes revisar y ejecutar el script automatizado que se ha comprometido en el repositorio Sidetree.

NOTA: La sincronización inicial tarda aproximadamente 2 horas para testnet en una máquina de 2 núcleos con un SSD.

Instalación manual de Bitcoin Core

Puedes encontrar binarios de Windows y Linux para las versiones de Bitcoin Core aquí.

En Linux:

Crea un archivo de configuración (bitcoin.conf) designando:

  • La ruta en la que deseas que se almacenen los datos de Bitcoin (el [datadir])
  • Un nombre de usuario (por ejemplo, admin)
  • Una contraseña (debe coincidir con la configuración de ion-bitcoin más adelante)
Testnet Mainnet
testnet=1 server=1 datadir=~/.bitcoin rpcuser=<your-rpc-username> rpcpassword=<your-rpc-password> txindex=1 server=1 txindex=1 datadir=~/.bitcoin rpcuser=<your-rpc-username> rpcpassword=<your-rpc-password>

Inicia Bitcoin Core y deja que se sincronice:

./bin/bitcoind --config bitcoin.conf

NOTA: Puedes agregar --daemon para ejecutar bitcoind como un proceso daemon.

En Windows:

Ejecutando Bitcoin Core con interfaz de usuario amigable después de la instalación:

bitcoin-qt.exe -testnet -datadir=<path-to-store-data> -server -rpcuser=<your-rpc-username> -rpcpassword=<your-rpc-password> -txindex=1

Instalación de Kubo (IPFS)

Sigue las instrucciones que se encuentran en el sitio web de IPFS para instalar Kubo CLI (implementación de IPFS), también puedes usar la imagen de Docker o instalar IPFS Desktop que internamente instala el daemon Kubo, te proporciona una interfaz de usuario amigable.

Configuración de MongoDB

En Linux:

La opción de persistencia predeterminada para almacenar datos localmente es MongoDB, aunque es posible crear adaptadores para otras tiendas de datos. Para usar la opción predeterminada de MongoDB, deberás instalar la compilación de la comunidad de MongoDB:

Descargue como paquete deb: https://www.mongodb.com/download-center/community.

Paquete: https://www.mongodb.com/download-center/community. Documentación de instalación: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

NOTA: Es posible que no tengas todas las dependencias necesarias para ejecutar MongoDB, si es así, puedes ejecutar sudo apt-get install -f para incorporarlas.

Probablemente querrás almacenar los datos de la instancia de Mongo en la misma unidad que elegiste para almacenar los datos de la cadena de bloques, debido a la gran cantidad de almacenamiento requerido. Configura el directorio para esto creando una carpeta db en la ubicación que elegiste y ejecuta mongod --dbpath ~/YOUR_LOCATION/db

En Windows:

Descarga e instala MongoDB desde https://www.mongodb.com/download-center/community.

NOTA: Para ver los archivos de MongoDB con una GUI más accesible, descarga e instala MongoDB Compass: https://docs.mongodb.com/compass/master/install/

Configura y crea los microservicios de ION

Clona https://github.com/decentralized-identity/ion:

git clone https://github.com/decentralized-identity/ion

Se pueden encontrar archivos de configuración de ejemplo para testnet y mainnet en el directorio config de nivel superior.

NOTA: Si no se especifica, los archivos json/testnet--.json se utilizan como valores de configuración predeterminados. Asegúrate de comenzar con la plantilla de configuración correcta (testnet o mainnet) para tu caso de uso.

Crea tus archivos de configuración a partir de plantillas

Copia los archivos de configuración <testnet-or-mainnet>-bitcoin-config.json y <testnet-or-mainnet>-bitcoin-versioning.json a otro directorio (por ejemplo, /etc/ion/)

Actualiza los archivos de configuración

Actualiza el microservicio ION Bitcoin (por ejemplo, /etc/ion/testnet-bitcoin-config.json):

  • bitcoinPeerUri Asegúrate de que apunte al punto final RPC del cliente Bitcoin Core que configuraste anteriormente en esta tutorial testnet: http://localhost:18332 mainnet: http://localhost:8332 (asumiendo la configuración predeterminada de Bitcoin Core del paso 2)
  • bitcoinDataDirectory Este es un valor de configuración opcional. Al configurar este valor, en lugar de usar la llamada rpc para inicializar el microservicio Bitcoin, el nodo leerá los archivos binarios de bloque. Esto es útil para acelerar el tiempo de inicialización si tienes un acceso rápido a los archivos (SSD local es óptimo). Si los archivos se almacenan y recuperan a través de la red, como en la nube en el bucket de AWS S3 o el almacenamiento de blobs de Azure, entonces esto será más lento que usar RPC ya que tiene que descargar GB de archivos. Déjalo en blanco si no deseas inicializar desde el archivo. Si deseas inicializar desde archivos, debe apuntar a la carpeta de archivos de bloque: testnet: [datadir]/testnet3 . mainnet: exactamente lo mismo que el valor [datadir] configurado para Bitcoin Core en el paso
  • bitcoinWalletImportString si tienes la intención de escribir operaciones DID, complétalo con tu clave privada, de lo contrario, usa cualquier cadena de importación generada sin ningún testnet de bitcoin: (se generará un ejemplo de billetera de testnet válido cada vez que ion-bitcoin no pueda cargar una cadena WIF válida al inicio como parte de su mensaje de error. Puedes usar uno de esos valores para probar también mainnet: (debe ser una WIF compatible con mainnet)
  • bitcoinRpcUsername y bitcoinRpcPassword deben coincidir con lo que se configuró en bitcoin.conf desde el paso

Y

Actualiza la configuración para el servicio principal de ION en json/testnet-core-config.json:

  • didMethodName testnet: ion:test mainnet: ion

NOTA: Puedes configurar algunas variables de configuración a través de variables de entorno para simplificar. Las siguientes variables de entorno, si se configuran, anularán los valores enumerados en los archivos de configuración.

Variable de entorno Mapeo de configuración
BITCOIN_DATA_DIR bitcoinDataDirectory
BITCOIN_RPC_PASSWORD bitcoinRpcPassword
BITCOIN_WALLET bitcoinWalletImportString
BITCOIN_ENDPOINT bitcoinPeerUri
MONGO_ENDPOINT mongoDbConnectionString

Ejecuta los siguientes comandos para construir ION:

npm i npm run build

NOTA: Es posible que debas ejecutar npm install tsc antes de ejecutar npm run build para instalar TypeScript en entornos Linux/Mac.

NOTA: Debes volver a ejecutar npm run build cada vez que se modifique un archivo JSON de configuración.

Ejecuta el microservicio ION Bitcoin

Actualiza las rutas a continuación a donde editaste y guardaste los archivos de configuración del paso anterior.

ION_BITCOIN_CONFIG_FILE_PATH=/etc/ion/testnet-bitcoin-config.json ION_BITCOIN_VERSIONING_CONFIG_FILE_PATH=/etc/ion/testnet-bitcoin-versioning.json npm run bitcoin

NOTA: Este servicio no podrá iniciarse hasta que tu cliente Bitcoin Core tenga bloques después del bloque génesis de ION. Espera e inténtalo de nuevo más tarde si esto sucede.

Ejecuta el servicio principal de ION

(Opcional) Crea tus archivos de configuración a partir de plantillas

ion criptomoneda - Qué es la criptomoneda ion

NOTA: Esto no es necesario cuando se utiliza testnet porque los valores predeterminados son suficientes

Copia los archivos de configuración <testnet or mainnet>-core-config.json y <testnet or mainnet>-core-versioning.json a otro directorio (por ejemplo, /etc/ion/ o ~)

Inicia una nueva consola y ejecuta el siguiente comando para iniciar el servicio principal.

NOTA: Puedes configurar algunas variables de configuración a través de variables de entorno para simplificar. Las siguientes variables de entorno, si se configuran, anularán los valores enumerados en los archivos de configuración.

Variable de entorno Mapeo de configuración
IPFS_ENDPOINT ipfsHttpApiEndpointUri
BLOCKCHAIN_SERVICE_ENDPOINT blockchainServiceUri
MONGO_ENDPOINT mongoDbConnectionString
ION_CORE_CONFIG_FILE_PATH=/usr/local/src/ion/config/testnet-core-config.json ION_CORE_VERSIONING_CONFIG_FILE_PATH=/usr/local/src/ion/config/testnet-core-versioning.json npm run core

NOTA: Este servicio no podrá iniciarse hasta que tu servicio ION Bitcoin se haya iniciado correctamente.

Dale algo de tiempo para sincronizar las transacciones de ION.

Verifica que ION esté funcionando correctamente

Comprueba la siguiente resolución DID en tu navegador:

Cuánto vale un ION

El valor de ION no se basa en una criptomoneda en sí misma, ya que ION no es una criptomoneda tradicional. Es una red que se ejecuta sobre la cadena de bloques de Bitcoin, lo que significa que su valor está intrínsecamente ligado al valor de Bitcoin. Por lo tanto, el valor de ION puede considerarse como una representación del valor de Bitcoin en el contexto de la identidad descentralizada.

Sin embargo, la importancia de ION radica en su papel en el ecosistema de la identidad descentralizada. A medida que la adopción de la identidad descentralizada se expande, es posible que ION adquiera más valor, ya que se convierte en una tecnología fundamental para la gestión segura y confiable de la identidad en línea.

ion criptomoneda - Cuánto vale un ion

El valor de ION es complejo y está sujeto a la evolución del mercado de la identidad descentralizada y el valor de Bitcoin. Es importante seguir de cerca los desarrollos en este espacio para comprender mejor el valor potencial de ION.

Si quieres conocer otros artículos parecidos a Ion: la criptomoneda que impulsa la identidad descentralizada puedes visitar la categoría Criptomonedas.

Subir