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) (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ě.
-
Nainstalujte si uživatelské rozhraní IPFS (opens in a new tab).
-
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 -
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 (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:
-
Přejděte na řídicí panel (opens in a new tab) 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 (opens in a new tab), jako napříkladQmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ, ale to se pravděpodobně změní (opens in a new tab). -
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 (opens in a new tab).
-
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.