IPFS Performance: Επιτάχυνση Ανάκτησης με Dedicated Gateway
Πρακτικές τεχνικές για βελτίωση της ταχύτητας ανάκτησης IPFS: αφιερωμένα gateways, στρατηγικές caching, preloading και ενσωμάτωση 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.

- Αντικαταστήστε τα δημόσια gateways με ένα αφιερωμένο gateway για να μειώσετε την καθυστέρηση IPFS από δευτερόλεπτα σε κάτω από 200 ms.
- Τα δημόσια gateways εκτελούν αναζήτηση DHT σε κρύα CIDs, προσθέτοντας 2–15 δευτερόλεπτα πριν επιλυθεί το περιεχόμενο.
- Κάντε pin τα αρχεία τη στιγμή της εγγραφής, όχι της ανάγνωσης, ώστε το gateway να τα κρατά ήδη πριν το πρώτο αίτημα.
- Συνδυάστε ένα αφιερωμένο gateway με ένα CDN edge για να φέρετε την παγκόσμια καθυστέρηση IPFS στα 10–50 ms.
«Το IPFS είναι αργό» είναι ένα από τα πιο συνηθισμένα παράπονα προγραμματιστών — και επίσης ένα από τα πιο εύκολα διορθώσιμα. Ο υπαίτιος είναι σχεδόν πάντα η μέθοδος πρόσβασης, όχι το ίδιο το πρωτόκολλο. Αυτός ο οδηγός καλύπτει τέσσερις τεχνικές που εξαλείφουν την καθυστέρηση IPFS στην παραγωγή.

Επιλέξτε τη μέθοδο πρόσβασης IPFS ανά ταχύτητα#
| Μέθοδος πρόσβασης | Τυπικό TTFB | Πότε να χρησιμοποιείτε |
|---|---|---|
Δημόσιο gateway (ipfs.io, dweb.link) | 2–15 s | Μόνο για ανάπτυξη και δοκιμές |
| Αφιερωμένο gateway (pinned περιεχόμενο) | 50–200 ms | Όλη η κίνηση παραγωγής |
| Αφιερωμένο gateway + CDN edge | 10–50 ms | Παγκόσμια βάση χρηστών |
| Endpoint βελτιστοποίησης εικόνας | <100 ms (warm) | Όλο το περιεχόμενο εικόνων |
Αν χρησιμοποιείτε δημόσια gateways στην παραγωγή, μεταβείτε σε αφιερωμένο gateway και το μεγαλύτερο μέρος της καθυστέρησής σας εξαφανίζεται αμέσως.
Γιατί τα Δημόσια Gateways Είναι Αργά#
Τα δημόσια gateways εκτελούν αναζήτηση DHT (Distributed Hash Table) σε κάθε CID που δεν έχουν δει πρόσφατα. Η αναζήτηση DHT σημαίνει ερώτηση δεκάδων peers στο δίκτυο για να βρεθεί ποιος κατέχει το περιεχόμενο — αυτό το round-trip διαρκεί 2–15 δευτερόλεπτα σε κρύο αίτημα.
Ακόμα και σε cache hit, τα δημόσια gateways εξυπηρετούν εκατομμύρια χρήστες. Το αρχείο που πρόσφατα κάνατε pin έχει χαμηλή προτεραιότητα cache και μπορεί να αφαιρεθεί μεταξύ αιτημάτων.
Λύση 1: Αφιερωμένο Gateway#
Ένα αφιερωμένο gateway είναι ιδιωτικό για τον λογαριασμό σας. Τα αρχεία που κάνετε pin αποθηκεύονται στη cache αυτού του gateway αμέσως — χωρίς αναζήτηση DHT σε κανένα αίτημα, κρύο ή ζεστό.
# Πριν: δημόσιο gateway, αργό και αναξιόπιστο
curl https://ipfs.io/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
# Μετά: αφιερωμένο gateway, γρήγορο και ντετερμινιστικό
curl https://my-app.gw.ipfs.ninja/ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdiΔημιουργήστε ένα gateway στον πίνακα ελέγχου IPFS.NINJA και ορίστε το slug ώστε να ταιριάζει με το έργο σας. Τα slugs gateway υποστηρίζουν περιορισμένη λειτουργία πρόσβασης (απαιτείται token) ή ανοιχτή λειτουργία για δημόσια στατικά assets.
Λύση 2: Pin κατά το Γράψιμο, Όχι κατά την Ανάγνωση#
Κάντε pin τα αρχεία τη στιγμή που δημιουργούνται ώστε το gateway να τα έχει πριν από οποιοδήποτε αίτημα χρήστη. Το γρηγορότερο αίτημα είναι αυτό που δεν προκαλεί ποτέ cache miss.
# Ανέβασμα και pin σε ένα βήμα
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"
}'
# Απόκριση — αποθηκεύστε το CID, σερβίρετε το url αμέσως
# {
# "cid": "bafy...",
# "sizeMB": 0.24,
# "uris": {
# "ipfs": "ipfs://bafy...",
# "url": "https://ipfs.ninja/ipfs/bafy..."
# }
# }Αν έχετε υπάρχοντα CIDs από άλλο node ή υπηρεσία pinning, κάντε re-pin χωρίς επανανέβασμα:
curl -X POST https://api.ipfs.ninja/pin \
-H "X-Api-Key: bws_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" \
-H "Content-Type: application/json" \
-d '{"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"}'Δείτε πώς να ανεβάσετε αρχεία στο IPFS για την πλήρη αναφορά upload API.
Λύση 3: CDN Μπροστά από το Gateway σας#
Τα αφιερωμένα gateways εξυπηρετούν από μια σταθερή περιοχή. Αν οι χρήστες σας εκτείνονται σε ηπείρους, προσθέστε ένα CDN edge layer για εξυπηρέτηση από το πλησιέστερο σημείο παρουσίας.
Επειδή το IPFS είναι content-addressed — ένα συγκεκριμένο CID επιλύεται πάντα σε ίδια bytes — μπορείτε να αποθηκεύσετε στη cache για πάντα:
Cache-Control: public, max-age=31536000, immutableΠαράδειγμα Cloudflare (το δωρεάν επίπεδο καλύπτει τα περισσότερα static-asset workloads):
- Προσθέστε την υποτομέα του gateway σας (
my-app.gw.ipfs.ninja) ως Cloudflare proxied CNAME. - Δημιουργήστε έναν Page Rule:
my-app.gw.ipfs.ninja/ipfs/*→ Cache Everything, Edge Cache TTL: ένα μήνα. - Το πρώτο αίτημα χτυπά το gateway και αποθηκεύεται στη cache στο πλησιέστερο edge PoP. Όλα τα επόμενα αιτήματα εξυπηρετούνται από το Cloudflare.
Αποτέλεσμα: το παγκόσμιο TTFB πέφτει από 50–200 ms σε 10–50 ms.
Λύση 4: API Βελτιστοποίησης Εικόνας#
Οι ακατέργαστες εικόνες IPFS σε πλήρη ανάλυση επιβραδύνουν τις σελίδες και βλάπτουν τα Core Web Vitals. Χρησιμοποιήστε το endpoint βελτιστοποίησης εικόνας για αλλαγή μεγέθους στο edge και παροχή σύγχρονων μορφών:
# Πρωτότυπο (πλήρης ανάλυση μέσω gateway)
https://my-app.gw.ipfs.ninja/ipfs/bafy...
# Αλλαγή μεγέθους σε 800 px πλάτος, μετατροπή σε WebP
https://api.ipfs.ninja/image/bafy...?w=800&format=webp
# Τετράγωνο thumbnail
https://api.ipfs.ninja/image/bafy...?w=200&h=200&fit=coverΣε React:
function IPFSImage({ cid, width }) {
return (
<img
src={`https://api.ipfs.ninja/image/${cid}?w=${width}&format=webp`}
width={width}
loading="lazy"
decoding="async"
/>
);
}Το endpoint βελτιστοποίησης αποθηκεύει στη cache κάθε συνδυασμό (cid, width, format) — τα επόμενα αιτήματα με τις ίδιες παραμέτρους παρακάμπτουν εντελώς την προέλευση.
Λίστα Ελέγχου#
- Μεταβείτε από δημόσια gateways σε αφιερωμένο gateway
- Κάντε pin το περιεχόμενο κατά το γράψιμο (κατά το ανέβασμα), όχι κατά την ανάγνωση
- Ορίστε
Cache-Control: immutableστις αποκρίσεις gateway - Προσθέστε CDN μπροστά από το gateway για παγκόσμια κίνηση
- Σερβίρετε εικόνες μέσω του endpoint βελτιστοποίησης αντί για ακατέργαστες gateway URLs
Για πληροφορίες σχετικά με το γιατί το pinning έχει σημασία για τη διαθεσιμότητα — όχι μόνο για την ταχύτητα — δείτε τι είναι IPFS pinning.
Έτοιμοι να ξεκινήσετε το pinning; Δημιουργήστε έναν δωρεάν λογαριασμό — 50 αρχεία, 1 GB αποθηκευτικό χώρο, 2 GB bandwidth/μήνα. Δεν απαιτείται πιστωτική κάρτα.
Σχετικά με αυτό το άρθρο: Αυτό το άρθρο δημιουργήθηκε από έναν AI βοηθό χρησιμοποιώντας τη ροή εργασίας δημιουργίας περιεχομένου του IPFS.NINJA, στη συνέχεια επανεξετάστηκε και εγκρίθηκε από τον Nacho Coll. Όλα τα παραδείγματα κώδικα επαληθεύτηκαν έναντι του live API του IPFS.NINJA. Αν εντοπίσετε κάποια ανακρίβεια, παρακαλούμε ανοίξτε ένα issue στο https://github.com/ipfs-ninja/feedback. Διαβάστε περισσότερα για το πώς χρησιμοποιούμε AI στο περιεχόμενό μας και γνωρίστε τους ανθρώπους πίσω από το IPFS.NINJA.
Σχετικά με αυτό το άρθρο
Αυτό το άρθρο δημιουργήθηκε με βοήθεια AI, ελέγχθηκε από άνθρωπο και επαληθεύτηκε στην πλατφόρμα IPFS.NINJA πριν τη δημοσίευση. Μάθετε πώς χρησιμοποιούμε το AI στο περιεχόμενό μας .

Σχετικά με τον συγγραφέα
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.
