IPFS singkatan dari Interplanetary File System adalah jaringan berbagi file peer-to-peer terdistribusi yang diposisikan dengan baik untuk menjadi fondasi web baru yang terdesentralisasi. Inilah cara kerjanya, dan bagaimana cara menggunakan IPFS.
Internet Terdesentralisasi
Pengertian desentralisasi adalah terpusat. Meskipun bersifat global, world wide web atau www masih merupakan jaringan terpusat. Penyimpanan data di belakang internet sebagian besar adalah server fisik atau virtual dalam kumpulan server besar atau platform cloud.
Fasilitas ini dimiliki oleh satu perusahaan. Server dimiliki atau disewa oleh perusahaan lain dan dikonfigurasi serta diekspos agar dapat diakses oleh dunia luar.
Siapa pun yang ingin mengakses informasi di server tersebut harus membuat koneksi HTTPS dari browser mereka ke server yang sesuai. Server melayani semua permintaan akses ke data yang dipegangnya.
Ini adalah pengertian yang sederhana, tetapi ini menggambarkan model umum. Untuk memungkinkan penskalaan dan memberikan ketahanan, organisasi dapat menggunakan server mirror dan jaringan pengiriman konten atau CDN.
Namun meskipun demikian, masih ada sejumlah lokasi yang relatif kecil dan terbatas yang dapat dikunjungi orang untuk mengakses file tersebut.
IPFS adalah implementasi dari jaringan terdesentralisasi. Salah satu sistem perangkat lunak terdesentralisasi yang paling populer adalah Git. Git adalah sistem terdistribusi karena setiap pengembang yang telah mengkloning repositori memiliki salinan seluruh repositori, termasuk riwayatnya di komputer mereka.
Jika repositori pusat dihapus, salinan repositori dapat digunakan untuk memulihkannya. IPFS mengambil konsep terdistribusi itu dan menerapkannya pada penyimpanan file dan pengambilan data.
IPFS dibuat oleh Juan Benet dan dikelola oleh Protocol Labs, perusahaan yang ia dirikan. Mereka mengambil sifat Git yang terdesentralisasi dan teknik torrent yang terdistribusi dan hemat bandwidth, kemdian menciptakan sistem pengarsipan yang bekerja di semua node dalam jaringan IPFS.
Cara kerja IPFS
Web yang terdesentralisasi terdiri dari semua komputer yang terhubung dengannya yang dikenal sebagai node . Node dapat menyimpan data dan membuatnya dapat diakses oleh siapa saja yang memintanya.
Jika seseorang meminta file atau halaman web, salinan file di cache di node. Jika semakin banyak orang meminta data itu, semakin banyak salinan cache akan ada. Permintaan berikutnya untuk file tersebut dapat dipenuhi oleh node mana pun atau kombinasi node yang memiliki file tersebut. Beban pengiriman data dan pemenuhan permintaan secara bertahap dibagi di antara banyak node.
Ini membutuhkan jenis alamat web baru. Ini bukan perutean berbasis alamat di mana kita harus mengetahui lokasi data dan memberikan URL khusus untuk data itu, web yang terdesentralisasi menggunakan perutean berbasis konten.
Kita tidak mengatakan di mana datanya; kita hanya meminta apa yang diinginkan dan ditemukan, kemudian diambil untuk kita. Karena data disimpan di banyak komputer yang berbeda, semua komputer tersebut dapat memasukkan sebagian data ke komputer kita sekaligus seperti download di torrent.
Fungsi Torrent ini dimaksudkan untuk menurunkan latensi, mengurangi bandwidth, dan menghindari kemacetan yang disebabkan oleh server tunggal, terpusat.
Menjauh dari model terpusat berarti tidak ada titik fokus bagi peretas untuk menyerang. Tetapi perhatian langsung bagi kebanyakan orang adalah gagasan bahwa file, gambar, dan media lain mereka akan disimpan di komputer orang lain.
Ini tidak seperti itu. IPFS bukanlah sesuatu yang dihubungkan dan mengunggahnya. Ini bukan Dropbox yang terdistribusi. Ini adalah sesuatu yang menghosting node atau membayar untuk menggunakan node yang disediakan secara profesional yang dihosting oleh layanan cloud.
Kecuali memilih untuk membagikan atau menerbitkan sesuatu, itu tidak akan dapat diakses oleh orang lain. Sebenarnya istilah “mengunggah” itu menyesatkan. Apa yang sebenarnya kita lakukan adalah mengimpor file ke node sendiri.
Jika ingin file dapat diakses oleh orang lain tetapi perlu membatasi konten untuk beberapa orang tertentu, kita perlu mengenkripsinya sebelum mengimpornya. Transmisi data dienkripsi di kedua arah, tetapi file yang diimpor sengaja tidak dienkripsi secara default. IPFS tidak mendorong bentuk enkripsi penyimpanan file sebagai enkripsi resmi.
Bagaimana data IPFS disimpan
Data disimpan dalam potongan 256 KB yang disebut objek IPFS. File yang lebih besar dari itu dipecah menjadi objek IPFS sebanyak yang diperlukan untuk mengakomodasi file. Satu objek IPFS per file berisi tautan ke semua objek IPFS lain yang menyusun file itu.
Saat file ditambahkan ke jaringan, file tersebut diberi ID hash 24 karakter yang unik yang disebut ID konten atau CID. Begitulah cara untuk diidentifikasi dan dirujuk dalam jaringan IPFS. Menghitung ulang hash saat file diambil akan memverifikasi integritas file. Jika pemeriksaan gagal, file telah dimodifikasi. Saat file diperbarui secara sah, IPFS menangani pembuatan versi file.
Itu berarti versi baru dari file tersebut disimpan bersama dengan versi sebelumnya. IPFS beroperasi seperti sistem file terdistribusi, dan konsep pembuatan versi ini memberikan tingkat kekekalan pada sistem file tersebut.
Katakanlah kita menyimpan file dalam IPFS di node dan seseorang memintanya dan mendownloadnya ke node mereka. Orang berikutnya yang meminta file itu mungkin mendapatkannya dari kita atau dari orang yang minta tadi atau dengan cara seperti torrent dengan bagian file yang berasal dari node kita dan dari node orang tadi.
Semakin banyak orang yang mengunduh file tersebut, semakin banyak node yang dapat dimasukkan dan membantu dengan permintaan file berikutnya.
Pengumpulan sampah secara berkala akan menghapus objek IPFS yang di cache. Jika ingin menyimpan file secara permanen, dapat menyematkannya ke node.js. Itu berarti tidak akan dibersihkan selama pengumpulan sampah.
Kita dapat membayar penyimpanan di penyedia penyimpanan cloud yang mendukung data ke jaringan IPFS dan menyimpannya secara permanen, dan ada layanan yang dirancang khusus untuk situs web hosting yang dapat diakses oleh IPFS.