Výkon IPFS: Jak Zrychlit Načítání Souborů a Odezvu Gateway
Praktické techniky pro zlepšení rychlosti načítání souborů IPFS: dedikované gateway, strategie cache, předběžné načítání a integrace CDN.
Nacho founded IPFS.NINJA to make content-addressed storage feel as simple as an S3 PUT — a single API call, a permanent CID, no wallets or peer discovery to reason about.

- Nahraďte veřejné brány vyhrazenou branou a snižte latenci IPFS ze sekund na méně než 200 ms.
- Veřejné brány provádějí DHT vyhledávání u studených CID, což přidává 2–15 sekund, než se obsah vyřeší.
- Připínejte soubory při zápisu, nikoli při čtení, aby je brána měla už předtím, než přijde první požadavek.
- Spárujte vyhrazenou bránu s CDN edge, abyste snížili globální latenci IPFS na 10–50 ms.
„IPFS je pomalé” je jedna z nejčastějších vývojářských stížností — a také jedna z nejlépe řešitelných. Viníkem je téměř vždy metoda přístupu, nikoli samotný protokol. Tato příručka popisuje čtyři techniky, které eliminují latenci IPFS v produkci.

Vyberte metodu přístupu k IPFS podle rychlosti#
| Metoda přístupu | Typické TTFB | Kdy použít |
|---|---|---|
Veřejná gateway (ipfs.io, dweb.link) | 2–15 s | Pouze vývoj a testování |
| Dedikovaná gateway (připnutý obsah) | 50–200 ms | Veškerý produkční provoz |
| Dedikovaná gateway + CDN edge | 10–50 ms | Globální uživatelská základna |
| Endpoint pro optimalizaci obrázků | <100 ms (teplá cache) | Veškerý obrazový obsah |
Pokud v produkci používáte veřejné gateway, přejděte na dedikovanou gateway a většina latence okamžitě zmizí.
Proč jsou veřejné gateway pomalé#
Veřejné gateway provádějí DHT (Distributed Hash Table) vyhledávání pro každé CID, které nedávno neviděly. DHT vyhledávání znamená dotazování desítek peerů v síti, aby se zjistilo, kdo obsah drží — tento zpáteční výlet trvá u studené žádosti 2–15 sekund.
I při zásahu cache veřejné gateway obsluhují miliony uživatelů. Váš nedávno připnutý soubor má nízkou prioritu v cache a může být vyhozen mezi požadavky.
Řešení 1: Dedikovaná gateway#
Dedikovaná gateway je privátní pro váš účet. Soubory, které připnete, jsou v této gateway okamžitě uloženy do cache — žádné DHT vyhledávání při žádném požadavku, studené ani teplé.
# Před: veřejná gateway, pomalá a nespolehlivá
curl https://ipfs.io/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
# Po: dedikovaná gateway, rychlá a deterministická
curl https://my-app.gw.ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdiVytvořte gateway ve svém řídicím panelu IPFS.NINJA a nastavte slug tak, aby odpovídal vašemu projektu. Sluga gateway podporují režim omezeného přístupu (vyžadován token) nebo otevřený režim pro veřejné statické prostředky.
Řešení 2: Připněte při zápisu, ne při čtení#
Připněte soubory v okamžiku jejich vytvoření, aby je gateway měla dříve, než je uživatelé požadují. Nejrychlejší požadavek je ten, který nikdy nezpůsobí chybu cache.
# Nahrajte a připněte v jednom kroku
curl -X POST https://api.ipfs.ninja/upload/new \
-H "X-Api-Key: bws_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" \
-H "Content-Type: application/json" \
-d '{
"content": {
"data": "BASE64_ENCODED_CONTENT",
"type": "image/png"
},
"description": "Product hero image v2"
}'
# Odpověď — uložte CID, okamžitě obsluhujte URL
# {
# "cid": "bafy...",
# "sizeMB": 0.24,
# "uris": {
# "ipfs": "ipfs://bafy...",
# "url": "https://ipfs.ninja/ipfs/bafy..."
# }
# }Pokud máte existující CID z jiného uzlu nebo pinningové služby, znovu připněte bez opětovného nahrávání:
curl -X POST https://api.ipfs.ninja/pin \
-H "X-Api-Key: bws_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" \
-H "Content-Type: application/json" \
-d '{"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"}'Viz jak nahrát soubory do IPFS pro úplnou referenci nahrávacího API.
Řešení 3: CDN před vaší gateway#
Dedikované gateway obsluhují z pevné oblasti. Pokud vaši uživatelé pokrývají kontinenty, přidejte vrstvu CDN edge pro obsluhu z nejbližšího bodu přítomnosti.
Protože IPFS je adresováno obsahem — dané CID vždy odpovídá identickým bytům — můžete ukládat do cache navždy:
Cache-Control: public, max-age=31536000, immutablePříklad s Cloudflare (bezplatná úroveň pokrývá většinu zátěží se statickými prostředky):
- Přidejte subdoménu vaší gateway (
my-app.gw.ipfs.ninja) jako proxovaný CNAME v Cloudflare. - Vytvořte pravidlo stránky:
my-app.gw.ipfs.ninja/ipfs/*→ Cache Everything, Edge Cache TTL: měsíc. - První požadavek zasáhne gateway a je uložen do cache v nejbližším edge PoP. Všechny následující požadavky jsou obsluhovány z Cloudflare.
Výsledek: globální TTFB klesne z 50–200 ms na 10–50 ms.
Řešení 4: API pro optimalizaci obrázků#
Surové IPFS obrázky v plném rozlišení zpomalují stránky a poškozují Core Web Vitals. Použijte endpoint pro optimalizaci obrázků k přeškálování na edge a obsluze moderních formátů:
# Originál (plné rozlišení přes gateway)
https://my-app.gw.ipfs.ninja/ipfs/bafy...
# Přeškálováno na šířku 800 px, převedeno na WebP
https://api.ipfs.ninja/image/bafy...?w=800&format=webp
# Čtvercový náhled
https://api.ipfs.ninja/image/bafy...?w=200&h=200&fit=coverV Reactu:
function IPFSImage({ cid, width }) {
return (
<img
src={`https://api.ipfs.ninja/image/${cid}?w=${width}&format=webp`}
width={width}
loading="lazy"
decoding="async"
/>
);
}Endpoint pro optimalizaci ukládá do cache každou kombinaci (cid, width, format) — následné požadavky se stejnými parametry zcela přeskočí původ.
Kontrolní seznam#
- Přejděte z veřejných gateway na dedikovanou gateway
- Připněte obsah při zápisu (při nahrávání), ne při čtení
- Nastavte
Cache-Control: immutablena odpovědi gateway - Přidejte CDN před gateway pro globální provoz
- Obsluhujte obrázky přes endpoint pro optimalizaci místo surových URL gateway
Pro základní informace o tom, proč je pinning důležitý pro dostupnost — nejen pro rychlost — viz co je IPFS pinning.
Připraveni začít s pinningem? Vytvořte bezplatný účet — 50 souborů, 1 GB úložiště, 2 GB šířky pásma/měsíc. Není potřeba kreditní karta.
O tomto článku: Tento článek byl vypracován AI asistentem pomocí pracovního postupu generování obsahu IPFS.NINJA, poté zkontrolován a schválen Nachem Collem. Všechny příklady kódu byly ověřeny oproti živému API IPFS.NINJA. Pokud objevíte nepřesnost, otevřete prosím issue na https://github.com/ipfs-ninja/feedback. Přečtěte si více o tom, jak používáme AI v našem obsahu a poznejte lidi za IPFS.NINJA.
O tomto článku
Tento článek byl vytvořen s pomocí AI, zkontrolován člověkem a ověřen na živé platformě IPFS.NINJA před zveřejněním. Zjistěte, jak používáme AI v našem obsahu .

O autorovi
Nacho Coll
Founder & Engineer at IPFS.NINJA
Nacho founded IPFS.NINJA to make content-addressed storage feel as simple as an S3 PUT — a single API call, a permanent CID, no wallets or peer discovery to reason about. Writes about IPFS internals, decentralized storage patterns, and the pinning-service landscape from the operator side of the wire.
