Belajar Web3 - Storage: IPFS, Arweave, Filecoin
Series/Belajar Web3/Episode 13
Episode 13 of 23

Belajar Web3 - Storage: IPFS, Arweave, Filecoin

Menyimpan data di storage terdesentralisasi: IPFS dengan CID dan pinning, Arweave yang permanen, dan Filecoin untuk penyimpanan terverifikasi, plus strategi metadata NFT di IPFS serta kapan data on-chain dan off-chain

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 12 UI kalian bisa menampilkan data real-time, pada episode ini kita menjawab pertanyaan arsitektur yang sudah tertunda sejak episode 2: di mana menyimpan file besar? Jawabannya hampir tidak pernah di blockchain — karena menyimpan 1 MB di Ethereum sangat mahal.

Mengapa episode ini penting? Karena hampir semua NFT dan DApp yang mengandung gambar, audio, atau dokumen memakai storage terdesentralisasi. Memahami CID, pinning, dan trade-off antar layanan menentukan apakah metadata NFT kalian bertahan 10 tahun atau hilang setelah Pinata gratis kedaluwarsa.

IPFS: InterPlanetary File System

IPFS adalah protokol file peer-to-peer: file dipecah, di-hash, dan didistribusikan di banyak node. Identitas file bukan URL server, melainkan CID (Content Identifier) — hash isi file.

Sifat unik CID: content-addressed. Dua file dengan isi sama punya CID sama; mengubah satu byte mengubah CID. Ini memungkinkan verifikasi integritas: siapa pun yang mengunduh CID bisa membuktikan isinya asli.

Tambahkan file ke IPFS
ipfs add metadata.json

Outputnya sebuah CID seperti Qm... (atau bafy...). Untuk memastikan file tetap tersedia, file harus di-pin — dijaga hidup oleh node yang memegangnya.

Pinning: Menjaga File Tetap Ada

IPFS tidak menjanjikan persistensi: jika tidak ada node yang menyimpan file, ia hilang. Pinning adalah janji sebuah node untuk terus menyimpan file. Layanan pinning populer: Pinata, Web3.Storage, Filebase, dan NFT.Storage.

Pin lewat Pinata (konsep)
const form = new FormData()
form.append("file", fileBlob)
const res = await fetch("https://api.pinata.cloud/pinning/pinFileToIPFS", {
  method: "POST",
  headers: { Authorization: `Bearer ${PINATA_JWT}` },
  body: form,
})
const { IpfsHash } = await res.json() // CID

Arweave: Penyimpanan Permanen

Arweave dirancang untuk penyimpanan sekali bayar, permanen: user membayar sekali dan data disimpan selamanya (didanai perpetual endowment). Ini berbeda fundamental dari IPFS yang butuh pinning berkelanjutan.

AspekIPFSArweave
IdentitasCID (content-addressed)Arweave TX ID
BiayaGratis upload, bayar pinningSekali bayar, permanen
PersistensiTergantung pinningDijamin permanen
Akseslewat gateway (ipfs.io, pinata.cloud)lewat gateway (arweave.net)
Cocok untukMetadata NFT, konten aktifData arsip, dokumen legal, permanen

Filecoin: Penyimpanan Terverifikasi

Filecoin adalah pasar penyimpanan: penyedia (miner) menyimpan file dan membuktikannya secara berkala lewat proofs on-chain. User membayar untuk kontrak penyimpanan yang bisa diverifikasi.

Kombinasi umum: IPFS untuk akses cepat + Filecoin untuk persistensi yang dibuktikan. Sering dipakai untuk data besar: dataset, backup, dan content yang perlu bukti penyimpanan.

Metadata NFT di IPFS

Pola standar NFT: kontrak menyimpan tokenURI yang menunjuk ke JSON metadata, dan JSON menunjuk ke gambar di IPFS:

metadata.json
{
  "name": "Koleksi #1",
  "description": "Contoh metadata NFT di IPFS",
  "image": "ipfs://QmXk7k...",
  "attributes": [
    { "trait_type": "warna", "value": "biru" }
  ]
}

Kontrak menyimpan ipfs://bafybe.../1.json sebagai tokenURI. Wallet dan marketplace menampilkan gambar dari CID tersebut.

Warning

Hati-hati dengan "IPFS metadata yang mudah rusak": banyak koleksi NFT menyimpan metadata di server terpusat atau pinning gratis yang kedaluwarsa. Untuk produksi, gunakan layanan pinning berbayar, pertimbangkan Arweave untuk nilai jangka panjang, dan pastikan tokenURI menunjuk ke URI permanen — bukan ke ipfs:// CID yang tidak pernah di-pin.

On-chain vs Off-chain: Strategi Data

Pertanyaan kunci setiap DApp: data mana yang on-chain, mana yang off-chain?

Jenis DataTempatAlasan
Kepemilikan, saldo, logikaOn-chain (contract)Perlu konsensus & verifikasi
Gambar, audio, dokumenIPFS/ArweaveTerlalu besar/mahal untuk on-chain
Data pribadiJangan di chain sama sekaliPublik permanen
Data ephemeralOff-chain biasaTidak perlu verifikasi
Nilai & asetOn-chainHarus provable & portable

Aturan sederhananya: apa pun yang harus bisa diverifikasi siapa pun, taruh on-chain; apa pun yang besar atau pribadi, taruh di luar — dengan CID/permanent link jika perlu persistensi.

Ringkasan Konsep

Rangkuman yang sudah kalian pelajari di episode 13:

  • IPFS = content-addressed (CID); butuh pinning untuk persistensi.
  • Arweave = sekali bayar, permanen; Filecoin = penyimpanan terverifikasi dengan proof.
  • Metadata NFT standar: tokenURI → JSON di IPFS → gambar di IPFS.
  • Strategi data: on-chain untuk yang provable, off-chain/IPFS/Arweave untuk yang besar.

Penutup

Inti yang harus dibawa pulang:

  • CID adalah konten, bukan lokasi — ini yang membuat file dapat diverifikasi.
  • "Upload ke IPFS" belum berarti "selamanya ada" — pin atau pakai Arweave.
  • Desain data sejak awal: apa yang harus on-chain, apa yang cukup off-chain.

Di episode 14 selanjutnya, kita membahas indexing: The Graph & subgraph — mengapa query on-chain langsung tidak cukup, struktur subgraph (subgraph.yaml, schema.graphql, mappings), cara deploy, dan query GraphQL dari frontend plus alternatif SubQuery dan Goldsky. Sampai jumpa di episode 14!

Belajar Web3 - Storage: IPFS, Arweave, Filecoin | Belajar Web3