IPFS performanse: ubrzajte dohvaćanje s dedikiranim gatewayem
Praktične tehnike za poboljšanje brzine dohvaćanja IPFS datoteka: namjenski gatewayi, strategije predmemoriranja, predučitavanje i CDN integracija.
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.

- Zamijenite javne gatewaye dediciranim gatewayem kako biste smanjili IPFS kašnjenje sa sekundi na manje od 200 ms.
- Javni gatewayi izvode DHT pretragu za hladne CID-ove, što dodaje 2–15 sekundi prije razrješenja sadržaja.
- Pinajte datoteke u trenutku pisanja, a ne čitanja, tako da ih gateway već posjeduje prije prvog zahtjeva.
- Kombinirajte dedicirani gateway s CDN edgeom kako biste globalno IPFS kašnjenje smanjili na 10–50 ms.
„IPFS je spor” jedna je od najčešćih pritužbi programera — i ujedno jedna od najlakše rješivih. Krivac je gotovo uvijek metoda pristupa, a ne sam protokol. Ovaj vodič pokriva četiri tehnike koje eliminiraju latenciju IPFS-a u produkciji.

Odaberite metodu pristupa IPFS-u prema brzini#
| Metoda pristupa | Tipičan TTFB | Kada koristiti |
|---|---|---|
Javni gateway (ipfs.io, dweb.link) | 2–15 s | Samo razvoj i testiranje |
| Namjenski gateway (prikvačeni sadržaj) | 50–200 ms | Sav produkcijski promet |
| Namjenski gateway + CDN edge | 10–50 ms | Globalna baza korisnika |
| Endpoint za optimizaciju slika | <100 ms (toplo) | Sav slikovni sadržaj |
Ako koristite javne gatewayi u produkciji, prijeđite na namjenski gateway i većina vaše latencije odmah nestaje.
Zašto su javni gatewayi spori#
Javni gatewayi izvode DHT (Distributed Hash Table) pretraživanje za svaki CID koji nisu nedavno vidjeli. DHT pretraživanje znači upitivanje desetaka ravnopravnih čvorova kroz mrežu kako bi se pronašao nositelj sadržaja — taj kružni put traje 2–15 sekundi na hladnom zahtjevu.
Čak i pri pogotku predmemorije, javni gatewayi opslužuju milijune korisnika. Vaša nedavno prikvačena datoteka ima niski prioritet predmemorije i može biti izbačena između zahtjeva.
Rješenje 1: Namjenski gateway#
Namjenski gateway je privatan za vaš račun. Datoteke koje prikvačite odmah se predmemoriraju na tom gatewayu — bez DHT pretraživanja na bilo kojem zahtjevu, hladnom ili toplom.
# Prije: javni gateway, spor i nepouzdan
curl https://ipfs.io/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
# Nakon: namjenski gateway, brz i deterministički
curl https://my-app.gw.ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdiKreirajte gateway u svojoj IPFS.NINJA nadzornoj ploči i postavite slug da odgovara vašem projektu. Gateway slugovi podržavaju način ograničenog pristupa (potreban token) ili otvoreni način za javne statičke resurse.
Rješenje 2: Prikvači pri pisanju, ne pri čitanju#
Prikvačite datoteke u trenutku njihovog stvaranja kako bi ih gateway imao prije bilo kojeg korisničkog zahtjeva. Najbrži zahtjev je onaj koji nikada ne uzrokuje promašaj predmemorije.
# Prenesi i prikvači u jednom koraku
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"
}'
# Odgovor — pohranite CID, odmah posluživajte url
# {
# "cid": "bafy...",
# "sizeMB": 0.24,
# "uris": {
# "ipfs": "ipfs://bafy...",
# "url": "https://ipfs.ninja/ipfs/bafy..."
# }
# }Ako imate postojeće CID-ove s drugog čvora ili usluge prikvačivanja, prikvačite ponovo bez ponovnog prijenosa:
curl -X POST https://api.ipfs.ninja/pin \
-H "X-Api-Key: bws_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" \
-H "Content-Type: application/json" \
-d '{"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"}'Pogledajte kako prenijeti datoteke na IPFS za cjelovitu referencu API-ja za prijenos.
Rješenje 3: CDN ispred vašeg gatewaya#
Namjenski gatewayi poslužuju iz fiksne regije. Ako vaši korisnici pokrivaju kontinente, dodajte CDN edge sloj za posluživanje iz najbliže točke prisutnosti.
Budući da IPFS koristi adresiranje sadržaja — dani CID uvijek razrješava identične bajtove — možete predmemorirati zauvijek:
Cache-Control: public, max-age=31536000, immutablePrimjer s Cloudflareom (besplatni tier pokriva većinu opterećenja statičkim resursima):
- Dodajte poddomenu vašeg gatewaya (
my-app.gw.ipfs.ninja) kao Cloudflare proxirani CNAME. - Kreirajte Page Rule:
my-app.gw.ipfs.ninja/ipfs/*→ Cache Everything, Edge Cache TTL: a month. - Prvi zahtjev pogađa gateway i predmemorira se na najbližem edge PoP-u. Svi sljedeći zahtjevi posluživani su iz Cloudflareja.
Rezultat: globalni TTFB pada s 50–200 ms na 10–50 ms.
Rješenje 4: API za optimizaciju slika#
Sirove IPFS slike posluživane u punoj rezoluciji usporavaju stranice i narušavaju Core Web Vitals. Koristite endpoint za optimizaciju slika za promjenu veličine na edgeu i posluživanje modernih formata:
# Original (puna rezolucija putem gatewaya)
https://my-app.gw.ipfs.ninja/ipfs/bafy...
# Promijenjena veličina na 800 px širine, konvertirana u WebP
https://api.ipfs.ninja/image/bafy...?w=800&format=webp
# Kvadratna sličica
https://api.ipfs.ninja/image/bafy...?w=200&h=200&fit=coverU 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 za optimizaciju predmemorira svaku kombinaciju (cid, width, format) — sljedeći zahtjevi s istim parametrima u potpunosti zaobilaze izvor.
Kontrolni popis#
- Prijeđite s javnih gatewaya na namjenski gateway
- Prikvačite sadržaj pri pisanju (pri prijenosu), ne pri čitanju
- Postavite
Cache-Control: immutablena odgovore gatewaya - Dodajte CDN ispred gatewaya za globalni promet
- Posluživajte slike putem endpointa za optimizaciju umjesto sirovih URL-ova gatewaya
Za pozadinske informacije o tome zašto je prikvačivanje važno za dostupnost — ne samo za brzinu — pogledajte što je IPFS prikvačivanje.
Spremni za početak prikvačivanja? Kreirajte besplatni račun — 50 datoteka, 1 GB pohrane, 2 GB propusnosti/mj. Nije potrebna kreditna kartica.
O ovom članku: ovaj članak izradio je AI asistent koristeći IPFS.NINJA-in tijek rada za generiranje sadržaja, a zatim ga je pregledao i odobrio Nacho Coll. Svi primjeri koda verificirani su prema živom IPFS.NINJA API-ju. Ako primijetite netočnost, otvorite issue na https://github.com/ipfs-ninja/feedback. Pročitajte više o tome kako koristimo AI u našem sadržaju i upoznajte ljude iza IPFS.NINJA.
O ovom članku
Ovaj je članak nastao uz pomoć AI-ja, pregledan od strane čovjeka i provjeren na živoj platformi IPFS.NINJA prije objave. Saznajte kako koristimo AI u našem sadržaju .

O autoru
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.
