IGOS Nusantara dan Bittorrent
Bittorrent adalah aplikasi P2P yang dibuat oleh Bram Cohen pada tahun 2001 dengan lisensi MIT yang termasuk ke dalam kategori Open Source. Adalah sebuah aplikasi yang bisa menyediakan network 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 mendownload file sekaligus membantu distribusi upload secara otomatis meskipun file yang sedang didownload belum selesai.
Berikut tutorial singkat tentang cara menggunakan Bittorrent ini, terdiri dari tiga bagian yaitu membuat tracker, mempublish ke tracker dan cara mendownload file menggunakan Bittorrent. Tutorial ini khusus untuk lingkungan sistem operasi Linux/Unix dengan Python dan Bittorrent sudah terinstall (distribusi modern Linux umumnya sudah menyertakan aplikasi Bittorrent), jika belum ada jangan salahkan distro Linux anda, segera cari tutorial menginstall Bittorrent di situs lain, just ask Google! 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
$ bttrack.py --dfile dfile.log --logfile track.log --port 6969 &
Perintah di atas akan membuat IP address atau hostname server tersebut menjadi misalnya http://212.212.212.212:6969 atau http://please.dong.ah:6969 di mana tempat untuk mendaftarkan torrent nantinya adalah http://212.212.212.212:6969/announce atau http://please.dong.ah:6969/announce. Membuat file torrent
Sekarang misalnya kita akan mempublish sebuah direktori yang berisi file-file mp3 bernama Aishah, langkah pertama yang harus dilakukan adalah menggenerate file tersebut menjadi torrent dengan cara:
$ btmakemetafile.py Aishah http://please.dong.ah:6969/announce
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 Mendownload 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 upload 32Kbps maka jika ada 100 orang mendownload 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. Imagine that great concept!
Untuk mendownload file tertentu melalui torrent anda bisa mencari file torrentnya melalui search engine atau ke situs-situs yang menyediakan kumpulan file torrent seperti suprnova.org. Download file torrentnya yang cukup kecil dan mulailah download 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:)
Tulisan ini dibuat juga atas permintaan P.A.K. E.R.T.E.
none. Catatan ini ditulis Jumat, 8 Oktober 2004 pada pukul 23:24 dalam Tag:gnu/linux. Anda dapat mengikuti respon semua catatan melalui RSS 2.0 feed. Anda dapat menulis komentar atau menulis trackback di situs anda sendiri.