IPFS-ytelse: Raskere filhenting med dedikert gateway

Praktiske teknikker for å forbedre IPFS-filhentingshastighet: dedikerte gateways, caching-strategier, forhåndsinnlasting og CDN-integrasjon.

Nacho Collav Oppdatert: 6 min lesing
Praktiske teknikker for å forbedre IPFS-filhentingshastighet: dedikerte gateways, caching-strategier, forhåndsinnlasting og CDN-integrasjon.
Oppsummering
  • Bytt offentlige gateways ut med en dedikert gateway for å kutte IPFS-latens fra sekunder til under 200 ms.
  • Offentlige gateways kjører et DHT-oppslag på kalde CID-er, noe som legger til 2–15 sekunder før innholdet løses opp.
  • Pinn filer ved skrivetidspunktet, ikke ved lesetidspunktet, slik at gatewayen allerede har dem før den første forespørselen.
  • Kombiner en dedikert gateway med en CDN-kant for å redusere global IPFS-latens til 10–50 ms.

«IPFS er tregt» er en av de vanligste klagene fra utviklere — og også en av de mest løsbare. Synderen er nesten alltid tilgangsmetoden, ikke protokollen i seg selv. Denne guiden dekker fire teknikker som eliminerer IPFS-latens i produksjon.

IPFS Ninja

Hurtigreferanse: IPFS-tilgangsmetoder etter hastighet#

TilgangsmetodeTypisk TTFBNår du skal bruke den
Offentlig gateway (ipfs.io, dweb.link)2–15 sKun utvikling og testing
Dedikert gateway (pinnet innhold)50–200 msAll produksjonstrafikk
Dedikert gateway + CDN-kant10–50 msGlobal brukerbase
Bildeoptimaliseringsendepunkt<100 ms (varm)Alt bildeinnhold

Hvis du bruker offentlige gateways i produksjon, bytt til en dedikert gateway og det meste av latensen forsvinner umiddelbart.

Hvorfor offentlige gateways er trege#

Offentlige gateways utfører et DHT-oppslag (Distributed Hash Table) på hvert CID de ikke nylig har sett. DHT-oppslag betyr å spørre dusinvis av noder på tvers av nettverket for å finne hvem som holder innholdet — denne tur-retur-reisen tar 2–15 sekunder på en kald forespørsel.

Selv ved cache-treff betjener offentlige gateways millioner av brukere. Filen du nylig pinnet har lav cacheprioritet og kan bli fjernet mellom forespørsler.

Løsning 1: Dedikert gateway#

En dedikert gateway er privat for kontoen din. Filer du pinner caches på den gatewayen umiddelbart — ingen DHT-oppslag på noen forespørsel, kald eller varm.

# Før: offentlig gateway, treg og upålitelig
curl https://ipfs.io/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

# Etter: dedikert gateway, rask og deterministisk
curl https://my-app.gw.ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

Opprett en gateway i IPFS.NINJA-dashbordet ditt og sett slug til å matche prosjektet ditt. Gateway-slugs støtter begrenset tilgangsmodus (token kreves) eller åpen modus for offentlige statiske ressurser.

Løsning 2: Pin ved skrivetidspunkt, ikke lesetidspunkt#

Pin filer i det øyeblikket de opprettes slik at gatewayen har dem før noen bruker ber om dem. Den raskeste forespørselen er den som aldri forårsaker en cache-miss.

# Last opp og pin i ett steg
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"
  }'

# Svar — lagre CID-en, server url-en umiddelbart
# {
#   "cid": "bafy...",
#   "sizeMB": 0.24,
#   "uris": {
#     "ipfs": "ipfs://bafy...",
#     "url": "https://ipfs.ninja/ipfs/bafy..."
#   }
# }

Hvis du har eksisterende CID-er fra en annen node eller pinningstjeneste, re-pin uten å laste opp på nytt:

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

Se hvordan laste opp filer til IPFS for fullstendig API-referanse for opplasting.

Løsning 3: CDN foran gatewayen din#

Dedikerte gateways betjener fra en fast region. Hvis brukerne dine er spredt over kontinenter, legg til et CDN-kantlag for å betjene fra nærmeste tilstedeværelsespunkt.

Fordi IPFS er innholdsadressert — et gitt CID løses alltid til identiske byte — kan du cache for alltid:

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

Cloudflare-eksempel (gratisplanen dekker de fleste statiske ressursarbeidsbelastninger):

  1. Legg til gateway-subdomenet ditt (my-app.gw.ipfs.ninja) som en Cloudflare-proxied CNAME.
  2. Opprett en Page Rule: my-app.gw.ipfs.ninja/ipfs/*Cache Everything, Edge Cache TTL: en måned.
  3. Den første forespørselen treffer gatewayen og caches på nærmeste kant-PoP. Alle etterfølgende forespørsler betjenes fra Cloudflare.

Resultat: global TTFB synker fra 50–200 ms til 10–50 ms.

Løsning 4: Bildeoptimaliserings-API#

Rå IPFS-bilder servert i full oppløsning bremser sider og skader Core Web Vitals. Bruk bildeoptimaliseringsendepunktet for å endre størrelse ved kanten og servere moderne formater:

# Original (full oppløsning via gateway)
https://my-app.gw.ipfs.ninja/ipfs/bafy...

# Endret størrelse til 800 px bred, konvertert til WebP
https://api.ipfs.ninja/image/bafy...?w=800&format=webp

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

I React:

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

Optimeringsendepunktet cacher hver (cid, width, format)-kombinasjon — etterfølgende forespørsler med de samme parameterne hopper over origo fullstendig.

Sjekkliste#

  • Bytt fra offentlige gateways til en dedikert gateway
  • Pin innhold ved skrivetidspunkt (ved opplasting), ikke ved lesetidspunkt
  • Sett Cache-Control: immutable på gateway-svar
  • Legg til CDN foran gatewayen for global trafikk
  • Server bilder via optimeringsendepunktet i stedet for rå gateway-URLer

For bakgrunn om hvorfor pinning er viktig for tilgjengelighet — ikke bare hastighet — se hva er IPFS pinning.


Klar til å begynne å pinne? Opprett en gratis konto — 50 filer, 1 GB lagring, 2 GB båndbredde/mnd. Ingen kredittkort kreves.

Om denne artikkelen: Denne artikkelen ble utarbeidet av en AI-assistent ved hjelp av IPFS.NINJAs innholdsgenereringsarbeidsflyt, deretter gjennomgått og godkjent av Nacho Coll. Alle kodeeksempler ble verifisert mot det aktive IPFS.NINJA API-et. Hvis du oppdager en unøyaktighet, vennligst åpne en sak på https://github.com/ipfs-ninja/feedback. Les mer om hvordan vi bruker AI i innholdet vårt og møt menneskene bak IPFS.NINJA.

Ofte stilte spørsmål

Gjør en dedikert IPFS-gateway filhenting raskere?
Ja — en dedikert gateway hopper over køen til offentlige gatewayer og leverer pinnet innhold direkte, noe som reduserer responstiden for filer som hentes ofte.
Hvordan skiller IPFS-gateway-ytelse seg fra en tradisjonell CDN?
En CDN mellomlagrer innhold på edge-lokasjoner basert på URL, mens en IPFS-gateway løser innhold basert på CID og avhenger av om innholdet er pinnet og tilgjengelig fra en leverandør nær forespørselen.
Hvilke faktorer begrenser hastigheten på IPFS-filhenting?
Hentehastigheten avhenger av om CID-en er pinnet, hvor mange leverandører som er vert for den, og nettverksavstanden mellom forespørselen og nærmeste tilgjengelige leverandør.
Kan jeg bruke IPFS.NINJA for å gjøre gateway-responstiden raskere for store filer?
Ja — å pinne filene dine med IPFS.NINJA holder dem tilgjengelige på en dedikert gateway, noe som reduserer oppslags- og hentelatens sammenlignet med å kun stole på offentlige gatewayer.
Nacho Coll

Om forfatteren

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.

Tilbake til Bloggen

Relaterte artikler