IGOS Nusantara dan Bittorrent
Bittorrent adalah aplikasi P2P yang dibuat oleh Bram Cohen pada tahun 2001. Lisensi yang dipakai adalah lisensi MIT yang termasuk ke dalam kategori Open Source. Aplikasi ini dapat menyediakan jaringan untuk pertukaran file yang terdistribusi antara client dengan client, bukan konsep one-to-many seperti yang kita kenal dalam protokol FTP tapi many-to-many, di mana client yang mengunduh file sekaligus membantu distribusi unggah secara otomatis meskipun file yang sedang diunduh belum selesai.
Berikut ini contoh panduan membuat torrent di repo.igos-nusantara.or.id. Direktori yang akan dibuat torrent ada di /home/repo/iso
Daftar isi
Persiapan
Jika aplikasi bittorrent belum ada, pasang dengan cara:
# yum -y install bittorrent # yum -y install transmission-daemon # yum -y install transmission-cli
Konfigurasi =
cd /var/lib/transmission/.config/transmission/ sed -i 's/^.*rpc-whitelist-enabled.*/"rpc-whitelist-enabled": false,/' settings.json sed -i 's/^.*rpc-authentication-required.*/"rpc-authentication-required": true,/' settings.json sed -i 's/^.*rpc-username.*/"rpc-username": "igos",/' settings.json sed -i 's/^.*rpc-password.*/"rpc-password": "r4h4si4",/' settings.json
Jalankan:
# chkconfig --add transmission-daemon # chkconfig --level 345 transmission-daemon on # service transmission-daemon start
Membuat tracker
Tracker adalah sebuah server yang berfungsi meng-announce sebuah torrent dan torrent adalah sebuah file kecil ukurannya terhadap file yang dipublish yang merupakan hash dan metadata file sesungguhnya. Sebuah file yang hendak disebar harus didaftarkan ke tracker pada saat menggenerate file torrent-nya.
Tracker akan memantau lalu lintas (bukan melewatkan data file sesungguhnya) antar client, jadi bisa dikatakan sangat kecil bandwidth yang dihabiskan untuk fungsi kerja sebuah tracker ini. Satu buah tracker bisa dipakai oleh banyak torrent.
Ketika satu client mempublish torrentnya dan menyediakan file yang sesungguhnya untuk didownload client lain dinamakan seeder.
Sebuah tracker bekerja pada protokol HTTP dengan port default 80, umumnya pembuat tracker menggantinya dengan port di atas 1023 supaya user linux biasa (bukan root) bisa menjalankannya.
Contoh menjalankan tracker dengan menyimpan datafile ke dfile.log dan logfile ke track.log pada port 6969
$ service transmission-daemon start
Perintah di atas akan membuat IP address atau hostname server tersebut menjadi misalnya http://202.162.217.58:9091 atau http://repo.igos-nusantara.or.id:9091 di mana tempat untuk mendaftarkan torrent nantinya adalah http://202.162.217.58:9091/announce atau http://repo.igos-nusantara.or.id:9091/announce.
Membuat file torrent
Direktori ISO image ada di /home/repo/iso file-file mp3 bernama Aishah, langkah pertama yang harus dilakukan adalah menggenerate file tersebut menjadi torrent dengan cara:
$ cd /home/repo/iso $ transmissioncli -n IGN2011-beta2.iso -a http://repo.igos-nusantara.or.id:9091/announce IGN2011-beta2.iso.torrent
Perintah di atas akan menghasilkan sebuah file bernama Aishah.torrent. Sekarang bagaimana direktori tersebut dipublish? Anda harus menjadi seeder pertama. Menjadi seeder pertama adalah seolah-olah anda mendownload melalui torrent padahal anda sudah punya filenya lengkap. Caranya jalankan fungsi download Bittorrent di direktori tadi
$ btdownloadcurses.py Aishah.torrent
Layar console anda akan mengecek direktori Aishah dan isinya dan dibandingkan dengan informasi metadata pada file torrentnya, status Bittorrent anda akan mengatakan file sudah selesai terdownload. Dengan membiarkan file yang sudah selesai terdownload anda sudah menjadi seorang seeder dan orang lain siap mendownload file anda.
Bagaimana jika ada banyak direktori yang ingin anda seed ke tracker dengan file torrent yang berbeda-beda? Buatlah file torrent-nya masing-masing sesuai petunjuk di atas dan gunakan perintah berikut untuk menjadi seeder dengan banyak file torrent
$ btlaunchmany.py ./
Perintah di atas akan mengecek semua file .torrent di current directory dan menjalankan semuanya sebagai seeder. Untuk membatasi bandwidth upload setiap file torrentnya gunakan option berikut:
$ btlaunchmany.py ./ --max_upload_rate 4
Angka 4 artinya maksimum upload adalah 4KB/s atau 32Kbps
Mengunduh dengan Bittorrent
Bagaimana orang lain bisa mendownload file anda? Caranya adalah publikasikan file .torrent yang anda buat ke dalam sebuah halaman web atau kirimkan melalui email sebagai attachment ke rekan anda, dan rekan anda akan mendownload file tersebut dengan cara:
$ btdownloadcurses.py Aishah.torrent
Ketika anda sebagai seeder membatasi maksimum unggah 32Kbps maka jika ada 100 orang mengunduh file anda bandwidth upload maksimum tetap 32Kbps tapi bukan berarti client lain yang sedang mendownload akan mendapat 32/100Kbps karena semua client akan saling bertukar informasi melalui tracker dan saling bertukar file yang sama meskipun semuanya belum ada satu pun yang sudah selesai mendownload dari anda sebagai seeder.
Untuk mengunduh file tertentu melalui torrent anda bisa mencari file torrentnya melalui search engine atau ke situs-situs yang menyediakan kumpulan file torrent seperti suprnova.org. Unduh file torrentnya yang cukup kecil dan mulailah unduh file sesungguhnya dengan Bittorrent, dan satu pesan ketika selesai mendownload jangan tutup dulu biarkan orang lain mendownload dari anda meskipun upload anda batasi misalnya hanya 2KB/s:)