Zmogljivost IPFS: Pospešite pridobivanje z namenskim prehodom
Praktične tehnike za izboljšanje hitrosti pridobivanja datotek IPFS: namenski prehodi, strategije predpomnilnika, predhodno nalaganje in integracija 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.

- Zamenjajte javne prehode za namenski prehod in zmanjšajte zakasnitev IPFS s sekund na manj kot 200 ms.
- Javni prehodi izvedejo iskanje DHT za hladne CID-je, kar doda 2–15 sekund, preden se vsebina razreši.
- Pripnite datoteke ob pisanju, ne ob branju, da jih prehod že hrani, preden pride prva zahteva.
- Namenski prehod združite z CDN edge vozliščem, da globalno zakasnitev IPFS znižate na 10–50 ms.
„IPFS je počasen” je ena najpogostejših pritožb razvijalcev — in hkrati ena najlažje odpravljenih. Krivec je skoraj vedno metoda dostopa, ne protokol sam. Ta vodič pokriva štiri tehnike, ki odpravijo zakasnitev IPFS v produkciji.

Hiter pregled: Metode dostopa IPFS po hitrosti#
| Metoda dostopa | Tipičen TTFB | Kdaj uporabiti |
|---|---|---|
Javni prehod (ipfs.io, dweb.link) | 2–15 s | Samo razvoj in testiranje |
| Namenski prehod (pripeta vsebina) | 50–200 ms | Ves produkcijski promet |
| Namenski prehod + CDN edge | 10–50 ms | Globalna baza uporabnikov |
| Končna točka za optimizacijo slik | <100 ms (toplo) | Vsa slikovna vsebina |
Če v produkciji uporabljate javne prehode, preklopite na namenski prehod in večina zakasnitve takoj izgine.
Zakaj so javni prehodi počasni#
Javni prehodi izvajajo iskanje DHT (Distributed Hash Table) za vsak CID, ki ga niso nedavno videli. Iskanje DHT pomeni poizvedovanje pri desetinah vozlišč v omrežju, da bi ugotovili, kdo hrani vsebino — ta izmenjava traja 2–15 sekund pri hladni zahtevi.
Tudi ob zadetku v predpomnilniku javni prehodi strežejo milijonom uporabnikov. Vaša nedavno pripeta datoteka ima nizko prioriteto v predpomnilniku in je lahko izrinjena med zahtevami.
Rešitev 1: Namenski prehod#
Namenski prehod je zaseben za vaš račun. Datoteke, ki jih pripnete, so takoj shranjene v predpomnilniku tega prehoda — brez iskanja DHT pri kateri koli zahtevi, hladni ali topli.
# Prej: javni prehod, počasen in nezanesljiv
curl https://ipfs.io/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
# Potem: namenski prehod, hiter in deterministični
curl https://my-app.gw.ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdiUstvarite prehod v svoji nadzorni plošči IPFS.NINJA in nastavite slug, ki ustreza vašemu projektu. Slugi prehodov podpirajo način omejenega dostopa (potreben je žeton) ali odprt način za javna statična sredstva.
Rešitev 2: Pripnite ob pisanju, ne ob branju#
Pripnite datoteke takoj, ko so ustvarjene, da jih ima prehod pred kakršno koli zahtevo uporabnikov. Najhitrejša zahteva je tista, ki nikoli ne povzroči zamudka predpomnilnika.
# Nalaganje in pripenjanje v enem 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 — shranite CID, takoj strežite url
# {
# "cid": "bafy...",
# "sizeMB": 0.24,
# "uris": {
# "ipfs": "ipfs://bafy...",
# "url": "https://ipfs.ninja/ipfs/bafy..."
# }
# }Če imate obstoječe CID-je z drugega vozlišča ali storitve pinning, jih znova pripnite brez ponovnega nalaganja:
curl -X POST https://api.ipfs.ninja/pin \
-H "X-Api-Key: bws_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" \
-H "Content-Type: application/json" \
-d '{"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"}'Oglejte si kako nalagati datoteke v IPFS za celotno referenco API za nalaganje.
Rešitev 3: CDN pred prehodom#
Namenski prehodi strežejo iz fiksne regije. Če vaši uporabniki prihajajo z različnih celin, dodajte plast CDN edge za strežbo iz najbližje točke prisotnosti.
Ker je IPFS naslovljen po vsebini — dani CID se vedno razreši na identične bajte — lahko shranjujete v predpomnilnik za vedno:
Cache-Control: public, max-age=31536000, immutablePrimer Cloudflare (brezplačni načrt pokriva večino obremenitev s statičnimi sredstvi):
- Dodajte poddomen svojega prehoda (
my-app.gw.ipfs.ninja) kot CNAME prek Cloudflare s proxyjem. - Ustvarite pravilo strani:
my-app.gw.ipfs.ninja/ipfs/*→ Cache Everything, Edge Cache TTL: en mesec. - Prva zahteva doseže prehod in se shrani v predpomnilnik na najbližjem edge PoP. Vse nadaljnje zahteve so strežene iz Cloudflare.
Rezultat: globalni TTFB pade s 50–200 ms na 10–50 ms.
Rešitev 4: API za optimizacijo slik#
Surove IPFS slike v polni ločljivosti upočasnjujejo strani in škodijo Core Web Vitals. Uporabite končno točko za optimizacijo slik za spremembo velikosti na edge in strežbo modernih formatov:
# Izvirnik (polna ločljivost prek prehoda)
https://my-app.gw.ipfs.ninja/ipfs/bafy...
# Spremenjena velikost na 800 px širine, pretvorjena v 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=coverV React:
function IPFSImage({ cid, width }) {
return (
<img
src={`https://api.ipfs.ninja/image/${cid}?w=${width}&format=webp`}
width={width}
loading="lazy"
decoding="async"
/>
);
}Končna točka za optimizacijo shrani v predpomnilnik vsako kombinacijo (cid, širina, format) — nadaljnje zahteve z enakimi parametri v celoti preskočijo izvor.
Kontrolni seznam#
- Preklopite z javnih prehodov na namenski prehod
- Pripnite vsebino ob pisanju (ob nalaganju), ne ob branju
- Nastavite
Cache-Control: immutablena odgovore prehoda - Dodajte CDN pred prehod za globalni promet
- Strežite slike prek končne točke za optimizacijo namesto surovih URL prehodov
Za ozadje o tem, zakaj je pinning pomemben za razpoložljivost — ne le za hitrost — si oglejte kaj je IPFS pinning.
Pripravljeni začeti s pripenjanjem? Ustvarite brezplačen račun — 50 datotek, 1 GB prostora, 2 GB pasovne širine/mes. Kreditna kartica ni potrebna.
O tem članku: Ta članek je sestavil AI asistent z uporabo delovnega toka za ustvarjanje vsebine IPFS.NINJA, nato ga je pregledal in odobril Nacho Coll. Vsi primeri kode so bili preverjeni glede na živi API IPFS.NINJA. Če opazite netočnost, odprite težavo na https://github.com/ipfs-ninja/feedback. Preberite več o tem, kako pri vsebini uporabljamo AI in spoznajte ljudi za IPFS.NINJA.
O tem članku
Ta članek je nastal s pomočjo umetne inteligence, ga je pregledal človek in bil pred objavo preverjen na živi platformi IPFS.NINJA. Preberite, kako uporabljamo UI pri vsebini .

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