IPFS pro decentralizovaná uživatelská rozhraní
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) (otevře se v nové záložce), 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 (otevře se v nové záložce). 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 (otevře se v nové záložce), ale pro testování je nejlepší začít spuštěním IPFS lokálně.
-
Nainstalujte si uživatelské rozhraní IPFS (otevře se v nové záložce).
-
Vytvořte adresář se svým webem. Pokud používáte Vite (otevře se v nové záložce), použijte tento příkaz:
pnpm vite build -
V aplikaci IPFS Desktop klikněte na Import > Folder a vyberte adresář, který jste vytvořili v předchozím kroku.
-
Vyberte složku, kterou jste právě nahráli, a klikněte na Rename (Přejmenovat). Dejte jí smysluplnější název.
-
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. -
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. -
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 (otevře se v nové záložce). 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 (otevře se v nové záložce). Zde je návod, jak na to:
-
Přejděte na řídicí panel (otevře se v nové záložce) a přihlaste se pomocí své peněženky.
-
V levém postranním panelu klikněte na Storage > 4EVER Pin.
-
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
Qma po něm následuje 44 písmen a číslic, které představují hash zakódovaný v base-58 (otevře se v nové záložce), jako napříkladQmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ, ale to se pravděpodobně změní (otevře se v nové záložce). -
Počáteční stav je Queued (Ve frontě). Obnovujte stránku, dokud se nezmění na Pinned (Připnuto).
-
Kliknutím na vaše CID získáte odkaz. Moji aplikaci si můžete prohlédnout zde (otevře se v nové záložce).
-
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 (otevře se v nové záložce).
Jakmile to budete mít nainstalované (a desktopové IPFS bude fungovat), můžete na jakémkoli webu přejít na /ipfs/<CID> (otevře se v nové záložce) 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) (otevře se v nové záložce), 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 (otevře se v nové záložce), a také bude vyhledatelný prostřednictvím vyhledávače web3compass.net (otevře se v nové záložce), 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.