Scopri

Conosci Acurast. Esplora la nostra storia, approfondisci la documentazione tecnica e scopri con chi collaboriamo nell’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

Come eseguire lo storage a oggetti Garage compatibile con S3 su calcolo decentralizzato

Casse di storage verde lime luminose impilate sopra uno smartphone: rappresentano il deploy dello storage a oggetti Garage compatibile con S3 sulla rete di calcolo decentralizzato Acurast con Cargo

 

 

Lo storage a oggetti è ovunque. Le applicazioni lo usano per memorizzare immagini, backup, documenti, asset applicativi, dataset e praticamente qualsiasi altro file che deve risiedere da qualche parte al di fuori dell’applicazione stessa.

 

Per molti sviluppatori, questo significa ricorrere a un servizio di storage compatibile con S3 in esecuzione nel cloud.

 

Ma S3 è un’interfaccia, non un luogo. Lo storage compatibile con S3 implementa la stessa API di Amazon S3, quindi le applicazioni e gli strumenti creati per S3 possono interagire con esso indipendentemente da dove sia ospitato lo storage sottostante. È importante perché permette di usare i consueti strumenti S3 mentre lo storage stesso gira su un’infrastruttura decentralizzata.

 

In questa guida eseguirai il deploy di Garage, una soluzione open source di storage a oggetti compatibile con S3, sulla rete decentralizzata di Processor di Acurast. Configurerai il deployment, avvierai Garage con Cargo, ti collegherai all’endpoint compatibile con S3 risultante e caricherai il tuo primo file.

 

Alla fine avrai un’istanza di storage compatibile con S3 in esecuzione su un Processor Acurast.

 

Anche lo storage è un carico di lavoro di calcolo

 

Quando si pensa al calcolo decentralizzato, lo storage potrebbe non essere il primo carico di lavoro che viene in mente. Ma un server di storage a oggetti, in fondo, è software.

 

Ha bisogno di un runtime, di connettività di rete, di risorse di calcolo e di un posto in cui memorizzare i dati. Dagli l’ambiente Linux giusto e potrà girare in molti posti diversi.

 

È qui che entra in gioco Codename Cargo.

 

Cargo estende Acurast oltre il precedente runtime Node.js, abilitando carichi di lavoro completi basati su Linux. Gli sviluppatori possono eseguire il deploy di applicazioni create con Python, Go, Rust, C++ e altre tecnologie che girano su Linux. Così diventa possibile prendere software esistente ed eseguirlo sulla rete Acurast senza ricostruirlo appositamente per un runtime limitato. Garage ne è un esempio utile.

 

Invece di creare un protocollo di storage personalizzato per l’infrastruttura decentralizzata, si può eseguire il deploy di software che implementa già la nota API S3.

 

Il risultato è un servizio di storage a oggetti con cui gli strumenti e le applicazioni compatibili con S3 esistenti possono comunicare.

 

Deploy di Garage su Acurast

 

Il repository Acurast Example Apps contiene un esempio Garage in cui la maggior parte della configurazione di base è già pronta. Gli script di deployment scaricano Garage, configurano il servizio, stabiliscono il tunnel necessario ed espongono le informazioni che ti serviranno per collegarti.

 

Resta quindi una quantità di configurazione relativamente ridotta prima di poterlo avviare.

 

Passaggio 1: apri l’app di esempio Garage

 

Inizia clonando il repository Acurast Example Apps.

 

Vai alla cartella App Cargo Garage.

 

All’interno troverai tutti i file necessari per il deployment. La maggior parte sono file di configurazione e non vanno modificati. Si occupano di attività come scaricare il binario di Garage, preparare l’ambiente e stabilire il tunnel che rende accessibile il servizio.

 

La configurazione principale da modificare è il file d’ambiente.

 

Passaggio 2: configura il deployment

 

Il primo valore che ti serve è una frase mnemonica Acurast. Questo account viene usato per autorizzare e pagare il deployment. Per sicurezza, non usare la frase mnemonica associata al tuo wallet principale. Genera invece una frase mnemonica separata per i deployment e trasferisci solo i fondi necessari per il carico di lavoro. Le credenziali sensibili del wallet non dovrebbero mai essere esposte inutilmente nella configurazione locale o negli ambienti CLI.

 

Poi configura l’URL di callback. Quando Acurast prepara il deployment, genera URL univoci che userai per accedere a Garage. Questi URL devono essere recapitati da qualche parte. L’esempio se ne occupa inviando una richiesta POST all’URL di callback che fornisci. Puoi quindi usare qualsiasi servizio in grado di ricevere una richiesta POST e mostrarne il contenuto. In questo tutorial si usa webhook.watch. Crea un endpoint personale, copiane l’URL e aggiungilo alla configurazione.

 

Quando il deployment è pronto, vedrai arrivare le relative informazioni su quell’endpoint.

 

Passaggio 3: configura SSH e la rete

 

Configurerai anche una password SSH. L’accesso SSH non è necessario durante il normale funzionamento se tutto va come previsto. Serve soprattutto come soluzione di riserva se devi collegarti direttamente al Processor per debug o risoluzione dei problemi.

 

Usa una password sicura. Come rete per il deployment, mainnet è l’opzione consigliata perché dà accesso a un bacino più ampio di Processor disponibili.

 

Vedrai anche un’impostazione per il suffisso di dominio. Al momento della stesura di questo tutorial, devi fornire un tuo dominio e configurare i record DNS appropriati. Questo processo dovrebbe diventare più automatizzato, quindi il requisito esatto potrebbe cambiare con l’evoluzione di Cargo.

 

Infine, configura il nome del bucket. Per un deployment di base, puoi semplicemente lasciarlo al valore predefinito.

 

Controlla acurast.json 

 

Prima del deploy, dai un’occhiata al file acurast.json. Contiene impostazioni aggiuntive che controllano l’esecuzione del carico di lavoro.

 

Un parametro importante è la durata del deployment. In questo esempio Garage resterà in esecuzione per quattro ore. È sufficiente per i test, ma puoi aumentare la durata in base a ciò che stai costruendo.

 

Qui puoi configurare anche la rete, anche se in questo esempio resta su mainnet. Assicurati inoltre di puntare alla versione di Android richiesta. Gli ambienti Processor più vecchi potrebbero non supportare tutte le funzionalità richieste dal deployment di Garage.

 

Fatto questo, sei pronto ad avviare il servizio di storage.

 

Avvia Garage

 

Dalla directory dell’esempio Garage, esegui: acurast deploy

 

La CLI di Acurast ti guiderà nel processo di deployment. Prima di inviare il deployment, ti verrà mostrata la relativa commissione. Se la commissione configurata è più alta del necessario, puoi usare invece il valore suggerito.

 

Conferma il deployment e da lì in poi ci pensa Acurast. Il deployment viene registrato, un Processor viene preparato e i servizi necessari si avviano automaticamente.

 

Dopo qualche minuto dovresti iniziare a vedere richieste in arrivo sull’endpoint di callback configurato in precedenza.

 

Verifica il deployment

 

Le richieste di callback offrono una visione utile di ciò che accade sul Processor. Per prima cosa vedrai i log che indicano l’avvio dell’ambiente.

 

Il Processor installa poi il server SSH, scarica Garage e stabilisce il tunnel.

 

Alla fine riceverai le informazioni che stavi aspettando: gli URL generati e le credenziali necessarie per accedere al deployment di Garage.

 

I log confermeranno poi che il deploy di Garage è completato e il servizio è online. Ora hai un servizio di storage compatibile con S3 in esecuzione su un Processor Acurast.

 

Ora è il momento di collegarsi.

 

Collegati al tuo storage compatibile con S3

 

In questo esempio si usa una semplice interfaccia creata per dimostrare la connessione.

 

Per collegarti ti servono quattro informazioni dal deployment:

 

  • L’URL dell’endpoint generato
  • L’ID della chiave di accesso (access key ID)
  • La chiave di accesso segreta (secret access key)
  • Il nome del bucket

 

Inserisci questi valori nel client e fai clic su Connect. Il client ora comunica con l’istanza di Garage in esecuzione sul tuo Processor Acurast.

 

Poiché Garage fornisce un’interfaccia compatibile con S3, non sei limitato all’interfaccia dimostrativa. Qualsiasi client S3 compatibile può essere configurato per interagire con il deployment usando l’endpoint e le credenziali appropriati.

 

Carica il tuo primo file

 

Ora verifica che lo storage funzioni davvero. Scegli un file di prova (un’immagine va benissimo) e caricalo tramite l’interfaccia.

 

Al termine del caricamento, il file compare nel bucket. Da lì puoi recuperarne l’URL, condividerlo, scaricarlo o eliminarlo. È una dimostrazione semplice, ma è proprio questo il punto. Dal punto di vista del client, stai interagendo con un normale storage a oggetti compatibile con S3. La parte insolita è dove quello storage è in esecuzione.

 

Invece di eseguire il deploy del servizio su un’istanza cloud tradizionale, Garage ora gira su un Processor Acurast.

 

Un solo Processor non è una strategia di backup

 

C’è un limite importante da capire prima di trattare questa configurazione come storage di produzione.

 

In questo esempio, i tuoi dati risiedono su un singolo Processor. Se quel Processor diventa non disponibile, viene cancellato o il deployment Acurast scade, i dati memorizzati lì possono sparire definitivamente. Per sperimentazione, sviluppo e test è perfettamente utile. Per lo storage di produzione non basta. Un’architettura di produzione richiede ridondanza. Un approccio potrebbe essere eseguire il deploy di più istanze di Garage su Processor diversi e configurare la replica tra di esse. Così, se un Processor va offline, un’altra copia dei dati resta disponibile. Questa distinzione è importante perché eseguire un’API compatibile con S3 e fornire uno storage a oggetti durevole sono due problemi diversi.

 

L’esempio risolve il primo. Un’architettura di produzione deve risolvere anche il secondo. 

 

Per il futuro, Acurast sta valutando soluzioni in cui la dipendenza da un singolo Processor non sarebbe più necessaria.  

 

Più di un server compatibile con S3

 

Garage dimostra qualcosa di più ampio su ciò che Cargo porta ad Acurast. Non si tratta di creare un nuovo sistema di storage appositamente per il calcolo decentralizzato. Si tratta di prendere software Linux esistente e dargli un nuovo posto in cui girare. È una distinzione importante.

 

La compatibilità con S3 significa anche che le applicazioni non hanno necessariamente bisogno di capire cosa succede sotto. Possono continuare a interagire con un’API familiare mentre l’infrastruttura sottostante cambia.

 

E Garage è solo un esempio. Lo stesso approccio può estendersi a database, servizi di backend, API, infrastruttura per sviluppatori, server di gioco, agenti IA e altri carichi di lavoro Linux.

 

La domanda non è solo:

 

“Cosa si può costruire per l’infrastruttura decentralizzata?”

 

È sempre più spesso:

 

“Quale infrastruttura esistente si può far girare lì?”

 

Con Cargo, quell’elenco si allunga molto.

 

Guarda il video tutorial completo

 

Questa guida illustra i passaggi principali per il deploy di Garage su Acurast, ma il video tutorial che la accompagna mostra il processo dall’inizio alla fine.

 

Vedrai come configurare l’applicazione di esempio Garage, avviarla con la CLI di Acurast, seguire i log del deployment, recuperare le credenziali generate, collegare un client compatibile con S3 e caricare un file.

 

È anche una dimostrazione utile dell’idea più ampia alla base di Cargo: le applicazioni Linux esistenti non hanno necessariamente bisogno di un’infrastruttura cloud tradizionale per funzionare.

 

Inizia con un bucket compatibile con S3. Poi scopri cos’altro puoi spostare.