IPFS-prestaties: Snellere bestandsophaling met gateway

Praktische technieken om de IPFS-bestandsophalingssnelheid te verbeteren: dedicated gateways, caching-strategieën, preloading en CDN-integratie.

Nacho Colldoor Bijgewerkt: 6 min leestijd
Praktische technieken om de IPFS-bestandsophalingssnelheid te verbeteren: dedicated gateways, caching-strategieën, preloading en CDN-integratie.
TL;DR
  • Vervang publieke gateways door een dedicated gateway om de IPFS-latentie van seconden naar minder dan 200 ms terug te brengen.
  • Publieke gateways voeren een DHT-lookup uit op koude CIDs, wat 2–15 seconden toevoegt voordat de inhoud wordt opgelost.
  • Pin bestanden op het moment van schrijven, niet van lezen, zodat de gateway ze al heeft voordat het eerste verzoek binnenkomt.
  • Combineer een dedicated gateway met een CDN-edge om de wereldwijde IPFS-latentie terug te brengen naar 10–50 ms.

“IPFS is traag” is een van de meest voorkomende klachten van ontwikkelaars — en ook een van de meest oplosbare. De schuldige is bijna altijd de toegangsmethode, niet het protocol zelf. Deze gids behandelt vier technieken die IPFS-latentie in productie elimineren.

IPFS Ninja

Snelreferentie: IPFS-toegangsmethoden op snelheid#

ToegangsmethodeTypische TTFBWanneer gebruiken
Publieke gateway (ipfs.io, dweb.link)2–15 sAlleen ontwikkeling en testen
Dedicated gateway (gepind content)50–200 msAl het productieverkeer
Dedicated gateway + CDN-edge10–50 msGlobale gebruikersbasis
Afbeeldingsoptimalisatie-eindpunt<100 ms (warm)Alle afbeeldingsinhoud

Als je publieke gateways in productie gebruikt, schakel over naar een dedicated gateway en het grootste deel van je latentie verdwijnt onmiddellijk.

Waarom publieke gateways traag zijn#

Publieke gateways voeren bij elk CID dat ze recentelijk niet hebben gezien een DHT-opzoeking (Distributed Hash Table) uit. DHT-opzoeking betekent tientallen peers over het netwerk bevragen om te vinden wie de inhoud bezit — die heen-en-terugreis duurt 2–15 seconden bij een koude aanvraag.

Zelfs bij een cache-treffer bedienen publieke gateways miljoenen gebruikers. Je recent gepind bestand heeft lage cacheprioriteit en kan worden verwijderd tussen aanvragen.

Oplossing 1: Dedicated gateway#

Een dedicated gateway is privé voor jouw account. Bestanden die je pint worden onmiddellijk gecached op die gateway — geen DHT-opzoeking bij welke aanvraag dan ook, koud of warm.

# Vóór: publieke gateway, traag en onbetrouwbaar
curl https://ipfs.io/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

# Na: dedicated gateway, snel en deterministisch
curl https://my-app.gw.ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

Maak een gateway aan in je IPFS.NINJA-dashboard en stel de slug in zodat deze overeenkomt met je project. Gateway-slugs ondersteunen beperkte toegangsmodus (token vereist) of open modus voor openbare statische bestanden.

Oplossing 2: Pin op schrijftijd, niet op leestijd#

Pin bestanden op het moment dat ze worden gemaakt zodat de gateway ze heeft voordat een gebruiker ze opvraagt. De snelste aanvraag is er een die nooit een cache-miss veroorzaakt.

# Upload en pin in één stap
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"
  }'

# Respons — sla de CID op, serveer de url onmiddellijk
# {
#   "cid": "bafy...",
#   "sizeMB": 0.24,
#   "uris": {
#     "ipfs": "ipfs://bafy...",
#     "url": "https://ipfs.ninja/ipfs/bafy..."
#   }
# }

Als je bestaande CID’s hebt van een andere node of pinningservice, re-pin zonder opnieuw te uploaden:

curl -X POST https://api.ipfs.ninja/pin \
  -H "X-Api-Key: bws_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" \
  -H "Content-Type: application/json" \
  -d '{"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"}'

Zie hoe je bestanden uploadt naar IPFS voor de volledige upload-API-referentie.

Oplossing 3: CDN voor je gateway#

Dedicated gateways bedienen vanuit een vaste regio. Als je gebruikers verspreid zijn over continenten, voeg een CDN-edge-laag toe om te bedienen vanuit het dichtstbijzijnde aanwezigheidspunt.

Omdat IPFS content-geadresseerd is — een gegeven CID wordt altijd omgezet naar identieke bytes — kun je voor altijd cachen:

Cache-Control: public, max-age=31536000, immutable

Cloudflare-voorbeeld (gratis abonnement dekt de meeste statische-bestanden-werklasten):

  1. Voeg je gateway-subdomein (my-app.gw.ipfs.ninja) toe als een Cloudflare-proxied CNAME.
  2. Maak een Page Rule: my-app.gw.ipfs.ninja/ipfs/*Cache Everything, Edge Cache TTL: een maand.
  3. De eerste aanvraag raakt de gateway en wordt gecached bij de dichtstbijzijnde edge-PoP. Alle volgende aanvragen worden vanuit Cloudflare bediend.

Resultaat: globale TTFB daalt van 50–200 ms naar 10–50 ms.

Oplossing 4: Afbeeldingsoptimalisatie-API#

Rauwe IPFS-afbeeldingen die op volledige resolutie worden bediend, vertragen pagina’s en schaden Core Web Vitals. Gebruik het afbeeldingsoptimalisatie-eindpunt om te verkleinen aan de edge en moderne formaten te bedienen:

# Origineel (volledige resolutie via gateway)
https://my-app.gw.ipfs.ninja/ipfs/bafy...

# Verkleind naar 800 px breed, geconverteerd naar WebP
https://api.ipfs.ninja/image/bafy...?w=800&format=webp

# Vierkante miniatuur
https://api.ipfs.ninja/image/bafy...?w=200&h=200&fit=cover

In React:

function IPFSImage({ cid, width }) {
  return (
    <img
      src={`https://api.ipfs.ninja/image/${cid}?w=${width}&format=webp`}
      width={width}
      loading="lazy"
      decoding="async"
    />
  );
}

Het optimalisatie-eindpunt cachet elke (cid, width, format)-combinatie — volgende aanvragen met dezelfde parameters slaan de origin volledig over.

Controlelijst#

  • Schakel over van publieke gateways naar een dedicated gateway
  • Pin content op schrijftijd (bij upload), niet op leestijd
  • Stel Cache-Control: immutable in op gateway-reacties
  • Voeg CDN toe voor de gateway voor globaal verkeer
  • Serveer afbeeldingen via het optimalisatie-eindpunt in plaats van rauwe gateway-URL’s

Voor achtergrond over waarom pinning belangrijk is voor beschikbaarheid — niet alleen snelheid — zie wat is IPFS pinning.


Klaar om te beginnen met pinnen? Maak een gratis account aan — 50 bestanden, 1 GB opslag, 2 GB bandbreedte/mnd. Geen creditcard vereist.

Over dit artikel: Dit artikel is opgesteld door een AI-assistent met behulp van IPFS.NINJA’s contentgeneratieworkflow, vervolgens beoordeeld en goedgekeurd door Nacho Coll. Alle codevoorbeelden zijn geverifieerd aan de hand van de live IPFS.NINJA-API. Als je een onnauwkeurigheid ontdekt, open dan een issue op https://github.com/ipfs-ninja/feedback. Lees meer over hoe we AI gebruiken in onze content en maak kennis met de mensen achter IPFS.NINJA.

Veelgestelde vragen

Zorgt een speciale IPFS-gateway voor snellere bestandsophaling?
Ja — een speciale gateway omzeilt de wachtrij van publieke gateways en levert gepinde content rechtstreeks, wat de responstijd voor veelgebruikte bestanden verkort.
Hoe verschilt de prestatie van een IPFS-gateway van een traditionele CDN?
Een CDN cachet content op edge-locaties op basis van URL, terwijl een IPFS-gateway content op basis van de CID herleidt en afhankelijk is van of de content gepind is en beschikbaar is via een provider dicht bij de aanvrager.
Welke factoren beperken de snelheid van bestandsophaling via IPFS?
De ophaalsnelheid hangt af van of de CID gepind is, hoeveel providers de content hosten, en de netwerkafstand tussen de aanvrager en de dichtstbijzijnde beschikbare provider.
Kan ik IPFS.NINJA gebruiken om de responstijd van de gateway voor grote bestanden te verbeteren?
Ja — door uw bestanden bij IPFS.NINJA te pinnen, blijven ze beschikbaar op een speciale gateway, wat de opzoek- en ophaallatentie vermindert vergeleken met alleen vertrouwen op publieke gateways.
Nacho Coll

Over de auteur

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.

Terug naar Blog

Gerelateerde Artikelen