Aprende

Conoce Acurast. Descubre nuestra historia, sumérgete en la documentación técnica y mira con quién colaboramos en el ecosistema.

Glowing lime-green storage crates stacked above a smartphone, illustrating Garage S3-compatible object storage deployed on the Acurast decentralized compute network with Cargo

Cómo ejecutar el almacenamiento de objetos Garage, compatible con S3, en computación descentralizada

Cajas de almacenamiento luminosas de color verde lima apiladas sobre un teléfono, que ilustran el almacenamiento de objetos Garage, compatible con S3, desplegado en la red de computación descentralizada de Acurast con Cargo

 

 

El almacenamiento de objetos está en todas partes. Las aplicaciones lo usan para guardar imágenes, copias de seguridad, documentos, recursos de la aplicación, conjuntos de datos y prácticamente cualquier otro archivo que tenga que vivir en algún lugar fuera de la propia aplicación.

 

Para muchos desarrolladores, eso significa recurrir a un servicio de almacenamiento compatible con S3 en la nube.

 

Pero S3 es una interfaz, no una ubicación. El almacenamiento compatible con S3 implementa la misma API que Amazon S3, por lo que las aplicaciones y herramientas creadas para S3 pueden interactuar con él independientemente de dónde esté alojado el almacenamiento subyacente. Esto es importante porque permite usar las herramientas S3 de siempre mientras el almacenamiento en sí se ejecuta en infraestructura descentralizada.

 

En esta guía vas a desplegar Garage, una solución de almacenamiento de objetos de código abierto compatible con S3, en la red descentralizada de Processors de Acurast.  Configurarás el despliegue, lanzarás Garage con Cargo, te conectarás al endpoint compatible con S3 resultante y subirás tu primer archivo.

 

Al final tendrás una instancia de almacenamiento compatible con S3 ejecutándose en un Processor de Acurast.

 

El almacenamiento también es una carga de trabajo de computación

 

Cuando se piensa en computación descentralizada, puede que el almacenamiento no sea la primera carga de trabajo que venga a la mente. Pero un servidor de almacenamiento de objetos es, al fin y al cabo, software.

 

Necesita un entorno de ejecución, red, recursos de computación y un lugar donde guardar sus datos. Si le das el entorno Linux adecuado, puede funcionar en muchos sitios distintos.

 

Ahí es donde entra Codename Cargo.

 

Cargo amplía Acurast más allá de su anterior entorno de ejecución Node.js al permitir cargas de trabajo completas basadas en Linux. Los desarrolladores pueden desplegar aplicaciones creadas con Python, Go, Rust, C++ y otras tecnologías que funcionan en Linux. Eso permite tomar software existente y ejecutarlo en la red de Acurast sin reconstruirlo específicamente para un entorno de ejecución limitado. Garage es un buen ejemplo.

 

En lugar de crear un protocolo de almacenamiento a medida para infraestructura descentralizada, es posible desplegar software que ya implementa la conocida API de S3.

 

El resultado es un servicio de almacenamiento de objetos con el que pueden comunicarse las herramientas y aplicaciones compatibles con S3 que ya existen.

 

Cómo desplegar Garage en Acurast

 

El repositorio Acurast Example Apps contiene un ejemplo de Garage con casi toda la configuración de base ya resuelta. Los scripts de despliegue descargan Garage, configuran el servicio, establecen el túnel necesario y exponen la información que necesitarás para conectarte.

 

Eso deja relativamente poca configuración por hacer antes de lanzarlo.

 

Paso 1: abre la app de ejemplo de Garage

 

Empieza por clonar el repositorio Acurast Example Apps.

 

Ve a la carpeta App Cargo Garage.

 

Dentro encontrarás todos los archivos necesarios para el despliegue. La mayoría son archivos de configuración que no hace falta modificar. Se encargan de tareas como descargar el binario de Garage, preparar el entorno y establecer el túnel que hace accesible el servicio.

 

Lo principal que tendrás que editar es el archivo de entorno.

 

Paso 2: configura el despliegue

 

El primer valor que necesitas es una frase mnemónica de Acurast. Esta cuenta se usa para autorizar y pagar el despliegue. Por seguridad, no uses la frase mnemónica asociada a tu wallet principal. En su lugar, genera una frase mnemónica aparte para los despliegues y transfiere solo los fondos necesarios para la carga de trabajo. Las credenciales sensibles de una wallet nunca deben exponerse innecesariamente en configuraciones locales ni en entornos de CLI.

 

A continuación, configura la URL de callback. Cuando Acurast prepara el despliegue, genera URL únicas que usarás para acceder a Garage. Esas URL tienen que entregarse en algún sitio. El ejemplo lo resuelve enviando una solicitud POST a la URL de callback que indiques. Por tanto, puedes usar cualquier servicio que pueda recibir una solicitud POST y mostrar su contenido. En este tutorial se usa webhook.watch. Crea un endpoint personal, copia su URL y añádela a la configuración.

 

Cuando el despliegue esté listo, verás llegar la información del despliegue a ese endpoint.

 

Paso 3: configura SSH y la red

 

También configurarás una contraseña SSH. El acceso SSH no es necesario durante el funcionamiento normal si todo va como se espera. Está ahí sobre todo como alternativa por si necesitas conectarte directamente al Processor para depurar o resolver problemas.

 

Usa una contraseña segura. Como red del despliegue, se recomienda mainnet, porque da acceso a un conjunto más amplio de Processors disponibles.

 

También verás un ajuste para el sufijo de dominio. En el momento de escribir este tutorial, tienes que proporcionar tu propio dominio y configurar los registros DNS correspondientes. Se espera que este proceso se automatice más, así que el requisito exacto puede cambiar a medida que evolucione Cargo.

 

Por último, configura el nombre del bucket. Para un despliegue básico, puedes dejar el valor predeterminado.

 

Revisa acurast.json 

 

Antes de desplegar, echa un vistazo al archivo acurast.json. Contiene ajustes adicionales que controlan cómo se ejecuta la carga de trabajo.

 

Un parámetro importante es la duración del despliegue. En este ejemplo, Garage se ejecutará durante cuatro horas. Es suficiente para hacer pruebas, pero puedes aumentar la duración según lo que estés construyendo.

 

Aquí también puedes configurar la red, aunque en este caso se deja en mainnet. Asegúrate también de indicar la versión de Android necesaria. Es posible que los entornos de Processors más antiguos no admitan todas las funciones que requiere el despliegue de Garage.

 

Hecho esto, ya puedes lanzar el servicio de almacenamiento.

 

Lanza Garage

 

Desde el directorio de ejemplo de Garage, ejecuta: acurast deploy

 

La CLI de Acurast te guiará por el proceso de despliegue. Antes de enviar el despliegue, se te mostrará la comisión asociada. Si la comisión configurada es más alta de lo necesario, puedes usar el valor sugerido.

 

Confirma el despliegue y Acurast se encarga del resto. El despliegue se registra, se prepara un Processor y los servicios necesarios se inician automáticamente.

 

Al cabo de unos minutos, deberías empezar a ver solicitudes en el endpoint de callback que configuraste antes.

 

Verifica el despliegue

 

Las solicitudes de callback ofrecen una visión útil de lo que está pasando en el Processor. Primero verás registros que indican que el entorno se está iniciando.

 

Después, el Processor instala el servidor SSH, descarga Garage y establece el túnel.

 

Finalmente recibirás la información que estabas esperando: las URL y credenciales generadas que necesitas para acceder al despliegue de Garage.

 

Después, los registros confirmarán que Garage está totalmente desplegado y en línea. Ya tienes un servicio de almacenamiento compatible con S3 ejecutándose en un Processor de Acurast.

 

Ahora toca conectarse.

 

Conéctate a tu almacenamiento compatible con S3

 

En este ejemplo se usa una interfaz sencilla creada para demostrar la conexión.

 

Para conectarte, necesitas cuatro datos del despliegue:

 

  • La URL del endpoint generada
  • El ID de la clave de acceso
  • La clave de acceso secreta
  • El nombre del bucket

 

Introduce esos valores en el cliente y haz clic en Connect. El cliente ya se está comunicando con la instancia de Garage que se ejecuta en tu Processor de Acurast.

 

Como Garage ofrece una interfaz compatible con S3, no estás limitado a la interfaz de demostración. Cualquier cliente S3 compatible puede configurarse para interactuar con el despliegue usando el endpoint y las credenciales correspondientes.

 

Sube tu primer archivo

 

Ahora comprueba que el almacenamiento funciona de verdad. Elige un archivo de prueba (una imagen va muy bien) y súbelo desde la interfaz.

 

Cuando termine la subida, el archivo aparecerá en el bucket. Desde ahí puedes obtener su URL, compartirlo, descargarlo o eliminarlo. Es una demostración sencilla, pero de eso se trata precisamente. Desde el punto de vista del cliente, estás interactuando con un almacenamiento de objetos compatible con S3 de lo más familiar. Lo inusual es dónde se ejecuta ese almacenamiento.

 

En lugar de desplegar el servicio en una instancia en la nube tradicional, Garage se ejecuta ahora en un Processor de Acurast.

 

Un único Processor no es una estrategia de copia de seguridad

 

Hay una limitación importante que debes entender antes de usar esta configuración como almacenamiento de producción.

 

En este ejemplo, tus datos residen en un único Processor. Si ese Processor deja de estar disponible, se borra o el despliegue de Acurast caduca, los datos almacenados en él pueden desaparecer para siempre. Para experimentar, desarrollar y hacer pruebas, es perfectamente útil. Para almacenamiento de producción, no basta. Una arquitectura de producción necesita redundancia. Una opción sería desplegar varias instancias de Garage en distintos Processors y configurar la replicación entre ellas. Así, si un Processor se desconecta, sigue habiendo otra copia de los datos disponible. Esta distinción importa porque ejecutar una API compatible con S3 y ofrecer un almacenamiento de objetos duradero son dos problemas distintos.

 

El ejemplo resuelve el primero. Una arquitectura de producción también debe resolver el segundo. 

 

De cara al futuro, Acurast está explorando soluciones en las que ya no haría falta depender de un único Processor.  

 

Más que un servidor compatible con S3

 

Garage demuestra algo más amplio sobre lo que Cargo aporta a Acurast. No se trata de crear un nuevo sistema de almacenamiento específicamente para la computación descentralizada. Se trata de tomar software Linux existente y darle un nuevo lugar donde ejecutarse. Es una distinción importante.

 

La compatibilidad con S3 también significa que las aplicaciones no tienen por qué entender lo que ocurre por debajo. Pueden seguir interactuando con una API conocida mientras cambia la infraestructura subyacente.

 

Y Garage es solo un ejemplo. El mismo enfoque puede extenderse a bases de datos, servicios de backend, API, infraestructura para desarrolladores, servidores de juegos, agentes de IA y otras cargas de trabajo Linux.

 

La pregunta no es solo:

 

«¿Qué se puede construir para la infraestructura descentralizada?»

 

Es, cada vez más:

 

«¿Qué infraestructura existente se puede ejecutar allí?»

 

Con Cargo, esa lista es mucho más larga.

 

Mira el videotutorial completo

 

Esta guía recoge los pasos principales para desplegar Garage en Acurast, pero el video que la acompaña muestra el proceso de principio a fin.

 

Verás cómo configurar la aplicación de ejemplo de Garage, lanzarla con la CLI de Acurast, seguir los registros del despliegue, obtener las credenciales generadas, conectar un cliente compatible con S3 y subir un archivo.

 

También es una demostración útil de la idea de fondo de Cargo: las aplicaciones Linux existentes no necesitan necesariamente una infraestructura en la nube tradicional para funcionar.

 

Empieza con un bucket compatible con S3. Después, mira qué más puedes trasladar.