Přejít na hlavní obsah

IPFS pro decentralizovaná uživatelská rozhraní

ipfs
dapps
frontend
Začátečník
Ori Pomerantz
29. června 2024
4 minut čtení

Napsali jste úžasnou novou decentralizovanou aplikaci (dapp). Dokonce jste pro ni napsali uživatelské rozhraní. Nyní se ale obáváte, že se ji někdo pokusí cenzurovat tím, že vaše uživatelské rozhraní, které běží jen na jednom serveru v cloudu, odstaví. V tomto tutoriálu se dozvíte, jak se vyhnout cenzuře umístěním vašeho uživatelského rozhraní na meziplanetární souborový systém (IPFS) (opens in a new tab), aby si jej kdokoli mohl připnout (pin) na server pro budoucí přístup.

K provedení veškeré práce byste mohli použít službu třetí strany, jako je Fleek (opens in a new tab). Tento tutoriál je pro lidi, kteří chtějí udělat dost pro to, aby pochopili, co dělají, i když to znamená více práce.

Začínáme lokálně

Existuje několik poskytovatelů IPFS třetích stran (opens in a new tab), ale pro testování je nejlepší začít spuštěním IPFS lokálně.

  1. Nainstalujte si uživatelské rozhraní IPFS (opens in a new tab).

  2. Vytvořte adresář se svým webem. Pokud používáte Vite (opens in a new tab), použijte tento příkaz:

    pnpm vite build
    
  3. V aplikaci IPFS Desktop klikněte na Import > Folder a vyberte adresář, který jste vytvořili v předchozím kroku.

  4. Vyberte složku, kterou jste právě nahráli, a klikněte na Rename (Přejmenovat). Dejte jí smysluplnější název.

  5. Znovu ji vyberte a klikněte na Share link (Sdílet odkaz). Zkopírujte URL do schránky. Odkaz bude vypadat podobně jako https://ipfs.io/ipfs/QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ.

  6. Klikněte na Status. Rozbalte kartu Advanced (Pokročilé), abyste viděli adresu brány. Například na mém systému je adresa http://127.0.0.1:8080.

  7. Zkombinujte cestu z kroku s odkazem s adresou brány, abyste získali svou adresu. Například pro výše uvedený příklad je URL http://127.0.0.1:8080/ipfs/QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ. Otevřete tuto URL v prohlížeči a uvidíte svůj web.

Nahrávání

Nyní tedy můžete používat IPFS k lokálnímu poskytování souborů, což není příliš vzrušující. Dalším krokem je zpřístupnit je světu, i když jste offline.

Existuje řada známých pinovacích služeb (opens in a new tab). Vyberte si jednu z nich. Ať už použijete jakoukoli službu, musíte si vytvořit účet a poskytnout jí identifikátor obsahu (CID) z vašeho IPFS Desktopu.

Osobně mi přišlo nejjednodušší použít 4EVERLAND (opens in a new tab). Zde je návod, jak na to:

  1. Přejděte na řídicí panel (opens in a new tab) a přihlaste se pomocí své peněženky.

  2. V levém postranním panelu klikněte na Storage > 4EVER Pin.

  3. Klikněte na Upload > Selected CID. Pojmenujte svůj obsah a zadejte CID z IPFS Desktopu. V současné době je CID řetězec, který začíná na Qm a po něm následuje 44 písmen a číslic, které představují hash zakódovaný v base-58 (opens in a new tab), jako například QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ, ale to se pravděpodobně změní (opens in a new tab).

  4. Počáteční stav je Queued (Ve frontě). Obnovujte stránku, dokud se nezmění na Pinned (Připnuto).

  5. Kliknutím na vaše CID získáte odkaz. Moji aplikaci si můžete prohlédnout zde (opens in a new tab).

  6. Možná budete muset provést aktivaci účtu, aby byl obsah připnutý déle než měsíc. Aktivace účtu stojí asi 1 dolar. Pokud jste výzvu zavřeli, odhlaste se a znovu se přihlaste, abyste byli k aktivaci vyzváni znovu.

Používání z IPFS

V tuto chvíli máte odkaz na centralizovanou bránu, která poskytuje váš obsah z IPFS. Stručně řečeno, vaše uživatelské rozhraní může být o něco bezpečnější, ale stále není odolné vůči cenzuře. Pro skutečnou odolnost vůči cenzuře musí uživatelé používat IPFS přímo z prohlížeče (opens in a new tab).

Jakmile to budete mít nainstalované (a desktopové IPFS bude fungovat), můžete na jakémkoli webu přejít na /ipfs/<CID> (opens in a new tab) a získáte daný obsah, který je poskytován decentralizovaným způsobem.

Nevýhody

Soubory na IPFS nelze spolehlivě smazat, takže dokud své uživatelské rozhraní upravujete, je pravděpodobně nejlepší nechat ho buď centralizované, nebo použít interplanetary name system (IPNS) (opens in a new tab), což je systém, který poskytuje měnitelnost nad IPFS. Samozřejmě, cokoli, co je měnitelné, může být cenzurováno, v případě IPNS nátlakem na osobu se soukromým klíčem, kterému odpovídá.

Některé balíčky mají navíc s IPFS problém, takže pokud je váš web velmi složitý, nemusí to být dobré řešení. A samozřejmě, cokoli, co spoléhá na integraci se serverem, nelze decentralizovat jen tím, že klientská část bude na IPFS.

Objevitelnost přes ENS

Pokud na svůj web nasměrujete jméno ENS (například vitalik.eth), bude považován za plně decentralizovanou webovou stránku a bude automaticky připnut službou dweb3.wtf (opens in a new tab), a také bude vyhledatelný prostřednictvím vyhledávače web3compass.net (opens in a new tab), podobně jako to dělá DuckDuckGo, Brave Search nebo Google pro tradiční web.

Závěr

Stejně jako vám Ethereum umožňuje decentralizovat databázi a obchodní logiku vaší dapp, IPFS vám umožňuje decentralizovat uživatelské rozhraní. To vám umožní uzavřít další vektor útoku proti vaší dapp.

Zde najdete další mou práci (opens in a new tab).