IPFS veiktspēja: paātriniet failu iegūšanu ar gateway
Praktiski paņēmieni IPFS failu iegūšanas ātruma uzlabošanai: īpašas vārtejas, kešatmiņas stratēģijas, iepriekšēja ielāde un CDN integrācija.
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.

- Nomainiet publiskās vārtejas pret īpašu vārteju, lai samazinātu IPFS latentumu no sekundēm līdz mazāk nekā 200 ms.
- Publiskās vārtejas veic DHT meklēšanu "aukstiem" CID, kas pievieno 2–15 sekundes, pirms saturs tiek atrisināts.
- Piespraudiet failus rakstīšanas brīdī, nevis lasīšanas brīdī, lai vārtejai tie jau būtu pieejami pirms pirmā pieprasījuma.
- Apvienojiet īpašu vārteju ar CDN malas mezglu, lai globālo IPFS latentumu samazinātu līdz 10–50 ms.
“IPFS ir lēns” — tā ir viena no biežākajām izstrādātāju sūdzībām, un arī viena no vieglāk novēršamajām. Vainīgais gandrīz vienmēr ir piekļuves metode, nevis pats protokols. Šajā rokasgrāmatā aplūkoti četri paņēmieni, kas ražošanas vidē novērš IPFS latentumu.

Ātrā uzziņa: IPFS piekļuves metodes pēc ātruma#
| Piekļuves metode | Tipiskais TTFB | Kad izmantot |
|---|---|---|
Publiskā vārteja (ipfs.io, dweb.link) | 2–15 s | Tikai izstrādei un testēšanai |
| Īpašā vārteja (piesprausts saturs) | 50–200 ms | Visam ražošanas trafikam |
| Īpašā vārteja + CDN mala | 10–50 ms | Globālajai lietotāju bāzei |
| Attēlu optimizācijas galapunkts | <100 ms (silts) | Visam attēlu saturam |
Ja ražošanā izmantojat publiskās vārtejas, pāriet uz īpašo vārteja — un lielākā daļa latentuma nekavējoties pazudīs.
Kāpēc publiskās vārtejas ir lēnas#
Publiskās vārtejas veic DHT (Distributed Hash Table) uzmeklēšanu katram CID, ko tās nesen nav redzējušas. DHT uzmeklēšana nozīmē desmitiem vienādranga tīkla dalībnieku vaicājumus, lai noskaidrotu, kurš glabā saturu — šis turp un atpakaļ brauciens aukstam pieprasījumam prasa 2–15 sekundes.
Pat kešatmiņas trāpījuma gadījumā publiskās vārtejas apkalpo miljoniem lietotāju. Jūsu nesen piespraustajai failai ir zema kešatmiņas prioritāte, un tā var tikt izņemta starp pieprasījumiem.
1. risinājums: īpašā vārteja#
Īpašā vārteja ir privāta jūsu kontam. Piesprausti faili nekavējoties tiek saglabāti kešatmiņā šajā vārtejā — nevienā pieprasījumā, aukstā vai siltā, nenotiek DHT uzmeklēšana.
# Pirms: publiskā vārteja, lēna un neuzticama
curl https://ipfs.io/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
# Pēc: īpašā vārteja, ātra un deterministiska
curl https://my-app.gw.ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdiIzveidojiet vārteja savā IPFS.NINJA vadības panelī un iestatiet nosaukuma daļu atbilstoši savam projektam. Vārtejas nosaukumu daļas atbalsta ierobežotas piekļuves režīmu (nepieciešams marķieris) vai atvērto režīmu publiskiem statiskiem resursiem.
2. risinājums: piespraudiet rakstīšanas laikā, ne lasīšanas laikā#
Piespraudiet failus uzreiz to izveides brīdī, lai vārteja tos jau turētu pirms jebkura lietotāja pieprasījuma. Ātrākais pieprasījums ir tas, kas nekad neizraisa kešatmiņas netrāpījumu.
# Augšupielādējiet un piespraudiet vienā solī
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"
}'
# Atbilde — saglabājiet CID, nekavējoties apkalpojiet url
# {
# "cid": "bafy...",
# "sizeMB": 0.24,
# "uris": {
# "ipfs": "ipfs://bafy...",
# "url": "https://ipfs.ninja/ipfs/bafy..."
# }
# }Ja jums ir esošie CID no cita mezgla vai piespraušanas pakalpojuma, pārpiespraudiet bez atkārtotas augšupielādes:
curl -X POST https://api.ipfs.ninja/pin \
-H "X-Api-Key: bws_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" \
-H "Content-Type: application/json" \
-d '{"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"}'Pilnu augšupielādes API uzziņu skatiet kā augšupielādēt failus IPFS.
3. risinājums: CDN pirms vārtejas#
Īpašās vārtejas apkalpo no fiksēta reģiona. Ja jūsu lietotāji atrodas dažādos kontinentos, pievienojiet CDN malas slāni, lai apkalpotu no tuvākā klātbūtnes punkta.
Tā kā IPFS izmanto satura adresēšanu — dotais CID vienmēr atrisina uz identiskiem baitiem — varat kešot bezgalīgi:
Cache-Control: public, max-age=31536000, immutableCloudflare piemērs (bezmaksas pakāpe sedz lielāko daļu statisko resursu darba slodžu):
- Pievienojiet savu vārtejas apakšdomēnu (
my-app.gw.ipfs.ninja) kā Cloudflare starpniekservera CNAME. - Izveidojiet lapas kārtulu:
my-app.gw.ipfs.ninja/ipfs/*→ Cache Everything, Edge Cache TTL: viens mēnesis. - Pirmais pieprasījums sasniedz vārteja un tiek saglabāts kešatmiņā tuvākajā malas PoP. Visi nākamie pieprasījumi tiek apkalpoti no Cloudflare.
Rezultāts: globālais TTFB samazinās no 50–200 ms līdz 10–50 ms.
4. risinājums: attēlu optimizācijas API#
Neapstrādāti IPFS attēli, kas tiek apkalpoti pilnā izšķirtspējā, palēnina lapas un kaitē Core Web Vitals. Izmantojiet attēlu optimizācijas galapunktu, lai mainītu izmēru malā un apkalpotu mūsdienīgos formātus:
# Oriģināls (pilna izšķirtspēja caur vārteja)
https://my-app.gw.ipfs.ninja/ipfs/bafy...
# Izmērs mainīts uz 800 px platumu, konvertēts uz WebP
https://api.ipfs.ninja/image/bafy...?w=800&format=webp
# Kvadrātveida sīktēls
https://api.ipfs.ninja/image/bafy...?w=200&h=200&fit=coverReact lietotnē:
function IPFSImage({ cid, width }) {
return (
<img
src={`https://api.ipfs.ninja/image/${cid}?w=${width}&format=webp`}
width={width}
loading="lazy"
decoding="async"
/>
);
}Optimizācijas galapunkts kešo katru (cid, width, format) kombināciju — nākamie pieprasījumi ar tādiem pašiem parametriem pilnīgi apiet izcelsmi.
Kontrolsaraksts#
- Pāriet no publiskajām vārtejām uz īpašo vārteja
- Piespraudiet saturu rakstīšanas laikā (augšupielādējot), nevis lasīšanas laikā
- Iestatiet
Cache-Control: immutablevārtejas atbildēs - Pievienojiet CDN pirms vārtejas globālam trafikam
- Apkalpojiet attēlus caur optimizācijas galapunktu, nevis neapstrādātiem vārtejas URL
Informācijai par to, kāpēc piespraušana ir svarīga pieejamībai — ne tikai ātrumam — skatiet kas ir IPFS piespraušana.
Gatavs sākt piespraust? Izveidojiet bezmaksas kontu — 50 faili, 1 GB glabātava, 2 GB joslas platums/mēn. Kredītkarte nav nepieciešama.
Par šo rakstu: Šo rakstu sagatavoja mākslīgā intelekta palīgs, izmantojot IPFS.NINJA satura ģenerēšanas darbplūsmu, pēc tam to pārskatīja un apstiprināja Nacho Coll. Visi koda piemēri tika pārbaudīti pret dzīvo IPFS.NINJA API. Ja pamanāt neprecizitāti, lūdzu, atveriet problēmu vietnē https://github.com/ipfs-ninja/feedback. Uzziniet vairāk par to, kā mēs izmantojam mākslīgo intelektu savā saturā, un iepazīstieties ar cilvēkiem aiz IPFS.NINJA.
Par šo rakstu
Šis raksts tika izveidots ar MI palīdzību, cilvēka pārbaudīts un produkta ziņā apstiprināts, izmantojot IPFS.NINJA platformu, pirms publicēšanas. Uzziniet, kā mēs izmantojam MI savā saturā .

Par 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.
