IPFS per interfacce utente decentralizzate
Hai scritto una nuova incredibile dApp. Hai persino scritto un'interfaccia utente per essa. Ma ora temi che qualcuno tenti di censurarla abbattendo la tua interfaccia utente, che si trova su un solo server nel cloud. In questo tutorial imparerai come evitare la censura caricando la tua interfaccia utente sull'interplanetary file system (IPFS) (opens in a new tab) in modo che chiunque sia interessato possa fissarla (pin) su un server per l'accesso futuro.
Potresti usare un servizio di terze parti come Fleek (opens in a new tab) per fare tutto il lavoro. Questo tutorial è per le persone che vogliono fare abbastanza per capire cosa stanno facendo, anche se richiede più lavoro.
Iniziare localmente
Esistono diversi provider IPFS di terze parti (opens in a new tab), ma è meglio iniziare eseguendo IPFS localmente per i test.
-
Installa l'interfaccia utente di IPFS (opens in a new tab).
-
Crea una directory con il tuo sito web. Se stai usando Vite (opens in a new tab), usa questo comando:
1pnpm vite build
123. In IPFS Desktop, fai clic su **Import > Folder** (Importa > Cartella) e seleziona la directory che hai creato nel passaggio precedente.344. Seleziona la cartella appena caricata e fai clic su **Rename** (Rinomina). Dalle un nome più significativo.565. Selezionala di nuovo e fai clic su **Share link** (Condividi link). Copia l'URL negli appunti. Il link sarà simile a `https://ipfs.io/ipfs/QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ`.786. Fai clic su **Status** (Stato). Espandi la scheda **Advanced** (Avanzate) per vedere l'indirizzo del gateway. Ad esempio, sul mio sistema l'indirizzo è `http://127.0.0.1:8080`.9107. Combina il percorso dal passaggio del link con l'indirizzo del gateway per trovare il tuo indirizzo. Ad esempio, per l'esempio precedente, l'URL è `http://127.0.0.1:8080/ipfs/QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ`. Apri quell'URL in un browser per vedere il tuo sito.1112## Caricamento \{#uploading\}1314Quindi ora puoi usare IPFS per servire file localmente, il che non è molto entusiasmante. Il passaggio successivo è renderli disponibili per il mondo quando sei offline.1516Esistono diversi [servizi di pinning](https://docs.ipfs.tech/concepts/persistence/#pinning-services) ben noti. Scegline uno. Qualunque servizio tu usi, devi creare un account e fornirgli il **content identifier (CID)** (identificatore di contenuto) nel tuo IPFS desktop.1718Personalmente, ho trovato [4EVERLAND](https://docs.4everland.org/storage/4ever-pin/guides) il più facile da usare. Ecco le istruzioni per usarlo:19201. Vai alla [dashboard](https://dashboard.4everland.org/overview) e accedi con il tuo portafoglio.21222. Nella barra laterale sinistra fai clic su **Storage > 4EVER Pin**.23243. Fai clic su **Upload > Selected CID**. Dai un nome al tuo contenuto e fornisci il CID da IPFS desktop. Attualmente un CID è una stringa che inizia con `Qm` seguita da 44 lettere e cifre che rappresentano un hash [codificato in base-58](https://medium.com/bootdotdev/base64-vs-base58-encoding-c25553ff4524), come `QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ`, ma [è probabile che questo cambi](https://docs.ipfs.tech/concepts/content-addressing/#version-1-v1).25264. Lo stato iniziale è **Queued** (In coda). Ricarica finché non cambia in **Pinned** (Fissato).27285. Fai clic sul tuo CID per ottenere il link. Puoi vedere la mia applicazione [qui](https://bafybeifqka2odrne5b6l5guthqvbxu4pujko2i6rx2zslvr3qxs6u5o7im.ipfs.dweb.link/).29306. Potresti dover attivare il tuo account per averlo fissato per più di un mese. L'attivazione dell'account costa circa 1$. Se lo hai chiuso, esci e accedi di nuovo per farti chiedere nuovamente di attivarlo.3132## Utilizzo da IPFS \{#using-from-ipfs\}3334A questo punto hai un link a un gateway centralizzato che serve il tuo contenuto IPFS. In breve, la tua interfaccia utente potrebbe essere un po' più sicura ma non è ancora resistente alla censura. Per una vera resistenza alla censura, gli utenti devono usare IPFS [direttamente da un browser](https://docs.ipfs.tech/install/ipfs-companion/#prerequisites).3536Una volta installato (e con IPFS desktop funzionante), puoi andare su [/ipfs/`<CID>`](https://any.site/ipfs/bafybeifqka2odrne5b6l5guthqvbxu4pujko2i6rx2zslvr3qxs6u5o7im) su qualsiasi sito e otterrai quel contenuto, servito in modo decentralizzato.3738## Svantaggi \{#drawbacks\}3940Non puoi eliminare in modo affidabile i file IPFS, quindi finché stai modificando la tua interfaccia utente, probabilmente è meglio lasciarla centralizzata o usare l'[interplanetary name system (IPNS)](https://docs.ipfs.tech/concepts/ipns/#mutability-in-ipfs), un sistema che fornisce mutabilità sopra IPFS. Naturalmente, qualsiasi cosa sia mutabile può essere censurata, nel caso di IPNS facendo pressione sulla persona con la chiave privata a cui corrisponde.4142Inoltre, alcuni pacchetti hanno problemi con IPFS, quindi se il tuo sito web è molto complicato potrebbe non essere una buona soluzione. E naturalmente, qualsiasi cosa si basi sull'integrazione del server non può essere decentralizzata solo avendo il lato client su IPFS.4344## Conclusione \{#conclusion\}4546Proprio come Ethereum ti consente di decentralizzare il database e gli aspetti della logica di business della tua dApp, IPFS ti consente di decentralizzare l'interfaccia utente. Questo ti permette di chiudere un ulteriore vettore di attacco contro la tua dApp.4748[Vedi qui per altri miei lavori](https://cryptodocguy.pro/).Mostra tuttoUltimo aggiornamento della pagina: 25 febbraio 2026