- BTFS adalah sistem berkas BitTorrent yang memungkinkan file
.torrent atau magnet link dipasang dan digunakan seperti direktori read-only dalam pohon berkas
- Isi berkas diunduh on-demand saat dibaca oleh aplikasi, dan tool umum seperti
ls, cat, cp bekerja sesuai harapan
- Aplikasi seperti
vlc dan mplayer juga dapat berjalan tanpa perubahan, sehingga konten torrent bisa diperlakukan seperti berkas biasa
- Menyediakan metode instalasi paket untuk Debian/Ubuntu, Arch Linux, Gentoo, Fedora, Fedora OSTree, OpenSUSE, dan macOS
- Dependensi Linux adalah fuse3, libtorrent, dan libcurl; build dari source menggunakan alur
autoreconf, configure, make
Apa yang dilakukan BTFS
- BTFS memungkinkan file
.torrent atau magnet link dipasang dan digunakan seperti direktori read-only di dalam pohon berkas
- Isi berkas diunduh on-demand saat benar-benar dibaca oleh aplikasi
- Tool sistem berkas umum tetap bekerja apa adanya
- Aplikasi juga dapat digunakan tanpa perubahan
Alur penggunaan dasar
- Buat direktori mount, hubungkan file torrent, lalu jalankan file di dalam direktori seperti berkas biasa
$ mkdir mnt
$ btfs video.torrent mnt
$ cd mnt
$ vlc video.mp4
- Unmount dan penghentian dilakukan dengan
fusermount
$ fusermount -u mnt
Instalasi paket
- Di Debian/Ubuntu, instal dengan
apt-get
# apt-get install btfs
- Di Arch Linux, instal dengan
pacman
# pacman -S btfs
- Di Gentoo, instal dengan
emerge
# emerge -av btfs
- Di Fedora, instal paket
fuse-btfs dengan dnf
# dnf install fuse-btfs
- Di Fedora OSTree, instal
fuse-btfs dengan rpm-ostree
$ rpm-ostree install fuse-btfs
- Di OpenSUSE, instal dengan
zypper
# zypper install btfs
$ brew install btfs
Dependensi Linux
- Dependensi yang diperlukan di Linux adalah sebagai berikut
- fuse3: di Ubuntu 22.04,
fuse3
- libtorrent: di Ubuntu 22.04,
libtorrent-rasterbar8
- libcurl: di Ubuntu 22.04,
libcurl4
Build dari source
- Pada Debian/Ubuntu terbaru, instal dependensi build, clone repositori, lalu jalankan
autoreconf, configure, dan make
$ sudo apt-get install autoconf automake libfuse3-dev libtorrent-rasterbar-dev libcurl4-openssl-dev g++
$ git clone https://github.com/johang/btfs.git btfs
$ cd btfs
$ autoreconf -i
$ ./configure
$ make
- Jika ingin sekaligus menginstalnya, jalankan tambahan
make install
$ make install
- Build di macOS menggunakan alur build yang sama setelah dependensi diinstal dengan
brew
$ brew install --cask macfuse libtorrent-rasterbar autoconf automake pkg-config
$ git clone https://github.com/johang/btfs.git btfs
$ cd btfs
$ autoreconf -i
$ ./configure
$ make
- Jika instalasi juga diperlukan di macOS, jalankan
make install
$ make install
1 komentar
Komentar Hacker News
Akan bagus kalau ada program server sebagai pasangannya. Maksudnya yang sekaligus berperan sebagai pembuat file torrent, tracker, dan server file sederhana.
Di organisasi besar, sepertinya mereka bisa menaruh data publik dalam jumlah sangat besar di server, membuat torrent setiap kali datanya berubah, menyediakan file
.torrentlewat HTTP, sekaligus bertindak sebagai tracker. Di klien FUSE cukup dibungkus dengan logika sederhana untuk mendeteksi torrent baru dari server lalu memuat ulang/me-mount ulangnya.Dulu sekali saya pernah membuat distribusi Linux untuk bank. Berbasis Ubuntu NetBoot, hanya berisi paket minimal untuk desktop kantor cabang, dan karena tidak ada server di cabang, distribusinya melakukan self-seeding. Selama wake-on-lan dan PXE sudah dikonfigurasi di switch, satu mesin bisa mengkloning ratusan mesin dalam satu gedung dalam waktu cukup singkat, dan klon baru juga bisa menjadi seed.
Secara internal, kami menyediakan repositori Ubuntu kustom dengan nginx dan menjalankan tftp/inetd serta wackamole. Setelah sebuah mesin terpasang, ia mengambil torrent dari “server” dan menambahkannya ke transmission; setelah selesai, mesin itu juga menjadi seed dan menjalankan wackamole, inetd, nginx, tracker, dan sebagainya. Awalnya men-seed 10 mesin dengan stabil, lalu setelah semuanya aktif, membangunkan lebih banyak mesin.
Dalam beberapa minggu kami mendistribusikan image ke 8.000 mesin di ratusan cabang bank; sebagian besar keterlambatan disebabkan oleh manajemen perubahan dan rencana rollout bertahap. Yang paling sulit sebenarnya adalah mengunduh seed pertama ke tiap cabang lewat build Linux yang sudah ada, lalu menjadikan salah satunya mesin seed. Ini dilakukan di lebih dari 350 cabang dengan koneksi terbatas, sebagian bahkan memakai ISDN 256kbps.
Saya belum pernah benar-benar memakainya, jadi tidak tahu apakah AWS memasukkan tracker mereka sendiri ke
.torrentyang dihasilkan.Alat ini seharusnya di-upgrade agar memakai fitur baru BitTorrent v2.
https://blog.libtorrent.org/2020/09/bittorrent-v2/
Yang terutama penting adalah pohon hash Merkle, yang memungkinkan pohon hash per file dan struktur direktori.
Dengan begitu saya bisa lebih mudah menghapus file besar karena tahu nanti bisa mengunduh ulang salinan yang identik dengan mudah. Dulu saya mencoba melakukan hal serupa dengan IPFS, tapi tidak berjalan baik dan juga tidak bisa menemukan file duplikat.
Akan bagus kalau ada BTFS yang memperbaiki file media yang “rusak”. Misalnya media yang sebagian hilang karena disk tergores, atau media yang opsi codec pilihan saya kurang bagus; cukup unduh bagian yang rusak saja lalu pulihkan dengan mulus.
http://www.accuraterip.com/
Karena saya selalu menghapus file yang tidak perlu, bentuk torrent parsial diperlukan.
Saya tidak tahu apakah implementasi file system NNTP benar-benar bekerja dengan baik, tapi ada juga nzbfs: https://github.com/danielfullmer/nzbfs
Saya memposting ini karena heran kenapa ini tidak lebih banyak dipakai. Mungkinkah virtual machine atau sistem operasi dibuat sebagai overlay di atas BTFS? Kelihatannya arah yang menarik.
Saat boot, initrd di-mount sebagai overlayfs read-only. Konfigurasinya saya buka untuk publik: https://github.com/jhvst/nix-config
Nanti saya berencana menulis dokumentasi proses IPFS, termasuk konfigurasi router PXE, di https://github.com/majbacka-labs/nixos.fi. Untuk orang-orang yang ingin mencoba proses ini, saya juga bisa menjalankan server build publik kecil untuk konfigurasi Flake.
https://github.com/uber/kraken
https://cernvm.cern.ch/fs/
Klien yang sempurna untuk mengakses konten Internet Archive. Setiap item IA otomatis dilampiri torrent yang berisi web seed IA. Bisa dicoba dengan Big Buck Bunny
btfshttps://archive.org/download/BigBuckBunny_124/BigBuckBunny_1...mountpointIni sering terlihat pada kumpulan ROM atau arsip majalah. Jika itemnya lebih dari 1000, torrent biasanya hanya berisi sekitar 200 pertama
btplay https://archive.org/download/BigBuckBunny_124/…Artikel terkait:
BTFS – mount any .torrent file or magnet link as directory - https://news.ycombinator.com/item?id=23576063 - Juni 2020 (121 komentar)
BitTorrent file system - https://news.ycombinator.com/item?id=10826154 - Jan 2016 (33 komentar)
Lebih jauh lagi, akan bagus jika data disimpan sebagai file sqlite yang berisi indeks pencarian teks penuh. Dengan begitu torrent bisa dicari full-text saat diperlukan: https://github.com/bittorrent/sqltorrent
Diskusi 4 tahun lalu:
https://news.ycombinator.com/item?id=23576063
Komentar tingkat atas dari saurik dalam thread lama tahun 2020 dengan 121 komentar merangkum dengan baik perasaan saya tentang situasi ini: https://news.ycombinator.com/item?id=23580334
Intinya, BTFS adalah versi IPFS “satu CID dalam satu waktu”
IPFS itu keren, tetapi menurut saya perlu kemajuan besar di setidaknya tiga area agar layak dipakai sehari-hari. Pertama, seharusnya tidak perlu menjalankan proxy node lokal. Saya pernah mendengar Brave punya dukungan WebTorrent bawaan, tetapi karena saya tidak memakai Brave, saya tidak tahu apakah itu hanya bernama WebTorrent atau bagaimana
Kedua, latensi resolusi swarm/peer terasa menyakitkan seperti “mainan kripto web3”, dan karena latensi itu, browsing terasa seperti zaman modem 14.4k dulu
Ketiga, IPFS bagus untuk konten yang jarang berubah tetapi sangat populer, seperti Wikipedia, rilis game, dan konten MDN. Namun saat membayangkan menjelajahi repositori git, mengganti “tip” atau “main” ke versi yang diperbarui cukup merepotkan. Sejauh yang saya tahu, satu-satunya cara untuk meresolusikan CID terbaru adalah IPNS, dan DNS adalah mekanisme yang mudah menjadi salah satu dari banyak faktor yang saling kusut setiap kali terjadi gangguan
Saya tahu ini terlalu panjang membahas file system lain, bukan file system yang diajukan, tetapi sementara saya kemungkinan tidak akan memasang BTFS, orang yang tertarik pada ide ini layak membaca lebih lanjut tentang IPFS. Hanya saja, sebaiknya tetap ingat keterbatasannya saat ini
https://github.com/anacrolix/torrent sudah memiliki driver FUSE sejak 2013. Sekarang sedang berada pada tahap awal untuk menghapusnya
WebDAV, FUSE pihak ketiga, dan wrapper HTTP semuanya melakukan hal yang mirip. Caranya adalah menyajikan magnet link, info hash, dan file torrent seperti file system yang immutable. Dukungan BitTorrent v2 saat ini sudah masuk ke master