Museria - gudang musik terdesentralisasi

gambar

Saya pernah berkumpul untuk menulis aplikasi untuk memilih musik sendiri dan mendengarkan di rumah / di jalan / pelatihan, dll. Dan agar semua ini berfungsi dalam aliran, dengan minimum partisipasi saya. Dia datang dengan arsitektur, membuat sketsa prototipe dan berakhir dengan satu "masalah kecil".

Dan tidak jelas di mana mendapatkan file lagu sendiri. Pada saat ini, VKontakte sudah menutup apinya, semuanya tuli pada portal musik besar, bahkan lagu-lagu diberikan dalam bentuk potongan-potongan agar tidak diurai. Hanya ada beberapa situs web satu hari yang terpisah dengan berton-ton iklan dan semua jenis sampah, semua jenis program grabber yang meragukan, dan opsi "kotor" lainnya. Secara umum, tidak satu pun keputusan bagus yang valid. Anda tentu saja dapat membeli berlangganan musik Yandex atau sejenisnya. Tetapi sekali lagi, tidak ada api publik yang terbuka dan Anda tidak memiliki akses ke musik secara terprogram. Beberapa perusahaan besar, pada kenyataannya, membatasi sisa akses mereka ke musik. Mengapa ini terjadi sama sekali? Menggali lebih dalam, menjadi masalah utama dalam hak cipta. Solusi saat ini dalam bentuk langganan cocok dengan banyak penulis komersial karya musik dan perusahaan yang sama ini.Pada saat yang sama, musik nirlaba dan shareware juga masuk dalam daftar umum. Anda membayar semuanya atau tidak mendengarkan apa pun.

Dan saya mulai berpikir apa yang harus saya lakukan dengan semua ini. Bagaimana distribusi musik gratis dapat diatur? Apa yang akan saya lakukan jika saya membuat musik sendiri dan ingin menghasilkan uang? Apakah saya suka jika lagu saya mulai didistribusikan secara bajakan? Apa itu solusi alternatif?

Akibatnya, ada dua masalah utama yang perlu diatasi:

  • Organisasi distribusi musik gratis dengan metode yang nyaman bagi kebanyakan orang, termasuk perangkat lunak.
  • Tawarkan alternatif kepada pencipta musik untuk mendapat uang

Repositori musik desentralisasi global


Awalnya, saya mencoba mencari solusi yang ada dan membuat semuanya berdasarkan ini. Setelah beberapa waktu mencari, ipfs pertama kali menyukainya . Saya mulai menerapkan ide saya, tetapi setelah beberapa saat saya menemukan beberapa masalah kritis dalam solusi ini:

  • Ipfs - penyimpanan untuk segalanya dan segalanya. Di sini, dan gambar dan musik dan video, dan apa pun. Secara umum, planet besar "sampah". Oleh karena itu, ketika Anda memulai node Anda, Anda segera mendapatkan beban yang sangat besar. Mobil itu hanya menggeliat kesakitan.
  • - ยซยป. , , , , . , . , , ipfs .
  • ( ), . , , . , , , . .

Masih ada banyak masalah kecil, kesan itu kemudian jelas: ini tidak dapat digunakan untuk proyek. Saya terus mencari repositori, menjelajahi berbagai pilihan, tetapi masih tidak menemukan sesuatu yang cocok.

Pada akhirnya, saya memutuskan untuk mencoba menulis sendiri penyimpanan yang terdesentralisasi. Biarkan itu tidak berpura-pura menjadi antarplanet, tetapi akan menyelesaikan tugas tertentu.

Ini adalah bagaimana olesan , storacle , metastocle , museria , museria-global yang ternyata .

dapat disebarkan- Ini adalah lapisan utama, terendah, yang memungkinkan Anda untuk menggabungkan node ke dalam jaringan. Ini berisi algoritma yang sejauh ini saya terapkan sebagian didasarkan pada suatu tempat di 10.000 server. Versi lengkap dari algoritma jauh lebih sulit untuk diterapkan dan akan membutuhkan beberapa bulan tambahan (mungkin lebih).

Secara terperinci, saya tidak akan menjelaskan spreadable dalam artikel ini, saya lebih baik menulis yang terpisah. Di sini saya hanya mencatat beberapa fitur:

  • Ia bekerja melalui http / https.
  • Anda dapat membuat jaringan terpisah untuk tugas tertentu, yang secara signifikan akan mengurangi beban pada masing-masing proyek daripada jika mereka semua berada di jaringan yang sama.
  • Awalnya, mekanisme dengan batas waktu dan hal-hal kecil lainnya dipikirkan. Dan ini berfungsi untuk semua metode di klien dan simpul. Anda dapat secara fleksibel mengelola pengaturan dari aplikasi Anda.
  • nodejs. . ยซยป, . : , , , ...

storacle adalah lapisan yang diwarisi dari spreadable yang memungkinkan Anda untuk menyimpan file di jaringan. Setiap file memiliki hash sendiri sesuai dengan isinya, yang nantinya bisa diperoleh. File tidak dibagi menjadi blok, tetapi disimpan secara keseluruhan.

metastocle - lapisan yang diwarisi dari spreadable, yang memungkinkan Anda untuk menyimpan data di jaringan, tetapi bukan file. Antarmuka mirip dengan database nosql. Anda dapat, misalnya, menambahkan file ke penyimpanan, mendapatkan hash dan menulisnya ke metastocle dengan merujuk pada sesuatu.

museria - diwarisi dari penyimpanan dan metastocle. Lapisan ini bertanggung jawab langsung untuk menyimpan musik. Repositori hanya berfungsi dengan file mp3 dan tag id3.

Sebagai "kunci" untuk lagu tersebut, nama lengkapnya digunakan dalam bentuk Artis (TPE1) - Judul (TIT2) . Contohnya:

  • Brimstone โ€” The Burden
  • Hi-rez โ€” Lost My Way (feat. Emilio Rojas, Dani Devinci)

Anda dapat mengetahui sebanyak mungkin bagaimana nama lagu dibentuk di sini . Penting untuk melihat fungsi utils.beautifySongTitle () .

Pencocokan kunci adalah persentase yang ditentukan dalam pengaturan simpul. Sebagai contoh, nilai 0,85 berarti jika fungsi perbandingan kunci (nama lagu) menemukan kesamaan lebih dari 85%, maka ini adalah lagu yang sama.

Algoritma untuk menentukan kesamaan ada di tempat yang sama, di fungsi utils.getSongSimilarity () .

Sampul lagu, untuk pengambilan nanti, juga dilampirkan melalui tag ( APIC ). Utils memiliki semua metode yang diperlukan untuk menerima dan memproses tag.

Contoh bekerja dengan repositori melalui klien dapat ditemukan di readme .
. , .

museria-global adalah repositori git yang sudah dikonfigurasi untuk meluncurkan node sendiri di jaringan musik global. Kloning npm saya && npm mulai dan hanya itu. Anda dapat mengonfigurasi lebih detail, berjalan di buruh pelabuhan, dll. Detail ada di github .

Ketika repositori diperbarui, Anda perlu memperbarui situs Anda. Jika nomor versi mayor atau minor berubah, maka tindakan ini diperlukan, jika tidak, simpul lama akan diabaikan oleh jaringan.

Anda dapat bekerja dengan lagu secara manual dan terprogram. Setiap node memulai server untuk berbagai tugas. Termasuk, ketika Anda mengunjungi titik akhir default, Anda akan mendapatkan antarmuka untuk bekerja dengan musik. Misalnya, Anda dapat pergi ke simpul root(tautan mungkin tidak relevan kemudian, simpul input juga dapat diperoleh melalui telegram , atau lihat pembaruan di github).

Jadi, Anda dapat mencari dan mengunggah lagu ke repositori. Mengunduh lagu dapat dilakukan dalam dua mode: normal dan sedang. Mode kedua berarti bahwa pekerjaan dilakukan oleh seseorang, bukan program. Dan jika Anda mencentang kotak ini saat menambahkan, maka Anda harus menyelesaikan captcha. Lagu dapat ditambahkan dengan prioritas -1, 0 atau 1. Prioritas 1 hanya dapat diatur dalam mode dimoderasi. Prioritas diperlukan untuk membuat repositori lebih efektif dalam memutuskan apa yang harus dilakukan ketika Anda mencoba mengganti lagu yang sudah ada dengan yang baru. Semakin tinggi prioritas, semakin besar kemungkinan Anda akan menimpa file yang ada. Ini membantu melawan spam dan meningkatkan kualitas lagu yang diunduh.

Jika Anda mulai menambahkan lagu ke repositori, cobalah untuk melampirkan gambar (sampul), meskipun bidang ini opsional. Dalam 99% kasus, gambar pertama di Google dengan nama lagu adalah sampul album.

Singkatnya, file secara teknis ditambahkan:

  • Klien menerima alamat simpul bebas, yang untuk beberapa waktu akan menjadi koordinator.
  • Fungsi menambahkan lagu dipicu (oleh seseorang atau kode), permintaan dibuat untuk menambahkan koordinator ke titik akhir.
  • Koordinator menghitung berapa banyak duplikat yang perlu disimpan (parameter yang dapat dikonfigurasi).
  • Node yang paling cocok untuk disimpan dicari.
  • File langsung menuju ke simpul-simpul ini.

Bagaimana secara teknis file diterima:
  • Klien menerima alamat simpul bebas, yang untuk beberapa waktu akan menjadi koordinator.
  • Fungsi menerima lagu dipicu (oleh seseorang atau kode), permintaan diterima untuk mendapatkan koordinator ke titik akhir.
  • . , , .
  • , .


Saya selalu tertarik pada pertanyaan, bagaimana seseorang dapat mengevaluasi nilai dari banyak karya kreatif secara objektif? Mengapa, misalnya, seseorang mengekspos album musiknya dengan harga $ 10? Atau seharga $ 20 atau $ 100. Di mana algoritma itu? Ketika, misalnya, kita berbicara tentang beberapa jenis produk fisik, atau bahkan banyak jenis layanan, maka kita setidaknya dapat menghitung harga biaya dan melanjutkan dari ini.

Oke, mari kita beri $ 10. Apakah ini benar-benar efektif? Misalkan saya mendengarkan album di suatu tempat atau lagu dari sana dan memutuskan untuk berterima kasih. Tetapi menurut perasaan dan kemampuan saya sendiri, $ 3 adalah langit-langit saya. Dan bagaimana caranya berada di sini? Kemungkinan besar saya tidak akan melakukan apa pun, seperti kebanyakan orang.

Dengan menetapkan harga tetap untuk karya kreatif, Anda cukup membatasi diri sendiri, jangan biarkan sejumlah besar orang mengirimi Anda lebih sedikit uang, yang secara total bisa lebih mengesankan daripada mereka yang membeli dengan harga yang Anda tetapkan. Bagi saya, kreativitas tampaknya adalah bidang di mana sumbangan pertama-tama harus diarahkan. Untuk melakukan ini, Anda perlu:

  • Mengajar orang untuk berterima kasih dengan cara ini. Pembuat sendiri harus menunjukkan dengan jelas bahwa mereka ingin menerima sumbangan, menambahkan tautan di mana-mana ke berbagai metode pembayaran, dll.
  • . , , .

    , :

    http://someartistsdonationsite.site/category/artist?external-info

    , :

    http://someartistsdonationsite.com/music/miyagi?song=blabla

    .

    museria , , / . . , , .

, , ,


  • , , , . museria , . , , , .
  • - : , , ...
  • , . , .
  • - . , , .

Proyek ini sekarang dalam masa pertumbuhan. Jaringan uji sedang berjalan, node sering dapat reboot, membutuhkan pembaruan, dll. Dengan tidak adanya masalah kritis selama periode evaluasi, jaringan yang sama ditransformasikan menjadi jaringan utama.

Lihat informasi tentang situs dari luar: jumlah lagu, ruang kosong, dll., Anda dapat mengklik pada jenis tautan http://node-address/statusatau Kontak saya:http://node-address/status?pretty




All Articles